1. Project Heartbeat
  2. News

Project Heartbeat News

News Roundup #11 - 1.0 Soft launch, PHZ format & more

[p]Hello, long time no see! It's been almost a year since my last public update on the project, I thought it would be a good time to share an update on the status of the project, as well as the future![/p][p][/p]
Where have you been?
[p]As some of you may remember, I got hired in March 2025 to work at a big game company, due to this and some personal issues (more on that later) I haven't had as much time as I want to to work on PH, however I did manage to get things done.[/p][p]As I said the last time, PH is pretty much feature complete, anything from here is mostly polish, but there are still some key things I want to do before releasing it completely.[/p][p]Some of you may have realized but I did soft-launch 1.0 to the stable branch a while ago, but the game will remain in early access until I have proper marketing material to make the launch big.[/p]
New content
[p][/p][p]There are currently 4 new songs in development, one of them is already in the game but without graphics, I will share more news soon, in the meantime here's a teaser of the art for one of them![/p]
Website DDOS shenanigans
[p]The website (and by proxy, the backend) has been getting DDOS'd by companies scraping data, not sure what for, whether it's AI training or other reason, either way I am working on counter measures for (installing anubis on the server) but it's gonna take a bit as the infrastructure I built is a bit of a mess, I plan to make it nicer.[/p]
No more yt-dlp in the workshop
[p][/p][p]One thing that's always plagued PH is needing yt-dlp for videos, in the end I decided to allow videos in the workshop, in fact, 1.0 won't let you upload songs without video or audio data in the songs themselves anymore![/p][p]I do plan to continue supporting yt-dlp for existing uploads, indeed I added the deno runtime with the game, which should make yt-dlp slightly more reliable.[/p][p]I also created a migration tool to migrate your own songs to not require yt-dlp anymore, so you can upload them to the workshop![/p]
PHZ format
[p][/p][p]To improve future archival and sharing of songs outside of the workshop I started work on an open format called PHZ.[/p][p]PHZ files are just zip64 files structured in a certain way, they include metadata for archival purposes, they can hold multiple mods in a single file.[/p][p]A new export tool has been added to the game so you can export your songs to PHZ![/p][p]Eventually, I'd like all workshop uploads to use PHZ once it's stable, however current uploads are still using the "bare" format.[/p]
UI redesign
[p]I still have nothing to show about this, but I do want to redesign the game UI, I have contracted an external UI designer to do this for me, I will share updates as soon as I can![/p]
Engine update
[p]I have updated the base engine to Godot 4.6, this is currently experimental but it should be fine, this means that DX12 will become the default renderer again, which should improve frame pacing & more on windows, shutouts to Skyth who has been working on Godot's DX12 renderer for a while now![/p]
Bug fixes
[p]I've also been busy fixing bugs to polish up the experience, here's what's changed:[/p]
  • [p]PH-222: Fix being able to create a slide note hold by selecting a checkbox in the inspector tab.[/p]
  • [p]PH-239: Fix various issues with downloading media from the editor, such as overlapping windows and being able to take the download prompt to the main menu.[/p]
  • [p]PH-261: Fix workshop songs with very long titles causing the container to overflow.[/p]
  • [p]PH-292: Fix alt+scroll shortcut not working.[/p]
  • [p]PH-296: Fix intro skip indicator staying on screen permanently if the intro is skipped during the fade in.[/p]
  • [p]PH-299: Fix editor keybinds triggering inside text boxes.[/p]
  • [p]PH-301: Add the ability to download song variants from the editor.[/p]
  • [p]PH-301: Fix workshop description disappearing after opening the song twice in a row.[/p]
  • [p]PH-310: Fix download list not clearing when a song is finished downloading and fix the queued song count not being updated[/p]
  • [p]PH-313: Workaround timeline issues when using a resolution lower than 1080p.[/p]
  • [p]PH-315: Fix localization of song list input prompts being missing.[/p]
  • [p]PH-329: Fix non-workshop songs trying and failing to upload scores.[/p]
  • [p]PH-333: Fix rush note consistency issues.[/p]
  • [p]PH-341: Fix downloading multiple songs' media at once causing thumbnails and audio to fail to load.[/p]
  • [p]PH-345: Fix deadlock when loading the options menu and then trying to load the songs menu.[/p]
  • [p]PH-346: Fix error on close caused by steamworks data caching.[/p]
  • [p]PH-378: Fix double-clicking a song entry (not a chart entry) to enter a broken state in the editor[/p]
  • [p]PH-397: Fix left-facing slide note particle scaling being wrong.[/p]
