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

Project Heartbeat

Project Heartbeat is the ultimate cute community-driven rhythm game, featuring music from top artists of the Eurobeat genre made popular by the Initial D anime and manga.

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 ;) [h1]New content[/h1] [h2]New song: Monochrome Stars[/h2] [previewyoutube=2G1zFisSyUY;full][/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=7Bg3Osvux7I;full][/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 ([url=https://www.peppercarrot.com/]Pepper & Carrot[/url]), with proper credits, of course. [h1]The editor update[/h1] 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 [b][i]New Editor[/i][/b]: [img]{STEAM_CLAN_IMAGE}/36814664/cf19015cc111766e86ba9ca0d8271052e5062cde.png[/img] [h2]Major changes:[/h2] [list] [*] 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! [/list] [img]{STEAM_CLAN_IMAGE}/36814664/07a533397c539c996f9dff73774f503f1c41afde.png[/img] If you charted before, please, try out the new editor, and report any bugs you may find to the #bug-reports channel in the [url=https://discord.gg/project-heartbeat-640872911678341130]official Discord server[/url] 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] [list] [*] 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. [/list] [h1]Workshop difficulty-based filtering[/h1] [img]{STEAM_CLAN_IMAGE}/36814664/bd83fe9bb9de815ad4da08d5784b6c90ab2c2ca1.png[/img] 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. [h1]Gameplay rewrite[/h1] [img]{STEAM_CLAN_IMAGE}/36814664/25bf432637d0a9cc59074f0f57a7bf1820043754.png[/img] 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: [list] [*] "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. [/list] [h1]New media downloader: Episode 3[/h1] [img]{STEAM_CLAN_IMAGE}/36814664/6e94d8f56b483331ebf1f090ade95eb11ebc3710.png[/img] 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. [h1]ShinobuZ V2[/h1] 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. [h1]NVIDIA Windows stutter fix[/h1] 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. [h1]MegaMix+ loader changes[/h1] [img]{STEAM_CLAN_IMAGE}/36814664/f37c2f231923699c29f0b4ae296ce9f5b9656a9d.png[/img] 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. [h1]Other minor changes[/h1] [list] [*] 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 [/list] [h1]Future[/h1] 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