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 ]
🎮 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 ]