1. Project Heartbeat
  2. News

Project Heartbeat News

News roundup #2 & #3 - Source code release, new song, website revamp & more

(This is a summed up version of news roundup #2 and #3, I forgot to post #2 to steam so I'm merging them together whoops, hopefully I won't make the same mistake again, you can see the #3 edition of new roundup here on our Patreon)

Hello, I am once again hoping I can manage to make the news posts become monthly from now on, anyways, since we are in early December I think it's time for the updates, there are many exciting new things I've been working on.

New song: Spread my wings


[previewyoutube][/previewyoutube]

A few days ago I announced (on Twitter/X whatever you wanna call it) the start of an official collaboration between Project Heartbeat and the Grazepoint eurobeat creator's circle, with the first song, "Spread My Wings" by DJ Timotei feat. Slothington from the album TouWHO?? 2.

This is the first chart made by mvluna and features artwork from resident artist Sadnesswaifu.

Source code release


While this has done a while ago I wasn't sure if it would stick, but now I am. I released the source code for Project Heartbeat publicly for everyone to take a look at, it's not open source but it's source code available, I will explore a proper open source release in the future.

You can check the source code here.

New engine branch updates




Since the last update many things have happened, the new engine version of the game was finally released for testing, although it's very broken. If you are interested in checking it out please go on the Discord server and look for the new engine info channel to learn how to access it.
New engine branch updates



As I said, it's very broken but it already integrates some goodies such as the new input glyphs and a new song that is currently being tested.

The new engine also has support for Steam Input emulate devices, long gone are the days of having double inputs!

While this is a preliminary port it doesn't make use of ALL the new engine features just yet (for example, the new mailbox vsync or the ability to switch controllers on the fly). But it will soon.

Please, test it out so I can work through the issues faster!

Website revamp updates




As a side project I started work on upgrading the website. I started by upgrading it to use the most recent version of actix-web and to use htmx, which should provide a more modern experience. As this means interactivity can now be expanded upon I am also working on the ability to search within the site for songs by name.

I also want to add the ability to see historical leaderboard data, that should be useful.

I would also like to do something similar to what Steven's website (Project HeartAttack) does with the songs, which is that it locally has the song data available which would be helpful. I would also like to add some form of cache for user data and avatars to increase performance of the site, as the current source of slowness is having to constantly call the Steam API which is incredibly slow.

last month I showed you a more conservative set of changes but I decided to go the extra mile and do a proper revamp to bring it more in line with the game's styling and make it more modern.

Among the new features are improvements to the responsiveness of the site on mobile devices, as well as a per-user progression history page, full with a graph (the graph is free of JavaScript btw!).

This obviously comes with massive improvements to the underlying technology powering the site, such as better database access locking and more.



There are a few things I haven't been able to implement properly yet, such as allowing the site to access the actual files of charts on the Steam Workshop, such as for using background images or some other statistics. My plan was to use the same mechanism dedicated servers in other games use, however it appears there's some kind of issue with permissions that affects Project Heartbeat only, I contacted Valve about this but they haven't been very helpful yet, hopefully this will be resolved.

As you can probably tell, the site is heavily inspired by Osu's website, if it ain't broken don't fix it.

The last thing that I want to do (which the server already has data for, I just haven't gotten around to making the actual page yet) is the ability to have a page dedicated to each score entry to see a graphed breakdown of information.

Once the replay system is working there will also be a button on the webpage that launches the game to show a replay, fancy.



Another thing I want to do to the site (and to implement in-game in the future) is badges/medals for certain achievements done to help the Project Heartbeat community, my plan is to have a general-purpose thank-you badge for people who have done great things (such as Steven and his PHA website) and a few more specific ones for things such as people who've charted officials or for having participated in the community-ran events. Of course there will be a special badge for patrons.

Project Swansong updates




The last few months have been spent on refining the parkour system for swansong. The game now uses pre-baked polygons for sideways ledge movement. This has been a majorly painful thing to do and the current solution still isn't perfect, but it will do for now, it will make it (hopefully) more reliable. I would like for the parkour demo to be ready before the end of the year, but with my health in decline i have no idea if I'll have the demo ready in time.

On other notes, I've integrated the Jolt character controller, which means the player can now go up and down steps, coupled with the IK system and the feet aren't staying in the air! This can be improved further (I have read some papers about how Assassin's Creed syndicate does it), but it looks better than most games for now.

I still haven't decided other aspects of the game, as I'm focusing on the parkour first (since it's the highlight of the game) but I have been thinking about how the gameplay loop will work and whether or not it will be semi-open world like AC1. After the parkour system is released to testing I will be focusing on combat.

This month I've spent a lot of time working on improvements to the reliability of parkour system, such as introducing an additional ring around grabbable ledges so that the character keeps a reasonable distance to it that is also consistent.

I also ended up completely rewriting the parkour logic to make more heavy use of shape casts and other trickery to make sure movements are possible, while this is a bit more labor intensive than the previous raycast only solution it seems worth it, as it has already shown a lot of promise in terms of reliability.

We are inching closer and closer to a playable prototype, hopefully by next month after I finish the wall grab point system.



Personal update




Life continues to look grim and I slip in and out of depressive and sometimes manic episodes, so I'm not putting in as many hours into working as I originally hoped. Sales also haven't been good at all, even with the boost of publicity from the winter sale. I tried to apply to a bunch of gamedev jobs without any luck at all. Hopefully things will get better over Christmas.

Goodbye friends, see you soon!

News roundup #1 - Swansong, The new engine, the 3 big projects

(Originally posted on the EIRTeam patreon)
Hello friends, it's time to give you an update on the development of Project Heartbeat and everything EIRTeam.

I'm currently on vacation, so i'm using this time to work on Swansong (more on that later) and enjoy time with my family. I hope you all are also having a good summer.

Swansong




As some of you may be aware, swansong is the parallel project I'm doing to try to develop a game after Project Heartbeat, this is an adventure game with a heavy focus on parkour inspired by Assassin's Creed, Metal Gear Solid and Death Stranding.

Development is going better than I expected, I have recently been working mostly on polishing stuff and on foot IK, the first phase of the development of the game focuses on having a working parkour system that I can share around for people to test, perhaps here on patreon.

The character model used in the screenshots above are from the previous iteration of the project (which was 2.5d) so the quality is not good, this model won't be used in the final game, it's purely for testing.

I am lucky to have a few artist friends who are very smart and are up to working together. I have however decided to only call them in when the gameplay is mostly working to avoid wasting their time.

Project Heartbeat's 3 big projects



(Actual image of PH on the new engine)

Porting of Project Heartbeat to Godot 4 is going well, 90% of things already work, the two big ones are the multi spinbox in the editor and youtube downloads.

For the initial release of the beta of Project Heartbeat on Godot 4 Multiplayer and leaderboards will be disabled, but they'll be brough back before release.

Some of the big upgrades to PH on godot 4 come from a set of new projects I started together with this patreon, the new video decoding code which is already public. The performance of video decoding appears better, although there are again some kinks to iron out.

The other two big projects are the Input Glyph system and the new Steamworks wrapper, these aren't released yet, but will be soon. With the new Input Glyph system we have working Steam Input, so you will be able to use it when PH on Godot 4. The changes also mean controller support will be improved, you will be able to change controllers on the fly much more easily, without having to fiddle inside menus.

(By the way, I'm still trying to come up with a marketing name for PH on Godot 4, something like PH: Evolution or something like that, any suggestions?)

Discord changes




Pascal now runs an events channel on the discord, you can check it out and subscribe to it using the special role to get updates.
Do note, I do not run this channel, it's entirely driven by people from the community, it's very nice to see.

The future

I'm gonna be frank with you folks, things are looking grim at this time, not just my finances but also my life in general.

As some of you may know, I've been suffering from major depressive disorder and ADHD since I was very young, this is making my life somewhat of a living hell. Having an overwhelming feeling of loneliness and feeling like I'm not worth anything. I have been coping as much as I can but I feel like I'm at a big crossroad.

Due to these issues I've always tried to be as independent when it comes to working as possible, as my very few experiences with a job have ended in what could be considered disasters (I was sacked for calling me boss a cunt). Unfortunately, when it's time to put money on the table there might be an actual need for me to find a regular job. My mother works at a medical manufacturing plant and my father is heavily disabled, so he doesn't have a regular job.

I have decided that if Swansong development hasn't picked up by the end of the year or PH hasn't rocketed off I will begin looking for a job, this will obviously mean less time to work on PH but I'll do my best.

Thank you for reading, let's keep on keeping on.

Minor update 0.17.5

0.17.5
  • Add bypass for wrong notes in multis that contain the note type pressed on non-macro acti
    ons
  • Add patron list to credits
  • Update yt-dlp


0.17.4
  • Fix accuracy display not being visually reset when restarting a song
  • Adjust slide chain loop's volume to match the start portion of it
  • Fix sus note property pasting issues
  • Fix heart notes being able to get FINE< ratings
  • Fix base BPM conversion from V1 to V2 charts
  • Add love


0.17.3
  • Fix issues with the leaderboards for monochrome stars
  • Use romanized song title in editor chart open popup
  • Make game fallback to the default SFX if the custom one can't be found
  • Fix intro skip not showing again when a song is restarted
  • Add love

Project Heartbeat 0.17: Anniversary Update Episode 3! 40% off too!

Project Heartbeat 0.17 is here, this update is MASSIVE, with a revamped version of the new media downloader (that had to be rolled back due to issues discovered after release), a massive editor overhaul, better MM+ support and a complete rewrite of the gameplay code of the game for increased performance and reliability, a big NVIDIA fix for windows users, along with some new and highly requested features.

This is likely our biggest update yet (I think), and it marks the third anniversary for Project Heartbeat, the little rhythm game that could.

I have also decided to make the game 40% off, just to celebrate a bit more ;)

New content

[h2]New song: Monochrome Stars[/h2]

[previewyoutube][/previewyoutube]

The final SuganoMusic licensed song, a funky nostalgic song, Licensed from SuganoMusic, vocals and lyrics by shironegi, composed by obama.
The song was charted by resident idol enjoyer
The artwork was masterfully created by Mariale, who incidentally is also the singer for the OTHER song in this update. That's right, there's two!

[h2]New song: Dime Linda[/h2]

[previewyoutube][/previewyoutube]

Our first song in a language that isn't English or Japanese, done in Spanish by Mariale, one of the resident Project Heartbeat illustrators, I think it's quite different from anything else we've had before, so I hope you can find it enjoyable!

The chart was made by BunBun, a new PH charter.

The artwork comes from David Revoy's open source webcomic (Pepper & Carrot), with proper credits, of course.

The editor update


The editor has received a much-requested do-over, it now looks better and is nicer to use, with some new features that I'm sure you will enjoy.
This is done mainly by Lino.

[h2]A short introduction to the new editor[/h2]
Project Heartbeat has, since very early in development, had a chart editor, which people could use to create charts for the community. It worked fine, but it had a lot of rough edges and inconsistencies.
Furthermore, most of its design was based on UPDC, a chart editor that, while revolutionary for its time, doesnt hold up too well to more modern standards.
Over time, as more and more stuff was added, trying to keep it up to date with the features of the game and adding more tools was getting complicated, and the codebase was pretty messy.
So, enter, the New Editor:



[h2]Major changes:[/h2]
  • A more modern, sleek look, with rounded edges and bigger focus on icons over text.
  • The editor is now mostly grouped into modules.
  • Every module has big and clear buttons, with clear icons and a description which you can read by hovering over them.
  • Everything has a shortcut!
  • There is a new tempo system, with the timeline grid changing according to the tempo.
  • Selecting and editing multiple notes at the same time is now properly supported, with the entire power (and a bit more!) of the old expression runner available inside of every property spinbox.
  • All the tools got a fresh coat of paint, making them more responsive, easy to use and powerful. Also, some cool new ones were added!
  • You can now open external charts (From the workshop, officials, or the imported sources) as read only, so you can study charting and get inspired from the community.
  • Comfy Studio charts (.csfm files) can be imported right into the editor.
  • You can import charts alongside your current chart now, instead of overwriting it every time (useful for collaborations with people who dont like charting in PH)
  • F and F2nd chart importing was fixed, and the editor can now load them effortlessly (even decrypting them if necessary).
  • A new built-in script manager, with file management and a code editor with syntax highlighting.
  • An arrange wheel with multiple snap settings.
  • Support for irregular time sigs.
  • Proper speed changes (for example, set speed to 150%).
  • Playtesting shows the video and meta as if you were playing the chart normally.
  • A collection of static note templates, with tools to make your own or download them from the community
  • And much. much more!




If you charted before, please, try out the new editor, and report any bugs you may find to the #bug-reports channel in the official Discord server or on the steam forums. You can also ask for help there if you have any issues, and submit your thoughts on the new update. Your feedback is valuable, and it is what makes the game better!
And if you have never tried charting, now it is the best time for that. The editor has never been easier to understand or to work with, and seeing how new people interact with it helps make it better and simpler for everyone. So please, share your experiences with us!

[h3]Special thanks[/h3]
  • Brutal, who helped me with all my whinings about music theory.
  • Pascal, for always providing feedback.
  • Neorash, for pointing out bugs when the update released.
  • Samyuu, the father of the diva editors.
  • Everyone in the PH community, for their support and help throughout the development of this update.
  • And EIREXE, for putting up with my BS.


Workshop difficulty-based filtering




One requested feature for a long time was being able to filter by difficulty on the workshop, unfortunately the Steam Workshop didn't make this easy at all, so a compromise solution was developed, we use the tagging system to tag songs based on their difficulty star range, this is obviously still imperfect and I'd like to have more tagging options, but it's better than nothing.

Older songs will also have these tags applied automatically with the update, so you don't need to do anything!

In the future this system will be expanded to allow filtering by chart type.

Gameplay rewrite




During the development of the game the ever-growing requirements and new gameplay functionality required making changes on top of a gameplay system that just wasn't quite ready for it, this led to many complicated engineering problems that didn't have an easy and safe solution.

This is why the decision was made: To achieve a well working and reliable gameplay experience a rewrite of the gameplay side of the game was needed. This was done in a few weeks and after bug squashing the new system is much more reliable, with lower loading times and better performance.

While this work was done, new features that improved the experience were added:

  • "Play hit sounds only when a note is hit": Exactly what it says, note sounds will only play when you hit a note correctly
  • Sustains will now have a custom "held" looping sounds that gets higher and higher pitched.
  • Autoplay now uses the audio scheduling system, which means that note hit sounds should be perfectly in sync most of the time
  • Double notes now have a small delay while playing the normal non double note sound, this is because the recent changes had reduced latency so much it was becoming obvious that the sound was being played and then stopped when the double note sound was played.
  • Hold precision issues have been removed, which means that hold scores will no longer be -1 compared to what they should be.


New media downloader: Episode 3




The new media downloader was plagued with obscure issues that we weren't able to resolve, this is why a different approach was needed and why it was originally rolled back.

A new process communication system was added to the engine to allow the game to run processes and then communicate with them in both directions, this together with yt-dlp's powerful custom stdout system mean that the new downloader is now much more reliable.

This also adds back features such as being able to cancel songs mid-download (not just ones that are waiting to start download), and a loading bar.

ShinobuZ V2


The Shinobu audio engine has received yet another minor revision, this time the timing system was changed to using nanoseconds instead of milliseconds, this should lead to smoother note movement in some cases.

NVIDIA Windows stutter fix


NVIDIA's drivers have historically been non standards compliant, this was partially the cause of the dreaded stutters that were hard to replicate and would only happen on some machines, as they were also different across CPU architectures it was a very complicated problem to tackle.

I did some initial work on the past, by adding ANGLE support to the engine and other things, but that wasn't a perfect solution, I always preferred to use the normal opengl driver instead of a translation layer.

Late last year it was discovered that this is actually a known issue for OpenGL programs on NVIDIA GPUs (Project Heartbeat being one of them), a solution was developed that would disable a feature known as "Threaded Optimization" that caused random stutters for any OpenGL program running on windows that wasn't knowledgeable enough to know about this issue and disable it in the drivers.

This feature is also disabled by other high-performance OpenGL programs like Ryujinx.

Linux users do not have to worry about this issue, as the proprietary NVIDIA drivers disable this so-called "feature" by default.

Any other stutters that might be found are likely caused by the windows kernel being tragically slow at filesystem I/O operations and cannot really be solved.

MegaMix+ loader changes




Changes to how the MegaMix+ loader behaves have been made, now it will behave closer to how the original game does with DivaModLoader, it still isn't perfect and a lot of mods will continue to fail to load, but the great majority should work fine, specially when not many mods are used, however mod conflicts are known to cause songs to disappear in some cases and it's still being investigated.

As part of the loader changes, the game can now show song variants loaded from MM+ as if they were normal PH variants. Additionally the game will also show the list of mods that modify a given song.

Other minor changes
  • Enabled wrap around in the pause menu
  • Added the option to pause when the focus is lost by the game window
  • Made workshop upload form resizable
  • Fixed rollback issues when using high timing offsets


Future


This was a lot of work, took months since the last major update (in fact, since September), so I hope you will enjoy this update.

There is still some minor work left on some components of the game, my main focus right now is going to be on removing unused code in preparation for moving to the new engine (Godot 4), this will be a massive upgrade so the least code that needs to be ported over the better.

Another thing I'd like to do is rework the menu system to be more consistent and easier to maintain, as it's currently a bit of a mess (it was the first system ever created for Project Heartbeat back in late 2019).

Hopefully with my more stable mental health things will keep improving at a steady pace now, I have started working on yet another side project that I hope will lead somewhere :D

Project Heartbeat: Gameplay rewrite now in testing

!! WARNING !!


[h2]If you plan to try this beta and edit songs, please back up your charts, as they might be corrupted by some of the inevitable bugs that come with major code rewrites. Leaderboards are also disabled for the beta branch.[/h2]

Hello, one of the things I've been working on recently is rewriting all of the gameplay components, there are many reasons for this that I'll go over shortly.

Reasons for the rewrite


The truth is when I started working on PH in September 2019 I never expected the game to reach the point its reached today. For example originally I was never going to have the console gameplay style, but over time I decided to add it.

The problem is that due to the way the code was structured it was very prone to failure and strange issues caused by edge case problems (it doesn't help that the PH community is very creative and does many weird things with notes).

With this rewrite I aim to create a simpler base on which new note types can be implemented in a consistent less buggy form, with a proper architecture for handling multi-notes consistently.

Please, try it out and give me feedback!

Major changes
  • The autoplay system is now a modifier, the checkbox in the debug menu will be removed soon.
  • Autoplay hit sounds are now scheduled, so they should be much more accurate.
  • Multi note visual behavior has been improved to better match diva
  • Sustains now have looping sounds when held, and a different release sound
  • Sustains now currently count as two notes when a WORST rating is given


Known issues
  • Hidden modifier doesn't work (yet)
  • Double heart notes don't use the double heart note sound
  • Single slides break when holding their direction before they enter in range
  • Slide, normal and heart notes don't ignore eachother's inputs