[p]You can read the full update changelog on the wiki[/p]
What's left for 1.0
  • [p]New trailer[/p]
  • [p](perhaps) UI redesign[/p]
  • [p]Stabilize PHZ format[/p]
  • [p]A secret thing I'm working on :P[/p]
Personal update
[p]2025 was a hard year, getting used to having a normal job after so many years was hard.[/p][p]The hardest moment came in late June, my mother returned from a trip to the countryside (1000 km away) to visit my grandparents, my dad dropped her off at home and when he returned home she was unconscious and on the ground.[/p][p]Unfortunately my mom was declared brain dead the same night due to a subarachnoid brain hemorrhage, luckily we managed to donate as many of her organs as we could, so at least her death wasn't entirely in vain. This was also hard on my maternal grandparents, who are both over 80 years old and are still devastated to this day.[/p][p]I will be dedicating 1.0 to my mom, naming the update "Marina's Legacy". [/p][p]Regarding PH and my work: I've kept myself busy, working on PH, side projects and of course on the game from my day job, I wasn't sure if I should be happy that my bosses are happy with my work, since I've always had the desire to resign and return to be a broke indie, but the pay is good and we do need the money now that my mom is no longer with us.[/p][p]I've also been working hard on my car, I originally wanted to convert it to run on LPG to bypass old car bans, but the government said that was no longer allowed, so I'm now turning it into a street legal race car :P[/p][p]Obligatory MR2 picture to accompany the post![/p][p]Thanks for reading, until we see eachother again![/p][p][/p]

Project Heartbeat 0.20.2: Bug fixes & big performance improvements on windows!

Another minor update, this time featuring some good changes to my life for once!

BananaJuju collab




I managed to land a collab with popular monkeytuber BananaJuju, she will feature in the artwork for an upcoming song. The art was made by Mr. Seori.

Update on the two new songs


As I announced before I managed to license two big eurobeat classics, however the licensor has been ghosting me for a few months, so I have no idea what's gonna happen with that.

Update on my own life shenanigans


I recently got hired at a big game studio, so I unfortunately don't have as much time as before, but I spend all my weekends working on PH, and during the week if I have time, don't worry, I haven't forgotten about it!

The extra money and stability is nice, it also means I can finally get medical help for my leg since the public Spanish healthcare service didn't care much about it.

Engine continuous integration


I have set-up continuous integration for the engine, it's available here on the releases section.

You can get the engine and editor binaries from there, as well as the debug symbols (more on that later).

Return to MSVC


Many moons ago (around the time Phoenix was released) I decided to switch to MinGW for building the windows version of the engine, in hindsight that was a big mistake.

One of the big reasons was I/O performance, but there's also other things that broke, now that we have CI building using MSVC is a non-issue.

Fixed crash dumps


Breakpad is a tool that has been in the game for a while, essentially it allows me to get crash dumps generated by the game and know where in the code the crash was triggered.

Unfortunately breakpad on MinGW has been broken for a long time, so even though windows crash dumps were generated I had no way of decoding them, now that we are back on MSVC that's not a problem anymore.

Website rush note consistency fix


It was discovered that some charts on the website had incorrect percentage calculations applied to them due to a programming mistake related to rush notes.

Luckily Steven helped me derive the correct rush bonus and we managed to fix the issues.

Stricter anti cheat


Due to potential problems with cheating, the anti cheat system is now more strict, as always the anti cheat system is not invasive and runs entirely on the game's web backend.

