Dear Project Heartbeat Community, We are pleased to announce that, effective today, Project Heartbeat is now part of Ubisoft. This acquisition represents a significant milestone made possible through the support of our new shareholders, whose vision has enabled a powerful strateg
Dear Project Heartbeat Community,
We are pleased to announce that, effective today, Project Heartbeat is now part of Ubisoft.
This acquisition represents a significant milestone made possible through the support of our new shareholders, whose vision has enabled a powerful strategic collaboration between Project Heartbeat and Ubisoft. Moving forward, Project Heartbeat’s proprietary engine will serve as the foundation for the development of new free-to-play mobile experiences in partnership with Ubisoft.
To align with our shared standards for safety, inclusivity, and platform integrity, the following updates will be implemented:
Artwork featuring oriental cartoon-styled women will be removed from the base game and permanently prohibited across all user-generated content, including player avatars, Workshop items, and other in-game elements.
A mandatory age-verification system, developed in collaboration with our partners at Persona, will be introduced to ensure appropriate access for all players.
A comprehensive moderation framework will be added, enabling EIRTeam moderators to review installed songs—including local and editor-created content—to maintain a secure environment and prevent platform misuse. Multiplayer chat logs will also be stored and actively moderated to better protect our younger audience.
Additionally, Project Heartbeat will transition to the Epic Games Store and Ubisoft Connect. To deliver a consistent experience across all platforms, Workshop support will be discontinued for every version of the game, including for existing owners.
We are also excited to launch a dedicated Nintendo Switch edition. Due to the hardware constraints of the Nintendo Switch, the visualizer feature will be permanently disabled across all versions of the game to ensure fairness and optimal performance for every player.
Thank you for your continued support and dedication throughout this journey. We are confident that this new chapter with Ubisoft will bring exciting advancements and lasting value to the Project Heartbeat community.
We look forward to building the future of Project Heartbeat together.
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! Where have you been? As some of you may remember, I got hired in March 2025 to wo
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!
Where have you been?
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.
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.
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.
New content
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!
Website DDOS shenanigans
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.
No more yt-dlp in the workshop
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!
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.
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!
PHZ format
To improve future archival and sharing of songs outside of the workshop I started work on an open format called PHZ.
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.
A new export tool has been added to the game so you can export your songs to PHZ!
Eventually, I'd like all workshop uploads to use PHZ once it's stable, however current uploads are still using the "bare" format.
UI redesign
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!
Engine update
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!
Bug fixes
I've also been busy fixing bugs to polish up the experience, here's what's changed:
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-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.
PH-378: Fix double-clicking a song entry (not a chart entry) to enter a broken state in the editor
PH-397: Fix left-facing slide note particle scaling being wrong.
You can read the full update changelog on the wiki
What's left for 1.0
New trailer
(perhaps) UI redesign
Stabilize PHZ format
A secret thing I'm working on :P
Personal update
2025 was a hard year, getting used to having a normal job after so many years was hard.
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.
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.
I will be dedicating 1.0 to my mom, naming the update "Marina's Legacy".
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.
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
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
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-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.
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 wheneve
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.
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 New note type
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
New note type: Rush notes
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.
New Songs: Divine Luneth & Don't Die on Me
Don't die on me
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!
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.
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.
New song creation dialog
The song creation dialog has been re-designed, to be more easy to use and more quickly explain the (current) youtube URL requirement.
yt-dlp improvements
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!
Rich presence improvements
I've redesigned the way the game handles rich presence, it now shows more data, I also made it work with Steam!
PPD downloader revamp
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-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.
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.
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.
(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. T
(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.
Good morning, this is not a typical news post, as there isn't much about PH in here, just an update on me and how I'm doing. A few weeks ago I released 0.19, the first post phoenix major update, it fixes many long standing bugs. The update went well, sales have been boosted by th
Good morning, this is not a typical news post, as there isn't much about PH in here, just an update on me and how I'm doing.
A few weeks ago I released 0.19, the first post phoenix major update, it fixes many long standing bugs.
The update went well, sales have been boosted by the steam rhythm game fest and the fanatical bundle, so I'm quite happy in that sense.
I honestly haven't worked much on anything since that released, a few bug fixes here and there but nothing major, I feel a bit physically down recently.
I always debate how much I should share about my personal life in these updates, this is not my personal blog (I'd make a separate category for that if anything) but I feel like the things listed here are relevant to development as they have an effect on my productivity and ability to work on the game(s).
This is also made worse by the fact I'm a solo developer, so any personal happenings have a full stop effect on work on the game.
Project Heartbeat
Project Heartbeat is popping off hard, as I told you guys before, I will be working on some new features soon, rush notes are likely to be the next big feature to add to the game.
I would then like to work on the archival format.
I was thinking of using some of the LOD'd terrain mesh stuff from Project K to make the game's default background into a real 3D scene with 3D visualizer effects, not sure how well that would work but it would be very fast and probably be a nice thing to add.
I also have to re-review the replay system which I parked for now, essentially the way it worked was by capturing raw input actions and replaying them, it was more complex than it had to be because I wanted to know the hardware origins of each input so as to have the ability to analyze the inputs per-device. A simpler and more reliable approach could be to capture the final input events after being processed by the game, but this would mean losing some data.
As a middle ground we could do like Trackmania, which captures both actual game-affecting final input events and raw hardware input events, but only have the first one be used for actual replay playback.
The raw input events can be used to analyze replays by the community without compromising repeatability.
And yes, I am aware of multiplayer issues, I'm working on them!
New PH content coming!?
YES!! There's three new songs coming to the game, as well as a new built-in skin (that doesn't replace the original one we all know and love), more news soon. Two of them are Eurobeat classics /).
Project Surprise
I'm working on a PH related project that will be announced when it goes out of early access, don't worry, it's not Project Heartbeat 2.
Project K
Project K is my new game side-project, so as to not pollute this blog post with non-PH stuff you can find the full version here.
Health update
As some of you may know, I spend a lot of time in bed not doing anything, I used to blame this on depression (and it probably is still at fault somewhat).
It has been discovered in a recent blood test that I have a major deficiency in vitamin B9, aka Folate, which means I have probably been in need of a supplement for a long time but it wasn't discovered until now.
This would actually explain many things, such as my constant tiredness and difficulty losing weight, hopefully by taking folic acid supplements I can be back to normal in a few months, hopefully.
I would like to apologise for not finding this out earlier and the effect its had in PH development.
Personal update
Due to personal happenings I've not worked much on PH recently, again as this isn't strictly PH related I posted about it on the patreon post.
See you soon, hopefully for 0.20 or the end of early access?
Welcome to this funky update, including not so many new features and a truckload of bug fixes! New song: The nostalgic messenger This is a song that has been in the works for two years, thanks to mvluna for the charting, to Cusi for the music and to RheaBee for the artwork! Song
Welcome to this funky update, including not so many new features and a truckload of bug fixes!
New song: The nostalgic messenger
https://youtu.be/itBQ5pVuFN8
This is a song that has been in the works for two years, thanks to mvluna for the charting, to Cusi for the music and to RheaBee for the artwork!
Song list changes
After a lot of iteration and input from the discord I finally came up with a design I like.
The new design features difficulty lists that are easier to read at a glance, this will also be used for score based filtering (the individual difficulties that don't match the filter will be greyed out).
Currently the difficulty colors are either hardcoded (for the 5 canonical difficulties) or generated from a hash function, you will be able to set your own difficulty colors in the future though.
There's also a much requested unsubscribe button!
On another note, when scrolling through the song list (specially when wrapping around) you will now see some placeholders, these are there to prevent having empty spaces and to give you something to look at while the short scroll finishes, this prevents having to load all the song UI elements.
OOB system
This is something i've wanted to do for a while, basically, I want to have system that lets you configure basic PH features right on first start, such as the note skin or the health system. You can also just skip it and use the defaults like before!
New judgement graphics
Judgement graphics have always sucked in PH, they were nothing more than labels, i finally got around to designing new ones, I also made the combo count use some new number graphics as well, might use them for the score counter on the top right too, who knows.
Stats tab
The results screen now has a new fancy stats tab, I hope you guys like it! It was made with help from the PH discord and specifically from Steven, I still plan to make some cosmetic improvements.
On another note, the stats and the graph tab now do their math using a multi threaded task system, so they should no longer stall the game.
Results screen changes
I made some changes to the results screen based on user feedback, I hope you like them, there's still one more feature I want to add to it, but that will come later.
Pulsating buttons
I did some workaround to allow having animated buttons, the animation is rudimentary but works pretty well I think.
Slide note behavior changes
I have made the slide notes match the behaviour in the brazilian girl's game, specifically I made it so that it won't give you a WORST until its at the end of the window. It's a bit hard to explain, but you'll understand when you try it.
Video player improvements
The video player subsystem has been improved and it now supports different playback speeds, so you can have videos in nightcore more and in the editor when changing the playback speed.
Range sliders redesign
The range sliders in the options menu have been redesigned to be much nicer and more usable by mouse.
Bug fixes
Fix not being able to move the start of sustain notes in the editor
Fix workshop browser not using the adequate input actions
Fix gamepad list display in options menu
Fix mouse auto hide behaviour
Fix song cache dialog overflowing
Fix song list song container clipping
Fix video scaling in editor playtest
Fix first time playing a song in the editor not setting stream position correctly.
Fix crash on negative duration songs
Fix content reloading showing a black square in the middle of the screen.
Fix scripts and midi loader popups having wrong column expansion settings
Fix offscreen sustain line drawing
Fix scripts and midi loader popups having wrong column expansion settings
Fix some practice mode stupidity
Fix laser renderer not being deleted with groups in the editor under some circunstances.
Fix editor shortcut creation
Fix running editor scripts
Make video downloads using audio only actually only download audio
Fix code editor font
Fix Game showing wrong emblem in progression list
Fix video restarting without notes in practice mode
Fix practice mode exit focus issues
Add subtick functionality to some missing places
Improve universal scroll list clipping and performance.
Switch to comfy-like heuristics for grouping slide chains (hopefully)
Removed old task queue and switch song filtering and sorting to use new engine features
Fix skin editor serialization
Fix skin editor font editing
Fix skin editor outliner right click menu not showing up in the correct location
Fix song list not selecting song when returning from gameplay session
Fix song start scheduling fucking with practice mode when first entering it
Fix some sort options not working properly
Fix practice mode sometimes causing stray note groups to exist
Use new video player playback speed mechanism in video player
Fix taill preview images overflowing music player thumbnail
Fix diagonal and full width snapping in the editor
Fix workshop browser filter by difficulty
Fix "Deselecting all difficulty filters breaks difficulty displays" and "the text above the filtered songs still says "(0-10+)" regardless of what the filter actually is"
Improve lyric phrase timeline item behavior
Various minor fixes to windowing
Fix sorting by highest score
Add a few resource pack things and generate mipmaps
Fix a few minor memory leaks
Fix content dir selection
Fix holds in autoplay
Fix: Disable and enable UI as needed for the tempo map tutorial.
Fix: Make sure autoplace works when moving notes around.
Fix auto translate triggering for percentage delta label. Fixes #102
Fix editor transform preview on export
Fix Full Width and Diagonal Step Arranging.
Fix potential memory leak in tabbed container
Fix star filter not working in workshop browser
Fix failure to start practice when song assets aren't loaded
Fix main menu bg swap not happening when returning from playing a song
Fix Song menu doesn't remember previously highlighted song
Fix options sections having a default scroll that made them cut off
Fix some more editor stupidity
Fix timeline scrolling and make more shortcuts visible to the user.
Fix opening charts by double clicking.
Fix order of arc and circle tools.
Disable minimap while area selecting.
Fix angle arrange again.
Fix timeline stealing clicks
Fix song list folders and workshop tab not working and resetting respectively
Fix some options menu spacing issues
Remove invalid deserialized charts from in-memory metadata
Fix sort prop not being applied to filter songs task
Reset scale up/down shortcuts properly.
Fix circle size sliders.
Fix zooming in the script editor.
Fix scrollbar issues when resizing editor modules.
Fix latency tester
Fix error cleaning up thumbnail requests
Improve & fix workshop automatic download after subscription
Fix rare main menu news list error
Fix note scaling in practice mode with custom note scales
Fix issue when mashing accept on restart
Fix crash on startup on some linux distros
Other minor changes
Adjust note hit effect and slider piece particles
Make use of new videoplayer.process_while_paused
Improve gamepad list display in options menu
Add practice mode video seek debouncing
Make importer replace chart check be checked by default like in 0.17
Replace results screen share to twitter with score URL copy
Add the ability to filter and sort in folders
Added appear animation to confirmation windows
Improve workshop item thumbnail behavior
Add subtle shadow to most labels
Generate mipmaps for song assets
Future
Some personal issues have prevented me from pushing this early, I managed to cause myself a neck contracture (I barely get out of bed recently so it's starting to affect me) and my grandma is in a coma, which is for sure not good for spirits, the doctors say she has porphyria.
Regarding Swansong: I have completely stopped working on it and I'm unlikely to resume it, as the people that were going to help me make it a reality are unable to work on it anymore, unfortunate, but it is what it is.
I have instantly pivoted to working on another kind of game, a less niche one, tailor made for consoles (particularly switch/switch2) so I can hopefully make some money, I don't want to talk about it until I have something to show though, I wouldn't want to disappoint again, but if you are around in the discord you probably know what it is.
On a more positive note, sales have been insanely good recently, so I'm very happy with that, I finally have some air to breathe financially!
See you next update, which will hopefully be the one that gets the game out of early access. Oh! about those rush notes I owed you... Soon!
Enjoy this picture of my late grandpa's work van and my MR2 to top off this update:
(originally posted to the EIRTeam patreon ) Hello people, long time no see! I have been working a lot on PH recently, fixing up stuff and finally adding new features, I hope you guys like what I've been cooking. Most things are bug fixes, a detailed changelog of which will come w
Hello people, long time no see! I have been working a lot on PH recently, fixing up stuff and finally adding new features, I hope you guys like what I've been cooking.
Most things are bug fixes, a detailed changelog of which will come when I release the next stable patch!
Song list changes
I pushed some experimental song list changes, after a lot of iteration and input from the discord I finally came up with a design I like, there are some minor bugs here and there still, but I think i'll be able to solve those.
The new design features difficulty lists that are easier to read at a glance, this will also be used for score based filtering (the individual difficulties that don't match the filter will be greyed out).
Currently the difficulty colors are either hardcoded (for the 5 canonical difficulties) or generated from a hash function, you will be able to set your own difficulty colors in the future though.
On another note, when scrolling through the song list (specially when wrapping around) you will now see some placeholders, these are there to prevent having empty spaces and to give you something to look at while the short scroll finishes, this prevents having to load all the song UI elements.
These will be updated to the new song list item design when it is finalized.
OOB system
This is something i've wanted to do for a while, basically, I want to have an out of the box system that lets you configure basic PH features right on first start, such as the note skin or the health system. You can also just skip it and use the defaults like before!
New judgement graphics
Judgement graphics have always sucked in PH, they were nothing more than labels, i finally got around to designing new ones, I also made the combo count use some new number graphics as well, might use them for the score counter on the top right too, who knows.
Replay work
While they aren't ready yet, I've been working on replays, I laid some of the ground work for them, most of the stuff involved making the holds and other parts of the game more deterministic.
Unfortunately, this also means the removal of the venerable rollback on unpause functionality, I hope this doesn't bother you guys too much, but it was going to be extremely hard (or impossible) to get it to work otherwise.
Stats tab
The results screen now has a new fancy stats tab, I hope you guys like it! It was made with help from the PH discord and specifically from Steven, I still plan to make some cosmetic improvements.
On another note, the stats and the graph tab now do their math using a multi threaded task system, so they should no longer stall the game.
Pulsating buttons
I did some workaround to allow having animated buttons, the animation is rudimentary but works pretty well I think.
Future
We are well on our way to going out of early access, I will do a small update to stable with the new features and bugfixes soon (tm), then I'll finally work on rush notes and then we might be ready for release, I hope.
It's really been a terrible month for me, at least I'm glad phoenix ended up coming out as good as it did, my motivation is on the ground but at least I get stuff done on a daily basis.
I am once again at a complicated crossroad, I feel very demotivated and things aren't getting better, I fear for my future. I've been trying to learn some 3d sculpting too, let's hope that comes out good.
I didn't work much on Swansong, I've actually spent a lot of time playing Ghost of Tsushima (great game btw).
I feel sad when I play games because I feel like I should be working, but when I look at the real amount of time I spent playing vs working I actually should probably work less and play more, but I don't enjoy it as much.
"After 10 thousands years in development, hopefully, it will have been worth the wait!" Ladies and gentlemen, the time has come. We've gone through an insane amount of hardships together over the last year and this is the culmination of that work. Welcome to Project Heartbeat Pho
"After 10 thousands years in development, hopefully, it will have been worth the wait!"
Ladies and gentlemen, the time has come. We've gone through an insane amount of hardships together over the last year and this is the culmination of that work. Welcome to Project Heartbeat Phoenix.
Welcome home, rhythm game enjoyer
Project Heartbeat Phoenix is the most far-reaching update we've made ever since the game released back in March of the seemingly cursed year that was 2020.
This update touches every aspect of the game and improves upon it, not only is the engine brand new, so is the input system, the video decoding, the steam integration, the multiplayer, the rendering code, everything has been meticulously revamped to harness the power of the great Godot 4.
This update won't really blow your mind with fancy bells and whistles, as there aren't that many new features, what it provides however is an incredible improvement to the bare essentials, never before seen consistency and world-class rhythm game technology, this will not only improve the game, but also my ability to expand it in 1.0, let's get into the details.
The new approach
As some of you may be aware, in this year since the last major update I started a Patreon, this has not just resulted in a much-needed help to sustain myself (PH isn't profitable at all, with me not earning minimum wage most months) but also it has allowed me to have a "reason" to work on engine extensions that can be shared between different games.
The result of this is the new Steamworks, input glyphs and FFmpeg modules I developed for the engine, these are open source and available on the EIRTeam GitHub for everyone to use!
If you want to help me out further monetarily check out the Patreon, this is obviously optional and doesn't get you many benefits other than a different color in the discord.
New content
New song: Versos perversos
https://www.youtube.com/watch?v=L9slqe57vUQ
Licensed from the great Andrés Alguacil, AKA elBokeron, Versos Perversos is a relatively popular Spanish meme rap song that I added because I personally like it much, luunah decided to make an extra hard difficulty named "Lunatic", this won't become the norm but it's just a nice plus.
This is a collaboration I've been wanting to do for a while, I actually obtained permission from Andrés back in 2021 to use his work, but life and Project Heartbeat got a bit on the way.
The art was made by @Psycho_Loli on twitter. Please check out her work!
Touhou Eurobeat, the source of all great things in Project Heartbeat, here's another Eurobeat song from our friends at Grazepoint, based on an original Touhou Project song, this was arranged by WORLDWIDEWOLF with vocals and lyrics from Timothy.
The artwork was made by our great resident artist @Guinii4 please make sure to check out her work!
The new game engine
Phoenix uses the new Godot 4 game engine, the result is increased performance, more renderer options and less headaches for me, yay.
The star of the show: Subtick system
https://www.youtube.com/watch?v=8EgtpCrbdSg
While working on what would later become Phoenix I had an idea, could we possibly make the game more consistent if we applied the same technology valve's Counter-Strike 2 uses for subtick input? The answer as it turns out, is a resounding yes.
You can learn more about how it actually works in the video above, I plan to do a few deep-dive tech videos describing how it actually works eventually ;)
Currently subtick is only used for gamepads, but I plan to add kb/m support in the future, and perhaps even touch support.
Input system
The input system has been replaced by SDL, this will finally rid us of strange issues the game was facing since release. Yes, this also means Steam Input finally works well with the game! Long-gone is the need to go into options to change your current controller manually, now you can even play using two or more controllers at the same time! (not sure why you'd do that, but you can).
New input glyphs
I decided to revamp the input glyph system used in the game, as mentioned before this is part of the three open source projects that I launched the patreon with! The new glyphs are nicer (courtesy of valve) and it also supports better keyboard glyphs.
Discord rich presence
I've reworked how discord rich presence works, it will now show the album art for workshop songs! It's also much more reliable and doesn't depend on Discord's stinky proprietary libraries :D
Multiplayer revamp
Multiplayer has been completely rewritten from scratch, the new code is more reliable and robust, it should allow for doing more complicated things like using modifiers or different per-song variants in the future!
New website
While already announced, the new website was developed as part of the development of Phoenix, I revamped the design, added many fancy new features, such as personal best history, search and more.
Real 3D GUI
In old Project Heartbeat the way the UI was made was by drawing two textures offscreen and then putting them on a bunch of 3D planes as textures. This had its share of inconvenience and performance issues, it also didn't allow any form of antialias or the ability to sample the background.
With the new rendering code I wrote, we now have a real 3D interface inside PH, this allows me to use MSAA x2 on the main menu for crisper rendering and also saves you a lot of power consumption, specially important for handheld devices like the Steam Deck, I've seen battery life of up to 6 hours on my own machine.
As I said before, the new real 3D GUI also allows me to read the background of the image, this means I can finally do the frosted glass effect I always wanted to do, I think it looks very pretty, I might make it configurable in the future, so please let me know what you think of it.
Video decoding improved
I rewrote the video decoding code we used, by taking heavy inspiration from the way Osu! does things but with a few twists.
You see, videos don't really come in RGB form, they usually come in a pixel format known as YUV.
The human eye is actually much worse at distinguishing colors than it is at distinguishing various shades of brightness, what most formats do is that they cut the pixel data into a big luminance channel and two smaller chromatic channels. Essentially this means that instead of needing three full resolution images for each color channel (R, G ,B) you can instead get away with a big image for luminance and two smaller ones for color information, and your eye is none the wiser!
Unfortunately, graphics cards can't really display YUV data directly, due to this the conversion had to be done on the CPU which was computationally expensive, there are some graphics API extensions that exist but there's not much reason to use them now that we have compute shaders.
And such is the approach used in Phoenix, it uses the massive parallel power of your GPU to convert YUV video into RGB, in practical terms, this means that converting a frame to RGB takes 43 microseconds instead of 7 ms on a powerful computer, which is a 160 % improvement.For now this technique is only available on the Vulkan and DirectX 12 rendering backends.
I also added the ability for video playback in nightcore mode, I hope you guys like it.
True Vulkan and DirectX 12 support
Old PH used a compatibility layer known as ANGLE to translate the original Godot 3 OpenGL calls into Vulkan (and formerly, dx12), this was fine, mostly, but PH now uses Godot 4, which has native Vulkan support.
I have decided against making DirectX 12 the default on windows, due to some potential memory leaks in the Godot code that were reported to me, but you can still try it if you want.
On the long run, PH should get native vulkan DXGI present so we can ditch DirectX altogether, but that's currently out of my expertise since I'm a bit of a Vulkan noob hehe.
OpenGL is still supported, at least for a while, but it's actually likely to perform worse on most systems, so I recommend not using it.
Results screen revamp
I redesigned the results screen, thanks to input from NeoRash, I think the new design is quite nice, now it shows more information than before.
Future
I am very excited (and honestly, nervous) about this release, this is basically the work of a full year condensed into a single update, gives me the same feels the initial release back in March 2020 gave me, it's a good feeling to finally be productive again.
Regarding Swansong, I haven't had much time to work on it obviously, but I already know what things I will be exploring when I inevitably return to it, but obviously my focus always remains on PH, specially since I expect an inevitable wave of new and interesting bugs with Phoenix.
See you in the next update where PH will finally go out of early access!
I would also like to thank steven for all the bug testing and hunting he has been doing, and the various analysis he ran on the game.
Mark your calendars: May 20th is the day Project Heartbeat Phoenix releases to everyone! Project Heartbeat Phoenix is our biggest release yet, featuring a new engine, improved performance and a first of it's kind subtick system. Love will never be the same.
Mark your calendars: May 20th is the day Project Heartbeat Phoenix releases to everyone!
Project Heartbeat Phoenix is our biggest release yet, featuring a new engine, improved performance and a first of it's kind subtick system.
(Originally from the EIRTeam patreon page ) Hello friends, it's time for our monthly project heartbeat development update, I have spent this month working mostly on PH, so phoenix got many massive upgrades and is inching ever closer to being released. I don't know why but I have
Hello friends, it's time for our monthly project heartbeat development update, I have spent this month working mostly on PH, so phoenix got many massive upgrades and is inching ever closer to being released.
I don't know why but I have spent the last few weeks working HARD on Phoenix, squashing many editor bugs and improving things here and there.
The funeral
As you may be aware, diva is all but dead, which is very sad, this has incidentally led to a massive amount of new sales for me, so it's a bittersweet moment. I hope I can carry the project diva torch as best as I can. Of course my budget will never be anywhere near diva, but PH also doesn't cost nearly as much ;)
(P.S: If you are the owner of some music-heavy IP, like a music-focused anime or similar I'm open to negotiations of making a game using the PH engine, similar to miracle girls festival. I have console and mobile versions of the engine too).
Phoenix Beta 3
I released Phoenix Beta 3 last week, I could pad this post by copying and pasting you all the changes (and there are a loooooot of them) but I think it would be better if you read it straight from the source here.
The important changes, besides the massive amounts of fixes are:
UI is now true 3D, saving power and looking better, plus I added a frosted glass effect to transparent elements
Modifiers are fixed, including hidden
New console -> arcade conversion modifier, experimental
Input map migration from old PH to Phoenix
Disabled dx12 support (for now)
Workshop now shows a gameplay type display
Some changes to menus, specially pregame
Phoenix Beta 4
Today I'm also releasing beta 4, well, I've been releasing it as I worked during the week, but there's yet another shit ton of changes to the game and fixes to make it work better. Not much new stuff, but as I said before, phoenix is in a bit of a feature freeze until it's all sorted out and relatively bug free.
God I fear for the day Phoenix is released and I have to write the changelog for all cumulative changes... Anyways here they are:
The controller dilemma
I was thinking about non-standard controller support in PH, and I came to a dilemma, I am considering only officially supporting non-gamepad-style controllers (like the xbox controller) and letting people use steam input to remap it. What do you guys think? (specially considering phoenix supports steam input, unlike stable PH).
Multiplayer
I've worked hard on some phoenix multiplayer stuff, it's almost ready, most functionality is restored but I want to give it a good do-over. Either way, it should be made available soon.
Unfortunately phoenix MP uses a different, newer, Steamworks P2P API for communication, so you won't be able to do crossplay between stable and beta.
Results screen rework
I redesigned the result screen, thanks to input from NeoRash from the PH server, the new one looks way nicer adn shows more info!
3D UI improvements
(It totally looks like wallhacks lol)
Good news, I've revamped how the 3D UI system introduced last update works, it's simpler and does clipping properly, yay. I also managed to do away without dynamic canvas operations, unfortunately I've also managed to break DX12 and OpenGL whoops..
I may just drop OpenGL support entirely, but i could reimplement it if needed quite simply.
DJA rework
In another episode of EIREXE tries to fix direct joystick access, I think I've finally done it this time.
I replaced how inputs behave, with the empty slide sound playing always, even when hitting.
I also used a multi band compressor to try and make the slide empty sound less annoying, let me know what you think!
Finally, I reworked how DJA behaves in general, including some funky deadzone intersection code that should make fast flicks more consistent.
Previously, when you hit a direction and then flicked back the opposite way there was a chance your input would "skip" the deadzone and thus never re-trigger the slide/heart action, now the game checks if a line drawn from the previous joystick position to the current joystick position would intersect the deadzone, if it does and if it would end up outside the deadzone again it takes care of triggering actions and releases the way it should.
Interval tree accelerated gameplay
After many long years of pain dealing with inconsistent note clipping I decided to go the nuclear way. The new interval tree method the game uses allows for very fast lookups of what note groups are actually visible on screen with none of the issues that plagued old PH, specially regarding custom time out values.
Other fixes/small changes
Fix MM+ song loading
Fix sine wave gimmick effects
Fix editor right click lockout
Fix editor timeline scale being wrong in some circunstances
Adjust slider piece particle and note hit effect
Fix difficulty creation
Fix editor settings selector
Fix creating variants
Improve mouse trap
Fix potential loading screen error when downloading UI skins
Fix workshop media auto downloads
Fix editor help links
Fix data race in get_song_select_sprite_set
Fix editor help links
Fix some timing point deserialization (intro skip, lyrics etc)
Fix song metadata editor question marks
Fix resource pack editor open pack window, scaling and inspector.
Adjust main menu scaling and theming
Fix practice mode layout
Fix lyric clipping
Fix error loading content dirs section
Fix ofsetting timing points in the editor only offsetting notes even if that setting is unchecked
Hide tempo change dialog by default
Optimize editor inspector updates by deferring them whenever possible
Optimize copying and pasting notes
Fix PPD song loader not loading YT json
Fix PPD video selector dialog
Make script editor dialog a normal window instead of a Popup
Fix script editor behavior and syntax highlight
Fix editor background scaling
Make editor playtest UI scaling match the game's
Optimize results screen
Fix some album art scaling issues
Fix workshop browser pagination wraparound and backing from detail view
Fix start menu party hat
Fix editor note layer order
Fix playtesting charts
Fix editor playtest not playing video at the correct time
Fix multi note deletion breaking
Fix audio loudness for MM+ variants
Fix DJA heart sustain note transfers
Fix "the save as button doesn't seem to do anything" and "after going into the song selector in the editor and then going back to a chart you can no longer press space to play until restarting the editor"
Rework some pre game screen architecture
Fix missing async task queue thread joins
Optimize song list container by using visibility notification rects
Fix note usage deserialization and related menu elements
Add CSV timing dumping
Swansong
Honestly haven't worked much on swansong, but I've made an execution system and switched to ghost of tsushima style GPU blood, it's fast as fuck and I think will look better once I add more randomness.
I'll post a video of the blood in movement on Patreon right after this post goes live.
After the combat and assassination system is semi-working, I would like to go work on parkour again, I have some ideas on how I'm going to do it.
I've also been drawing some concept art, it's not good but it shows an idea i had for a hanging city inside of a rock formation (a ravine?).
I also asked Guinii to make me some concept art for the protagonist, i'll showcase it here as soon as there's something done! I think you'll love the ideas I came up with.
Future
It's all looking very good, it's all going well, suspiciously well, this means we are well on our way to exiting early access relatively soon! Target is before august.
On another personal note, my car finally passed inspection (which cost me a pretty penny) and I unfortunately had to reject a job at a company for personal reasons, but oh well, at least I will always have frieren... except someone forgot to put the base in the box for the figure, ffs.
Hello, I decided to start making changelogs for the big beta updates. In case you aren't familiar with it, Phoenix is the name given to the new version of Project Heartbeat running on Godot 4, this version has been widely revamped with many new bells and whistles, including the n
Hello, I decided to start making changelogs for the big beta updates.
In case you aren't familiar with it, Phoenix is the name given to the new version of Project Heartbeat running on Godot 4, this version has been widely revamped with many new bells and whistles, including the new subtick system. You can learn more about it here:
https://www.youtube.com/watch?v=8EgtpCrbdSg
This update consists of 80+ changes to the game's code, mostly fixes but some minor new features.
Fixes
Fix workshop browser
Remove controller selector since it isn't required anymore
Remove simplified chinese translation that wasn't ready for prime-time yet.
Fix loading screen crashes
Fix some BPM changes not being applied
Fix an issue that would cause the game to crash when opening the editor
Fix notes not cleaning up properly when being deleted in the editor
Fix and improve behavior cursor auto-hide
Fix editing angles in the editor by clicking on the stage
Fix some editor time conversion errors
Fix folders
Fix midi, DSC and PPD importers.
Fix minor (inconsequential) memory leaks
Fix result rating styling
Optimize stylebox vertex count
Fix clipping in pregame screen.
Fix 3D menu scaling
Fix editor trying to use hidpi and failing at it strepitously
Fix lyrics rendering
Fix UI scaling changing when exiting the editor
Fix some popups not spawning centered
Fix note input lockout during fade-in
Fix slide chain drawers not doing the appear animation properly
Reduce editor font size to better match old PH
Fix missing editor toolbar icon and recolor waveform icon
Fix note movement gizmo losing tracking when moving the mouse too fast
Fix song variants crashing the game
Fix editor area select
Fix song list search passing keyboard input through in some circumstances
Fix song restart fade-in input lockout
Re-add yellow selection triangle to notes in the editor timeline
Fix arrange wheel
Fix pregame screen modifier buttons not being usable with a keyboard/gamepad
Fix pause menu stealing focus when clicking in an empty place
Optimize credits section
Fix results screen minimap
Fix results screen graph
Bring back and further optimize pause menu blur
Fix slide hold score not showing
Fix editor shortcut styling
Fix song metadata editor using save file dialogs instead of open file dialogs
Fix note appear effect animation speed
Add hack to reimplement old engine note high amplitude high frequency effects
Improve modifier localization
Fix modifier selector scaling
Fix hidden modifier
Features
Add note usage icons to workshop browser item thumbnail
Add new result screen test button to debug menu
The main menu is now real 3D, which should massively reduce power consumption and make most GUI elements look better.
Menu elements now have a 0 cost frosted glass effect behind them.
Pre-game screen now has a small leaderboard with information about previous plays, this will be improved upon in a future patch.
Temporary project heartbeat phoenix logo
Add migration system for old engine input maps
Make sustains actually usable when using the hidden modifier
(This story was originally posted to the EIRTeam Patreon here ) Hello, sorry for the delay but I've been down for most of the month due to health issues, fortunately I've still managed to continue work full steam ahead. Unfortunately due to a badly timed company restructuring I d
(This story was originally posted to the EIRTeam Patreon here) Hello, sorry for the delay but I've been down for most of the month due to health issues, fortunately I've still managed to continue work full steam ahead.
Unfortunately due to a badly timed company restructuring I didn't manage to get into the big studio I told you guys about last time, that was a hard blow specially because it would have been very helpful economically, oh well.
Project Heartbeat Phoenix
I've been struggling with coming up with a catchy name for the new engine update, I think I finally have one I like, Project Heartbeat Phoenix, let me know what you think about it.
Subtick promo video
I've been thinking about making promo videos for Phoenix, this includes the new subtick system, I already have a video ready that I will have Kyuuon voice, hopefully it's well received.
Fonts
I did some work on unifying fonts across the whole game to better support non-Latin character languages, if I did my job well every single label now supports Chinese, Japanese, Korean and Cyrillic characters (I hope).
Localization
I did some work on improving the localization system, it's now basically ready for me to send to translation companies to translate it. I tried to find a service where I can let people contribute localizations, but I would have to self-host and thinking about it with the cost of proper translation it would probably end up being more expensive. I also considered AI translation but people would probably not like it and Valve may be made about it. My current plans for localization languages in PH will be:
English
Spanish
Catalan
Japanese
Chinese (Simplified)
Chinese (Traditional)
Russian
Ukrainian
It might take a bit for me to look into paying for these translations because I have to get the car fixed, but hopefully that will be done soon.
SDL on Windows
The game now uses SDL for handling game pads on windows just like on Linux, this is likely to increase compatibility with different controllers and I might do something fancy with the PS4/5 LEDs in the future.
Other minor fixes
Fixed a long-standing where the waveform would veer off-sync depending on the amount of horizontal scroll
Fixed async loading data races on boot
Fix main menu mouse accuracy
Fix scrolling using the mouse in various places
Swansong
As I said last month I've started working on the combat system for Swansong, it's not ready to show yet, but I've recently added sound events to the animation system, ragdolls and I'm currently working on blood by taking inspiration from Counter-Strike 2. I might even make a video detailing how the system works.
I have also been experimenting with some euphoria-style semi-procedural ragdoll physics, I'll probably use them for death poses and maybe for some combat reactions.
Future
Honestly it's been a rough month, I almost though about cancelling Swansong but I got a burst of motivation to work on it after seeing the combat system sorta seem to work.
I also went to the doctor the other day for a follow up on my kidney stones, seems like its genetic and all I can do is drink water and pray they dissolve before getting dislodged.
Hello again friends, welcome again to the monthly progress post. I've been busy working on things for both PH and Swansong and I'm very excited to how well things are turning out. I also had the opportunity to get interviewed for a job, i managed to pass two interviews and a tech
Hello again friends, welcome again to the monthly progress post. I've been busy working on things for both PH and Swansong and I'm very excited to how well things are turning out.
I also had the opportunity to get interviewed for a job, i managed to pass two interviews and a technical test quite well, but I still haven't received a finally answer, it's at a pretty nice local studio so the money would come in handy, I could even hire people to work on PH if the workload is too big for me, so the continuity of the game wouldn't be a concern.
Project Heartbeat
New content on the way
A few new songs are either charted or about to be charted, they will be added to the game as they are ready, at least 3 new songs are being worked on, here's a sneek peek at how the artwork for one will look.
It's made by Guinii, our resident anime women enthusiast.
The early access finale update
I have decided to rename the Godot 4 port to the "early access finale" update, this update will be the final update before the game comes out of early access, however this doesn't mean I won't continue working on the game. I just feel like its in a very good position where it can be justified to be called a full game.
Challenges proposal
After the very successful launch of the new website design I am pleased to announce that I've started work on challenges, challenges will allow players to fight against each other on randomly selected songs, details are still to be determined so I suggest you read my proposal here.
YUV -> RGB conversion on the GPU
Normally, when video frames are decoded they don't use the typical red green and blue format.
Generally, these are decoded as three monochrome planes (essentially, three black and white textures), with the first texture being brightness information and the other two being color information. This generally results in an imperceptible difference (at least to human eyes) and much more compact information storage.
Previously, PH would convert from YUV to RGB using the CPU for every rendered frame, even some that may never be shown at all. This was bad, so now the video is decoded as-is without conversion and is sent to the GPU as three YUV planes, it is then converted into RGB by the GPU.
The result is a >900% improvement in video decoding performance. Something to be at least a bit proud of I think.
Discord rich presence improvements
Discord rich presence now uses a homegrown discord RPC wrapper, which means that it will work more reliably (specially on Linux) and it makes my life a lot easier.
I also added a new feature, the game will now provide discord with workshop preview URLs, this makes the album art for the song show up on your discord profile. Fancy.
DirectX 12
On Windows PH now uses the new DirectX 12 rendering backend, this is to improve responsiveness and frame time consistency on windows, unfortunately there appears to be some kind of memory leak on some AMD drivers and on Intel Xe, so dragons beware.
Currently we are defaulting to Vulkan but you can give the dx12 backend a go with the following command-line argument:
--rendering-driver d3d12
SDL for input
It's not news that Godot's input system is sub-par at best and questionable at worst. Hence why I decided to rip the entire input driver and replace it with SDL. SDL is a very common library for handling various aspects of application development, although here its only used for gamepad input.
The reasons are varied, but its mainly about preventing duplicate devices (such as virtual steam input devices) and properly mapping quirky controllers.
Currently SDL is only available on Linux, and it uses your system SDL2 library for now.
Input system changes
PH's input system was originally meant to work around issues caused by godot's shoddy input handling, fortunately with the addition of SDL we can now be in the 21st century and accept inputs from various controllers at the same time, all without having to go into the input menu to change between controllers.
This may also open opportunities for coop charts. Let's see what you can come up with!
Timestamped input system
One of the new stars of the show is the tickless input system, essentially inputs are constantly being read while the game is doing other things and a timestamp is assigned to each input event.
Before PH would process all input events at some point during the frame as if they happened at the time they were processed, this wasn't exactly the best idea, while it doesn't matter for most games for rhythm games like PH its quite noticeable
Once the game processes the input events, it knows at what time they happened, the game was already designed with this in mind, so gameplay can evaluated at any song position.
This results in essentially unlimited input polling rate (well, whatever your hardware can handle), even if the game is running at a lower framerate.
Nightcore modifier video support
The nightcore modifier now supports playing back video, this uses a bit more CPU but it does work.
Swansong
This month I worked very hard on Swansong's combat system, although it's too green to show much at this time, maybe next month!
Future
Thank you for reading yet another monthly update by the time I post another update I will have turned 24, oh the missery of the passing of time!
I will keep on keeping on for as long as I can, have a good one my friends.
Hello friends, today marks the release of some things I've been cooking for a while, hope you like them. This month has been as active as the last due to the holiday season, but I've still worked hard as much as I could to deliver these things to you. The Project Heartbeat websit
Hello friends, today marks the release of some things I've been cooking for a while, hope you like them. This month has been as active as the last due to the holiday season, but I've still worked hard as much as I could to deliver these things to you.
The Project Heartbeat website revamp is something I've been cooking for a while. It has taken a few months of hard work and a lot of code restructuring to make it more extensible, faster, easier to use and prettier, let's get into the details.
The new website
New design
The first thing you will notice upon entering the website is the new design, it's much fancier and represents the in-game aesthetics much better. More importantly this has resulted in a significant code restructuring which makes styling changes to the site much easier to do on my end.
The song pages now feature the song's background art, this is thanks to Steven's excellent Project HeartAttack website, which is also now linked on the song pages. Thanks Steven!
Of course, this is only temporary, I want to move to a locally cached version of song data, for this and other purposes, unfortunately valve hasn't been very cooperative with fixing with a certain bug I'm facing, so I cannot proceed with the reliable option I was thinking of.
Score progression
The site will now store a history of your personal bests for songs as you get better at them, so you can see how much your score improved, a fancy graph is also included.
Score details
You can now see a detailed breakdown of every one of your scores, this includes a breakdown of point distribution and yet another fancy graph.
The score page also will now have a thumbnail when you post it on Twitter, Telegram, Facebook and even WhatsApp, when clicking the in-game tweet share button the link to the score will be included in the tweet if it's a PB, however this functionality isn't ready just yet on the game side.
Profile changes
You can now search on every player profile for songs based on name. You can also sort the results based on date achieved or rank, this can and will be expanded in the future.
Badges
Another important feature is badges, which are granted to people who achieve certain things or that have contributed to the game. Although currently no in-game actions grant any badges they will in the future.
There exist three badges at this time, the early access badge which all users have, the master charter badge which is given to official charters and the Patreon Supporter badge which is given to people who support this Patreon page.
Song search
Additionally, you can also search for song leaderboards in the new community songs page.
Performance and other technical funnies
The new website uses the great htmx framework which makes a tightly integrated and high performance site like the PH site a breeze to make without having to involve complicated web frameworks.
Some performance improvements have been made, some actions that were done sequentially are now done in parallel and some queries have been optimized.
Future
There are many things that I didn't implement just yet, like the aforementioned ability for the site to have access to the actual chart information and assets. This will come once Valve decides to fix the bug I am facing.
On another note, a feature I would like to include in the future at the suggestion of Steven is daily or weekly challenges, where people compete on a randomly selected song to attempt to obtain badges. I still haven't finalized how it will work, but I would like to give out three different badges per difficulty (for the podium), with a special badge reserved to whoever gets the highest score of the day/week on the song's hardest difficulty.
Swansong pitch
As swansong has evolved to the point where I can call it a viable game to build, I decided to focus my attention on defining most aspects of the rest of the game.
On January 1st 2024, after crying myself to sleep once again I had an epiphany, I finally came up with the full game-concept that I wanted, which I redacted the next day into a pitch that I can show to people, inspired mainly by the original Diablo pitch.
You can find the pitch here, please let me know what you think of it!
Future
That's it for this time, I hope everyone has an amazing new year and hopefully things will be better soon! The future is scary but exciting at the same time.
(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 ma
(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.
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.
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.
(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 h
(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.