1. Project Heartbeat
  2. News

Project Heartbeat News

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!

News roundup #10 - All aboard the 0.20 hype train! Wiki, Rush Notes & more!?

(Originally posted to the EIRTeam Patreon, please support us there too!)

Ah yes, me and schedules, we don't seem to be in friendly terms.

I would like to apologize for the 1000th time for not making these news roundups in time, but we are inching closer to the release of 0.20. This update will include many new features, new content and engine improvements (about fucking time).

0.20 will be named the All Aboard! Update, earning its name from the fact that this will be the final early access era update (for real this time).

Let's dive into what I've been cooking...

The wiki




With how complicated the game (and its history) has been, I thought it would be good to start a wiki, for that we partnered with wiki.gg, the new PH wiki is available here. I already populated it with some content, including some Update pages, hopefully you can also contribute to it!

Rush notes




I promised I'd do them, and here they are, PH now has rush notes, there are still some minor tweaks left on them, but they will be here for 0.20.

Mechanically they aren't exactly the same as in diva, this is intentional, but I hope the slightly different mechanical behaviour is good enough! These notes have either an automatic (optionally user-defined) cap, once the cap is reached the rush note doesn't give any extra scoring.

Performance improvements




The engine has been updated to the latest development branch of Godot, this means that we now have a few extra features that allow improved performance on the Vulkan renderer, such as draw batching, generally you won't notice much change, other than a lower CPU usage, but it might improve performance on inhumanly dense charts.

Compilation made easier


While not documented yet, I've made compiling of the game engine much easier by moving it all to a monorepo, which can be found here.

DirectX 12 support removed


Due to it being a pain in the ass to maintain I've decided to remove support for DirectX 12 from the game, I assume not many people will miss it as it never worked well anyways.

New content


0.20 will include two new songs, hopefully you guys like them, there isn't much more for me to say until they are revelaed, sorry!

A truckload of bugfixes


I've fixed a loooooooot of bugs, some that existed since the game released, others that were caught recently, a reasonable amount of work was put into improving multiplayer, but no one has given me feedback on it yet.

Since we have a wiki now, you can read the in-progress update article here.

Project K status


I've decided to can Project K (the unrelated game I talked about last news roundup), as it wasn't really something I was going to enjoy doing. I'm now working on a different side project, but I probably won't talk much about it until the prototype is playable.

Future




There's very little work to be done on 0.20, the update will be released to verify that it's all fine, hopefully before the end of the year and then we will exit early access.

I was in talks with a pretty popular eurobeat producer to try and include some of her other songs in the game, but unfortunately after an enthusiastic initial contact it seems like they are now ghosting me, oh well.

I also tried contacting a major vtuber agency to make a game based on their talent using PH as a base and reusing their mocap models and animations for a cheap but nice game, unfortunately I also have been ignored, such is the life of the game developer.

I would like to make a few more trailers, to have ready for when 1.0 eventually drops, but I am not sure how to structure them, if anyone could lend a hand please let me know.

On another note, I've gone too silly with the cassette players and I now own more walkmans than anyone sane should, whoops.

Outside those minor things though, everything is going well, I'm more productive than ever which makes me very happy. Hopefully it remains like this for a while.