Improved 3D UI clipping




Previously I went for a stencil buffer based solution for UI clipping, however I quickly realised this wasn't a very good idea, as it required many pipeline re-bindings which was slow, this has now been changed to use user-defined clipping planes which should be much faster.

Alternative timing mode




I made an optional new timing mode that roughly matches what MM+ did, in some systems it may be smoother, however it's still a very heavy WIP, things like unpausing make it lose a bit of sync, so beware of its experimental nature!

Bug fixes


  • PH-222: Fix being able to create a slide note hold by selecting a checkbox in the inspector tab.
  • PH-239: Fix various issues with downloading media from the editor, such as overlapping windows and being able to take the download prompt to the main menu.
  • PH-261: Fix workshop songs with very long titles causing the container to overflow.
  • PH-292: Fix alt+scroll shortcut not working.
  • PH-299: Fix editor keybinds triggering inside text boxes.
  • PH-301: Add the ability to download song variants from the editor.
  • PH-301: Fix workshop description disappearing after opening the song twice in a row.
  • PH-310: Fix download list not clearing when a song is finished downloading and fix the queued song count not being updated
  • PH-313: Workaround timeline issues when using a resolution lower than 1080p.
  • PH-315: Fix localization of song list input prompts being missing.
  • PH-329: Fix non-workshop songs trying and failing to upload scores.
  • PH-333: Fix rush note consistency issues.
  • PH-341: Fix downloading multiple songs' media at once causing thumbnails and audio to fail to load.
  • PH-345: Fix deadlock when loading the options menu and then trying to load the songs menu.
  • PH-346: Fix error on close caused by steamworks data caching.


Future




As you can guess, getting my first job in 5 years hasn't really been particularly good for my sanity, so I starting taking my meds again, overall I'm very happy with my job, we have good conditions and the pay is okay. Hopefully I can invest some of the money back into PH.

Project Heartbeat 0.20.1 now available!

Wiki article
Patreon

Minor patch for 0.20 with some changes and fixes, patch notes also available on the EIRTeam Patreon and on the wiki.

Changes
  • PH-243: Improve behaviour of the timeline's zooming in and out by centering it on the mouse or on the current timeline center whenever possible.
  • PH-251: Re-add the ability to scroll workshop song descriptions.
  • Make the editor use the same mechanism to load song assets as the game itself.
  • Add ellipsis to song difficulties in the song list.
  • Improved performance of MegaMix+ art asset loading by making use of compute-shader based conversion of textures and mipmap generation (only available on Vulkan).
  • Updated don't die on me audio file.
  • Fixed some issues in the credits.
  • Added the ability to mute vocals on songs that have them.
  • Make per-song volume settings not require a restart of the song.
  • Make per-song volume settings work in the song list.


Fixes
  • PH-168: Fix Megamix+ Loader song thumbnails and artwork not loading properly.
  • PH-183: Fix song volume settings.
  • PH-252, PH-253: Fix issues with the clear bar not tracking progress correctly.
  • PH-256: Fix artifacting with the song list and workshop caused by improper clearing of the stencil buffer.
  • PH-258: Fix random button doing a pulse animation when switching tabs.
  • PH-259: Fix issues with editor timeline floating point arithmetic issues.
  • PH-263: Fix MegaMix+ songs not having vocals in the editor.
  • PH-264: Fix MegaMix+ songs not having backgrounds in the editor.
  • PH-265: Fix vocal track volume inconsistencies in the editor.
  • PH-267: Fix timeline waveform appearing lower the it should when first entering the editor.
  • PH-273: Fix standard deviation lines not being centered about the mean in the post-song stats tab.
  • PH-274: Fix issues with discord rich presence caused by no rate-limiting on the game's side.
  • PH-276: Fix spamming back button when dialogue box is open causing it to repeat the "close" animation repeatedly.
  • PH-278: Fix sorting by artist and by creator being case sensitive.
  • PH-279: Fix discord rich presence not showing when you are in the editor.
  • PH-280: Fix typo in the yt-dlp custom CLI arguments menu.
  • PH-281: Add missing ellipsis to custom yt-dlp CLI lines.
  • PH-282: Fix start menu birthday hat alignment.
  • PH-285: Fix skip intro prompt not showing up when first playing a song.
  • PH-286: Fix pausing in practice mode breaking the score scroll effect.
  • PH-290: Fix canceling out of the command line edit popup not reverting the changes made.
  • PH-292: Fix alt+scroll not working in the editor.

