This version is available on all branches. I call it alpha because the new features are not quite "feature complete", yet, in other words, those are still being worked on quite heavily. But we're almost in beat with 0.9.0 ;-)
Procedural Maps - Local MP3s
So part of this had already been more or less silently released - but the current alpha now has so many improvements and bugfixes that keeping it silent and on separate branches just wouldn't feel right anymore ... so ...
Most importantly, this version has - as some already have suspected (and has already been talked about in various places) - support for local MP3s. I'll make a more formal, official announcement once this is done. The most important current limitation with this: Unless you have your music in the folder configured in Windows as "Music Folder", you'll have to copy'n'paste the path from the File Explorer into Configuration.json. Obviously, this will change.
Also, we're still working on the algorithm and also on letting you select different difficulty presets. It's marked as "experimental" in the Music Library settings for a reason ;-)
We'll also support more formats than only MP3 (flac, m4a, wma, ogg). For now, it's only mp3.
Mechanic Mods: Laserblade, Beginner Mode
You probably saw them in our previous "release-notes" - this is now half-integrated into the game: The idea is to use your skill-level, or "style skill level" so you can unlock various new gameplay mechanics. We now have a "Beginner Mode" which gives you large orbs, large catchers, and much more tolerance concerning timing. As the name implies, this is primarily for beginners, or if you just want to catch orbs casually. Obviously, this one and the Holodance standard don't have to be unlocked.
The other one that gives you dual wield laserblades. This one isn't quite complete, yet. For now, it only really works with orbs, not with sliders and spinners. Also, you'll have to have reached a certain skill level to be able to unlock it.
Currently, you can select these under Settings / Style / Themes. This will move to its own progression area, which will then also let you track progression with unlocking environments. We will probably have a few more sword-based mechanics (single-hand, sword with shield). We'll also soon have a gun-based mechanic where you'll have to shoot the orbs. The idea is to give you some choice with unlocking, so if you are more interested in guns than in swords, you'll be able to get that first (be warned, though, guns will be by far the most challenging mechanic in the game).
Polishing and Fixes
We have plenty of bugfixes and little "polishings" in this release - see the full release notes for all the details.
Full Release Notes
- Local MP3s: Accumulated scores are now properly incremented even though we still don't keep leaderboards for procedurally created maps.
- Leaderboards: In addition to the "Accumulated" leaderboard which basically is a grinding leaderboard, we now also have a "MaxDifficultyFC" leaderboard which has the maximum difficulty of a map that you have full comboed (no single note missed). This is currently multiplied by 1000, so if you have full comboed a map with difficulty 3.534, your "score" would be 3534, and if you managed to full combo the most difficult map (10), you'd have 10000. We may increase this if we significantly change how difficulties are calculated. NOTE: This leaderboard is currently not shown in the game, yet!
- Audio Engine: For some very odd reason, we had BPM has int. Not anymore.
- Music Library: Taiko maps now also use the same location normalization that we use for local procedurally generated maps which should make Taiko maps significantly more playable.
- Music Library: Major fix in how scanning file system for MP3s works. The meta-information for the library should now be much more reliable.
- Local MP3s: First algorithm update from Discookie.
- Local MP3s: When going through the selection too quickly, it could happen that procedural beatmapping would deliver incomplete beatmaps. This is now fixed.
- LIV SDK: Updated to V0.0.2.
- Party Mode: Cleaned Up Demos
- Local MP3s: There were apparently quite a few allocations due to code we're not even using. Disabled that code.
- Local MP3s: Using the file name as hash for beatmaps for now, which is pretty bad but still better than using a constant string. We really need audio finger-printing now.
- Avatar System: Fixed issue that Avatars moved a little more slowly than controllers causing Avatar hands being behind the controllers during quick movements.
- Local MP3s: Major update to the algorithm.
- Music Library: Fixed very nasty issue introduced in previous alpha (only went to alphadev) that caused osu songs to get stalled for 30 seconds before starting to play.
- Music Library: Fixed a few issues where we did calculations and saving files when we really didn't have to.
- Local MP3s: Properly updating AudioRecordings when they were updated on file system, instead of creating new ones.
- Added a play list recording feature that dumps all the songs you played, scores and so forth into a text file while playing, with one text file for each time you started playing Holodance. This is useful if you do streams and want to let your audience know which songs you played when you're finished. This is not the upcoming feature to create playlists for uninterrupted sessions, yet ... but that will also come.
- Local MP3s: There were still some major issues with library synchronization. The only known issue that remains: When you add and remove MP3s to your library at the same time, Holodance needs to refresh two times until everything is properly recognized. But this should be fairly rare.
- Songs played list: Including the time when the session was started because otherwise, you only get the days, not the actual sessions.
- Local MP3s: Fixed a super-annoying bug that caused duplicate to throw off the library synchronization under very specific circumstances.
- Music Library: Fixed a major performance issue when scanning files.
- Local MP3s: Small adjustment for orb placement a little more to the center (horizontally) to be less annoying.
- Skill Ranking: Now using "adapted difficulty" for when you don't full combo a map: adaptedDifficulty = (map difficulty * notesHit * 0.8F) / notesMax
- No longer using the initial loading scene. While this did improve the initial loading behavior a little, it also increased the loading time, and it was the cause of the particle effects failing after initial startup.
- Metronome Timings: There were some issues with songs that had different tempi - those are now fixed.
- General Gameplay: Sliders and spinners now also have particle effects when finished.
- You now get a little popup message when your skill level improved in a session.
- Music Library: There were some major issues with filtering in the durations area. Fixed.
- Music Library: Made lists a little more robust.
- You now get a little popup message with the current BPM when the tempo changes.
- General Gameplay: Sporadically, you'd see random orbs appearing at the end of a song. This was very hard to reproduce but for this release, we have changed a few things that *should* fix it, and it didn't happen to me in a long test session after that fix ... so I'm hoping that issue is solved once and for all.
- Local MP3s: Added algorithm for Sliders and Spinners.
- Sliders: Fixed issue with path tracers that caused them being all over the place sometimes
- Orb Themes: Fixed issue that while we persistently stored the selected orb theme, it wasn't re-activated on startup - only when you opened the theme selection UI.
- Hitsound Themes: We've had them for a very long time - but no way to select another one. So here goes.
- Fixed Maximum Emission for platform because this was trashing all my videos.
- Added a prototype for swords, this is available on a separate branch. It will eventually be part of the skill-based progression (so you can unlock this when your skill is high enough).
- Did a little project cleanup (this doesn't change anything in the built game - but it does making with the project easier during development).
- Orb Themes: Added a new theme based on the Fireballs we use in Level 10 of Story Mode. Now you can use those as a theme, if you want fire mayhem.
- Scoring: Added orb theme multiplier for a multiplier that we can use for orb themes that are easier or more difficult to play (e.g. large orbs in easy mode), and mode multiplier that we can use e.g. for "easy mode", which is more tolerant with timing. And also, a catcher multiplier, e.g. for swords which are harder to use. With the catcher multiplier, the average of all caught orbs is used to determine the skill level.
- Play Area can now be moved forward, back, left and right. One issue with using this feature: In Level 3, Story Mode, the target area (where the orbs arrive) move throughout the play area. This does honor the chaperone bounds that you have set up in SteamVR - but only if you haven't moved your play area with this new feature. So that's something you need to be careful with.
- Default Target Grid Style is now outline instead of sections - most people don't seem to like that grid all that much, so one that is less in your face will be preferable.
- Orb Themes can now define their own hitsound themes and if you use an orb theme that defines a hit sound theme, that hit sound theme is automatically selected and you cannot change it. Most orb themes let you use any hitsound theme.
- Beginner Mode: Added a new "Beginner" orb theme with larger orbs. Also added new, larger catchers. Finally, beginner mode will not let you miss orbs when your timing is completely off. However, beginner mode will also give you significantly lower scores and reduces the maximum skill level you can achieve.
- Music Library: Fixed bug where faulty filenames could cause the Music Library to show up empty.
- Progression: Temporary selection of different "mechanic mods" in the Themes area. You can now try the "Beginner" mode, which gives you larger catchers and larger orbs, and also has sliders and spinners converted to regular orbs. This mode also is much more tolerant with timing - you cannot miss orbs based on timing alone. Standard is the usual gameplay mechanic you already know from Holodance. Finally, Laserblade gives you laserblades instead of the catchers, automatically selects the lazers orb theme (but you could also play this with other themes now), activates the timing tolerance and converts sliders and spinners to regular orbs.