Finally, this is the first "beta" of V0.9. What this means is that the main features are there and now it's all about polishing those to get this into V0.9. Some may wonder what this alpha/beta/release stuff is all about in an Early Access title - so to answer that: We use Early Access to be able to test things a lot, and sometimes, what you first get is really just an early prototype. You play it, we play it, we get feedback, we iterate, polish and improve.
The most important thing this new release brings compared to the previous V0.9 alphas is the gun mechanic (we already had a few releases with this on the guns and alphadev branches) but I'd like to take a more broader perspective on V0.9 with these release notes:
Procedural Beatmaps
We love perfectly timed rhythm game maps, and I get really annoyed when gameplay is off-beat, so all along Holodance was all about its native content with music produced specifically for the game, then we added licensed music (some of which we have licensed but not added, yet) and eventually added support for osu! beatmaps.
But there is something really awesome about simply starting playing any song you have in your local music library. Holodance can read files in the formats/containers: mp3, mp4, m4a, ogg, flac, wav, wma, opus. Some of the things we do for procedural / algorithmic beatmapping are also the foundation for our upcoming in-VR beatmap editor, like properly identifying "recordings" of a song, regardless of the encoding or even whether it's in your local library or on YouTube (YouTube support will come later during V0.9.x).
Feedback so far has been quite positive, even though we still need to let you properly select your music base folder. Currently, unless it's your Windows Music library folder, you need to copy'n'paste the path into the field "pathLocalMusic" in: \Steam\steamapps\common\Holodance\Configuration.json
You get five difficulties for each song, we're still working on polishing every aspect of this.
Casual Mode
Holodance has been all about precision all along but sometimes, you just want to casually punch orbs to the rhythm. We do, too. In Casual Mode, the orbs are larger, and so are the "catchers". A less obvious thing is that while you get the same time window for "perfect" timing, as long as you catch the orb at all, you don't miss it due to timing. This is to prevent the frustration a few players had when standing too far forward or too far backwards. Finally, Casual Mode automatically has Sliders and Spinners converted to orbs, because those are more advanced mechanics and not everyone enjoys them as much as I do ;-)
One important thing to understand about how we handle these modes: The mechanic setting in Settings / Style / Themes changes the catcher and also sets some defaults for orb theme, timing and converting Sliders / Spinners - but you can still change this according to your preferences.
Here's how it works:
Laserblades
Back in October 2016, I publicly mentioned an upcoming sword-mechanic for Holodance, which, due to our sci-fi theme would obviously be using a laserblade-style representation of the sword. In fact, adding more and different core mechanics to Holodance had been on my mind since October 2015, when I had to turn the catchers into little sword-like tubes due to tracking limitations with the Razer Hydra that I used for some of the early prototypes of Holodance.
One thing I learned when everyone started talking about Beat Saber was that I shouldn't wait with implementing ideas like that. So the laserblades mechanic is now available in Holodance:
https://www.youtube.com/watch?v=6aNjSNJ9RKs Again, you can select the laserblades in the mechanic settings, and it will set up some defaults, like the laserbeam orb theme - but you can change it, and for example also use the Firestorm orb theme which has fireballs flying at you that you can then deflect with your laserblades. There are two stages to this: Using just a single hand, or, for more advanced gameplay, dual wielding.
... and while I was at it I also added the gun mechanic that I had mentioned in January 2017 and that otherwise had drowned in a long list of todos:
Gun Mechanic
One of the tricky things with the now almost traditional VR rhythm game mechanic where orbs fly at you so you can catch or punch them is that time and space are essentially the same. So when an object moves, the perfect time to catch it is also the perfect location to catch it. It's still a lot of fun - but people that care all about the precision in rhythm games will always miss something with this approach.
So why not give players guns and let them shoot the objects? We use a very fast laser-gun that only works against orbs and drones (I still strongly believe in non-harming and non-violence ;-) ). While working on this I realized that for the fun of it, having a bow and arrow mechanic will also be cool. But that's not in this version, yet, and it obviously requires even much easier beatmaps than the gun mechanic (with the bow and arrow mechanic, since the arrow has a distance to cover at a lower speed, you'll have to shoot it just a little bit before the beat, so it gets crazy difficult).
So, if you want to try this, make sure to select maps below 2.5 in difficulty first. Our procedural beatmapper currently usually creates more difficult maps - we're working on fixing that during this beta-cycle.
https://gaming.youtube.com/watch?v=b2xzPq_4s9o
New Impact Timing Indicators
We have had impact timing indicators all along - but they never really worked that well, so improving them has been on my list for like almost forever. Finally, we have them, and now only do we give you five to choose from now, the original one, one where a circle goes all the way up on both sides, and clockwise and counterclockwise "timer circles" - these now also show the timing phase you are in with colors: Red means you'd miss because it's too offbeat, yellow means you'll catch it but it's offbeat, and finally green means perfect.
These can be selected in the Guidance area under Style, and the preview was also improved:
Time Dilation
We already had "Time Dilation" as part of Psychedelic Mode for a little while - we'll rename that to "Bullet Time", though, because it works very differently: Bullet Time in Psychedelic Mode slows down time around special event orbs, like the 48-combo 4x multiplier, long combos and of course, the full combo. The cool thing about Bullet Time is that it's predictable and you can use it for finishing moves.
The new Time Dilation features works differently: Time now moves based on how fast you move your hands: When you groove naturally with the music while catching orbs, time passes normally - but when you slow your hands down, time slows down with them. If you hold your hands still, time almost completely stops. As you can imagine, this opens up quite a large range of new approaches to how you play our rhythm game. It's all about style.
The Time Dilation mechanic works especially well with our laserblades because while we do track rotational velocity as well for the score bonus, it does not influence time. So you can do some really tricky advanced moves while playing with rhythm and time.
https://gaming.youtube.com/watch?v=lA3rkI3PF0U And time dilation works in both directions: When you wildly swing your arms, it's like fast-forward. So you can make slow songs more fun this way, too.
Bounce Back Mechanic
We needed this for the gun mechanic because having the objects fly all the way to the players isn't that great. The idea, however, is much older and was about solving the same issue that the gun mechanic now solves much more elegantly: Being strict with timing. For now, we have this as one orb theme.
Give it a try and let us know what you think. If we keep this, it will become part of "precision mode", which is more strict in every aspect of the game, as our "standard" mode.
Player Progression
All of these new mechanics will be part of a new progression system that is based on skills. We already have the accumulated score to unlock environments. That's pure grinding, and we'll fix the loopholes used by cheaters (in case anyone wondered ;-) ). With the mechanics, the idea is that you need to have a minimum skill to have fun with the advanced mechanics. So those will be unlocked based on your skill.
However, it won't be a linear progression because some people may want to get to the gun mechanic as soon as possible, and are not even that interested in the laserblade mechanic. So you will be able to select your own path through the different mechanics. Single / dual will be linear because you can only play easier maps with a single laserblade / single gun, and then, for the more intense one, dual wielding is unlocked.
Streamer Mode
One thing that was super-annoying with Streamer Mode until this version was that not all cameras worked in all environments. That's still the case, but now, cameras that don't work in a specific environment are automatically excluded from the automatic camera switching on the rhythm.
Also, your settings are now saved persistently, so you don't need to set up the times again and again for each session.
That was a lot to cover - the details for this release are actually just a few:
Release Notes for V0.9.0b1
Guns: New Gun Mechanic
Pause Menu: Moved the "Move World" UI forward so that it is closer to Rotate World / Rotate UI.
Target Areas: We can now support different target areas (only in "Free Mode", though). For now, this is only used to internally switch between the distant guns target area and the standard close target area. But this can also be used to activate special areas for feet, so this is a big step forward.
Guidance: Changed "Show Impact Points" to "Show Impact Timers" because these points were actually always meant to be "timers" and now will become that in a much more obvious way.
Guidance: Changed wording - the "Show" was a little redudant. It is no more.
Guidance: Added animation for one orb, its impact timer and timing laser.
Impact Timers: Previously, impact timers had to be adapted to the size of the orbs - this is now down automatically.
Impact Timers: Added osu style impact timer (contracting circles).
Hit Sounds: Added Explosions Hit Sound Theme.
Guns: Added much improved activate / deactivate animations.
Guns: Added explosions for drones orb theme.
Guns: When using guns, Time Dilation behaves very differently from orbs and laserblades, so we adjusted the relevant curves for more interesting gameplay (having ultraslow time almost all the time isn't really fun).
Streamer Mode: Added number of bars before switching Avatar, same as we already have it for the cameras.
Streamer Mode: Made settings for the cameras persistent so we don't have to set everything up each time we start the game. You still need to activate Streamer Mode through the flatscreen UI, and also Switch Cams in the Rhythm because if we'd activate that automatically as well, this could cause some troubles.
Party Mode: Start Streamer Mode can mess up the UI at the end of a session, so this is now disabled by default.
Streamer Mode: Added camera exclusion to environments so that automatically switching cameras does not mess up recordings anymore. Most camera views are available in all environments, and some don't work that well when the main ScoreHUD is active (i.e. Gamer mode in guidance, instead of Zen mode). Especially Sci-Fi Tunnels has been significantly cleaned up because a lot of perspectives didn't work in that one. If you find any perspective in any environment that you feel should not be included - please let us know!
Streamer Mode: Reduced field of view of first person camera in Streamer Mode from 80° to 65°. This is still a larger field of view than the regular headset view but it's no longer like almost fisheye view that makes things right in front of you appear kind of small.
Orb Themes: Added "bounce back" orb theme. We may move bouncing back into a separate area so that you can play any theme with or without bouncing back. Currently, the gun orb themes are "bounce back", and this new Bounce Back theme. The bounce back logic is a part of "precision mode" which requires much higher precision in gameplay then standard mode. So eventually, we'll have Casual (requires less precision especially in terms of timing), Standard and "Precision Mode" which is much more strict.
Impact Timer: Added "Full Circle Up" timing indicator. This is also the new default.
Impact Timer: Added color-coding for the time-phases from missed (red), via offbeat (yellow) to perfect (green).
Drone Orbs: Due to the explosions, the OrbScoreHUD was hardly ever visible with drone orbs - so this has now been moved about a meter closer to the player.
Asteroids Environment: This was pretty overexposed. Reduced exposure from 2.28 to 1. This is still a bit brighter than without color grading, but no longer eye-cancer bright.
Impact Timers: Added clockwise and counterclockwise impact timer styles.
Meet Holodance's young brother: Beat the Rhythm
Just a little heads up to everyone: We will have a spinoff of Holodance called "Beat the Rhythm" soon. Internally, it's one and the same project, so development of "Beat the Rhythm" won't slow down Holodance, at least not significantly.
Also, Beat the Rhythm won't have any features that Holodance doesn't have. So if you have Holodance, there's no need to buy Beat the Rhythm (unless, of course, you want to support the development of both games and a third one that will be more different but still a rhythm game, based on the same mechanics and principles). Beat the Rhythm will come with a new soundtrack that will be available for Holodance as (paid) DLC. That idea and name were born in September 2016, when we started putting everything we originally planned for "Episode 2" of Holodance (essentially "Free Mode") into the main game and dropped the idea of "episodes" altogether ;-)
The idea is to have Beat the Rhythm as a kind of "young brother" of Holodance, with one player-community, cross-game leaderboards, multiplayer (once we have it), shared player-created beatmaps (once we have them) and so on. The biggest difference is that Holodance comes with everything including Story Mode with dragons, while Beat the Rhythm will be focussed on working easily on every platform (including PlayStation VR). Beat the Rhythm won't have an Early Access phase ;-) Beat the Rhythm will be priced similar to when we initially released Holodance into Early Access - but things that Holodance delivers as part of the game will be paid DLC in Beat the Rhythm (e.g. some environments, some avatars, and maybe even Story Mode, once that's complete).
If you check the Tweets from today ... there's a little surprise in there, too: @BeatTheRhythmVR.
Holodance V__GUNS: Early, Raw and Unpolished Guns
EDIT (2018-02-24): On the alphadev branch and the guns branch, we now have V0.9.0b1 with a full (but still beta) implementation of the new gun mechanic. On both branches, you can now also play all game mechanics. There are two orb themes that are designed for the gun mechanic but you can try and theme you like - it just may be extremely challenging. Speaking of challenging: You should use low-difficulty beatmaps and so far, all procedural beatmaps I have tried seemed quite impossible to play successfully in gun mode, so for now I'd recommend only trying this with osu! beatmaps.
If you feel very brave: In Steam, go to properties of Holodance, tab "betas", and select "guns". Wait until the update is downloaded. Start the game. Select either single or dual guns. Default "orb theme" is Drones but there is also one that is similar to the Casual orb theme. Go into one of the environments.
Make sure to pick an easy beatmap. I can full combo 5.5 ones with the regular mechanics - but with the gun mechanic, I feel very comfortable with 2, and quite challenged with 3.0. If you jump right into your usually difficulty, this will only be frustrating.
I said "Early, Raw and Unpolished" for a reason: Most importantly, this version doesn't have proper timing indication. I know that sucks, will fix it tomorrow. So the next release will have the typical osu! style indicator ("shrinking circles"), and I'll also add one or two that are more like "timers". The weird circles that were in the game all along have been in the game since pretty much the first prototypes - time to let them return to the source, like all old programs no one has any use for anymore.
Then, of course, you'll notice immediately that this version still lacks a lot of the oomph we expect from shooting guns. One thing I believe is really important is a little haptic pulse when you lock the laser sight onto the target, and of course also haptic feedback when you blow up the drone or orb. Then, of course, we need proper explosions and sounds.
There are a few more fun things I'll add - but I won't spoil those here ;-)
Finally, sliders and spinners don't work with that mechanic, and in that build, you cannot play any other mechanic (try it - you'll see what the problem is quickly ;-) ).
To be honest, this build is even a little early to gather feedback - but I thought some people might be waiting for the gun mechanic, and I wanted to put it into your hands as early as possible.
Enjoy!
Holodance V0.9.0a18: Fixed Default Orb Theme, Single Laserblade
One more! One more!
When seeing recent videos and streams by players, I had been wondering why everyone was playing the Casual Orb theme. I double-checked if I had accidentally put Casual mode as default mechanic but that was not the case. Finally, on Monday it dawned on me: I messed up the default orb theme. Ooops!
Getting Back Casual Mode (if you want to)
So, this update does something that I usually try to avoid: It overrides one of your settings and restores the default. One reason I feel confident doing that is that several new players were very happy when they finally found out that there is a transparent orb theme with smaller orbs ... something everyone should see first when playing Free Mode.
Now, if you don't know what I'm talking about and want to keep the orb theme you already got used to - don't worry, here's how it works:
In words: Go into Settings, either using the gear icon in Music Library, then Game Settings (bottom left) or by pressing and holding the Menu button for about a second. Then "Style", then "Themes". There on the bottom left, select "Casual". And you're in full Casual mode. We added this because we think for a lot of people, this is actually most fun. Someone also once wrote a negative review because we didn't have that, and that always hurts. Hurt needs to stop, gotta fix it.
Single Laserblade and Dual Wielding
We will soon put laserblades and guns into a kind of skill tree that you'll need to unlock based on your gameplay skill. The reason is because it's an advanced mechanic that can be quite frustrating to new players ... and also because we like letting you progress through the game instead of being immediately overwhelmed with two gazillion game modes and options.
But first, I want to have laserblades and guns completed. This pre-beta version now also lets you play with a single laserblade without having to put one of your controllers down. Here's how you select it:
In single laser blade mode, you can switch your active hand by pulling the trigger for a moment, on the hand that you want to make active. You do not need to swap controllers (which would be hard to do with Touch controllers, anyways).
And if you don't like those silent GIFs and instead want to watch a full session with these settings and a few more - here's to you:
https://www.youtube.com/watch?v=UatcqHwKeOs Be sure to watch it on YouTube or Vimeo because in the descriptions, there are timestamps so you can easily jump to the different sections (this is a really cool feature that both, Vimeo and YouTube have) ... and there's also some more explanation in there.
We also fixed a few more things.
Full Release Notes
General: Improved tracking of handedness / dominant hand. We now have this as a solid concept and your dominant hand is whichever hand you last used to "interact". Currently, there are two interactions that are tracked for handedness: Skipping and pause (which is most likely the most reliable one), and switching the laser pointer (which is what most people will usually do if handedness was wrong). We needed this as a solid concept for what's coming next.
Orb Themes: This had the Casual theme as default - not cool. Also, the order of themes wasn't really making much sense. This is fixed. Unfortunately, this will result in the orb theme changing, so we reset everyone's selected theme to the default theme for now. Apologies for the inconvenience.
Local Music: There was a bug that caused all untagged music to get the same titleForSort, which resulted in all those songs only showing up once. The title for sorting now also uses the fallback so that the title is the full filename. It's still highly recommended to use properly tagged music for Holodance but this makes the behavior a little more acceptable. We'll have file-system based music browsing as an option in the future, for everyone who prefers that way of browsing.
Mechanic Selection: This was broken for Casual in a V0.9.0a18 version that only went to alphadev. It was also broken for the guns (but those are not functional, yet, anyways). Fixed.
Laserblades: Completed implementation of single laserblade mechanic. You can switch the laserblade by pulling the trigger on the laserblade you want to use - but it will deactivate the other one unless you have dual wielding active.
Holodance V0.9.0a16/a17: Favorites and Recently Played now work with Local Music
EDIT: V0.9.0a17 (2017-02-18) is just a tiny patch that fixes the Casual orb theme which previously was way too bright. There is also work on "handedness" in that release but I didn't feel like spamming everyone with another patch notes entry for these small changes.
V0.9.0a15 was almost the last alpha: I realized yesterday that there were still a few issues that needed immediate attention: New players with lower-end GPUs (970, 1060) that tried Story Mode would see a flickering water kind of first thing when entering the game. Not cool. This one was a bit tricky to fix because it took a while to figure out that it were the post-processing effects that caused it (in combination with shadows being deactivated, VR being active, single-pass stereo rendering being active and using forward rendering ;-) ). But once I had that one figured out, fortunately, it was just updating those post-processing effects to fix the issue.
And then, one of the things that looked really broken with local music (which is still "experimental") were Favorites and Recently Played: Because local music would show up there but it just wouldn't work. Now it does. This isn't the "full fix" which requires proper identification of the songs - but what we have now is what is needed to make the old Recently Played entries and Favorites work. Obviously, as we don't have the proper identification, yet, all old sessions and favorites don't have it, so there was a need for some fallback / heuristic to handle those.
Last but not least I noticed while watching people streaming Holodance that the search would often activate the filters, resulting in no results even though there should be results. Holodance tried to be too smart - but not anymore. Now, if you don't have filters active, we don't activate them for you while using the full text search, and if you have filters active, we deactivate them when too few results show up. Let us know what you think about this either here on the forums or in our official Holodance Discord.
Full Release Notes
Paradise Beach / Level 1: There was a bug with the low-performance settings (970, 1060) that caused the water to flicker. Fixed by updating PlayWay Water to 2.0b16 and the Unity PostProcessing Stack to the most recent version (v1).
Favorites / Recently Played: These are now both filtered by what beatmaps are actually available so that when you disable Local Music, songs from Local Music will no longer show up in Favorites / Recently Played, and when you disable osu!, osu! maps will no longer show up.
Favorites / Recently Played: Should now work for most, if not all local song favorites and recently played. Very old entries from the earliest versions where local music was supported may not work.
Search: No longer automatically activating filter if we get "too many" results. This was causing too much trouble. We do, however, still deactivate the filter if a search returns too few results.
Holodance V0.9.0a15: Scoring and Psychedelic Mode Fixes
This is mostly a bugfix release and probably the last "alpha" for 0.9 before we're going into beta:
In-VR Exit Button for Oculus Rift and Windows VR
When you use the Oculus Rift or one Windows VR (aka "MR") headsets, you may have had some issues due to Holodance not having an in-VR exit button. So now it has: It's in the old "Settings" screen that is the lower one of the three in the level selection area, where you also enter "Free Mode" and "Story Mode".
When you use a native SteamVR headset like the Vive, it's actually better to use the SteamVR Dashboard exit method because that's the standard.
Scoring Issues
Most importantly, Time Dilation introduced a "little" issue where doing Sliders while time was running slowly could result in Sliders having more than 100%. If you were very patient you could easily use that to cheat with maps with many Sliders. Not anymore ;-)
I also did some major cleanup in various areas. Most importantly, you no longer need to record gameplay sessions to get the basic info in PlaySession.txt and the PlayList_YYYY-MM-DD.txt files. For the detailed stats, you still need this.
Known Issues: Water glitches in 970 Preset
If you have the 970 performance preset active, the water in Paradise Beach / Level 1 is glitchy. I'm hoping to have a fix for this either today or tomorrow; for the time being, you can try to work around this by switching to any other performance preset. What I know already is that what's causing this is that in the 970 preset, shadows are disabled. The thing is that shadows are quite heavy on performance, so going to a higher preset on low end (VR) hardware might give you significant framedrops - but it's worth a try, especially on a 1060.
Known Issues: Single / Dual Laserblades and Guns
There already is a UI for selecting single and dual laserblades as well as single or dual guns. However, the gun mechanic is not available, yet, and the single laserblade mechanic isn't either. In the dropdown, it shows the final multipliers - but in the game, we still use the one from dual laserblades, so it's less broken as it looks. But yeah: This part is incomplete (that's why we call it "alpha" ;-) ). But not much longer ...
Full Release Notes
Play Sessions Text Files: Fixed double-link to beatmap.
Re-activated "Exit Game" button in the old Settings (3rd frame in level selection area, where you also select Free Mode or Store Mode). When you use the Vive / SteamVR, you don't need to use this - just use the SteamVR Dashboard and "Exit Game" there. But this should solve problems for our Oculus and Windows MR users until we have proper native support for those devices.
Time Dilation: Now properly tracking time dilation multiplier for each caught orb, with the relevant score multiplication and average for the play session.
Scoring: We now properly apply catcher multiplier, time dilation multiplier and easy mode multiplier to the score, before the bonuses are added. The score before the multipliers were applied is available in rawScoreBeforeMultipliers, the score before the bonusses are applied is available in rawScoreBeforeBonus.
Scoring: We now keep track of the total bonus score immediately while playing - that way, we don't have to calculate it using the recording data.
Scoring: Time Dilation could cause Sliders to have more than 100% completion rate.
Major Refactoring: The text files with the play sessions are now written immediately (instead of in the middle of storing the leaderboard entries), and only the details will be written with some delay, and only when the stats are actually available.
Psychedelic Mode: Fixed issue that disabling color effects while playing would not restore the original color grading and potentially keep everything desaturated (or oversaturated).
Holodance 0.9.0a14: Time Dilation; Better Difficulty Metric
Time Dilation
According to the theory of relativity, time dilation is a difference in the elapsed time measured by two observers, either due to a velocity difference relative to each other, or by being differently situated relative to a gravitational field.
Holodance is now a serious game. Very very serious. About physics. You are divine - you have full control of time. Watch this:
https://gaming.youtube.com/watch?v=lA3rkI3PF0U How can you experience Time Dilation first hand in Holodance? When you groove naturally with the music while catching orbs, time passes normally - but when you slow your hands down, time slows down with them. If you hold your hands still, time almost completely stops. As you can imagine, this opens up quite a large range of new approaches to how you play our rhythm game. It's all about style.
And time dilation also works the other way: When you wildly swing your arms, it's like fast-forward. So you can make slow songs more fun this way, too.
The Time Dilation mechanic works especially well with our laserblades because while we do track rotational velocity as well for the score bonus, it does not influence time. So you can do some really tricky advanced moves while playing with rhythm and time.
Local Music: Better Location Mapping, Better Difficulty Presets
Important: If you have had local music set up for a little while, you need to do "Full Rescan" one time to make the 5 different difficulty levels / beatmaps show up for each song. Keep in mind that local music is still experimental / early access^2, so things like recently played, favorites or leaderboards don't work, yet. But I believe the algorithm is very close to "finished" (these things are never finished - but finished enough for now ;-) ).
Better Difficulty Metric
We had some pretty nasty bugs in our difficulty calculation (for a little while, the minimum difficulty was 1.6, while it should have been 0.0). Those are now hopefully all fixed. Difficulty is a really important metric because it determines your skill level, and your skill level will eventually unlock all those funky new features like the laserblades, time dilation, and soon guns.
At the moment, you can still access all of those easily via Settings / Style / Themes. We won't make unlocking those super-difficult because we really want you to play with all of Holodance. But some of those mechanics are more challenging and you need to have the skill level with our regular gameplay mechanics to actually have fun with them. Playing those too early will be just frustrating.
Full Release Details
Local Music: Added new and improved version of location mapping.
Play Sessions: Now linking to the new osu! beatmap listings instead of the old one.
Local Music: Fixed bug that unchecking "Auto" would not remove the procedural maps because they were still recognized as "osu".
Local Music: Added safeguard against the recursive search delivering fewer (e.g. zero) results while the "flat full search" delivered all results.
Difficulty Calculation: BPM, Duration, Orb Count and Slider Count difficulty values are now multiplied with the average distance between orbs to weigh them based on that value. That way, long or fast beatmaps where most orbs are very close to each other no longer result in high difficulties.
Difficulty Calculation: Fixed a very nasty bug that removed distance and average distance from the difficulty.
Velocity Tracking: We previously used real time instead of scaled time for the time tracking, and scaled time instead of real time for velocity tracking, which can cause trouble when we mess with time, which we already do in Psychedelic Mode (Bullet Time), and will do even more with an upcoming mechanic.
Velocity Bonus: Tweaked bonus so that slow movements will be completely ignored, and faster movements will be more rewarded now.
Mechanic Modes: Added Time Dilation - your controller movement determines how fast time passes. For now, you can always activate Time Dilation in the Themes selection - eventually, this will be one of the unlockable game mechanics and you will be able to combine it with other mechanic mods (e.g. Laserblades or Guns).
Holodance V0.9.0a13: Five Difficulties for Procedural Maps
So, the whole area of "procedural maps" aka "playing local songs" is still very alpha and far from "polished" - but the release is quite a step forward nevertheless. Most importantly, you can now select five different beatmaps aka difficulties for each song. The difficulty range is still fairly small, so that's something we're working ... and we'll definitely have more challenging procedural maps.
IMPORTANT: Configuration.json / pathLocalMP3s is now called pathLocalMusic - but we still have pathLocalMP3s in there so we could copy the setting from pathLocalMP3s to pathLocalMusic on the first start. Other than that, pathLocalMP3s is no longer used. Eventually, you'll be able to select that path from directly inside the game but that part is not ready, yet.
Expect a few more quick releases next week - but this is for some fun during the weekend ;-)
This also has a few small improvements in the mechanic modes we have recently added. It's not a big release but keep in mind: The last one just came this morning ;-)
Full Release Notes
Changed the wording for "Store Replay Data" in Performance Settings there because this data is needed for the stats, so this is now called "Store Replay Data (needed for Stats)!"
Added explicit multipliers for the different modes (i.e. you see those multipliers in the selections now). Also, added a Toggle for Easy Mode in the Themes screen, to make this more explicit (before, this was implicitly activated or deactivated when selecting the different mechanics).
Music Library / Configuration: Renamed useLocalMP3s, pathLocalMP3s and pathLocalSongsJsonFileSystemCache to useLocalMusic, pathLocalMusic and pathLocalMusicJsonFileSystemCache because we support much more than only MP3 now. The old configuration entries are still there because we need them to port the data over, but will be removed at some point in time.
Local Music: When scanning for local music, we now do a full recursive search through all folders below the main folder form the configuration, in the case that the initial search only returns a few songs. This is because going directly to the files apparently doesn't work well with folder links.
Local Music: Added support for showing album art based on any jpg, png or gif in the folder where the audio file is (usually an album). This is a fallback if we cannot get the album art from the audio file.
Local Music: Generating meta-data for 5 "virtual beatmaps" which have different difficulty presets. Also, assigning proper beatmap IDs for those now.
Local Music: Added progress for loading audio.
Local Music: Added progress for analyzing audio and generating beatmap.
Holodance V0.9.0a12: More Fileformats, Better Orb Placement
Stuck After Song Bug Fixed
In the previous version, I introduced a bug that you'll see when you have disabled "Store Replay Data" in the Performance Settings.
EDIT: That bug is now fixed via a hotfix I just pushed online this morning.
Local Songs: More Fileformats, Better Orb Placement
So, the actual news are only two bullet points - but if you have a large music library that's not strictly MP3, you'll be very happy about this:
Local Songs: We'll no longer call this "Local MP3s" because we now support: mp3 (well, we've had that - but just to be sure people randomly bumping into this don't get confused), flac, ogg, opus, m4a, wma, wav.
Procedural Beatmapping: First version of Discookie's placement algorithm. Currently, this is the only option, and we're still working on improving this. In one of the next releases, we'll let you select different maps (aka difficulties) with different algorithms. So if you like the random orb placement from the previous version - don't worry, you'll be able to play this again soon.
Holodance V0.9.0a11: Alpha - New Game Modes, Laserblades
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.