Project Heartbeat 0.20: All Aboard! Rush notes, bug fixes, new content & more

Originally posted to the EIRTeam Patreon

Welcome, I told you this one would come quicker! Behold 0.20, the final update of the Early Access period of Project Heartbeat, adding a new note type, some major optimizations, new songs and more!

New content & big stuff


[h2]New note type: Rush notes[/h2]



Rush notes have been added to the game. Similar to ordinary notes, except you have to press them as fast as possible until you hit a charter-defined cap.

[h2]New Songs: Divine Luneth & Don't Die on Me[/h2]

[h3]Don't die on me[/h3]

Two new songs have been charted by mvluna and nikoxtz, with a cast of vocalists, resident PH vtuber Kyuuon and Actually_Sharpie, with artwork from EldrichGamingCorner!

[previewyoutube][/previewyoutube]

[h3]Divine luneth[/h3]

[previewyoutube][/previewyoutube]

[h2]The wiki[/h2]



Partnering with the people over at wiki.gg Project Heartbeat now has a wiki, it has some funky facts about the game and the people that worked on it that I don't think I've ever talked about, most important it will serve as a centralized knowledge base.

You can check it out here.

Hope you enjoy it.

[h2]Performance/Power usage improvements[/h2]

The game now uses the latest development version of Godot 4.4, this means we now have 2D batching for the UI, pretty funky, in general this probably won't improve GPU performance much but it will improve CPU usage and power consumption.

[h2]New song creation dialog[/h2]



The song creation dialog has been re-designed, to be more easy to use and more quickly explain the (current) youtube URL requirement.

[h2]yt-dlp improvements[/h2]



yt-dlp will now automatically try to update itself on startup, this should lead to me not needing to push updates manually for that anymore.

You can also set your own yt-dlp command line arguments now!

[h2]Rich presence improvements[/h2]



I've redesigned the way the game handles rich presence, it now shows more data, I also made it work with Steam!

[h2]PPD downloader revamp[/h2]

The PPD downloader has been redesigned, it will now perform and act much better, with useful error messages.

Other minor changes


  • DirectX 12 support has been removed after being too problematic to maintain
  • Add a time out system to the control remapping to allow remapping of the same button as the cancel button.
  • Updated localization files.
  • Add UI tilting with the right stick
  • Optimize folder song sorting and make it use the same multi threaded filtering code as the main song list.
  • Show a spinner in the song list of a song who's media is in the middle of being downloaded.
  • Improved the song creation experience


