Thank you for your patience - it's been more than two months since the last release. But this is a big one. If you'd rather see a video - here you go: Holodance V0.5.8 - osu Beatmap Gameplay
First of all: osu! Beatmap support, at last! It's not quite perfect, yet, but you should be able to play any beatmap you can get your hands on already. If you find one that doesn't work, please let us know which one it is via the forums and we'll have a close look. The most important known issue: Sliders work but they need a lot more work. Aside of Gamescom consuming that much time and me really needing some time to recover afterwards, those sliders really bit me because I thought "we'll I already have curves for the floating splines in Level 7 so this should be easy". No, it wasn't because what I had were Beziers and what osu! has are a lot of really awesome types of curves. Sliders in Holodance are not quite as awesome as in osu!, yet, but trust me, that will come.
Another thing to be aware of with this build: We're already working on our own beatmap editor. It turned that I need to have this to complete levels 4 and 5 and make a much better version of level 6. Once again, it's the floating spines that are a challenge but the native Holodance floating spines will eventually be ... well ... I'm excited about them. Very much!
What else: We basically have all level environments ready now. The advanced air levels (Level 4 and 8) might kill your machine, those are not optimized, and they also still look very buggy (especially Level 4). But I still felt I want to put them in already for you to give them a try. Also, Level 9 is pretty much ready (still has some visual artefacts but is also pretty much done). If you're fast you can easily enter a preview of Level 12 (that's in the current build, I'll fix that later today ... but either way, you can enter that via the party mode).
Oh, yeah, party mode: You can now play the long Gamescom demo with local highscores. Simply activate party mode, have a look at the companion Window UI (the way this works: "Add Player", enter the name of the next player, have them put on headset and controllers, "Start Session" and they're in). These highscores are stored in a local file. This will be more polished over time, including ways to create your own playlists but I didn't want to delay this release any longer.
Also, check out the tutorial in Level 1. We've done a lot of work on this one. Still some more to come. Most important: You should now always be able to highfive / fistbump Pritvitej (even with very small play areas).
We've also done quite a bit of work on multiplayer but this just isn't quite ready, yet, and will still take a little while because we focus on content and the editor first for the next few weeks.
And quite a few nasty bugs are fixed.
Here the full list:
- Tweaked the Streamer Mode quite a bit: You can now switch the logo off, we've added another camera "forward close" and re-arranged the toggles for the different cameras to make more sense
- Now using the new Unity Post-FX shader (this is awesome): Bloom looks much better, we have some color grading and it performs really well.
- Fixed the beach (underwater) in Level 1 ... at least mostly (this is still not perfect but as this part is usually under water, it should be fine the way it is now)
- Improved Lightmapping settings for most levels, in particular Level 6 and 7 (this should significantly reduce download time, startup time and memory consumption for these levels without sacrificing visual fidelity)
- Major color / mood update for the water levels (3, 6 and 7) to improve the contrast between the three stages (those are most obvious in the water levels, so this needs to be done right); also fixed some of the broken geometry ("flying corals") and much improved where dolphins roam in Level 3 ... the water-environments are now fairly close to final.
- Finally put Holodance under version control (GIT / Bitbucket ... we're using our own server). I can't believe I worked on this project this long without version control.
- Another major project cleanup (was necessary to properly work with GIT)
- Added Simul trueSky to project, built a prototype for Level 4; not sure if we can use this due to performance considerations (with nice quality, this takes 9ms per frame on a 980 Ti, so don't even think about using this on 970 or PlayStation VR ... but with Single-Pass Stereo Rendering and lower quality settings, this may actually work; SPSR is not properly supported, yet, but maybe it soon will be)
- Updated SteamVR Unity Plugin to V1.1.1
- Added precise labels for the work-in-progress levels so you can see for each level what the current status is
- Made curved target area more obvious (if you don't like it, you can switch it off; eventually we'll let you control how visible this is)
- Added proper recognition for GeForce 1060, 1070 and 1080
- Improved persistence of "Bloom" setting and also made sure we never have bloom when using scaling (because it makes the view become terribly distorted), scaling is applied for quality settings 970 and 980, on those GPUs, Bloom is too expensive, anyways ...
- Completed removed "The Lab Renderer" (removed all components, removed files from project). It was a nice try but just didn't give us the benefits we had hoped for and instead only caused a lot of trouble. It's still awesome that Valve has made this available but it's something you need to integrate into the project right in the planning phase, and you should have a really good shader programmer to tweak it according to your specific needs.
- Fixed Splashscreen Image (this still had the old Holodance-Logo)
- Refactored max level and max track in level to be available without Steam
- Multiplayer: Disabled Position-Update Throttling for local Multiplayer (unfortunately, we need to throttle this to 30 FPS when using Unity's matchmaking service)
- Multiplayer: Added a new companion view UI to manage all multiplayer related stuff (this is mostly for multiplayer development because it significantly shortens the implement/play/test cycles because there are a lot of things we can do now without even going into VR which always adds some time needed)
- Multiplayer: Added support for VR-less clients (or servers) that can use for watching a VR session of other players (we'll use this for our Mixed Reality rendering at Gamescom)
- We have added a little surprise for players that successfully complete Track 4 of Level 11 ... this is just a tiny little preview but still, we think you might like it
- Added a completely new intro sequence for level 1 that's much less boring
- Fixed positions of orbs in tutorial (they were previously way too low)
- Fixed mute in tutorial (volume was reduced a little bit ... but just a tiny little bit)
- Fixed a really old and very annoying bug that was only sporadic in most cases but got easy to reproduce in the new tutorial in Level 1: Sometimes, orbs that were not caught got "stuck" behind the player until the end of the session; this was due to a timing issue that usually only occurred under high load ... glad to have that fixed
- Fixed the orb positions and speed in the very first "catch orb" tutorial to be a little easier and also require less space (just in case someone has a super-small play area ... or someone has someone standing next to them)
- Major work on the "Party Mode" (which we're using for demos): Party mode lets you define a sequence of levels and tracks and then collects the score over the whole session; this supports multiple players and keeping track of everyone's score individually in a local leaderboard
- Added spatialization back in, this time with Oculus spatializer (once again, we did use it in early prototypes) => and then we have removed it again because it trashed performance ...
- Major cleanup in our environments / scenes / levels
- Started working on the beatmap editor prototype and visualization tool. At the moment, you cannot actually edit anything - but you can view the data already.
- Introduced a way to "focus" on instrument tracks. As Unity's audio mixer is designed in a way that would make it very cumbersome to use for this (and in fact, impossible to use for dynamically loaded content), we're using AudioSource.volume and decreased the default volume, which we compensated for by increasing the volume in the audio-mixer. If the music feels too loud (or not loud enough), this may be a result of that change ... please let us know!
- (Hopefully) fixed an issue where sometimes, tracks where you missed one of the last notes to be played would stay muted (even when that track isn't played by you anymore)
- Fixed a bug that was particularly apparent (and easy to reproduce) when pointing on the track progress UI (the little blue circles on top left): This resulted in the level images getting closer and closer to the player. This no longer happens and there's also no going back and forth when pointing at those circles anymore.
- During level-loading, we now have a nice loading screen in the companion Window
- Improved how in-VR UIs are handled. In the previous version, having an in-VR UI available always disabled the companion view UI. Also, the accumulated hall of fame did not react to the laser pointer. Now, the companion view UI is only disabled when the player in VR points to UI elements in VR with the laser pointer or when he has a level in front of him. It's not perfect, yet, but better than before.
- Level-07 now also has a submarine (currently it's looped, in the final version, this will pass by the player at specific times)
- Levels 04 and 08 now have some air-planes creating quite a bit of noise
- Experimentally trying Single-Pass Stereo Rendering: Water gets some flickering (Level 1), clouds do not work at all (Levels 4 and 8). Everything else seems to work fine. Will provide an experimental branch with this active soon.
- Integrated a much improved version of Level 9 (the ice desert). This still has some UV-mapping issues causing lighting artifacts but it's already quite close to the final version. The lighting artifacts will be cleaned up when we optimize the level (it's not optimized, yet). This also already has background audio.
- Added setting for "Bloom on/off" back to main settings window; we've had this there before but had removed it and then it was only available in the pause menu, where we still have it as well, but it really should be in the main settings along with particles (and some future quality settings)
- Fixed Shader Issue in Level 01 that caused geometry directly around the player to appear to be floating (which it really wasn't - it just looked like it because of a shader bug)
- Did some color grading in Levels 2, 5 and 9
- Fixed Cell Tower Location in Level 5 (previously, it was actually quite hard to see because it was too far and kind of in a hidden spot)
- Updated to most recent version of PlayStation VR example project (which has some fixes for the current Unity version)
- Built a theme system for "flying notes": Now each level can define a set of colors for different note types (that way, we can make sure the colors are visible well for each level), and each level can also define specific prefabs (styles) for the notes, which is something we'll use for levels 10 and 11. When a level does not define a style (or colors), you can also select a theme you like. We already use this internally but you can't select themes, yet.
- Improved Player Height Calibration (once again ;-) ).
- Rotating target area towards current notes source when it changes abruptly instead of switching direction also abruptly. This makes it much easier to follow the direction (it's still not easy but that's by design - after all, this is Level 10).
- Initial osu! beatmap support - YEAH!!!
- Disabled Subsurface Scattering in the water in Level 1 because there was a bug causing flickering with it enabled. This bug is actually already fixed. Note to self: Need to reset this.
- Added first bonus level: A sci-fi tower-defense style level that is very much music aware. This also acts as a demo of how bonus levels in Holodance can be made "music aware"
- Finally found out what was causing the "blue flickering" in the level selection scene: Apparently, Unity has a bug in the SpriteRenderer that causes this under very specific and yet kind of mysterious circumstances. The changing the "track bubbles" (the blue circles showing the track progress in each level top left of the images) from using SpriteRenderers to Images.
- Fixed a long-standing bug that occurred frequently in Level 6 with the floating spline mechanic: Here, we have two splines that the player needs to follow simultaneously. Before this fix, losing one sphere would result in the instrument being muted. Now, the instrument is only muted if you lose both spheres.
- Implemented new "Orb-Type" Spinner (which was necessary for full osu! beatmap support). Currently, we're only using this in osu! beatmaps but it's a fun mechanic, so this may very well change
- We now have both an 8x4 (= 4x2 = 2x1) target area as well as a new 4x3 (8x6) curved target area, which we need for osu! support. All built-in songs will keep the 8x4 for now, but I will experiment with 4x3 as well because it does provide possibilities for interesting gameplay (makes you move up/down a lot more :wink: )
- Built a JSON cache for the osu-folders filestructure, that way, scanning time goes from 21 seconds to 3 seconds (with a library of 231 songs). Also, we keep a local count of how often a song was played and when a song was played the last time (which we can later use for a "last played" list and "favorites" list)
- Made it possible to play any song with any level (in principle); this is currently only tested for the osu-player
- Fixed bug that caused multiple target areas to appear when player paused game while playing a song (edited)
- Fixed quality settings to use renderScale instead of renderViewportScale because renderViewportScale breaks image effects (there's a work around but actually, for how we use that, renderViewportScale seems to be the wrong thing, anyways)
- Applied some fixes to how dragon audio is handled; this should be more robust now, in particular when skipping
- Removed transparency from orbs to make them significantly easier to see
- Improved architecture of how skipping is handled (the old approach was fairly error prone and not particularly flexible)