(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.
[ 2024-12-12 11:39:18 CET ] [ Original post ]
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?
[ 2024-09-29 13:30:02 CET ] [ Original post ]
Welcome to this funky update, including not so many new features and a truckload of bug fixes!
New song: The nostalgic messenger
[previewyoutube=itBQ5pVuFN8;full]https://youtu.be/itBQ5pVuFN8[/previewyoutube] 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.
- Port Arc tools to Godot 4 editor
- Fix leaderboard score alignment Fixes #98
- Fix some more buffer behaviour leftovers
- Fix autoplay not doing holds properly
- Fix histogram lines usign placeholder values Fixes #101
- 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:
[ 2024-09-11 01:12:48 CET ] [ Original post ]
(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 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. Life may be hard, but I'll figure it out. See you soon, lads!
[ 2024-06-24 14:54:34 CET ] [ Original post ]
"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
[previewyoutube=L9slqe57vUQ;full]https://www.youtube.com/watch?v=L9slqe57vUQ[/previewyoutube] Licensed from the great Andrs 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 Andrs 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! Charted by luunah and lino.
New song: War zone
[previewyoutube=NVDN7tkNopY;full][/previewyoutube] 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
[previewyoutube=8EgtpCrbdSg;full]https://www.youtube.com/watch?v=8EgtpCrbdSg[/previewyoutube] 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.
[ 2024-05-19 22:59:36 CET ] [ Original post ]
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.
[ 2024-05-13 21:18:35 CET ] [ Original post ]
(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 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 almostready, 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.
[ 2024-05-05 22:32:01 CET ] [ Original post ]
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: [previewyoutube=8EgtpCrbdSg;full]https://www.youtube.com/watch?v=8EgtpCrbdSg[/previewyoutube] 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
[ 2024-04-17 11:43:03 CET ] [ Original post ]
[previewyoutube=8EgtpCrbdSg;full][/previewyoutube] The trailer I told you guys about in the last post is finally done and released, please check it out! Cheers.
[ 2024-04-01 01:53:43 CET ] [ Original post ]
(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
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. See you all next month!
[ 2024-03-19 10:41:46 CET ] [ Original post ]
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.
[ 2024-02-08 05:54:05 CET ] [ Original post ]
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.
[ 2024-01-03 02:50:08 CET ] [ Original post ]
(This is a summed up version of news roundup #2 and #3, I forgot to post #2 to steam so I'm merging them together whoops, hopefully I won't make the same mistake again, you can see the #3 edition of new roundup here on our Patreon) Hello, I am once again hoping I can manage to make the news posts become monthly from now on, anyways, since we are in early December I think it's time for the updates, there are many exciting new things I've been working on.
New song: Spread my wings
[previewyoutube=EfnZ-EtHay0;full][/previewyoutube] A few days ago I announced (on Twitter/X whatever you wanna call it) the start of an official collaboration between Project Heartbeat and the Grazepoint eurobeat creator's circle, with the first song, "Spread My Wings" by DJ Timotei feat. Slothington from the album TouWHO?? 2. This is the first chart made by mvluna and features artwork from resident artist Sadnesswaifu.
Source code release
While this has done a while ago I wasn't sure if it would stick, but now I am. I released the source code for Project Heartbeat publicly for everyone to take a look at, it's not open source but it's source code available, I will explore a proper open source release in the future. You can check the source code here.
New engine branch updates
Since the last update many things have happened, the new engine version of the game was finally released for testing, although it's very broken. If you are interested in checking it out please go on the Discord server and look for the new engine info channel to learn how to access it. New engine branch updates
As I said, it's very broken but it already integrates some goodies such as the new input glyphs and a new song that is currently being tested. The new engine also has support for Steam Input emulate devices, long gone are the days of having double inputs! While this is a preliminary port it doesn't make use of ALL the new engine features just yet (for example, the new mailbox vsync or the ability to switch controllers on the fly). But it will soon. Please, test it out so I can work through the issues faster!
Website revamp updates
As a side project I started work on upgrading the website. I started by upgrading it to use the most recent version of actix-web and to use htmx, which should provide a more modern experience. As this means interactivity can now be expanded upon I am also working on the ability to search within the site for songs by name. I also want to add the ability to see historical leaderboard data, that should be useful. I would also like to do something similar to what Steven's website (Project HeartAttack) does with the songs, which is that it locally has the song data available which would be helpful. I would also like to add some form of cache for user data and avatars to increase performance of the site, as the current source of slowness is having to constantly call the Steam API which is incredibly slow. last month I showed you a more conservative set of changes but I decided to go the extra mile and do a proper revamp to bring it more in line with the game's styling and make it more modern. Among the new features are improvements to the responsiveness of the site on mobile devices, as well as a per-user progression history page, full with a graph (the graph is free of JavaScript btw!). This obviously comes with massive improvements to the underlying technology powering the site, such as better database access locking and more.
There are a few things I haven't been able to implement properly yet, such as allowing the site to access the actual files of charts on the Steam Workshop, such as for using background images or some other statistics. My plan was to use the same mechanism dedicated servers in other games use, however it appears there's some kind of issue with permissions that affects Project Heartbeat only, I contacted Valve about this but they haven't been very helpful yet, hopefully this will be resolved. As you can probably tell, the site is heavily inspired by Osu's website, if it ain't broken don't fix it. The last thing that I want to do (which the server already has data for, I just haven't gotten around to making the actual page yet) is the ability to have a page dedicated to each score entry to see a graphed breakdown of information. Once the replay system is working there will also be a button on the webpage that launches the game to show a replay, fancy.
Another thing I want to do to the site (and to implement in-game in the future) is badges/medals for certain achievements done to help the Project Heartbeat community, my plan is to have a general-purpose thank-you badge for people who have done great things (such as Steven and his PHA website) and a few more specific ones for things such as people who've charted officials or for having participated in the community-ran events. Of course there will be a special badge for patrons.
Project Swansong updates
The last few months have been spent on refining the parkour system for swansong. The game now uses pre-baked polygons for sideways ledge movement. This has been a majorly painful thing to do and the current solution still isn't perfect, but it will do for now, it will make it (hopefully) more reliable. I would like for the parkour demo to be ready before the end of the year, but with my health in decline i have no idea if I'll have the demo ready in time. On other notes, I've integrated the Jolt character controller, which means the player can now go up and down steps, coupled with the IK system and the feet aren't staying in the air! This can be improved further (I have read some papers about how Assassin's Creed syndicate does it), but it looks better than most games for now. I still haven't decided other aspects of the game, as I'm focusing on the parkour first (since it's the highlight of the game) but I have been thinking about how the gameplay loop will work and whether or not it will be semi-open world like AC1. After the parkour system is released to testing I will be focusing on combat. This month I've spent a lot of time working on improvements to the reliability of parkour system, such as introducing an additional ring around grabbable ledges so that the character keeps a reasonable distance to it that is also consistent. I also ended up completely rewriting the parkour logic to make more heavy use of shape casts and other trickery to make sure movements are possible, while this is a bit more labor intensive than the previous raycast only solution it seems worth it, as it has already shown a lot of promise in terms of reliability. We are inching closer and closer to a playable prototype, hopefully by next month after I finish the wall grab point system.
Personal update
Life continues to look grim and I slip in and out of depressive and sometimes manic episodes, so I'm not putting in as many hours into working as I originally hoped. Sales also haven't been good at all, even with the boost of publicity from the winter sale. I tried to apply to a bunch of gamedev jobs without any luck at all. Hopefully things will get better over Christmas. Goodbye friends, see you soon!
[ 2023-12-05 17:10:50 CET ] [ Original post ]
(Originally posted on the EIRTeam patreon) Hello friends, it's time to give you an update on the development of Project Heartbeat and everything EIRTeam. I'm currently on vacation, so i'm using this time to work on Swansong (more on that later) and enjoy time with my family. I hope you all are also having a good summer.
Swansong
As some of you may be aware, swansong is the parallel project I'm doing to try to develop a game after Project Heartbeat, this is an adventure game with a heavy focus on parkour inspired by Assassin's Creed, Metal Gear Solid and Death Stranding. Development is going better than I expected, I have recently been working mostly on polishing stuff and on foot IK, the first phase of the development of the game focuses on having a working parkour system that I can share around for people to test, perhaps here on patreon. The character model used in the screenshots above are from the previous iteration of the project (which was 2.5d) so the quality is not good, this model won't be used in the final game, it's purely for testing. I am lucky to have a few artist friends who are very smart and are up to working together. I have however decided to only call them in when the gameplay is mostly working to avoid wasting their time.
Project Heartbeat's 3 big projects
(Actual image of PH on the new engine) Porting of Project Heartbeat to Godot 4 is going well, 90% of things already work, the two big ones are the multi spinbox in the editor and youtube downloads. For the initial release of the beta of Project Heartbeat on Godot 4 Multiplayer and leaderboards will be disabled, but they'll be brough back before release. Some of the big upgrades to PH on godot 4 come from a set of new projects I started together with this patreon, the new video decoding code which is already public. The performance of video decoding appears better, although there are again some kinks to iron out. The other two big projects are the Input Glyph system and the new Steamworks wrapper, these aren't released yet, but will be soon. With the new Input Glyph system we have working Steam Input, so you will be able to use it when PH on Godot 4. The changes also mean controller support will be improved, you will be able to change controllers on the fly much more easily, without having to fiddle inside menus. (By the way, I'm still trying to come up with a marketing name for PH on Godot 4, something like PH: Evolution or something like that, any suggestions?)
Discord changes
Pascal now runs an events channel on the discord, you can check it out and subscribe to it using the special role to get updates. Do note, I do not run this channel, it's entirely driven by people from the community, it's very nice to see.
The future
I'm gonna be frank with you folks, things are looking grim at this time, not just my finances but also my life in general. As some of you may know, I've been suffering from major depressive disorder and ADHD since I was very young, this is making my life somewhat of a living hell. Having an overwhelming feeling of loneliness and feeling like I'm not worth anything. I have been coping as much as I can but I feel like I'm at a big crossroad. Due to these issues I've always tried to be as independent when it comes to working as possible, as my very few experiences with a job have ended in what could be considered disasters (I was sacked for calling me boss a cunt). Unfortunately, when it's time to put money on the table there might be an actual need for me to find a regular job. My mother works at a medical manufacturing plant and my father is heavily disabled, so he doesn't have a regular job. I have decided that if Swansong development hasn't picked up by the end of the year or PH hasn't rocketed off I will begin looking for a job, this will obviously mean less time to work on PH but I'll do my best. Thank you for reading, let's keep on keeping on.
[ 2023-08-17 20:48:46 CET ] [ Original post ]
0.17.3
- Fix issues with the leaderboards for monochrome stars
- Use romanized song title in editor chart open popup
- Make game fallback to the default SFX if the custom one can't be found
- Fix intro skip not showing again when a song is restarted
- Add love
[ 2023-05-11 05:07:56 CET ] [ Original post ]
Project Heartbeat 0.17 is here, this update is MASSIVE, with a revamped version of the new media downloader (that had to be rolled back due to issues discovered after release), a massive editor overhaul, better MM+ support and a complete rewrite of the gameplay code of the game for increased performance and reliability, a big NVIDIA fix for windows users, along with some new and highly requested features. This is likely our biggest update yet (I think), and it marks the third anniversary for Project Heartbeat, the little rhythm game that could. I have also decided to make the game 40% off, just to celebrate a bit more ;)
New content
New song: Monochrome Stars
[previewyoutube=2G1zFisSyUY;full][/previewyoutube] The final SuganoMusic licensed song, a funky nostalgic song, Licensed from SuganoMusic, vocals and lyrics by shironegi, composed by obama. The song was charted by resident idol enjoyer The artwork was masterfully created by Mariale, who incidentally is also the singer for the OTHER song in this update. That's right, there's two!
New song: Dime Linda
[previewyoutube=7Bg3Osvux7I;full][/previewyoutube] Our first song in a language that isn't English or Japanese, done in Spanish by Mariale, one of the resident Project Heartbeat illustrators, I think it's quite different from anything else we've had before, so I hope you can find it enjoyable! The chart was made by BunBun, a new PH charter. The artwork comes from David Revoy's open source webcomic (Pepper & Carrot), with proper credits, of course.
The editor update
The editor has received a much-requested do-over, it now looks better and is nicer to use, with some new features that I'm sure you will enjoy. This is done mainly by Lino.
A short introduction to the new editor
Project Heartbeat has, since very early in development, had a chart editor, which people could use to create charts for the community. It worked fine, but it had a lot of rough edges and inconsistencies. Furthermore, most of its design was based on UPDC, a chart editor that, while revolutionary for its time, doesnt hold up too well to more modern standards. Over time, as more and more stuff was added, trying to keep it up to date with the features of the game and adding more tools was getting complicated, and the codebase was pretty messy. So, enter, the New Editor:
Major changes:
- A more modern, sleek look, with rounded edges and bigger focus on icons over text.
- The editor is now mostly grouped into modules.
- Every module has big and clear buttons, with clear icons and a description which you can read by hovering over them.
- Everything has a shortcut!
- There is a new tempo system, with the timeline grid changing according to the tempo.
- Selecting and editing multiple notes at the same time is now properly supported, with the entire power (and a bit more!) of the old expression runner available inside of every property spinbox.
- All the tools got a fresh coat of paint, making them more responsive, easy to use and powerful. Also, some cool new ones were added!
- You can now open external charts (From the workshop, officials, or the imported sources) as read only, so you can study charting and get inspired from the community.
- Comfy Studio charts (.csfm files) can be imported right into the editor.
- You can import charts alongside your current chart now, instead of overwriting it every time (useful for collaborations with people who dont like charting in PH)
- F and F2nd chart importing was fixed, and the editor can now load them effortlessly (even decrypting them if necessary).
- A new built-in script manager, with file management and a code editor with syntax highlighting.
- An arrange wheel with multiple snap settings.
- Support for irregular time sigs.
- Proper speed changes (for example, set speed to 150%).
- Playtesting shows the video and meta as if you were playing the chart normally.
- A collection of static note templates, with tools to make your own or download them from the community
- And much. much more!
If you charted before, please, try out the new editor, and report any bugs you may find to the #bug-reports channel in the official Discord server or on the steam forums. You can also ask for help there if you have any issues, and submit your thoughts on the new update. Your feedback is valuable, and it is what makes the game better! And if you have never tried charting, now it is the best time for that. The editor has never been easier to understand or to work with, and seeing how new people interact with it helps make it better and simpler for everyone. So please, share your experiences with us!
Special thanks
- Brutal, who helped me with all my whinings about music theory.
- Pascal, for always providing feedback.
- Neorash, for pointing out bugs when the update released.
- Samyuu, the father of the diva editors.
- Everyone in the PH community, for their support and help throughout the development of this update.
- And EIREXE, for putting up with my BS.
Workshop difficulty-based filtering
One requested feature for a long time was being able to filter by difficulty on the workshop, unfortunately the Steam Workshop didn't make this easy at all, so a compromise solution was developed, we use the tagging system to tag songs based on their difficulty star range, this is obviously still imperfect and I'd like to have more tagging options, but it's better than nothing. Older songs will also have these tags applied automatically with the update, so you don't need to do anything! In the future this system will be expanded to allow filtering by chart type.
Gameplay rewrite
During the development of the game the ever-growing requirements and new gameplay functionality required making changes on top of a gameplay system that just wasn't quite ready for it, this led to many complicated engineering problems that didn't have an easy and safe solution. This is why the decision was made: To achieve a well working and reliable gameplay experience a rewrite of the gameplay side of the game was needed. This was done in a few weeks and after bug squashing the new system is much more reliable, with lower loading times and better performance. While this work was done, new features that improved the experience were added:
- "Play hit sounds only when a note is hit": Exactly what it says, note sounds will only play when you hit a note correctly
- Sustains will now have a custom "held" looping sounds that gets higher and higher pitched.
- Autoplay now uses the audio scheduling system, which means that note hit sounds should be perfectly in sync most of the time
- Double notes now have a small delay while playing the normal non double note sound, this is because the recent changes had reduced latency so much it was becoming obvious that the sound was being played and then stopped when the double note sound was played.
- Hold precision issues have been removed, which means that hold scores will no longer be -1 compared to what they should be.
New media downloader: Episode 3
The new media downloader was plagued with obscure issues that we weren't able to resolve, this is why a different approach was needed and why it was originally rolled back. A new process communication system was added to the engine to allow the game to run processes and then communicate with them in both directions, this together with yt-dlp's powerful custom stdout system mean that the new downloader is now much more reliable. This also adds back features such as being able to cancel songs mid-download (not just ones that are waiting to start download), and a loading bar.
ShinobuZ V2
The Shinobu audio engine has received yet another minor revision, this time the timing system was changed to using nanoseconds instead of milliseconds, this should lead to smoother note movement in some cases.
NVIDIA Windows stutter fix
NVIDIA's drivers have historically been non standards compliant, this was partially the cause of the dreaded stutters that were hard to replicate and would only happen on some machines, as they were also different across CPU architectures it was a very complicated problem to tackle. I did some initial work on the past, by adding ANGLE support to the engine and other things, but that wasn't a perfect solution, I always preferred to use the normal opengl driver instead of a translation layer. Late last year it was discovered that this is actually a known issue for OpenGL programs on NVIDIA GPUs (Project Heartbeat being one of them), a solution was developed that would disable a feature known as "Threaded Optimization" that caused random stutters for any OpenGL program running on windows that wasn't knowledgeable enough to know about this issue and disable it in the drivers. This feature is also disabled by other high-performance OpenGL programs like Ryujinx. Linux users do not have to worry about this issue, as the proprietary NVIDIA drivers disable this so-called "feature" by default. Any other stutters that might be found are likely caused by the windows kernel being tragically slow at filesystem I/O operations and cannot really be solved.
MegaMix+ loader changes
Changes to how the MegaMix+ loader behaves have been made, now it will behave closer to how the original game does with DivaModLoader, it still isn't perfect and a lot of mods will continue to fail to load, but the great majority should work fine, specially when not many mods are used, however mod conflicts are known to cause songs to disappear in some cases and it's still being investigated. As part of the loader changes, the game can now show song variants loaded from MM+ as if they were normal PH variants. Additionally the game will also show the list of mods that modify a given song.
Other minor changes
- Enabled wrap around in the pause menu
- Added the option to pause when the focus is lost by the game window
- Made workshop upload form resizable
- Fixed rollback issues when using high timing offsets
Future
This was a lot of work, took months since the last major update (in fact, since September), so I hope you will enjoy this update. There is still some minor work left on some components of the game, my main focus right now is going to be on removing unused code in preparation for moving to the new engine (Godot 4), this will be a massive upgrade so the least code that needs to be ported over the better. Another thing I'd like to do is rework the menu system to be more consistent and easier to maintain, as it's currently a bit of a mess (it was the first system ever created for Project Heartbeat back in late 2019). Hopefully with my more stable mental health things will keep improving at a steady pace now, I have started working on yet another side project that I hope will lead somewhere :D
[ 2023-04-22 23:04:24 CET ] [ Original post ]
!! WARNING !!
If you plan to try this beta and edit songs, please back up your charts, as they might be corrupted by some of the inevitable bugs that come with major code rewrites. Leaderboards are also disabled for the beta branch.
Hello, one of the things I've been working on recently is rewriting all of the gameplay components, there are many reasons for this that I'll go over shortly.
Reasons for the rewrite
The truth is when I started working on PH in September 2019 I never expected the game to reach the point its reached today. For example originally I was never going to have the console gameplay style, but over time I decided to add it. The problem is that due to the way the code was structured it was very prone to failure and strange issues caused by edge case problems (it doesn't help that the PH community is very creative and does many weird things with notes). With this rewrite I aim to create a simpler base on which new note types can be implemented in a consistent less buggy form, with a proper architecture for handling multi-notes consistently. Please, try it out and give me feedback!
Major changes
- The autoplay system is now a modifier, the checkbox in the debug menu will be removed soon.
- Autoplay hit sounds are now scheduled, so they should be much more accurate.
- Multi note visual behavior has been improved to better match diva
- Sustains now have looping sounds when held, and a different release sound
- Sustains now currently count as two notes when a WORST rating is given
Known issues
- Hidden modifier doesn't work (yet)
- [strike]Double heart notes don't use the double heart note sound [/strike]
- [strike]Single slides break when holding their direction before they enter in range [/strike]
- [strike]Slide, normal and heart notes don't ignore eachother's inputs[/strike]
[ 2022-12-17 18:48:00 CET ] [ Original post ]
Welcome to Project Heartbeat 0.16, after three months in development hopefully it will have been worth the wait. This update is probably going to be the final big feature update to the game, as the focus now remains on getting more content in, bugfixing and polish, hopefully the new changes are to your liking. The update is also not as big as other updates, because most of the work has been on big things with far reaching consequences (like the new version of the audio engine). The last few months have been hard, I spent around a month working hard on the game on big stuff such as the MM+ loader. Then I spent another month mostly bed ridden and finally spent a whole month trying to pick up a car. It's been a terrible summer and I hope to leave it behind. Anyways, let's get to the new stuff.
NEW CONTENT
New Song: Confession
[previewyoutube=S6HU0i2PxDk;full][/previewyoutube] A new song from Takanashi Koubou, this very nice song was charted by resident idol enjoyer Yahoo, the artwork was made by David Revoy for his webcomic Pepper & Carrot, which we are using because the comic is creative commons licensed, check it out. The song is composed by TTL, sang by Kanata and written by LUNA.
NEW FEATURES / CHANGES
Shinobu Z
A few updates ago I shipped the first version of Shinobu. Shinobu is our Open Source bespoke audio engine designed with rhythm games and other low latency applications in mind, powered by the great miniaudio library. Shinobu was very well received by the community and made the game's foundations so solid some might argue that, as a rhythm game engine, Project Heartbeat is less prone to issues than some commercial titles such as Project DIVA MegaMix+ After the success of Shinobu I set out to engineer a reworked version of the audio engine, the main goals of this design project were reducing memory usage and increasing memory safety, thus augmenting reliability and preventing crashes caused by the engine. This was once again a worthy endeavor, as Shinobu Z is now included in update 0.16, this update achieves higher levels of memory safety and performance while using less memory. For this he API has been completely reworked to allow binding songs to the Godot scene tree, among other things. Overall, you should expect a 10% improvement in memory usage and reduced loading times for songs in the song list and in the game itself.
Project DIVA MegaMix+ loader
In may of this year our colleagues at SEGA released Project DIVA MegaMix+ on Steam which has achieved positive reception. Because of how similar the gameplay styles and due to how some costumers enjoy playing both games based on their different respective strengths Project Heartbeat now includes the ability to load content from Project DIVA MegaMix+ through the new MegaMix+ content loader in update 0.16. This new functionality can load the full song list of a legally purchased copy of the game so you can enjoy playing with your content in a different engine. This is similar to playing OpenTTD or using an emulator such as CEMU. This system reads the files as they are, without modification, and even supports loading content designed to work with DivaModLoader. We hope you enjoy both games to their full extent. The loader uses the Steam API to find your installation of MegaMix+ and verify ownership of the game, this is just a simple ownership check done by steam itself and doesn't involve Denuvo or any other similar technology. Furthermore, through playing Project DIVA MegaMix+ content on portable systems such as the Steam Deck one can obtain longer battery life, as Project Heartbeat uses very little battery due to it not having 3D animations and using an engine that was designed for low power devices such as the PSP and the Nintendo DS, the battery usage is so low the default FPS on the deck is set to 120 FPS, yet it maintains 4-5 hours of battery life from a full charge.
Audio normalization system rework
The code for audio normalization has been modernized and improved, this should yield much faster audio normalizations.
Streamer mode
A lot of Project Heartbeat players tend to play the game on stream, for this we have added a new feature that we hope will be able to enrich their streaming experience for them and their followers. The new streamer mode is a simple but effective option that allows exporting to files both cover art and background art right from the game as you are playing it. This allows you, the streamer, to display both artwork and currently being played song information right on your streaming interface. If we ever move to Godot 4.0, an option to open another window to show extra stats of the current gameplay session to your viewers might be added, but for the time being please enjoy the new functionality. We have also released a simple guide that explains how to use it, you can check it here.
Audio downloader rework
One of the major complaints we got from gamers was the rudimentary nature of it. We agree. Introducing: The new audio downloader, this is a major improvement over the old system, since it now handles the downloading of song media inside the game itself, thus being able to give you feedback about the status of the download, simultaneous downloads, better error information and more. The system continues to use youtube-dl internally to obtain the information required for downloading the data, but the rest is handled by the game itself. As this is a highly experimental feature, we ask for some patience while we sort out the inevitable bugs with it.
Game over chibi Aiko
We thought that we would give the health system a bit more personality by including a crying Aiko when the random game over quotes are shown.
Option to clean unused and deleting song media
You can now delete the song media from each song's pregame screen, and delete all unused media from options -> content inside the options menu.
Other minor changes and bugfixes
- Fallback to default user directory when the user specified content path does not exist.
- Add support for using PageUp/PageDown in the song list.
- Fix skin editor applying clear bar colors wrongly
- Fix YoutubeDL cache saving issues
- Add new YTDL downloader code.
[ 2022-09-16 04:14:02 CET ] [ Original post ]
I would have released this for 0.15, but it wasn't quite ready yet, hope you enjoy this new song! [previewyoutube=_K2UNDZt5J0;full][/previewyoutube] This is ETERNAL, the new song featuring in Project Heartbeat. As it's tradition it's a Touhou cover from the Takanashi Koubou creator's circle. The song is composed by DJ Timotei & Violet Delta, with lyrics by Kaito, written by Yaso and charted exclusively for Project Heartbeat by newcomer charter snail with the lower difficulties made by the great Yahoo mememaster. The artwork was made specifically for Project Heartbeat by the great Guinii featuring Touhou Project girl Hina Kagiyama doing her usual spinning stuff that she's known for. Hopefully you will enjoy this new song release! A few more songs are in the works, including a special non-eurobeat guest artist from Spain and another song from SuganoMusic! More news soon! Thank you for your continued support.
[ 2022-06-09 14:24:50 CET ] [ Original post ]
Welcome to Project Heartbeat 0.15, this is a smaller update than what you are used to, the objective of this update is mostly to make the game more friendly to new players, but it also includes some other new stuff, such as new song and the long-awaited skin editor! Hopefully you all enjoy your adventures with the blue chipmunk later this week!
New content
New song: Reprisal
[previewyoutube=7g7qcID_GX8;full][/previewyoutube] A new song for Project Heartbeat! funnily enough this song was licensed through shitposting on the fumofumo server. The background artwork shows a Techno Pro Spirit style Toyota MR2 made by Lucas Corral, check his stuff out. The song is charted by yahoo, arranged by Turbo, with lyrics by ShinkoNet and Turbo and with vocals provided by the great Odyssey Eurobeat!
New features
Skin editor
One of the long-awaited features for Project Heartbeat: the Skin Editor. It's a slightly complicated tool, but hopefully the built-in guide will be enough for you to understand it, I suggest playing around with it! You can set your own songs to "recommend" a skin from the workshop, those songs will automagically download the skin, obviously this can be disabled if wanted in the song settings by the player.
Other changes
Visualizer rework & new main menu visualizer
For the different visualizers throughout the game PH does spectrum analysis on the song currently being played, what PH did was a linear average sampling of frequencies from 0 to 20 khz, however the human ear doesn't work in a linear fashion, so this was stupid, in fact commercial spectrum analyzers don't work this way.
Additionally, the new spectrum analysis code can decay over time to make a smoother output, all of this should give the in-game visualizer a nice, more detailed output, which corresponds better to what you are hearing.
Finally, this has been used to create a new visualizer for the main menu (hidden in the song list) that you can see above, fancy.
New UI elements
Some parts of the game UI use a new type of element to display multiple selections.
Controls editor rework
Controls editor now shows the related note and button icons, as well a small text that should be enough to figure out how to do macros.
Sorting system
The sort dialog is now different, featuring a new checkbox that lets you only select songs that have media downloaded.
It's barebones at the moment, but more features will be added eventually!
[Wrong note cross
One of the things I noticed when showing off PH at the in-person event was that people didn't realise wrong notes were wrong, so I've decided to add a small X next to the wrong ratings to make it more obvious, hopefully this will be enough.
Bugfixes
- Fix editor error when resizing the timeline
- Fix invalid user settings files breaking the game when loading
- Fix intro skip bugs
- Fix discord rich presence
- Fix DSC songs being broken since shinobu
- Fix diagnostics debug screenshot being semi-transparent
- Fix option description in song settings sometimes overflowing
- Fix practice mode issue where the latency change option would be pressable even in seek mode.
- Fix audio issues on steam deck caused by steam deck's old version of pipewire, the game now defaults to ALSA on the deck, if you want to force pulse on the deck you can add the "--shinobu-backend pulseaudio" command line argument.
- Fix crash when exiting and re entering the latency tester
- Fix shinobu seeking bugs that broke negative start times
- Fix latency tester crashes on windows (for real this time)
- Fix minor memory leak when restarting songs
- Add safety margin to song end check
- Fix workshop item state shenanigans in workshop browser
- Fix custom sfx not reloading automatically
- Fix editor crash when changing song after testplaying.
- Fix more edge cases that would cause songs to never end
- Fix pregame opening per song settings failing when backing out and returning to the pregame screen.
[ 2022-05-25 12:22:53 CET ] [ Original post ]
Work on Project Heartbeat 0.15 has already started in the beta branch, this update which is codenamed Goth Girl School Idol Club.
Among the new features is the all-new UI Skin Editor, with complete workshop integration like you are used to!
With this new custom tool, you can create your own skins. Currently there is no documentation on how to use this tool, However reading the size and anchors article from the godot documentation might give you some basic clues on how to get started!
The skin editor features a resource management system to import your own fonts and textures, you can edit all the UI components such as the clear bar or the song title by using the inspector on the right hand side. Additionally the system supports animated textures everywhere, which means that anywhere you can place a texture, you can make it animate. Currently this feature is a bit WIP so you can't change hte FPS yet, that will come soon.
The tool is heavily inspired by the Osu! Lazer skin editor, it might be a less pretty but it more than makes up in the customizability department.
You can copy the default skin (and in the future, any skin you are subscribed to) to use as a base for your own UI shenanigans.
Yahoo has already uploaded the first skin to the workshop, please check it out!
I hope you enjoy this new feature.
[ 2022-04-29 22:32:19 CET ] [ Original post ]
0.14.1
- Fix practice mode issue where the latency change option would be pressable even in seek mode.
- Fix audio issues on steam deck caused by steam deck's old version of pipewire, the game now defaults to ALSA on the deck, if you want to force pulse on the deck you can add the "--shinobu-backend pulseaudio" command line argument.
- Fix crash when exiting and re entering the latency tester
[ 2022-04-04 07:56:57 CET ] [ Original post ]
Welcome to yet another update to the rhythm game that refuses to die, this is the single biggest update in terms of technical stuff we've done since the game was released over two years ago in March 26th 2020. A lot has changed and a lot will change and I'm super proud of this one. Shout-outs as always to lino for taking care of ensuring the editor doesn't blow itself into pieces and adding a bunch of nice new features. Some of the things here might sound familiar, this is because some (like the song) were released in minor updates for 0.13, but they are still listed here as they were part of the development process for 0.14.
New song: Love sacrifice
[previewyoutube=ME5KysG3VQo;full][/previewyoutube] This is Love Sacrifice, the new song featuring in Project Heartbeat and the first new song of the year. As it's tradition it's a Touhou cover from the Takanashi Koubou creator's circle. The song is composed by SaiNa, sang by Queue, composed by BeatCharger and charted exclusively for Project Heartbeat by resident meme master Yahoo. The artwork was made specifically for Project Heartbeat by the great Guinii featuring Touhou Project girls Renko Usami and Maribel Hearn of the Girls' Secret Sealing Club lying in a field together in slightly lesbian fashion. Hopefully you will enjoy this new song release! A few more songs are in the works, including a special non-eurobeat guest artist from Spain.
Big changes
The Shinobu audio engine
One of the biggest issues Project Heartbeat has faced is the Godot audio stack, while sufficient and good enough for most games it really isn't suited for use in rhythm games. For this reason I spent worked on a new audio engine specifically for Project Heartbeat, it's called the Shinobu engine. It's the biggest engine customization I've done yet and it really does fix many of the issues you guys had with the game. This new audio engine is based uses the excellent miniaudio sound library. If you need a good library for all your audio needs miniaudio is the king, it's beautiful. Here's what shinobu does:
- Better performance
- No more desyncs
- Less battery use and better thermals whooo steam deck!
- Latency should be lower
- You can now configure the buffer size in options -> audio
- More smooth note movement
- Ability to adjust your buffer size
Shinobu is a game changer, I believe it has turned PH from a weird janky rhythm game your weird friends played to a more serious piece of kit that should be up there with the big names. Audio just like video, has frames, these frames are composed of instantaneous samples for all possible channels, unlike video however the frequency is much higher, while a typical video might have 30 frames per second a typical audio file might do 44100 frames per second, which is quite a lot.. (In case you are wondering the reason why it's ~40 kHz is because of Shannon-Nyquist telling us that "If a system uniformly samples an analog signal at a rate that exceeds the signals highest frequency by at least a factor of two, the original analog signal can be perfectly recovered from the discrete values produced by sampling." and as human hearing caps at around 20k kHz it is enough for us). This means that there has to be an intermediary buffer that gets filled with a bunch of frames, this is the main source of audio latency, as telling the engine to play say a note SFX as soon as possible might take a bit until the OS asks for samples again, reducing this buffer is important to reduce latency, however this must be done with care as CPU usage goes up the lower the buffer size is (for example, at 10 ms the mixing happens 100 times a second). Timing is then done by using the amount of samples consumed by the audio system every time it asks for it. Another issue is your operating system, sometimes your audio driver might not allow smaller buffer sizes, Shinobu will try the lowest possible buffer size the operating system gives it (but always bigger than the buffer size you set in audio->buffer size). As the audio buffer might sometimes be higher than the frame time i.e it might be >16 ms worth of samples timing from that might be jittery, this is why it now uses an internal high precision clock to interpolate the time between updates. This is an alternative to just lowering Shinobu's internal buffer size which increases CPU usage and doesn't give us any benefit in terms of playback latency.
DJA finally the default
Direct joystick access has finally become the default method for analog input in the game, there are still some quirks with heart sustains multis, but it should now be ok for the great majority of people.
New workshop browser UI
I've changed the workshop browser from the grid design you are used to to a less cluttered design which I feel doesn't feel as claustrophobic as the old one, it also has some extra space we can use for other things, talking about other things...
Romanized title support in the workshop browser
The workshop browser will now show the romanized title of the song if it is available, funnily enough PH was already uploading the romanized titles, but I forgor to implement actually being able to view them, whoops. Do note that searching the workshop by romanized titles is not available, this is a limitation imposed on me by Steam and there's nothing I can do about it.
Random song button
The random song button has been added, a highly requested feature, I also made it pretty looking (and also pretty gay, which is nice). Yes it even works in folders!
Song list sorting changes
The workshop section of the song list has new sorting options available, they are exclusive to this section, for this reason the sorting mode on the workshop is now separate from the other sections.
Chart sections
You can now specify chart sections inside the editor, these are shared between charts of the same song just like lyrics are. Sections can have a name and a color given to them, currently they are only visible in the editor and practice mode, but soon they will be used to give you more detailed information on your scores.
Practice mode rework
Lino has reworked practice mode, you can now switch between modes to adjust latency options, playback speed and other information. Additionally, a lot of new information is visible in the practice mode information section to the right.
Editor changes
Search
When selecting a chart, you can now search for it by name instead of having to dig through the list
DIVA F2nd edit importer
Lino has made an importer for f2nd edits, these have to be decrypted for them to be read by the game, but I will be looking into how to load encrypted files in the future. This will allow people to preserve their edits in case Sony wants to pull a fast one on the community again.
Song settings editor
There's now an editor settings section for song-specific settings, you can also use this to test your song variants.
Sync toolbox
Lino added a toolbox with a bunch of tools to aid in syncing songs, fancy.
Minor changes
- Make combo reset in practice mode whenever stats get reset
- Add 1440p to desired video resolution options
- Enable wrap around in options menu and main menu
- Add CPU-based fallback for slide particles in GLES2
- Use fancy two pass gaussian blur for the pause menu instead of the current textureLod based solution which doesn't work in GLES2 PokeKMS
- Save the last selected folder in file dialogs
- Search for the original title and the romaji of songs when searching in the song list
- Editor: Add a "Reset position to default" button
- Editor: Add more shortcuts and separate a lot of them
- Editor: Add a hold graphic to the editor
- Editor: Queue notes placed during playback for better consistency
- Added a button to change the multiplayer host
Bug fixes
- Fix random quotes not being random (???)
- Fix workshop upload form replacing metadata when downloading a song while it's open
- Update YTDL
- Fix various menu focus issues
- Fix godot focus stupidity
- Fix joypad prompts breaking changing from keyboard to controller
- Fix gamepad keyboard prompts breaking when forcing a prompt type and returning to auto detect
- Fix background music player not using preview_end at all skull face no space
- Release drag even if _gui_input doesnt catch the event and allow cross-chart copies
- Remove video requirement from variant sync & add warnings when using non audio only variants with video
- Fix song list focus loss issue
- Fix minor focus bug when selecting custom SFX
- Disable forced VSYNC in the editor
- Release focus on all editor inputs upon pressing accept or cancel
- Fix focus issues on pregame screen
- Fix editor scale not updating when using control+scroll wheel
- Fix visualizer in GLES2
- Fix GLES2 title bar in-game
- Disable menu FPS limits when using the latency tester
- Fix song list engine regression
- Disable forced VSYNC in the editor
- Fix lyrics not appearing after restart
- Reset input manager on restart (Fixes issue with input carryover)
- Fixed most multiplayer issues and weird race conditions
Other stuff
Project Heartbeat on Steam Deck
It's been reported that PH on deck works fine by various parties, such as Liam from GamingOnLinux and some people on Reddit. If you are the owner of one please give it a go. I will receive mine this week, so if there's any rough edges I'll take a look at them when I receive mine.
Project Heartbeat @ Sarri Manga & official merch
I together with Guinii will be attending a local event known as Sarri Manga, we will have a demo booth of the game using the event edition. We will be selling posters of the game! These will optionally come with a Steam key for the game, so if you happen to be a local and are interested in it please come visit us! We will be at stand number 3, near the entrance. Besides the PH posters we will be selling postcard-sized prints of Guinii's Remilia Scarlet artwork. I originally wanted to also sell the nsfw version of this but this idea was promptly shut down. We live in a society. There are no plans to sell these online (yet) but I might one day, let me know if you are interested.
Future
It's not over yet. I will probably resume work on the mgs3-inspired game next week (after the event) but I have a few ideas of the things I want to see in PH in the future. These include replays and an optional life bar, more info soon.
[ 2022-04-03 14:27:23 CET ] [ Original post ]
One of the biggest issues Project Heartbeat has faced is the Godot audio stack, while sufficient and good enough for most games it really isn't suited for use in rhythm games. For this reason I spent this week working on a new audio engine specifically for Project Heartbeat, it's called the Shinobu engine. Keep reading to learn how you can test it and why it's very important for the future of PH! This new audio engine is based uses the excellent miniaudio sound library. If you need a good library for all your audio needs miniaudio is the king, it's beautiful.
TL;DR: What it means for you
- Lower latency
- Better performance
- No more desyncs!
- More smooth note movement
- Ability to adjust your buffer size
The technical side
One of the most important features Shinobu brings to the table is the ability to select your own internal buffer size. Audio just like video, has frames, these frames are composed of instaneous samples for all possible channels, unlike video however the frequency is much higher, while a typical video might have 30 frames per second a typical audio file might do 44100 frames per second, which is quite a lot.. (In case you are wondering the reason why it's ~40 kHz is because of Shannon-Nyquist telling us that "If a system uniformly samples an analog signal at a rate that exceeds the signals highest frequency by at least a factor of two, the original analog signal can be perfectly recovered from the discrete values produced by sampling." and as human hearing caps at around 20k kHz it is enough for us). This means that there has to be an intermediary buffer that gets filled with a bunch of frames, this is the main source of audio latency, as telling the engine to play say a note SFX as soon as possible might take a bit until the OS asks for samples again, reducing this buffer is important to reduce latency, however this must be done with care as CPU usage goes up the lower the buffer size is (for example, at 10 ms the mixing happens 100 times a second). Timing is then done by using thea mount of samples consumed by the audio system every time it asks for it. Another issue is your operating system, sometimes your audio driver might not allow smaller buffer sizes, Shinobu will try the lowest possible buffer size the operating system gives it (but always bigger than the buffer size you set in audio->buffer size). As the audio buffer might sometimes be higher than the frame time i.e it might be >16 ms worth of samples timing from that might be jittery, this is why it now uses an internal high precision clock to interpolate the time between updates. This is an alternative to just lowering Shinobu's internal buffer size which increases CPU usage. This buffer size setting might actually be unnecessary, I am not sure: we will have to test over the following months, but if it works we might just target the lowest latency the OS gives us and match the internal buffer to that and interpolate away the rest.
How to test shinobu
Go to your Steam library, right click the game's cover art/name and select properties, click on betas and enter the super duper secret password MARINSTHIGHS, then click the blue button to opt into the bet branch! If you want to return to the normal game just set it back to "None".
What's left to do
The only major thing that isn't implemented in Shinobu is the spectrum analyzer the visualizer used, I will try to implement it using Godot's spectrum analyzer as a reference.
Source code
As it's tradition, shinobu's source code is available in our modified version of godot as a module: https://github.com/eirteam/godot/tree/0.14/modules/shinobu
[ 2022-03-25 04:11:53 CET ] [ Original post ]
Hullo,
As you might have heard, the Steam Deck launched last week. We believe Project Heartbeat is an excellent game to play on the deck.
Unofortunately we haven't been among the lucky few who received a devkit from Valve before release, so the game is not Steam Deck verified. We will verify the game as soon as we get the ability to do so.
In the meantime, it's likely PH already works on your Steam Deck if you have one, Liam from GamingOnLinux tested the game and said it worked fine, so while we don't have an official blessing for Steam Deck verification we reckon the game should work fine already. Obviously Liam didn't conduct an exhaustive test, but we don't think there's any reason why PH shouldn't work on the Deck.
A few versions ago we did a lot of work to support all different aspect ratios (this includes 16:10 as in the Deck), as well as improvements surrounding controller usage, mouse hiding and other funky important things.
This very post is visible on a Steam Deck by pressing the compatibility details button on PH's library page and pressing Y.
We have reserved a Steam Deck as normal costumers for testing, we are scheduled to get it before the end of March, hopefully sooner than later.
Happy button mashing.
-EIREXE
[ 2022-03-07 10:38:06 CET ] [ Original post ]
0.13.8
- GLES2 is now the main renderer on Windows, due to better performance, GLES3 is still available as a launch option though
- Many fixes to the GLES2 renderer's graphic displays, including the visualizer, slide particles and etc
[ 2022-02-03 17:46:54 CET ] [ Original post ]
As 0.14 is still far away, I have decided to push this new song early into the public branch for everyone. Enjoy! [previewyoutube=ME5KysG3VQo;full]https://youtu.be/ME5KysG3VQo[/previewyoutube] This is Love Sacrifice, the new song featuring in Project Heartbeat and the first new song of the year. As it's tradition it's a Touhou cover from the Takanashi Koubou creator's circle. The song is composed by SaiNa, sang by Queue, composed by BeatCharger and charted exclusively for Project Heartbeat by resident meme master Yahoo. The artwork was made specifically for Project Heartbeat by the great Guinii featuring Touhou Project girls Renko Usami and Maribel Hearn of the lying in a field together in slightly gay fashion. Hopefully you will enjoy this new song release! A few more songs are in the works, including a special non-eurobeat guest artist from Spain. More news soon! Thank you for your continued support.
[ 2022-01-26 17:40:36 CET ] [ Original post ]
0.13.1
- Fixed downloads failing under certain circumstances
- Fix multiplayer
[ 2021-12-15 10:22:54 CET ] [ Original post ]
Song variants
You can now add variants to songs so they have alternative video/audio depending on what variant you selected! This is useful for different mixes of the same song.
New note type: Heart sustains
Yes, we've finally gone mad, heart sustain notes are now exposed in the editor, previously you needed a hack for them, but you are now allowed to use them for any song, go wild.
Video download queue
After 1000 years in development, the video queue is now ready to use! You can cancel queued downloads and all that fancy stuff.
Download all button
There's now a button to download all songs, this wasn't done before because we didn't have a way to cancel downloads, but now we do!
Negative start times
Songs can now start at negative times, this required some engine hacking but it does work fine!!
Display option changes
The game now has a new option for what monitor to use, you can now use the current monitor!
Latency changes
Some code regarding latency has changed, this should result in lower latency, we also no longer use the driver provided latency info, so we suggest using the latency tester to figure out your latency.
PPD support changes
Negative start times
Just like with PH songs, PPD songs now support negative start times.
PPD Downloader improvements
The PPD downloader can now download songs from any website supported by yt-dlp that provides h264 video! This includes NicoNico and google drive! The PPD downloader will also download thumbnails from the video and use it as cover art Additionally, it will also pre-normalize the audio volumes of the songs while downloading!
Unzipping improvements
PPD songs now unzip much much faster and more reliably, for this change the folder download path has been changed to songs/ppd_{PPD Website ID} instead of using the title as before, this helps with dealing with japanese characters on some operating systems.
Remove install and song option
You can now remove your currently imported PPD install, and individual songs too from the PPD manager!
Star counting
The PPD importer now tried to parse the star count of PPD songs in many ways to try what sticks, it may still not work for all cases but it works for way more cases than before.
Video download changes
The video downloader now uses aria2 for faster download speeds, we also now use yt-dlp instead of youtube-dl! Additionally I used some black magic to slim down the ffmpeg binaries, so the game now takes a fair bit less space on disk!
Background music disable option changes
Enabling disabling the background music in the main menu doesn't require a restart anymore.
Double heart custom sounds
Double heart notes now have a custom sound option available, so you can use a separate one from the default sound.
Editor changes
Me and Lino have been hard at work supercharging the editor
Timeline drawing optimizations
Due to an oversight, timeline drawing got slower the more you scrolled through a very long song, this has now been properly fixed!
Playback speed
You can now change the playback speed in the editor on the new bottom left slider, fancy.
Add an universal interpolator
Lino made this fancy tool to interpolate any property
Metronome generator
Editor now has a metronome generation tool
Fix timeline culling
Timeline culling has been massively revamped, so you shouldn't get ghost notes when zooming in and out anymore!
Editor autosaves on playback
The editor will now autosave when playing the song
Hold display
The editor will now show the range of hold notes, so you can plan them ahead.
Editor scrolling change
I made the editor scroll differently, the playhead will keep going until it hits the center, then the whole timeline will move with it.
Video stutter fix
Playing a song with a video does not produce a stutter anymore.
Async shader compilation
The game will now compile shaders in another OpenGL context, which should help prevent stutters when hitting notes for the first time in the session.
Game slimdown
Using some black magic (AKA UPX), the included ffmpeg binaries have been slimmed down to oblivion, this made the game go from ~670 mb to ~460, PH is putting in some gains!
Arrange menu wheel
Lino made this nifty tool to arrange notes in a straight line. It can be accessed with the tab key.
Automatically place notes in a straight line
With autoplace enabled the editor will automatically put notes in a straight line at the bottom of the screen while creating them.
Editor angle snapping
You can now snap the angle of a note by pressing control while placing a note.
Bug fixes/Minor changes
- Editor: Compensate for first sustain correctly and optimize arrange code
- Fix slide double rating
- fix DJA
- Disable mipmapping on vulkan
- Fix issue showing the first phrase in lyrics
- Fix loading screen stalls (not sure how though)
- Fix reset inconsistencies
- Fix visual bug that caused max hold score points to not be displayed properly
- Add audio file existing on disk verification when uploading to the workshop
- Fix button styling with anti alias
- Fix multis in editor being broken due to engine bug
- Update J. Stebbins credits
- Fix difficulty edit bug
- Select yes as default when opening the download song media popup
- Editor: Sanitize angle upon angle arrange and note shift
- Fix not being able to delete modifiers when using the keyboard
- Update song list when _added_time is updated on startup (fixes subscribed song sort order being absolutely fucked)
- Editor: Always assume 1/16th snap for arranging
- Editor: Add a ScrollContainer for the arrange tab
- Fix error on close related to vibration killing
- Fix running game without steam
- Editor: Autoplace notes which havent been moved around upon note time change
- Editor: Autoplace multis automatically
- Editor: Autoplace imported MIDI files
- Editor: Make BPM be minimum 1
- Stop vibration properly when a slide note drawer disappears
- Editor: Automatically arrange angles when autoarranging
- Make loadingu text fully white
- Editor: Add a safety net for pos_modified on old charts
- Fix incomplete PPD files killing the load thread
- Editor: Make the toolbox and inspector resizeable
- Editor: Take autoplaced notes as HBBaseNote instead of HBNoteData
- Editor: Allow note creation from within scripts
- Make slide multis ignore normal note presses
Future
Guinii, snail (new charter!!!) and Yahoo are working hard on the new charts and artwork, hopefully next update will come with one or two new songs! I'd also like to announce I'm still seeking for more songs to license, either as free updates or post-early-access DLC (this is because the margins aren't big enough for me to pony up the costs of licensing yet, so I either need to make very good deals or I can't do it at all). I contacted KIRA but got no response :( would have been great!. Either way, 4 songs by takanashi koubou are in the queue to be charted together with the remaining Sugano song. More exciting stuff is coming PH's way, I moved into my own office and continue to work on it as my main work. I am obviously still in a pseudo-philosophical search for what to do, because I really want to do things other than PH, but it's been a year-long challenge so far. My current pet project is a metal gear solid clone with cute witches, so let's cross fingers and hope it will become a real thing lol. Thank you guys for your support. I continue pushing like a lion for you! Happy holidays! P.S: Might want to check the giveaway we are having on twitter right now!!
[ 2021-12-14 15:17:24 CET ] [ Original post ]
0.12.2
- Fix offline workshop support (hi steamdeck users)
- Feature: Go back to previously selected folder when pressing "Go back"
0.12.1
- Fixed in-game scaling of resolutions taller than 16:9 (fixes steam deck)
[ 2021-09-27 17:36:01 CET ] [ Original post ]
Here we are again. 0.12 is ready, this update is pretty big, it also comes with some big news, off we go:
New song: Going my way (DJ Timotei EDIT)
[previewyoutube=kTx61fyqDEI;full][/previewyoutube] A new song licensed from the Eurobeat circle Takanashi Kobo, this song has been charted by Yahoo and illustrated by Reixart.
Website and user rankings
Project Heartbeat now has an official website, this includes web based leaderboards and user rankings a la osu, the ranking system's points have been tentatively named pp (for funny reasons). Do note we want to revisit and probably redo this algorithm eventually, as it didn't perform quite as expected so a bespoke solution is gonna be needed. You can find the website at ph.eirteam.moe
Steam Deck support
While we weren't among the lucky few to get a devkit, but we managed to get the game ready for Steam Deck anyways through some black magic (and some new Steam SDK releases). It will now use the new text input features of SteamOS 3.0 where available. Another features include better scaling of the menus in general, particularly for the main menu.
Big picture mode gamepad text input support
When running the game inside Steam Big Picture you can now use the keyboard whenever you have to type something.
Controller overhaul
As part of the aforementioned deck support we have updated how the controller support works. The selected controller is now the first one we detect an input from, when a controller is being used the mouse gets hidden.
Song search
What took you so long? - Kazuhira Miller, probably
h264 mainlined
After some investigation I discovered that neither my country nor my closest neighbor (France, unfortunately) recognize software patents, thus I've taken the decision to mainline h264 support for PPD migration. Ordinary songs will continue to use vp9 for the time being, in case we have to remove it, but I don't think we will. Previously you had to install a plugin, hopefully this simpler solution will make transitioning easier.
Editor shortcut remapping
You can now remap most shortcuts in the editor
Load time improvements
Load times have been greatly improved across the board by removing some 4D chess code I accidentally added, song load is instant most of the time, and audio normalization is cached, so even if the first load isn't instant subsequent loads should be.
GLES2 improvements
Some minor fixes have been made to make GLES2 support better for those that need it.
Rewritten main menu music playback
The code used to playback songs in the main menu has been made more reliable and more performant, now audio normalization is used where available, else it uses a compressor to try and keep volume under control.
Updated localization
Most localization files for catalan and spanish have been updated
Direct Joystick Access fixes
Last update we introduced direct joystick access, which allows controls to behave in a nicer way by combining the two axis of a joystick for detection, this didn't really work well so it was relegated to an optional feature, new changes and bugfixes should make it now better although some issues have been found that prevent it from becoming the default yet.
ShiftJIS support for PPD zips
When downloading PPD charts you may have noticed it sometimes failed to find the data.ini even though it was there. This was caused because the file names were encoded in an encoding system known as ShiftJIS (JIS stands for Japanese Industry Standard) this encoding is fairly exotic in the west but very common in japan, at least years ago (everyone seems to finally have agreed on UTF-8). The game will now try converting the raw file name data into ShiftJIS if it fails to decode it as UTF-8, which should be nice.
Editor changes
A bunch of editor changes, courtesy of lino. Add X/Y snap for grid notes You can now slide around notes in a straight line by pressing shift while dragging them Practice mode stats in playtest The practice mode stats have been added to playtest in the editor Autoslide option Added an autoslide option to make slide spacing be correct More per-song editor settings More editor settings will now be saved when you save your song:
- Snap to the timeline
- Show video
- Show BG
- Show grid
- Snap to grid
- Grid resolution
- Autoarrange HV separation
- Autoarrange diagonal separation
- Use stage center for transformations
- Angle circles from the inside
- Circle size
- Circle separation
- Advanced circle mode
Use mipmaps on loaded images
Some mipmapping, filtering and other fancy stuff is now used when loading transparent things such as circle logos and any other gaphic, this is likely broken on some renderers for various complicated reasons, so please let me know if your images come up black so I can add exceptions.
Anti-cheat
After some digging I found some undocumented APIs that allowed me to retrieve metadata from the workshop uploaded by the game on the server-side, this has lead to the development of an anti-cheat solution that's not invasive. It isn't perfect, but not even invasive anti cheat is perfect so you can be sure I am not stealing your Maki Nishikino images.
Hold scoring changes
In order to make holds more consistent and less complicated, the score is now counted from (Note Time - Fine Timing Window).
Menu sorting changes
Difficulties within a song will now be ordered by stars, makes more sense.
Credits menu
A new credits menu has been added to options, this will show people who contributed to the game as well as some legalese. There is also a pretty neat surprise if you scroll all the way down on the "Game" section.
Bug fixes & minor changes
* e96a9d4a - Fix editor error when freeing (hace 8 semanas) * c339fe7f - Include audio loudness in HBSong when saving (and make use of it) (hace 8 semanas) * cd89e6b6 - Hopefully fix last subscribed sorting being broken when a song is updated (hace 8 semanas) * d9ceb1a8 - Add audio nromalization data to all built in songs (hace 8 semanas) * a8c5192e - Fix highest score not saving (hace 7 semanas) * 916666ae - Remove yield that caused stall when returning to menu (hace 7 semanas) * 6b05b942 - Fix slide chain multis in editor (hace 6 semanas) * 3802e579 - Hide multi laser for weird multis when hit (sustains and slide chains) (hace 6 semanas) * ce43c9f1 - Fix slide note scoring inconsistencies (hace 6 semanas) * 0c4040ce - Fix NX-switch controller mode being used outside of the Switch (hace 5 semanas) * 9d8cd77b - Saner defaults for lyrics (hace 5 semanas) * 469c527d - Remove unused virgin eirexe achievement (hace 4 semanas) * dfd9c68c - Fix expressionrunner performance bullshit (hace 4 semanas) * 7c0c1ef8 - Ensure unique resource_paths in ResourcePackLoader (hace 4 semanas) * 8034c611 - Move OptionControlsSection to use UniversalScrollList (hace 4 semanas) * 9f5084fb - Remove remaining uses of legacy HBScrollList (hace 4 semanas) * 715cd6f7 - Add some experimental jitter improvements (hace 4 semanas) * 769a38e4 - Fix expressionrunner error logging (hace 4 semanas) * 8aa05957 - Make expressionrunner cast to HBTimingPoint instead of HBNoteData (hace 4 semanas) * 6c1f0f3c - Fix clear bar color in GLES2 (hace 4 semanas) * 28798742 - Add extremely hitler nazi song verification (verify disallowed file types and subfolders not existing) (hace 3 semanas) * cdc9a18c - Enable encoding text resources to binary to save space (hace 3 semanas) * 23f8c77d - Cancel workshop preview image requests when it is safe to do so (hace 2 semanas) * e186cca1 - More steam error handling (hace 13 das) * a6b36811 - Fix GUI misalignment (hace 9 das) * c029eec2 - Fix seeking issues when not using system clock (hace 9 das) * 6e391e17 - Remove is_on_steam_deck() requirement for GamepadTextInput as per valve's recommendation. (hace 9 das) * c5c466dc - Fix ending of songs without end_time in BackgroundMusicPlayer (hace 9 das) * 136659d0 - Fix ACHIEVEMENT_PERFECT_BUILTIN (hace 3 das) * dec02754 - Update all official songs with hashes and new meta (hace 3 das) * 98f5a2df - Universal scroll list consistency fixes (hace 2 das) * 744408c4 - Fix scrolling from top to bottom (hace 2 das) * 04c35c48 - TTN 2019 chart changes (hace 2 das) * f37fa92e - Some label overflow changes (hace 6 horas) * 02b8da27 - Sanitize composers, writers, vocals arrays on set (hace 6 horas) * 6dccf1f3 - Release holds when the song ends before the hold is finished (hace 5 horas) * 652d15d6 - Fix vibration settings not saving (hace 23 minutos)
Future
3DPV system progress
In collaboration with the V-Sekai people I ported a tool called VMDMotion to Godot, although it's currently very slightly broken in the future it will finally allow VMD (mmd motion files) to be loaded into VRM avatars, which was always the dream. Why not use MMD PMX files you may ask? Because MMD PMX files are not made for games, they are made for offline rendering most of the time, thus they may be too high poly to be used in a game while keeping good performance. VRM models on the other hand are usually made for use in VR, thus they are high performance, this coupled with the extremely nice support from the godot_vrm plugin. You can find info on my port of VMDMotion on our GitHub Onto a new update!
[ 2021-09-22 03:30:48 CET ] [ Original post ]
0.11 is here, this update is pretty big, amongst the news are Lino joining Project Heartbeat development as a volunteer, the return of the switch version, and many many long-time requested improvements.
NEW CONTENT
New song: Through the night 2019
[previewyoutube=TYqqAu5Iwes;full][/previewyoutube] Through the night 2019 is yet another song from SuganoMusic, the song is sang by Renko (same person who sang core creation) produced by Sugano, charted by Yahoo. The art was comissioned from and masterfully created by guinii4, a local Spanish artist, please check out her work!
Return of the switch version
The switch version for hacked machines of Project Heartbeat has now returned, you can learn how to use it by reading this guide. Included are some upgrades to the switch code that plagued the original one with issues, it's still fairly slow because we aren't using any illegally obtained SDK, instead we are using the community developed libnx and mesa nouveau video driver, which is unfortunately slow, but it's playable at least.
NEW FEATURES
New history format
The history now stores the score ratings and percentage separatedly, so whenever you get a higher number in any of those it gets saved.
Direct joystick access
Direct joystick access allows the game to access your controller's joysticks directly, this allows the two axis directions (vertical and horizontal) to be combined, which prevents issues such as spinning the joystick triggering heart notes, because some people (ab)used this for heart spams it's an option. This feature only works with controllers that are in the internal controller database (They are now marked as known in Options -> Input).
Menu optimizations & changes
The menu now uses some new optimizations that makes it faster, the internal render targets are now scaled according to your resolution. The menu animations are now bouncier. You can now press R3 or G to show the currently playing song. The song list also now shows when a song needs its media to be downloaded
Results Screen
The results screen has been changed to look nicer (thanks lino)
SFX system rework
The game now separates between heart notes and slide notes, plus it also has a different sound when pressing a heart or a slider without there being one nearby.
Auto download workshop songs in multiplayer
The game will now download workshop songs automatically when you are playing in multiplayer
Borderless windowed
The game now supports 3 window modes, windowed, borderless windowed and fullscreen, additionally you can now select the display in which the game will be displayed.
Show console option
The console is now hidden by default, it can be restored in the options menu.
Editor changes
Waveform preview
Taken from Godot's source code, I've ported some code related to the waveform preview subsystem and used it in the editor timeline.
Circle transforms
Courtesy of Lino we now have new options to create circles
Minor changes
- Add the ability to pan around the timeline using shift + scroll wheel
- Show selected timing point count in the info bar
- Disable main game input while testplaying
- The editor now allows holding to the left and right to navigate the timeline quickly
- The rotation transform spinbox is now editable
- Correct the way the flip slides transforms selected notes
- Autoarrange is now smarter
- Notes are deselected when changing songs
- Added shortcuts for many things, check the editor manual for info on them.
- Testplay now shows the song's name
Other Minor changes
- Heart and slide inputs now ignore each other
- Limit discord rich presence poll rate to 5 polls per second
- Rewritten memory management in preparation of switching to release mode
- Add angle flipping transformation
- Add select all to editor
- Volume now goes up to 750%
- Use string filename sanitizer for difficulty json
Bug fixes
- Make script runner force an inspector sync
- Fix song list stealing focus when clicking between items
- Check for shift only if event is InputEventKey. in SongList
- Make song jump work more more nicely
- Revert back to normal note attributes when there are no multis (with automulti)
- Give love to save as dialog
- Fix editor zoom bug
- Fix: Shrink UI width for the transformation tab. bug
- Fix workshop uploading issues
- Prevent the user from creating holds on slide chain pieces
Future
PH still has some development ahead, but I feel it's very close to getting out of early access, but I'd like to do that after the engine gets native vulkan support in godot 4.0. I also work on some new games in my free time, that I will be revealing soon, but rest assured, this isn't taking much time (if any) away from PH's development. I have to share my absolute massive hype for the Steam Deck, I think it's a great fit for PH and I plan to request a devkit as soon as they come out to ensure it works fine on the platform! Cheers, and on to 0.12!
[ 2021-07-16 21:00:40 CET ] [ Original post ]
Project Heartbeat 0.10 is here! This update was slightly interrupted by me having surgery so it isn't as big as usual it is also mostly a housekeeping and bug fixing update, but it does bring some new major features and new content!
NEW CONTENT
NEW SONG: Core Creation
[previewyoutube=fO8Kq-dZsvQ;full][/previewyoutube] Core Creation is a song by Renko and Sugano, this song is a cover of the popular "Bad Apple!!" song from the Touhou Project series, the chart was made by blizzin and the artwork was created by Mariale. I hope you will enjoy it!
NEW FEATURES
Resource Packs
Project Heartbeat now has a Resource Pack system, with a brand new editor to boot, you can replace graphics from the game with custom ones, change properties and even upload them to the workshop! The graphics that can be changed and tuned will be expanded upon in the future. The options menu now has a Resource Pack section, from here you can select what resource pack you want, you can also override the currently selected resource pack's notes with the notes from another pack in case you are used to them but want to enjoy the rest of the selected resource pack!
Extended PPD Loader
By popular request, I've added a way to import your whole PPD installation's song folder, the only difficulty is that you have to provide the .dll/.so files that are able to load h264 files like the ones PPD uses, the new importer maintains your PPD folder structure and can play MP4 files, AVI files and a long et cetera. If you are interested in this feature, please hit us up in the discord, we'll gladly help you.
DSC Loader improvements
Initially I was considering removing the DSC Loader altogether, but I was convinced not to do so, this is why I've expanded upon what types of files it can load, I've also given them their own category. The DSC loader can now load Project DIVA Dreamy Theater 2nd/DIVA F/DIVA F2nd DSCs, this was motivated by the closure of the PlayStation Network on the VITA and PlayStation 3 to be able to preserve those edits in PH, although the closure seems to have been aborted now the code was already done so \_()_/ The way DIVA OGGs are played has also been improved, the voice and instrumental will now sync better and the loading times will be improved. You can also load the full song list from a copy of DT2nd, fancy.
Changes to how some notes are handled
Previously, multi notes with two notes of the same type didn't work, this has been fixed, hitting other notes during sliders has also been fixed, this means that some very old charts and some PPD specials work again.
Editor changes
More usability changes have been made to the editor:
Community charting guide
Snail has kindly provided a new charting guide, which you can read here, this guide is also included in the editor, and complements the editor manual.
Keyboard Lyrics Workflow
A new way of working with lyrics has been added, you can now use the following hotkeys: Control+J: Create phrase start Control+K: Create lyric Control+L: Create phrase end
Editor action notification system
The editor will now display some actions as floating text when you enter them, for example pasting, saving, etc.
Video playback changes
The way videos are played back has been radically changed, they should now be much smoother to use, for example when rolling back from a pause the video frame we are seeking to is fetched in the background and not when the rollback is done, which prevents minor stuttering when rolling back, this also makes editor video playback much more accurate.
Results screen graph
There's a new tab in the results screen that lets you see a graph, this graph will help you see where you made a mistake and how close you were to your targets!
VRAM usage optimizations
I discovered some ways to reduce VRAM usage greatly, this is also in part thanks to the new resource pack system.
Main Menu viewport scaling
A new optimization has changed the way the main menu is drawn, this makes it vary some internal resolutions depending on the resolution the game is running at, which should increase performance when using resolutions other than 1080p.
Color channel swapping filters
The ability to swap some of the game's color channels has been added, this has the potential to aid some people with some forms of colorblindness, it's an imperfect solution but it was simple to add and it might be useful to someone.
Other changes
- Fix scroll list hold to scroll on drifty PS4 controllers.
- Optimize VRAM usage
- Add the ability to change sound volume per sound effect
- Add song count indicator to song list
- Show difficulty in workshop browser using pre-uploaded metadata (doesn't work for some old charts).
- Change how note hit effects are drawn to make them faster
- Entering a property in the inspector will now release focus from the field you are editing.
- Place the multi note laser behind all graphics
- Change visualizer algorithm to a smoother one
- Make menus use the SFX audio bus
- Fix hitting two notes of the same type in a multi
- Fix hitting notes during slide chains
- Fix epilepsy warning placement
- Fix editor note selection with clock arms disabled
- Make YTDL force IPV4 because microsoft are completely braindead
- Fix sustain Z order
- Rework wav loading to prevent crackling noises
- Make hardware clock option selectable
- Multiple scroll list bugfixes
- Fix leaderboard scrolling being disabled sometimes
- Fix button overlapping in the workshop tabbing system
- Fix input overlapping issues in song list
- Fix newlistitem error
- Prevent subsequent playback issues when finishing a video in the editor
- Fix issues with controls rebinding
[ 2021-05-01 15:29:38 CET ] [ Original post ]
- Update ytdl
- Fix laggy I/O print statements when hitting slide chains
[ 2021-03-12 03:12:44 CET ] [ Original post ]
Hello Project Heartbeat gamers, this is a small patch issued to fix a small issue with the game. - Fix gigantic VRAM memory leak Cheers.
[ 2021-03-03 10:54:18 CET ] [ Original post ]
Welcome to Project Heartbeat 0.9 this is our first update of 2021 and also the anniversary update, Project Heartbeat will be turning 1 year old next month, so this update celebrates its release! Let's get right into the new stuff.
NEW CONTENT
NEW SONG: Sands of Time
[previewyoutube=ppnRzFVYPo0;full][/previewyoutube] Sands of Time is now live, the artwork was masterfully made by artist Mariale, the chart was made by Blizzin. The song comes from the Initial D inspired games "Densha de D" based on the manga of the same name, it's produced by Sugano and sang by Travis Stebbins.
NEW FEATURES
In-game workshop browser
New functionality to browse the workshop from inside the game has been added, this allows you to subscribe from within the game and will automatically download media. You can make the media auto-download only download audio through a new option added to the options menu.
Mini-tutorial
To help new players I've added a mini-tutorial before the song starts that tells you how to hit the notes that it contains.
Editor minimap
The editor now features a minimap to aid with scrolling to sections of the song quickly.
New latency display
A new Osu! inspired latency display has been added, this shows you what the difference between your inputs and the perfect timing is and also shows an average, the different bands show different timing windows (so COOL in the center, FINE next to it and so on).
Editor slide chain flipping
A new transform has been added to the editor's transform tools that allows you to flip slide chains horizontally.
Audio only downloads
It is now possible to download only audio for songs that use videos, before you needed to download the video and then disable audio, this new option disables it and then downloads only the audio.
New song list
The way the song list works has been changed, the new code is more efficient and makes the song list look and animate nicely, it also makes it much more mouse friendly, this code is also used by the workshop browser, and will slowly be used in more places in the game where scrollable lists are involved. As another change, locally installed, workshop and editor charts are now separated in the song list. This song list also wraps around, fancy. The new song list also adds a new look for the song's cover art and an animation when slecting it.
Controller input changes
Previously the game would use the input from the latest controller to press a button, this was problematic because it would cause double inputs and performance issues when using emulated controllers. The new system only allows for one controller to be used, it will automatically use the first controller it finds the first time and store it, so that every time you run the game that controller will be used. If when running the game that controller is no longer present, it will default to the first controller it finds. The controller in use can be chosen in Options -> Input
Note hit effect changes
The note hit effect has been changed, it now feels a bit bouncy, I have also optimized how note hit effects are displayed and removed which should lead to better performance particularly for slide chains.
Epilepsy warning
You can now enable an epilepsy warning in the graphics tab of the song metadata editor, this is encouraged for charts that have videos with rapidly flashing colors.
Editor scripting
Editor scripting allows you to write scripts to change notes around, this is like a supercharged version of the expression editor.
Chart note usage display
Charts in the song list now show what types of notes are used in it, this is per-song and per-chart.
Intro skip marker
You can now mark the point to where the intro skip feature will jump to in the editor.
Nintendo notes
There are new notes for nintendo controllers, the new shapes created for them has been also adapted for use in the xbox icon pack, so they share the shape but not the colors.
Achievements
Achievements have finally arrived to Project Heartbeat, more will be added in the future.
Engine changes
The engine version has been upgraded to a newer version of the godot 3.2.4 branch, also a patch by RandomShaper has been added that should make some threaded operations safer and thus reduce crashing.
BUG FIXES & minor changes
- Optimizer visualizer code
- Added the ability to toggle the game's UI (control+H)
- Fix layering in multiplayer
- Fix results screen showing info partially before waiting for workshop vote info
- Optimize slide particle deletion timing
- Fix long standing bug that caused button prompts to not change when changing them in options.
- Disable leftover test.png debug feature
- Add a HACK to fix case issues for charts made on Windows for Linux users
- Fix issues with folders section
- Fix audio preview playback being out of order sometimes
- Fix opening song settings in-game
- Add new PPD deprecation disclaimer
- Fix being able to make illegal notes in the editor
- Update youtube-dl and force it to use the python3 alias
- Fix editor plugin tools not behaving properly
- Fix song preview graphics not showing when pausing
- Fix many memory leaks
- Remove usage of SFX pooling for ordinary SFX
- Use song volume normalization in editor playtest
- Fix returning from a song that's in a folder
- Make youtube-dl create cache folder in user dir (fixes downloaded video list not being saved when using custom content directories)
- Fix opening song settings in-game
- Add new PPD deprecation disclaimer
FUTURE
I'd like 0.10 to have a focus on new UGC stuff, so I would like to have a new tool that facilitates making icon packs, maybe UI packs, I will also be working on linked hearts finally. I've gotten better at writing code so I'll try to get as many things done as possible as always ;)
[ 2021-02-28 22:14:29 CET ] [ Original post ]
- Fix deleting charts not saving instantly - Fix loading charts with unknown (usually unreleased) timing points failing
[ 2021-02-22 22:00:15 CET ] [ Original post ]
- Fixed multi hint sometimes not being visible despite it being enabled
[ 2021-02-17 19:26:28 CET ] [ Original post ]
- Fix issue that made the game require re-downloading of user song media every time the game starts when using a custom content directory.
[ 2021-02-11 05:14:39 CET ] [ Original post ]
- Fixed error when opening folder list without having any folders - Disable multi threaded texture loading by default
[ 2021-01-30 09:56:05 CET ] [ Original post ]
- Fix notes being cutoff
- Intelligently disable multi threaded texture allocation on windows without ANGLE
- Fix song settings editor not hiding when resuming with start button.
- Add new PPD deprecation disclaimer
- Update youtube-dl and force it to use the python3 alias
- Fix being able to make illegal notes in the editor
- Fix editor plugin tools not behaving properly
[ 2021-01-28 06:49:40 CET ] [ Original post ]
For the Steam Winter sale Project Heartbeat now has a 30% discount, go get it while you can or tell your friends if you already have the game! https://store.steampowered.com/app/1216230/Project_Heartbeat/
[ 2020-12-27 15:28:35 CET ] [ Original post ]
[previewyoutube=3WsAgByLERs;full][/previewyoutube] Project Heartbeat 0.8 is now available, this update is relatively decent size and comes with mostly under-the-hood improvements, but it also packs some long time requested features and changes. A new song was scheduled for this update however it didn't make it in time, hopefully we'll have it in the next update.
Important changes
Lyrics system
A new lyrics system has been integrated into the game, this allows showing lyrics on screen in two ways, simple full phrases or karaoke-style syllable progression. You can disable the lyrics or change their position and color in the options menu under the "visual" section. This feature is also enabled for PPD charts that come with lyrics.
Translation system and new translations
The game is now officially translated to Spanish and Catalan, the game will try to select the language based on your machine's settings however you can also force a particular language in the "Game" section of the options menu.
PPD Manager Tool
The PPD Manager Tool allows you to change your PPD song's artwork and youtube URLs easily from within it.
Timing window modifier
Introducing the timing window modifier, this modifier allows you to change the timing window of all notes, keep in mind using this disables leaderboard usage. I hope this will be a fun modifier to play around with.
Arrows changes
Arrow notes have been changed in looks, they now have target colors that match the note colors.
Performance improvements
Project Heartbeat is powered by Godot Engine, Godot added a new feature that allows PH to draw notes in a single burst instead of drawing each note and note sprite one by one, this translates into a very big performance improvement, in some cases doubling the FPS. There have also been a lot of under the hood changes to improve performance and make the experience smoother, you will particularly notice these in the main menu song list and in the editor.
Latency improvements
0.8 comes with some new PH-specific engine audio driver modifications which translates into a massive latency reduction, PH will try to go as low as your audio driver will allow. For windows users, this feature is only available if you are using Windows 10.
Editor changes
Timeline revamp
The way you navigate the timeline and the way it looks have received a big change, the new sleeker design should make it easier for you to distinguish each row. New keyboard shortcuts have been added to navigate the timeline, create basic notes and select notes. You can learn more about them in the editor's manual.
Multi presets
A new multi presets tab has been added to the editor, you can use this new feature to arrange multi notes in many different ways, there are also dynamic presets that you can use for some specific cases, I hope you enjoy experimenting with them.
Note transforms
This update also adds some new note transformation options, these allow you to do things such as rotate a group of notes around their center, interpolate note rotations and other fancy things, please try different combinations and see what you can come up with! Other minor changes
- Change how SFX and Input are handled for the game.
- Add ability to reset playtest in editor by using the contextual button (F or select by default).
- Disable caching.
- Move version text to bottom right and make it hide when hovered.
- Invert song title and author
- Add black outline to ratings
- Add practice mode click to seek and fix practice mode progress and timing label when using start_time.
- Add check for downloaded youtube dl videos when starting multiplayer games.
- Add DIVA audio split support to main menu and multiplayer.
- Added the ability to load into the editor by using the --song-editor command line argument.
- Make notes be drawn on top of the timeline
- Use audio normalization in the editor.
- Show the sine wave on selected notes.
- Fix note duplication bug.
- Fix fine position breaking undo_redo.
- Fix rare multiplayer race condition causing post-game to never happen or update.
- Fix first song played in menu not using normalized volume.
- Fix fullscreen not being set properly when the game starts causing it to cover half a screen.
- Fix joining steam lobbies from an invite.
- Fix editor crash when opening a second song.
- Fix song load error related to youtube_url based songs and DSC splitting.
- Fix pre-game screen deadlock.
- Fix slide particles changing in size when hit too late.
- Fix DSCLoader randomly failing
- Fix song chart meta editor rounding up scores.
[ 2020-12-20 06:30:07 CET ] [ Original post ]
The Steam Game Awards are here, we would be very thankful if you could nominate us for the Labor of Love award, as we feel that's the most fitting after the many months of post-early access release development!
Thank you for your continued support!
[ 2020-11-25 21:15:40 CET ] [ Original post ]
For the Steam Autumn sale Project Heartbeat now has a 30% discount, go get it while you can or tell your friends if you already have the game! https://store.steampowered.com/app/1216230/Project_Heartbeat/
[ 2020-11-25 21:07:28 CET ] [ Original post ]
Project Heartbeat 0.7.0 is now available, this update is one of the biggest yet and is the culmination of an effort to bring some long-requested features to the game.
NEW CONTENT
NEW SONG: Blossoming Spell
[previewyoutube=4GO1kGCNV5o;full][/previewyoutube] Blossoming Spell is our first song from Impedance Eurobeat, our new partner, there are many more songs coming from this artist circle in the future. Blossoming Spell is an interesting catchy song. The chart was created by Twoncity.
CHANGES & NEW FEATURES
New leaderboards & leveling system
After many months of work the new leaderboards are finally available, this new system allows all workshop and PPD songs to be ranked. As an extra feature we have also added a level and experience system.
PPD Downloader
A new tool to automatically download PPD charts from their URL has been added, this is an experimental tool at this time (and performance isn't great) but I hope it's useful to someone.
Audio Volume Normalization
Audio normalization has been added through a new rust module, this makes all songs sound like they have the same volume.
Loading Screen
The game now features a new loading screen, this loading screen is used to have some time to do the audio normalization and other things.
Mouse UI
The ability to use the mouse to navigate most menus has been added, some menus still don't entirely work but for most usual tasks such as playing songs should be working perfectly.
Song Cache
Songs are now cached, this decreases startup times by storing song metadata in a cache file, the same goes for audio normalization.
youtube-dl error handling
youtube-dl now shows errors when they happen, we have also switched to a fork of youtube-dl that is still in development after the RIAA's unlawful takedown of the main youtube-dl repository earlier this month
New UI scaling and styling & note changes
The UI has been changed to be prettier, this includes design and scaling changes, the scaling should now be consistent so that users with higher and lower res screens will see the game with the same element sizes. The main menu has also been changed, with new elements and the removal of the music player (a pop-up now replaces it). The basic PlayStation notes have also been changed with a different design and sizes based on your feedback. The sliders now have a new hit effect with stylized stars.
DSC importing
Project Heartbeat is now able to load DSC files from FT and M39s from within the editor, with more game formats support to follow in the future. It was planned to have the possibility of simply pointing the game to a legally-obtained copy of those games to load it automatically (including mdata) but this wasn't ready, although it's still possible to use this feature through command line arguments if you want so ask around in the discord for more info on this.
Nintendo Switch homebrew port
An experimental port of the game for Nintendo Switch has been added, this is fairly broken and won't receive any official support but feel free to use it, check the text file in the game's folder for more info.
Other fixes & changes
- Fix custom song WAV loading not properly using the file's mixrate and stereo data.
- Change great and excellent thresholds to 90 and 95.
- Use scrolling labels for song titles in a lot of places.
- Add missing logo to song list preview.
- Fix UGC download message error.
- Fix slide chains in multi with other notes (I hate you a tiny bit).
- You can now precisely place notes in the editor by pressing shift + arrow keys.
- Also, there are now labels that show the current time in the timeline.
- The note ratings are now drawn beneath the note if the note is too high.
- PPD notes that are too close to each other (10 ms range) are now merged into multis, this is because in PPD multis don't really have to happen at the same time, yeah I don't get it either.
- You can now hide the artist name so that only the logo is shown.
- Editor selection limits have been removed
- Fix an issue related to voted items breaking leaderboard and result entering.
- Sliders now vibrate the controller.
Future
I'm much better mentally, I started taking anti depressants, I still plan to work on this game, sales are going decently well so I'm confident in working more on the game. I have obtained permission from a local japanese-themed EDM musician to use his music, more info will follow soon. I haven't touched the Xbox port yet, I'm trying to find ways to make it without having to write an all-new DX11 renderer, probably with ANGLE. I have cancelled work on the new game for the time being.
[ 2020-11-10 03:50:33 CET ] [ Original post ]
Project Heartbeat is available with a 20% discount! Get it while you can!! https://store.steampowered.com/app/1216230/Project_Heartbeat/
[ 2020-10-29 18:41:55 CET ] [ Original post ]
Hello! Welcome to Project Heartbeat 0.6.0, this update introduces many under the hood changes yet again, but also some new features, let's get right into it.
NEW FEATURES & IMPROVEMENTS
Practice mode
[previewyoutube=AQqoCXu0o88;full][/previewyoutube] A new practice mode has been added, you can move forwards and backwards throughout the song, create your own waypoints to return to later and even see extra stats to help you know how well you are doing.
Folders
[previewyoutube=6uZZRq3UUdk;full][/previewyoutube] You can now create arbitrary folder structures to organize your songs however you want. Check the video above for a quick rundown of this feature.
Custom note sound support
You can now make your own note sounds and use them by placing them in the custom_sounds folder in your content folder.
New button prompts
A new button prompt system has been added, this will accurately change based on the controller you are using, if this doesn't work for you you can override it in the game's settings.
Decimal BPM support
You can now add decimals to BPM
Icon & hit effect changes
The way the game's icons look has changed, the outlines have been increased and the underglow has been fixed, additionaly the color on some of the notes has been changed to make them stand out more. Hit effects have also been slightly changed to make them more visible.
Analog input changes
I've changed how analog inputs are handled in general, this means that you no longer need to setup analog sticks differently from analog (slide) actions, it should also be more consistent.
Icon pack support improvements
Icon pack support has been improved and it should be way more stable now, also a new simpler icon pack has been provided, you simply have to edit the atlas.png and the icon_pack.json to change the name. You can find the easy pack here: https://github.com/EIRTeam/ph_modding/releases/tag/1.0
Editor video & backgrounds
The editor now has backgrounds just like the game, video also works but it's slightly yanky, you can disable this in the bottom right buttons, next to the grid toggle.
Gamepad visualizer
You can now visualize the current gamepad's input, you can do this by pressing Control+G. The visualizer is enabled automatically in practice mode.
Bug fixes & minor changes
- Double notes (including hearts) are now slightly bigger.
- Multi-threaded game loading has been partially disabled, now only song loading is multi threaded.
- Added sustains for arrow notes.
- A scrollbar has been added to the editor tools tab.
- Fixed some issues with the arrange tools.
- The way multi note lasers are made has changed, which should fix some issues some people faced with them.
- Fix user receiving a perfect rating when showing result with only wrong failures.
- Fix slide chain loop sound being unused.
- Fix custom icon loading.
- Fix a single character error for imademo.
- Song volume now affects editor and main menu playback.
- Fixed offset tool in editor.
- Capped note selection in editor.
- Game should fallback to GLES2 automatically instead of giving errors.
- Support has been added for hybrid (F2nd and AFT style) PPD charts.
- Message queue size has been raised to support bigger charts.
Future
I have spent the last month struggling mentally, so this is the reason why this update is so relatively small, however I have also been working on the promised new leaderboard system with promising results, hopefully I can ship it in 0.7.0 or 0.8.0. New songs are being worked on, we have over 5 new songs in the backlog. I have also begun pre-production on a new game, and I hope to reveal new information on that soon. Shoutouts to Estrella, Emmilly and Helena for making my life better.
[ 2020-09-17 15:12:35 CET ] [ Original post ]
Project Heartbeat is available with a 20% discount! Get it while you can!! https://store.steampowered.com/app/1216230/Project_Heartbeat/
[ 2020-09-07 17:08:00 CET ] [ Original post ]
[previewyoutube=sNs0ANCaAKc;full]https://www.youtube.com/watch?v=sNs0ANCaAKc[/previewyoutube] RedLine 2018 is now available in the game, this song is a very upbeat song from the popular doujin game Densha de D. This song is sang by T. Stebbins (known also as Odyssey Eurobeat) and produced by SuganoMusic. The artwork was comissioned from Andrea Balaguer (@TriggeredHikaru), a very talented artist from Spain, I recommend you follow her work (and if you want, comission something form her). The song was charted by our resident master charter Blizzin. This song makes use of the new notes we introduced back in 0.4.0, I hope you enjoy it!
[ 2020-08-11 15:05:18 CET ] [ Original post ]
Hello! Welcome to Project Heartbeat 0.5.0, this update introduces many under the hood changes yet again, but also some new features, let's get right into it.
NEW CONTENT
NEW SONG: Getaway
[previewyoutube=IYWKRbY48vY;leftthumb][/previewyoutube]
Getaway is now available, this song produced by SuganoMusic, written and sang by the great Anthony McBazooka was intended to ship early on in the game's life, however some things happened and we couldn't ship it on time. The artwork was made by Emmilly (sadnesswaifu) and finished by me (I only did the shading on the car and drew the visible wheel, she did everything else). This chart has been beautifully crafted by twoncity.
NEW FEATURES & IMPROVEMENTS
Discord rich presence
Discord rich presence is now available on Windows and Linux, this will show what game you are playing (or editing). For the tech-people: This is my first shipped module using the Rust programming language, it's a technology I really like a lot so expect to see more rust-based code in the future. The source code for the rust module is available here: https://github.com/EIRTeam/project_heartbeat_discord
Tweet button
You can now tweet your score right from the post-game screen through the new shiny Tweet button.
Main menu music disable option
You can now disable music from being played in the main menu through a new option.
VSync option
VSync can now be enabled in the options, keep in mind this is likely to introduce more input lag, but might be necessary for some people.
"Convert to" dropdown in the editor
You can now convert between note button types (so for example turn an up note into a right note) through a new submenu in the right click menu.
Custom icon pack support
One of the new things added to 0.5.0 is our first foray into the world of modding, a new GitHub repository has been created with examples and documentation on how to do this. Icon pack creation documentation
Add ability to change URLs in PPD songs
You can now change the video url in PPD songs through a button in the pre-game screen.
Score is now shown in song list
You can now see your maximum score directly on the song list.
Play count
The number of times you've played a song is now shown in the pre-game screen, this will be further expanded with more stats in the future.
Note caching
To make the game perform well on very modest systems, the game now prepares all notes on startup and loads them even before they are neded, this comes at a loading time penalty but can greatly increase FPS on some systems. If your computer is capable enough and you want faster loading times you can disable this in options under "Game -> Load all notes when song starts" This option is disabled in the editor.
Slide chain rewrite
The way slide chains are drawn and handled has been rewritten, this new system should be much more reliable and also allows you to pause mid-chain in the editor.
Sound effect pooling
Sound effects are now pooled instead of being loaded on demand, this should prevent stuttering on some systems.
Hold exploit fixes
Some users noted that it was still possible to exploit holds through some complicated controller trickery, this has been fixed, please experiment with the new hold system, it should feel closer to what you are used to.
PPD double heart importing improvements
Some PPD charts failed to load double hearts properly do to an edge case in how they were handled, this has now been fixed.
Multiplayer improvements
Some aspects of multiplayer have been reworked, it should now perform a bit better and songs with non-ASCII (Japanese, Russian, Chinese etc...) characters will now load properly.
Open user directory button
In tools there's now an option to open the user directory for convenience.
Editor general architecture improvements
A lot of the editor has been rewritten, this should lead to much better performance and less bugs (particularly the legendary slide chain "sirens"). Amongst the changes included is note culling, which causes notes in the timeline to be ignored if they are not visible, the algorithm that does this has been carefully made to extract as much performance possible.
Experimental ANGLE builds for Windows
Some Windows users using NVIDIA Optimus reported frame pacing issues, this is due to a bug presented in some optimus cards and only affects OpenGL. In order to fix this I have ported the engine to ANGLE, ANGLE is a compatibility layer that translates the game's graphics calls from OpenGL to DirectX 11 and Vulkan. This build is completely experimental and unsupported, the DirectX 11 backend will be used in an unannounced port to a new platform, so if you could test it that would be great. To test the ANGLE versions go to your game's directory on Steam (you can access it by right clicking PH on the library -> Properties -> Local files -> Browse local files) and click on the .bat file that matches your desired version: - Use run_vulkan.bat to run the vulkan version. - Use run_dx11.bat to run the DirectX 11 version. There are two additional aspects you should know about these versions: - Obviously this is not a native port to DX11 and Vulkan, an official Vulkan port is planned for next year, this means that performance will probably not be as good (or good at all depending on the system) which is why this build is provided without support. - The visualizer might be slow on both, so I'd recommend disabling it. - The Vulkan version uses the same feature level as the GLES2 version of the ordinary game, this is because ANGLE doesn't implement OpenGL ES 3.2 yet. - I recommend optimus users with frame pacing issues to use Vulkan and enable VSync
OTHER MINOR FIXES
- Fix crash when using the add to favorites button on difficulties. - Added a new failsafe for YoutubeDL installations, this should make it so that if the installation fails (or is stopped halfway) the game will be able to recognise this. - The editor now ignored input properly while a song is being playtested. - Changed the wording of the PPD importer, since we now support all PPD chart types. - Changed the clear bar to match our new CLEAR percentage (75%) - You can now set the SFX volume 0%
Future plans and updates on other stuff
New leaderboard system
Over the last month I've taken the challenge of learning the Rust programming language, my objective is to write a new leaderboard system so that non-official songs get leaderboards too. This will also allow leaderboard entries with modifiers (and to filter them too).
New FAQ
A new Frequently Asked Questions article has been published, let me know if there's anything you'd like to have added.
Practice mode
The plans for practice mode involve reusing code from the editor, which is why I've decided to push it back yet again to see if the new editor architecture changes are stable.
Homebrew Nintendo Switch port
For a long time I've been building versions of the game for the Switch, however these have mostly been unplayable due to various circumstances. It's now playable, however stuff such as graphics fail to load, video decoding doesn't work (yet) and user songs also are not loadable, but I think it will be viable to release a port for homebrew switches in the future.
[ 2020-08-04 15:06:02 CET ] [ Original post ]
You might recall a few months ago I published an FAQ on Project Heartbeat responding some commonly asked questions about the game and it's future, I'd like to revisit this and make a new one with how much the game has changed.
What engine does Project Heartbeat run on?
Project Heartbeat runs on a custom build of Godot Engine 3.2
What programming languages is Project Heartbeat written in?
Project Heartbeat is written mainly in GDScript and C++ (used for the video decoder and Steamworks modules), for 0.5.0 we are shipping our first module written in Rust, used for the Discord Rich Presence. I would like to study writing my own video decoding module in the future, the current one is fine but it would be nice to have our own made in Rust.
Who makes Project Heartbeat?
Project Heartbeat is a solo project, I Alex (or EIREXE) a 20 year old guy from Spain am the sole developer of the game, even if the EIRTeam publisher name would suggest there's a team. There is however a charting group which makes the official charts (and provide input on some mechanics sometimes) and I regularly seek artists to make our background artworks, but when it comes to the game itself without counting content it was built by a single person.
What's the development history of it?
Project Heartbeat was started on September 21, 2019, which makes almost a year old as of this article. Development initially was slow but it has ramped up massively in part due to the COVID-19 pandemic. I used to have a job at a French manufacturer making high-level racing simulators, but we got sacked because of the pandemic. I really love doing this, so I hope I can continue working on PH for a while, I'd love to eventually start working on a new game, but PH takes priority.
Can we use macros?
Macros are already a part of the game, you can assign more than one action to the same button.
Any plans to make a console version?
I have access to a Development Kit for a modern desktop console that I can't disclose at this time, and I have made a homebrew port for the Nintendo Switch. The Nintendo Switch port, if it's ever released won't be supported, but it will be interesting to see at least. This port would somehow be delivered to PH players through Steam, you would then need to copy it to your Switch. The only reason why I am studying a console port is because the console I am targeting supports User Generated Content which to me is a core aspect of the game.
How many songs are currently planned?
Back when we launched the game we announced 5 songs, however this has changed.
We will have:
- 10 songs in total from SuganoMusic
- 1 song from PKAkatora (connected)
- An unannounced number of songs from Impedance Eurobeat
I am against microtransactions, so if DLC happens it will only be in the form of song packs with a bunch of songs, I think that's a much better solution that charging per-song (it would also help reduce fragmentation too.
What about 3D PVs? (background 3D animations)
I briefly studied this, however the price would be too great for me to afford currently (PH is my only source of income) but it is something I want to do if the game grows, specially if we do end up having a console release, since the console we are targeting supports hardware raytracing it would be interesting to see.
When we switch to Godot 4.0 (and thus to Vulkan) I will be revisiting this idea.
What are the future plans? Are DLC planned?
The future of Project Heartbeat mostly involves polish, the core gameplay I'd say is in a pretty good spot right now. I might study a revamp of the in-game UI in the future too. I will do whatever the community wants me to do as long as I can afford to do it and sales continue to be fine.
There is one big thing I want to do, which would be rolling out our own leaderboard system, this would allow workshop songs to have their own leaderboards which I think would be amazing.
One other big change will be the move to Godot 4.0 when it becomes available, the new engine will allow the game to run on Vulkan.
Regarding DLCs: they are not planned right now, but if the game continues to grow they will happen eventually (the DIVA song count is 36 songs, so I am aiming for at least 20 or so before including DLC, as Heartbeat is a much smaller operation).
DLC would also allow me to attract new record labels, as I feel like with DLC I can provide them a better deal they might be more interested in.
What's the status of Guitar mode?
I shelved guitar mode, this is due to a number of reasons including my declining (but now improving) mental health not allowing me to work on the game as much as I want.
Why don't you support MP4 video?
The reason why we don't support MP4 videos is because in order to support it I would have to pay a licensing fee to the MPEG-LA, MPEG-LA is the company that licenses H264 and H265 which are the video codecs used in MP4. Even if I implemented my own decoder this would still not be legal to do without paying them.
I am against software patents on principle, so even if I could afford the licensing fees I wouldn't do it.
This is the same case as with MP3.
When are you adding catboys?
no
[ 2020-07-24 11:56:52 CET ] [ Original post ]
This update is smaller than the recent ones, a lot of under the hood work has been done in preparation for the future, to make it easier for me to continue working on the game, however some nice goodies made it in too. We will hopefully have two more songs to add to the game soon. Most of the internal changes have been massive cleanups and modularization of the code, so this update is a bit short on the features side.
Scroll list direction holding for scroll list and options
You can now scroll through most menus and change values in options more quickly by holding directions.
Hold and slide nerfs
Holds and slide chains have been nerfed percentage wise, they now can only amount for 1.5% of the maximum score each. They used to be 7.5% which was too big, this doesn't affect scores and is a purely cosmetic change.
Tabbed controls section
The controls section is now divided in tabs, depending on what they are used for
Major input handling changes (including hold cheese prevention)
New input handling changes include fixes for diagonally hitting slide notes. Previously you used to be able to cheese holds by holding all actions with one button and keeping that button held, this has been changed and now it cannot be done anymore, instead you must press the action at least once after you hit the hold note to be able to release the other button. As another note, the editor's running instance of the game doesn't register game inputs anymore.
Editor test play restart button
You can now restart a test play session from a button located next to the quit button.
Background dimming option
There's now an option to darken the background of songs, this includes video too.
Sound effect changes
Sound effects for double notes have been added, alongside with some changes to the slide note SFX to make them sound better and not have abrupt cutoffs.
Expression editor
The editor now has an option to execute expressions, they can be incorporated in advanced editor workflows.
Performance improvements
GLES2 now attempts to batch drawcalls for improved speed, I also moved note icons to atlases so they should use less memory and help batching (hopefully). Multi lasers have also been changed and have a different look that allows for better performance.
Yet another trail code rewrite
Okay I promise, this will be the last time I rewrite trails. The new trail code should be twice as fast while looking much better and not having any separation issues anymore.
Bug fixes
- Fix editor offset tool not taking sustain end time into account
- Fix some issues related to song restarts
- Fix PPD charts not loading slide chains
- Fix some issues with the clear bar
- Fix issues with hitting some notes using analog inputs (particularly hearts)
- Fix an issue that would cause the editor to slowdown when selecting many notes
- Fix an amusing issue with steam workshop uploads
- Fix modifier menu focus issues
[ 2020-07-06 19:19:39 CET ] [ Original post ]
Project Heartbeat is available with a 15% discount for the Steam Summer Sale, get it while you can!! https://store.steampowered.com/app/1216230/Project_Heartbeat/
[ 2020-06-25 18:03:08 CET ] [ Original post ]
[previewyoutube=zgqRHT5yvPc;leftthumb]https://www.youtube.com/watch?v=zgqRHT5yvPc[/previewyoutube] Connected is a song created by PKAkatora, this song is our first deviation from the Eurobeat genre in the game, this song features a synthetic voice and it's fairly happy. The song's artwork, featuring our mascot Aiko was masterfully created by the Spanish artist Mariale. The song was also charted by our resident charting master Twoncity. I hope you enjoy this new song.
[ 2020-06-22 14:08:26 CET ] [ Original post ]
Project Hearbteat 0.3.0 is now available for all to enjoy, this new update took longer than expected due to me suffering a thumb tendon injury.
NEW CONTENT
New artwork for Imademo 2012...
Due to external reasons the artwork for Imademo 2012 was left unfinished and is the oldest (and most unfinished) artwork in the game, Emmilly has been hard at work doing new art, this is probably one of her best works yet, and it shows.
NEW FEATURES
Extended notes
New note types are landing in PH, these are called extended notes. They create a different type of gameplay and in theory you shouldn't mix them with multi notes or holds, but I know you will so I made sure that they all worked together nicely. No official charts use them (yet) but we will be releasing new songs with the new notes in the future.
Heart notes
Heart notes are like slides except they don't care about direction, you can even flick your stick up and down.
Double notes
Double notes require you to press the same direction on two buttons, if you are playing on a controller you would press d-pad left and Y or Triangle at the same time. Heart notes can also be doubles, so you would have to flick two sticks in the same direction.
Sustain notes
Sustain notes require you to press the note on time and hold it, after that you will need to release the sustain on time.
How to play section
A new how to play section has been added to the main menu, this will give new users a rundown of what's in store for them.
New slide chain mechanics
Slide chains have changed, they now progressively turn blue when you hit them, so you can let go when all all blue and it will clear the slide automatically. You can also hold the slide before the time to hit it comes to hit it automatically.
Favorites tab
Due to growing song libraries we've added the ability to add songs to a personal favorites tab.
New trails
Trails have been updated, they are now drawn in a hybrid fashion, the game creates a mesh for them and fills them incrementally using a shader, this new approach has not been implemented in multi-note lasers yet, but will eventually be used to improve performance of those as well. The new trails also include anti-aliasing, working around a previous engine limitation, this makes the borders of the notes be much smoother. We originally launched them shortly after 0.2.8 was released as a fully GPU solution, but it didn't work well, so I spent 4 days working on them for hours (which led to my injury) but I made it in the end.
Massive performance optimizations
A lot of changes have been made under the hood to make PH not only faster but also less prone to errors (specially around slide holds) and more consistent, I hope this upgrade is enough to allow people with the more modest computers to play the game. I hit around 60 fps playing back 720p 30 fps video backgrounds on my dual-core Intel HD 3000 machine for reference.
New accessibility-friendly default keyboard settings
Accessibility is a recurring theme in Project Heartbeat lately, with the new note leading line features and the new timing circles replacing the clock arms. This time we are shipping new saner keyboard defaults allow everyone to play the game one-handed, thanks in part to my wrist injury for the inspiration.
VP9 video decoding
PH now ships with statically linked FFMPEG to use VP9 video decoding, VP9 is one of the many modern open formats that are widely used in the web, YouTube for examples makes use of it together with AVC1, although it appears it will be superseded by AV1 eventually. The reason to move to VP9 is the same as why most of the web moved to vp9 webms, H264 is a proprietary format, there was one point when Theora video and Vorbis audio inside Ogg containers were considered to be included in the web standard but were ultimately dropped after lobbying from proprietary format supporting companies. This monumental stupidity on the W3C's part eventually led to the inclusion of Encrypted Media Extensions on the web standard, something that Netflix and co have used for evil. This won't change how you use videos in the game, but it will require you to download them again, it is possible that it will make playback less CPU intensive and will make the videos take up less space, performance-wise VP9 is said to be tied with h265, but this is debatable.
Project Heartbeat metadata in PPD charts
In order to allow authors of PPD charts to release songs for both games you can now bundle Project Heartbeat metadata in your PPD charts, the game will pick this up automatically, in order to add them, simply add new entries to your data.ini file starting with project_heartbeat_ followed by the property name, so for the title it would be project_heartbeat_title The following properties are allowed at this time: "title", "author", "preview_image", "background_image", "youtube_url"
EDITOR IMPROVEMENTS
There have been many changes to the editor, most are invisible, such as performance improvements, others are more visible, like the changes we will discuss now.
Chart offset tool
You can now move all notes and events in the timeline through the new offset tool in the tools tab.
Note copying/cutting and pasting
Last update we added the ability to copy note parameters from one note to other using the inspector, this has now been extended and it's possible to copy notes in the timeline using the shortcuts you are familiar with.
Custom content directory and song reloading
It is now possible to select where your custom content is gonna be saved and loaded from, this includes videos and manually installed songs. You can also reload all songs by selecting the "Reload all songs" option.
Editor contextual menu
The editor now features a contextual right-click menu, this can be used to access some of the new features.
Note interpolation
This feature allows you to place notes in a straight line, with their separation being based on their hit time. Simple place your earliest and latest note and select them together with the ones in between, when you apply the interpolate option to them they will be placed in a straight line, separated and ordered by their time.
Minor changes
- Add extreme to song metadata editor.
- Allow decimal steps for stars in metadata editor.
- Add Control+F shortcut to show FPS and video playback data.
- Add hold to scroll to song list.
- Add ability to disable video per-song.
BUG FIXES
- Fix youtube-dl sometimes not finding ffprobe on windows.
- Fix linux video download regression.
- Make some changes to how game starts are done to hopefully prevent startup bugs.
- Make sorting use lowercase.
- Fix instancing bugs causing score overwrites.
- Fix chart editor settings not loading properly under some cirucmstances.
- Fix BPM changes not working properly.
- Fix inputs breaking when restarting a song with them held.
- Fix and issue that cause holds to be dropped instantly under some circumstances.
- Do a hidden fire of the slide particles when the game is starting so that shader compile doesn't happen during gameplay.
- Add error message when attempting to join lobby with a song you don't have.
- Fix linux video download regression.
- Fix editor title pushing controls out of the screen
[ 2020-06-20 16:57:36 CET ] [ Original post ]
NEW CONTENT
Aiko is here!
Illustrated by the great Chilean artist Izayoi Aiko is here! she is the new official face of the game and she can now be seen in background of the official song "Cloud Sky 2019". Aiko is a futuristic gothic-styled girl that will serve as Project Heartbeat's main "protagonist" with potential for more characters to come in the future. She's 18 years old, 1,62 meters in height, 45 kg and ready for the big stage!
A new, easier difficulty for official songs
Some users had issues with the official songs being too hard, the built-in songs are usually the introductory songs for new users, so them being too hard was an issue, as it created frustation. In order to solve this we have added a new difficulty called Extreme, moved everything up one step and created a new easier chart, this means that the chart that previously was considered of "hard" difficulty is now normal, and the old normal one is now hard and so on.
NEW FEATURES
Accessibility features
New timing and note path indicators
A week ago we silently launched two new features to make the game slightly easier to play for new users, these two changes are replacing the existing timing arms for circles around the notes and the addition of lines that tell you what path the note is going to follow.
Multi-note indicator
We have added a feature that shows the direction of the buttons you have to press when multi notes are on screen, this should help read them, particularly for triple notes. These options are enabled by default, but you can change them in the settings.
Audio volume settings
Yeah idk either why we didn't have this before...
Song start fade in
Songs will now freeze on start while a white overlay fades in, this should help for songs that start immediately.
Per-song settings
This was a heavily requested one, due to a number of hardware circumstances charts might have slight timing differences on your machine than they do on the charter's machine, to counter this you are now able to change the timing on the new song settings option in the pre-game screen, these settings are saved per-song. You can also change the audio volume per-song to prevent some user-made tracks from being too loud.
Modifiers
One long requested feature was the ability to spice things up by changing how songs played through modifiers, in this update we have included three modifiers. Do note that playing songs with modifiers means your scores won't count towards the leaderboard.
- Nightcore : This modifier will make your songs faster or slower.
- Randomizer: This modifier will cause the buttons to change each time you play the song (it doesn't randomize every note, but rather replaces all instances of say, up notes with down notes).
- Chaos: This modifier randomizes all properties of all notes, this means that they will appear from all angles and be of many different types, not really a serious modifier but can provide some laughs.
Intro skip
We have added the ability to enable skipping the intros of songs, this is disabled by default and must be enabled by the chart's creator, the chart's creator can also specify a minimum note time to allow skipping, so that easier charts that start much later get the intro skip but harder charts that start earlier don't.
Tap deadzone
Tap actions (so, slides) now have deadzones on them, this should prevent accidental presses, this deadzone can be changed in the settings
Add song info to pause menu
Now a song preview with song information will show when you are in the pause menu.
Editor manual
There is now a manual explaining how the editor works in the Steam guides section, this has also been added to the editor. You can also read the guide here.
Editor optimizations
Not exactly a feature but big enough to warrant a spot here: The editor has received some major optimizations to run on older machines, it should work much better now.
Editor optimizations
Editor copy and paste
You can now copy and paste note properties in the editor.
BUG FIXES
- Fix a bug that would cause the song list to send you to the wrong song
- Ensure only legal scores are entered to local leaderboard
- Fix issue with reselecting stored song lists that had under 3 items
- Fix main menu not hiding PPD song list when there are no PPD songs present
- Fix youtube-dl invalid cache state breaking some downloads.
- Fix some strange song list issues
- Fix crash related to dropping loooong slides
- Ensure all notes don't exist anymore when restarting a song
- Fix hold prompt not scaling properly sometimes
[ 2020-05-04 19:58:40 CET ] [ Original post ]
Laid out in this post are the future updates for Project Heartbeat and how the game will progress through the next few months. These things are planned, but external factors might change them (with the current world state you never know). Also I usually add some new features as people request them, so even if it seems barebones it is likely updates will be bigger (and obviously contain bugfixes).
Update 0.2.8 (coming this week!)
- Easier difficulties for included songs
- Song Modifiers
- New deadzone settings
- Per song latency settings
- Song start and finish time settings
Update 0.2.9
- Project Heartbeat-tan debut
- New synthv song
Update 0.3.0
- New note type: Hearts
- Switch to vp9 as the only video codec
- New eurobeat song
Update 0.3.1
- New note type: Double notes
- New eurobeat song
Update 0.3.2
- New note type: Sustain notes
- New eurobeat song
[ 2020-04-29 16:20:37 CET ] [ Original post ]
Before we start
I am aware that this update is probably going to be underwhelming in relation to the last few, this is because of life-related setbacks that haven't allowed me to focus on the game as much as I'd liked, but I still have managed to cram some features into it that I hope you will enjoy.
NEW CONTENT
New song: Hyperspeed out of Control
[previewyoutube=eBDBbaz_aso;full][/previewyoutube] With this update we are including hyperspeed out of control, a song produced by SuganoMusic, sung by Anthony McBazooka, based on a song from Touhou Project called Love Colored Master Spark. Hyperspeed out of control comes with an illustration from David Revoy's Pepper & Carrot open source project. The song has been charted by Henttus in record time and it has some relatively hard sections, I hope you will all enjoy it!.
NEW FEATURES
New Song List
The song list has been completely changed, it now has a sleeker design and accomodates better for custom difficulties, with this patch we are also adding sorting and grouping capabilities to the song list. The new design also allows for star counts with decimal points and longer titles.
MISC CHANGES
- Adjust work in progress label to a new location
- Merge pause and play buttons in the editor
FIXES
- EDITOR: Make editor layer doubleclick only happen when the left click button is pressed
- The game now disallows you from pausing while the song is ending
- An issue that would cause some notes to disappear on restart and potentially crash the game has been resolved.
- Fixed the song meta editor not saving the original title
[ 2020-04-20 15:06:49 CET ] [ Original post ]
Project Heartbeat v0.2.6 is here, this update isn't as big as the previous ones due to me taking a break for a day, but it should still affect some of you.
NEW CONTENT
Background image for music play in the floor
This new background comes from the open source webcomic Pepper & Carrot, I recommend you go check it out, it's quite amusing. Something else that is quite amusing is that a Pepper & Carrot JRPG was one of my first attempts at making a game ever, oh how tables have turned!
New song: Cloud Sky 2019
Finally, new content, Cloud Sky is the next song to hit the hands of players, this song is slightly slower than the rest but it's quite catchy, currently an illustration is being made for it, and from what I've heard it's going to look very nice. As always, this song has been masterfully charted by our charting backroom, in this case the whole song was charted by Twoncity.
FEATURES
- EDITOR: add playtest
- EDITOR: you can now move multiple notes at the same time
- EDITOR: clicking on the timeline will cause everything to be deselected
- EDITOR: timeline will now jump to make the playhead visible when playing a song in the editor
- Remove heart power I think I have to explain this one: PH doesn't really need a fever system, and user feedback towards heart power has generally been negative, so we've decided to remove it, when the life mechanic is implemented the former heart power meter will be used for it.
- New slide graphics (thanks Twon)
- Readability improvements for notes and judgement
FIXES
- EDITOR: You can no longer set BPM changes to 0
- EDITOR: Fix hold indicator not showing the correct icons
- EDITOR: Fix slide chain pieces sometimes remaining visible while editing
- Minor game position calculation optimizations
- Switch to a less crash-prone NoteDrawer architecture
- Slide note sfx is now quieter
- Note outline thickness are now consistent
- Removed UWUs
- Removed Herobrine
[ 2020-04-12 08:18:28 CET ] [ Original post ]
FEATURES Steam Workshop This is the big one, possibly the most anticipated feature for Project Heartbeat, it allows you to download charts from the Steam Workshop with a single click (even when your game is running!). If you are a charter, you can upload your charts using the "upload to workshop" option in the song editor's song selection menu. In order to make it easier for you to enjoy charting, we have published an official guide. After you finish playing a song from the Workshop the game you will be asked to give an opinion on it (although it is not mandatory to do so). Chart verification Songs are now verified when trying to edit them, there are different severities, depending on how bad it is the editor may require you to fix issues before letting you edit the chart. There are also some workshop specific errors, these are checked when you click "upload to workshop". More changes to how video download behaves Video downloads now happen in the background, which means you can enjoy playing your songs while other files are being downloaded, you do not even have to worry about download notifications getting the way, as if you are playing a song the notifications are stored and only shown to you after you are done with it. Imademo 2012 easy and normal charts Long overdue, but the easy and normal charts for Imademo... 2012 are now available. PPD Audio verification The game now includes code to check if the audio file selected when selecting a file for PPD is actually an audio file and if it's of the correct format and using the correct codec (OGG Vorbis in our case). FIXES & MINOR NEW FEATURES - Fix editor not properly loading hidden layers - All audio from video download is now automatically converted to stereo - Fix multi-notes breaking under some extreme circumstances - Fix EditorPlugins not showing errors - Fix BPM hanges - Fix timeline items scaling when zooming in - Fix an issue that caused timeline lines to disappear when using offset - Add area select to editor - Fix moving notes snapping differently from when they were created - Add option to automatically set the value of multi-notes in the editor - Added kojima This version is dedicated to my friend Jose Luis, who died from COVID-19 early last week, may he rest in peace.
[ 2020-04-06 20:44:59 CET ] [ Original post ]
Project Heartbeat 0.2.0 is here, with new fixes and some interesting new features. NEW FEATURES
Video playback
Project Heartbeat now supports using videos as backgrounds for your songs, with this come a new plethora of options to make life easier and adjust it to your likings, and some video download improvements make this easy to manage. The new options allow you to disable video entirely, only for PPD songs, disable the visualizer when a video is playing or even set the resolution and FPS of the video downloads. Currently only h264/av1 is supported.
Video download changes
The very smart people looking at the game's internals might have realized that Project Heartbeat downloads videos together with songs, this was originally due to the simplistic way in how the video download worked. Among some of the changes, the download code will now check if the files exist and ask you to download them if they aren't, this means that if you disable video downloading, download a song (which will only download audio) you can then enable video again and it will ask you to download the video. Same goes for missing video/audio files. All this means that you will have to download your videos again (but you won't have to enter the URL again for PPD songs).
Work in progress features
One of the things I am currently working on is Steam workshop integration, this should be interesting to see.
Other fixes
- The editor now runs in windowed mode automatically - Make closing the editor chart open popup on startup send you back to the main menu - Ensure you can only enter youtube URLs in the PPD URL entry - Fix circle target size discrepancy - Rewrite the hold indicator to not work sloppily - The game now writes the version string to the logs - Fix simultaneous multi-slides (why tho) - Fix main menu right being cut under some circumstances - Fix the results screen ignoring wrong notes when calculating full note count - Fix editor midi importing
[ 2020-04-02 02:00:17 CET ] [ Original post ]
Project Heartbeat is now available to purchase on Steam as an Early Access title!
[ 2020-03-26 21:10:38 CET ] [ Original post ]
Some time ago we asked on twitter and on our discord to throw any question you had about the game at us, here are such questions, and the answers to them.
How many songs are included in the base game?
Regarding the song list, there will be five songs by SuganoMusic, two of them are Touhou Eurobeat arrangements and the rest are traditional Eurobeat.
Can you use the PlayStation buttons?
Project Heartbeat infringes no patents, no copyright and no trademarks. Clone games are generally legal (see StrikeLine, RockBand, Heroes of the Storm, HoN, League of Legends, Candy Crush, commercial uses of StepMania, AutoChess and its clones etc...) Regarding the DualShock4's buttons: While the letter X is not copy protected, the specific cross used on the controller, along with the other shapes, are trademarked. Using your own art to represent the buttons, is OK under fair use, specifically nominative fair use. Where the qualifications for nominative fair use are one of the following situations:
- The product or service cannot be readily identified without using the trademark (e.g. trademark is descriptive of a person, place, or product attribute).
- The user only uses as much of the mark as is necessary for the identification (e.g. the words but not the font or symbol).
- The user does nothing to suggest sponsorship or endorsement by the trademark holder. This applies even if the nominative use is commercial, and the same test applies for metatags.
Whats the launch price looking like, and will that ever increase?
Launch price depends on the region, the european price is around 10 with the launch discount and it will increase after early access. However prices for other regions may vary greatly when converted to Euros, so don't take it as gospel.
Is workshop support coming?
Yes, but valve told me to remove references to it from the store page until it's available.
In the multiplayer mode, how many players can you play with at once (size of a lobby)?
Technically we could fit 250 people in a single lobby, but for sanity reasons it's set to 5 right now, but it's a simple one line change to increase this limit if the community wants it.
Are console versions planned?
... Maybe
Is mayonnaise an instrument?
If you try hard enough yes.
[ 2020-03-17 14:53:22 CET ] [ Original post ]
Mark your calendars, because Project Heartbeat is coming to Steam Early Access on March 27!!!
[ 2020-03-05 09:13:30 CET ] [ Original post ]
🎮 Full Controller Support
Features
- Hit notes to build up your combo and your score.
- Compete for official song leaderboards.
- Create and share your own charts!
- Play against your friends with the multiplayer mode.
- Play with the five included songs from top artists of the Eurobeat genre.
- Complete Steam Workshop support.
- Challenge yourself with the higher difficulty songs.
- OS: A distribution that supports Steam
- Processor: Dual core CPUMemory: 2 GB RAM
- Memory: 2 GB RAM
- Graphics: A GPU that has OpenGL 3.3 or Vulkan support
- Storage: 1 GB available space
[ 6138 ]
[ 3335 ]