Fixes
  • PH-77: Fix sorting in multiplayer results not working.
  • PH-79 and PH-201: Fix video being delayed in multiplayer.
  • PH-99: Make editor playtest show correct titles and reset the stats when restarting.
  • PH-118: Fix inconsistent visuals for emblem sizes in the pre-game progression window.
  • PH-120: Fix some notes lingering around when restarting a song.
  • PH-135: Fix some issues with F/F2nd DSC conversion
  • PH-143: Fix intro skip activating by just pressing Triangle
  • PH-152: Prevent pausing during song fade out.
  • PH-153: Fix game crashing when navigating to the latency graph when there's 0 notes.
  • PH-156: Fix some skins' accuracy bars not being visible due to a change in 0 width lines in godot 4.x vs 3.x.
  • PH-158: Prevent pasted notes from being autoplaced in the editor.
  • PH-163: Fix issue that would cause the play and stop buttons to be disabled in the editor when double clicking a song in the chart selector.
  • PH-164: Fix lingering sustain loop sound when exiting a test play session in the editor mid-sustain.
  • PH-167: Fix game not remembering workshop filter settings.
  • PH-169: Fix latency tester softlock.
  • PH-172: Fix OOBE not enabling/disabling health system.
  • PH-173: Fix subscribed songs not showing up in the song list unless a refresh was forced.
  • PH-175 and PH-190: Fix various issues with the new song list.
  • PH-177: Fix the keyboard shortcut for toggling the editor's grid not working.
  • PH-182: Fix "Pausing at beginning of a song for a few seconds causes video to freeze".
  • PH-185: Fix keyboard shortcuts for increasing/decreasing note separation not working properly.
  • PH-186: Fix menu wrapping in the sort options menu.
  • PH-188: Fix main menu geting stuck when entering and returning the workshop menu in quick succession.
  • PH-189: Fix Downloads page saying no downloads are queued even if downloads are in fact queued.
  • PH-196: Ensure song list preview doesn't show if we don't have a valid song loaded.
  • PH-200: Fix game crashing when someone joins your lobby while picking a song
  • PH-202: Fix lobby menu not returning focus to the button containers after accepting an UGC download.
  • PH-205: Fix issue where exiting the game while downloading media freezes the game until said media is downloaded.
  • PH-206: Fix backing out of some confirmation windows with back button.
  • PH-207: Fix switching tabs in resource packs menu not highlighting items properly.
  • PH-210: Fix song search failing to return focus to song list when canceling out.
  • PH-211: Fix tutorial screen page1 image scaling mode.
  • PH-212: Fix being able to get stuck in the resource packs options section.
  • PH-213: Fix game not recognizing charts with non.finite audio loudness value.
  • PH-214: Fix attempting to leave the editor with unsaved changes graying out the save buttons.
  • PH-217: Fix various issues with the clear bar not showing lines properly.
  • PH-218: Fix being able to switch tabs in the pre-game screen when adjusting the "Timing Window" modifier's window.
  • PH-219: Fix pre game options section clipping issues.
  • PH-220: Fix visualizer not being visible in the editor.
  • PH-223: Fix sustains not updating the potential score correctly.
  • PH-224: Fix restarting a song breaking the score scrolling effect.
  • PH-226: Fix some weird interactions with slide chains in the editor.
  • PH-227: Fix playing a chart breaking note type switching using the up and down key shortcuts.
  • PH-228: Fix timeline snap geting enabled by default, even if it was previously disabled.
  • PH-229: Fix a script error caused by creating a slide chain by selecting an area and pressing the slide button.
  • PH-230: Fix sort indicator in Free Play menu.
  • PH-231: Fix song menu elements being clickable when sort/filter popup is up
  • PH-232: Fix clear bar issues caused by multi slides.
  • PH-240: Fix workshop romanized titles being cut-off.
  • PH-241: Fix various issues with f2nd importer.
  • PH-245: Fix setting some font property values on some UI components in the skin editor


Future


I was thinking about what to do about the recent YouTube download issues, I was thinking of allowing audio and video uploads to the worshkop, but not sure!

This update took a bit longer than anticipated for various reasons, particularly my illnesses and my grandpa's surgery, whoops.



See you in 1.0!

Regarding slow speeds and 403 errors when downloading song media

Hello, quick heads up, you may face some problems downloading song media, this is a known issue within yt-dlp, unfortunately I am still in Galicia (I overstayed because my grandpa is getting surgery), I promise this is not a cop-out, if required I can show document proof of this.

I unfortunately am unable to properly update the game from here, in the meantime you can try to set the maximum simultaneous downloads to 1 to mitigate the problem.

Regarding the 403s, they are a known issue by the yt-dlp developers, but the fix is being worked on..

I assume this must be caused by YouTube's latest crackdown on adblock extensions changing things in their backend.

I will see what I can do in the future to prevent this, such as by having an archival format or something like that. Of course I can't just allow people to post songs with videos to the workshop, that's the nuclear option I reckon.

Sorry for the inconvenience caused!