Developer postOriginal post (opens in a new tab)

Holodance V0.9.0b21 (beta): Tech Update, Mixed Reality, Bugfixes

During the last few months, I worked primarily on the in-VR beatmap editor. Unfortunately, this isn't ready for this release, yet. However, we also did quite a few technology updates and bugfixes that we silently pushed to separate branches dedicated to different Unity versions and eventually also (finally) updated to the new SteamVR Unity integration which has SteamVR Input 2.0. This lays the foundation for full Valve Index support. For now, it gives you the ability to re-bind input according to your preferences.

Update Highlights

  • LIV Mixed Reality support is finally working again
  • Story Mode Level 1 / Paradise Beach has significantly improved performance and also looks better (the Ocean and sky in particular)
  • Slicing OctaDrops works much better now
  • The stats shown in Game Progression can now either use the legacy system (Steamworks), or our new server. For more details on what is changing here, see: Building Our Own Backend Server
  • Story Mode: Fixed the one event that was broken that prevented the "Knows The Secrets" achievement from being unlocked. This is secret is hidden in the tutorial.

Chronological Changes List

  • Updated to Unity 2018.4.3f1.
  • Removed old UNET (Unity Networking) code and promised myself to never ever touch a networking solution by Unity again.
  • Ported from using WWW to using UnityWebRequest; this should also solve some image loading hiccups in the Music Library.
  • Updated PostProcessing v2 from 2.1.4 to 2.1.7
  • Updated Oculus SDK from 1.29.1 to 1.36
  • Unity to Unity 2019.1.9f1.
  • Story Mode Bugfix: In Level 11, there were several fires where the background transparency was broken. Fixed.
  • Story Mode: Level 12 - this is a huge level but almost everything the player sees is at a large distance, so reduced lightmap resolution from 0.8 to 0.05 to improve baking time and significantly reduce memory consumption. This reduced the project asset
  • size from 750MB down to 40MB (in the build, the difference is much smaller but haven't checked the build size, yet).
  • Story Mode, Level 9 (Ice Desert): Optimized lightmapping for higher quality with lower memory consumption (this is also a huge area, and we have increased the detail right around the player, while significantly decreasing the detail in the wider area). This reduced the project asset size from 300MB down to 200MB. Altogether, the build size went from 6.3 GB down to 5.9 GB, download size from 2.3 GB to 2.2 GB. So that's nice.
  • Updated to Unity 2019.1.10 - this fixes the Toggle issue that caused our language selection to go crazy (I already had a workaround implemented but that workaround unfortunately didn't fix the issue as reliably as it should have).
  • Updated Volumetric Fog to 10.4
  • Updated HxVolumetrigLighting to 1.3.6e
  • Performance UI Polishing: Retro Clubbing and Triggered (available in Beat the Rhythm) have flashing lights that are always disabled when Flashes are disabled in the comfort settings. This could be confusing when the performance option is switched on but overridden by the photosensitive comfort setting. To prevent that kind of confusion, the performance Toggles are now disabled (non-interactive) when the comfort-setting has Flashes disabled, and an explanatory message is shown.
  • Updated LIV SDK from v0.1.0 to v0.1.5
  • Fixed LIV support
  • Fixed LIV-Issue: Progress from compositor showed up permanently in Mixed Reality because LIV SDK uses its own layer masks; fixed by adapting our approach (using VR-camera as base, and then adding/removing layers as needed, via two properties; we only need to remove one single layer)
  • Added Mixed Reality UI (LIV-logo, Mixed Reality label etc.) also to our Minimal UI because Mixed Reality might "kick off" already before entering "Streamer Mode".
  • Very nice: Using PostProcessing v2 instead of v1, bloom and color grading is now compatible with Mixed Reality. That is so cool!
  • Stage Paradise Beach / Story Mode Level 1: Massively improved quality of the sky while at the same time making the file size significantly smaller.
  • Applied similar changes to Level 2 ("Above the Clouds") and Level 9 ("Freezing Cold").
  • Removed the brief cleanup pause before and after songs because it was disorienting and should no longer be needed with Incremental Garbage Collection.
  • Time Dilation: For slicing, we had moved the Velocity Tracker into the blade - because that's usually what we want to derive velocity from. For Laserblade Time Dilation, however, the fun is in allowing intense rotations of the blades without speeding up time, and only speeding up time when the handle is moved quickly. To restore this feature, we now have two Velocity Trackers attached to the laserblades: One in the handle, for Time Dilation, and one in the blade, for everything else.
  • OctaDrop Orb Theme: Added proper physics for punched OctaDrops when they hit the ground.
  • OctaDrop Orb Theme: Added pretty decent physics for sliced OctaDrops when they hit the ground
  • Level 01 / Paradise Beach: Replaced PlayWay Water with Crest Ocean Renderer. Looks better, has much better performance, causes a lot less trouble.
  • Level 01 (Story Mode) / Paradise Beach: Major improvements to the look of the water; also fixed several issues in the environment (like, the beach falling off like a pool).
  • Retro Clubbing / Sci-Fi Attack: Fixed issue where fog was uniform instead of noisy. That bug had been introduced just recently.
  • Porting to SteamVR Unity Plugin 2.0 (SteamVR Input 2.0): Step 1: Package-ified SteamVR Unity Plugin 1.2.3 to make switching easier.
  • Performance Optimization: Removed roughly 0.5KB of memory allocations each frame.
  • Porting to SteamVR Unity Plugin 2.0 (SteamVR Input 2.0): Step 2: Switched to SteamVR Unity Plugin 2.3.2, fixed all the compilation issues (those were quite a few), adapted code to a simplified version of the actions. Works. Yay!
  • LIV Integration: Updated LIV-Logo to new style.
  • Porting to SteamVR Input 2.0: Step 3: Proper implementation of different actions (instead of faking them). We now use: InteractUI, Pause, Skip, LetGo, Scroll and Fire. Pause and Skip can be mapped separately for "playing". Fire should only be in the Action Set "gun" (for the gun mechanic) but due to an apparent bug in the Input system, added a fallback in the default Action Set for now.
  • Cleaned up the whole startup procedure: This fixes several warnings and errors during startup and made the whole thing more reliable.
  • Game Progression: Added an option to display the old Steam data.
  • Avatar System: Fixed a few issues, including a crash when selecting Jane. We had to remove the arms length setup. Eventually, we'll replace this whole system with something way better.
  • Updated Oculus Desktop from 1.36 to 1.38.1
  • Updated XR Legacy Input Helpers from 2.0.4 to 2.0.6
  • Performance: Minor memory allocation fixes (partially introduced with SteamVR 2.0)
  • Story Mode: Fixed the one event that was broken that prevented the "Knows The Secrets" achievement from being unlocked.