just in case you missed it: Holodance takes part in the Steam Lunar New Year Sale, so if you don't have it, yet - now's a really good time to get it at a 50% discount (so that's $9.99 instead of $19.99). Please let everyone else know! ;-)
And those coming in from the sale: The default branch has received no updates in the last 6 months because we've been building our own server backend ... but we have a pretty long list of changes, including the long awaited native Oculus support on the beta-branch.
So, if you want to try something new, or if you use a Rift - make sure to opt-in to the beta. If you have never opted-in to a beta, check the Product Beta section in this guide.
A lot of work went into the Octadrop and Guns game mechanics, so be sure to check those out! Also, we're getting new leaderboards :-)
If you are really courageous, try the alphadev-branch: That's the bleeding edge of development and has been updated almost daily during the last two weeks.
This was (and still is) a big one! I actually knew we needed our own backend server for a very long time: One reason Holodance is still only available on Steam is because I heavily relied on the Steamworks backend for leaderboards, achievements and keeping state for players (i.e. progress in the game, mostly for Story Mode). In order to let you play with people on other platforms, like Oculus Home, Windows Store or PlayStation Network, we either need to use a third party service (there are some, like PlayFab or GameSparks, or roll our own.
With our second game, Beat the Rhythm VR, we not only want cross-platform but cross-game: All the community features, like leaderboards, song and beatmap quality rankings, session streams and so forth should be consistent and shared among both games, so that we can have one (hopefully) large community for both games, instead of two smaller, isolated player communities.
And there’s another thing: I’m still working on our own in-VR beatmap editor and the fun with that really only starts when you can conveniently share your hard mapping work with your fellow players. Which opens a whole other can of worms and tricky challenges that need to be faced.
Having our own backend server solves a lot of these issues; even if solving some of these issues makes developing that backend server significantly more complex than just a leaderboard-system.
A little Personal History
Before I started working on VR games full-time in 2015, after several years of doing it “on the side” (since 2007), as freelance software-engineer I had a really decent income. Which was really cool! But that was due to taking whatever software-engineering project came along. That was still kind of fun. But when I’m totally honest, this wasn’t really what I was here for, and I had known that for sure at least since 2007 … but really, as a hunch much much longer. Most of my time, I spent working with databases, Web frontends, early Java days mobile apps, some of which I developed from scratch on my own, some large and complex systems that had grown over many years, that I worked on in small teams.
One reason it took a long while to get started with this was because I knew I’d be facing some old demons when getting back into this, and I honestly wasn’t looking forward to that. While I know I can do these things, and actually do them quite well, I’d honestly rather have paid someone … except I know how much that would cost, and we have to be super-careful with our budget (2018 was twice as good as 2017, and 2017 three times as good as 2016 — but we* still have very little liquid cash and roughly €100K open loans … also, it’s not so hard to double and triple your revenue when you start from a base of roughly €10,000 … per year … revenue).
*we currently actually only means me, working from my basement to be able to sustain the company
When I finally did get started, I first spent a lot of time figuring out which technology stack to use, and learning to use that technology stack. That was fun — I love learning new things, and in terms of server backends and Web development, I was living at least 10 years in the past, probably more like 15 years. Eventually, I got it rolling and we have now had the new leaderboard and progress tracking on the alphadev branch of Holodance for a little while, we also already use it for a little side project based in Beat the Rhythm that I did for money called Beat Challenge or 节奏激战 (this one’s currently only available in China, for the Lenovo Mirage AR headset), and the internal builds of Beat the Rhythm. This is on the beta now for Holodance, so by the time we release Beat the Rhythm, it will have been in production for a little while (you may have noticed that we just pushed the release of Beat the Rhythm from “Fall 2018” to “Spring 2019”).
It’s done … well … almost!
(and we all know what that means ;-) )
The hardest parts are done. Obviously, there is still a lot more work on this end, but I am super-happy that the foundation is there and I can now build out the various systems step-by-step, one at a time.
There was a price to pay: One of the things I really enjoy about developing games is that it’s an incredible creative and lively process. Sometimes, I have an idea of my own, or a request coming in from a player in the middle of the night (Hello Discord), start coding in the morning, and can play test this new idea in the afternoon, to share it with you in the evening. Then, of course, there’s usually several days, sometimes weeks, sometimes months of polishing until it behaves in the most fun way — but it’s usually a fun process that involves designing game play mechanics, coding, visuals and effects, sometimes audio.
I have been missing that during the last few months, and after my last meditation retreat, I took a little break from the server work to play with something new. That will go into Devlog 3, so stay tuned!
One (fairly big) concern …
One final thing, also to get a little discussion going: Until recently, I wanted to use the game play data that we have been keeping on player’s PCs to rebuild the complete history on our server. In other words, upload your game sessions, rebuild the leaderboards from that, basically “migrate” everything. Technically, this is possible, and I could still do it … but there are a few concerns:
First of all, it does add a lot of complexity. There are a lot of things to be taken care of, and it would add a significant amount of time just to set up a reliable synchronization mechanism that can handle years worth of gameplay data without interrupting gameplay. We also changed the data format a few times, so that’s also something to be careful about.
Then, that data is not necessarily complete or reliable: You can disable recording the movement data, or you might have deleted the GameData folder — when it’s gone, it’s gone. So, the restored history would not be as complete as one would wish for.
A related issue: Without the movement data, there is a bit of potential for cheating by messing with the session data. With the new system, we’ll only record your session for the leaderboards if you opt-in to including the movement data. That way, cheating becomes near impossible. But handing that for lots of past (and partially incomplete) data is quite tricky.
Finally, there’s the privacy issue: I honestly don’t feel comfortable uploading up to three years of gameplay sessions to a new system without asking (and under current EU privacy laws, that would be illegal, too). But when I ask, I kind of invite people to cheat (say “no” now, mess with the data, then say “yes”). This is much easier with current / future data that is generated while playing.
So, at the moment, I lean towards making this a fresh start, probably even with a few resets during beta, to be able to polish how we store things without having to carry the burden of migrating. When I made some changes to how scoring works, player feedback on “wiping the leaderboards” was fairly positive — Holodance is still in Early Access, Beat the Rhythm not even released, yet, so that kind of thing is not totally unexpected. But still, it’s something I’m not taking lightly (which is also the reason why I haven’t updated the default-branch and only did alphadev- and now beta-updates for about six months).
When we started developing Holodance, which was originally called "Holodance Episode 1: Dancing with Dragons", after a few early prototypes, we fairly quickly moved into what is now called Story Mode and then, a lot of time went into building environments, modeling and animating dragons, voice-acting, making it all work together.
Of course, we also did polish the actual gameplay mechanics, added the target grid, added various ways of showing you how your score came about and even added orb themes and orbs with different shapes and materials.
But there were always a lot of other pressing things that needed to be done: Free Mode, properly handling osu! beatmaps, a music library so you could conveniently find music that you enjoy playing. Procedural mapping. More environments. Laserblades, guns ... lots of stuff a lot of people (including myself) enjoy.
Long story short, for Beat the Rhythm (and most of this work also immediately goes into Holodance), I'm kind of going back to the drawing board - with almost three years of VR rhythm game development (and playing ;-) ) experience. What I'm striving for is figuring out the most fun ways to interact with the music - and building the design and visual effects (and later also audio-effects) around that.
I have already talked a little about the new "orb theme" that we're building for Beat the Rhythm, which is also already available in Holodance in the V0.9.0b10 release notes.
Here's quick look a little tool I'm building to improve iteration times, test various color schemes and different ways of "dealing" with those orbs (if you click it, you get to the full YouTube video):
Let us know what you think in the comments!
Full Release Notes
Beat the Rhythm: Small Fixes in BtR Octagonal Drops (now called OctaDrops) - sliders and spinners are no longer completely broken with this theme but they are still using the old style and logic; that will change soon (and be also available for the old orb-themes).
Fixed file paths: Originally, we kept everything next to the game folder - but this does not work on all platforms, so this was now changed to a more appropriate location. Existing game installations should not be effected (spoiler alert - they were and the change that made this happen went live with the previous release, ooops :-/ ).
Cleanup: Removed "resources" which are automatically included in the builds, even if not used or not even working on a given platform, quite aggressively. I had done some of this before - but unfortunately, those changes got reverted in one of the updates.
Fixed file paths 2: Due to an earlier change, Configuration.json could land in Holodance_Data instead of the main game folder (the parent folder of Configuration.json). This no longer can happen - we now use the game folder again, and also do some cleanup in case players had run this version. If you made changes in Holodance_Data/Configuration.json and also had the file in the original location, Holodance will use the original file again and clean up the one in the wrong folder. If you only had the file in the wrong folder, Holodance will move it to the correct location and use it from there.
Beat the Rhythm "Octagonal Drops" / Octadrops: Major work on making appearing, disappearing and slicing those octagonal drops look awesome.
This is another fairly small release but it fixes one important issue and adds something fun:
It's kind of common to use 32-bit integers to store scores. In fact, it is so common that this is also how they are stored in the Steam leaderboards. The problem: We keep track of an accumulated score, each session can give you up to a few million, and (this is not a problem but awesome): We have some very active players. So, currently, three players "hit the ceiling" when it comes to the accumulated score: MechanicaL, koolaide95 and liqiyang.
This version changes how that score is stored internally, and also added a little hacky patch to at least display the correct score in-game, even when it's above 2,147,483,647 (maximum value a signed 32-bit integer can have).
While I was at it, I also added a first version of our "Game Progression" page:
The numbers in parenthesis are your rank in the leaderboards ... and yes ... we've had Style and Skill leaderboards for a little while but they are not shown in the game, yet.
You can view your progress at any time either via Pause or Game Settings:
... and ... I figured you'd usually want to see this right after playing a session, so I also included this pane in the after session stats, and re-arranged the layout a little:
So, while this is still kind of a small update, I hope you'll enjoy this new feature. Eventually, Game Progression will also let you access various leaderboards (which will also get a major visual polishing round), become more graphical and give you more convenient access to the different game mechanics.
Meanwhile, I'm also working on native Oculus and Windows VR (aka WMR) support, and multiplatform and making very nice progress there as well.
Full Release Notes
Accumulated Score: As we were using integers to keep track of the accumulated score (32-bit signed, to be precise), the maximum possible accumulated score was 2,147,483,647. We currently have three players (MechanicaL, koolaide95 and liqiyang) who hit that limit. Internally, this update moves tracking that score to a floating point value, which lets us go into numbers of any size - at the expense of some precision. The problem: Steam's leaderboards also use int. But with a little hack, we can display your actual score even there.
Game Progression: At any time via the settings, and also after each song, you can now check some progression stats: Your accumulated total score, how many notes you have caught (orbs, sliders, spinners), how many sessions you played (playing the same song multiple times counts multiple times), how many full combos or perfect sessions you have had, how often you started the game, and your current skill and style level, as well as the last skill / style level. Accumulated score, and skill and style level also have your current rank in the leaderboards.
So, this has been kind of an embarrassing one, tbh: I love Mixed Reality, a lot, and we have done plenty of Mixed Reality videos in the past. But during development, I don't always get to to MR-stuff ... and it turned out that both our 3rd party Mixed Reality integrations (LIV and MixCast) were both broken. Sorry everyone!
The other thing is something that during my vacation, I realized that Beat the Rhythm (and optionally also Holodance) might become much more interesting if we allowed beatmappers to define orbs for specific hands (as it was introduced by Audioshield), and specific directions (as it was introduced by BoxVR). Obviously this doesn't mean that we'll drop our orbs that you can take with any hand, in any direction ... but the "new thing" is not even an orb anymore. It's modeled as an octagonally shaped drop:
While we may still polish the design, the idea should be quite obvious: Due to the drop-like shape (which has direction), which is emphasized by the outline, the direction is immediately obvious without needing arrows or anything like that. Also, if you have followed the development of Holodance for a longer time, you noticed that we added outlines around the circles because we had visibility issues in bright environments. This shape doesn't have those issues.
One thing you don't see here, yet, is that we can also place symbols for 2x, 3x, 4x, long combo, almost full combo and combo. Those will be very simple (two dots, three dots, four dots, like dice, and a more or less filled square) and will be placed depending on the direction so that they are always inside the dark area (and with the same color as the outline).
With osu! maps, in many maps, there are a lot of very short, straight sliders that never really worked well in Holodance (they were basically just orbs in terms of gameplay). Those will become directional drops. The others will be straight (like the center one). Also, we have 5 colors, so head, hands and feet can be "assigned".
A very early prototype of this new "orb theme" is in this build - and while this is quite early (don't play this with sliders or spinners, yet, it's broken for those), I think you'll like the "physicality" of the behavior.
Full Release Notes
Orbs will be Drops: Well, not always, but a work in progress "orb" theme is now available in the Theme selection - it's called "Beat the Rhythm 2" and either play it with the Casual mechanic, or manually disable Sliders and Spinners if you want to try this.
Added a Privacy button to Pause and Settings that for now lets you opt-out of Analytics and get the data that has been collected. Eventually, this will become its own area with more settings - especially our upcoming community features will be quite interesting in that regard.
LIV SDK Integration: Updated to SDK version 0.1.1. Also fixed an issue with the foreground transparency layer.
MixCast Integration: Fixed issue that the MixCast button didn't show up in Streamer Mode even when it should have showed up. The way this works: You need to have either a 3rd controller or a Vive Tracker, or a driver that emulates that third controller / tracker active. Then, when you activate Streamer Mode, and activate the "Mixed Reality" camera, the MixCast button will appear.
Music Library: Fixed another issue that could cause caching to fail.
Music Library: Random now immediately delivers 7 songs instead of just one.
Music Library: May have fixed the issue that caused panes to go crazy after songs (disappearing, being stuck under the play area). This issue happened sporadically before, and I haven't done the "full big refactoring" that was supposed to fix this issue, yet ... but I may have found a single cause that triggered most of these issues, and if that really was it, it's now fixed.
Removed Unity Analytics for now, to comply with GDPR. UT has released an opt-out plugin just today but I kind of doubt that this will work reliably for VR and I'm leaving for a vacation in just a few hours. Also disabled HW statistics.
This is a fairly small release and I'm pushing it immediately only because it should fix the audio-stuttering that we've had in the previous release, which caused us to revert to a version before that. In case you still experience audio-stuttering issues, please let me know!
This version still doesn't work with SteamVR beta but Valve is aware of the issue and we know the cause already. From the looks of it, it's something that they will fix in SteamVR / OpenVR, and so far, I haven't found a way to work around this issue from my code. Valve fixed the SteamVR beta crashbug with SteamVR Beta Updated (1526522336)
Update 2018-05-17: There was an issue with caching - that is now fixed in this same release. I did a "hotfix" ;-)
Full Release Notes
Level 07 / Submarine Nightmare: Reduced how often the submarine shows up - before, it was about once every 45 seconds. Now it's only once every 4 1/2 minutes.
Level 11 / Asteroids: The Asteroids originally just moved and eventually would distribute into outer space. Now, they re-appear after exceeding a maximum distance. This can cause asteroids passing through each other close to the player but that seems like less of a problem than eventually, all asteroids being gone. Adding collisions between the asteroids, while certainly being quite interesting, would create quite a few problems so we don't do this for now ... but maybe some day.
Leaderboards: We are now shadowbanning in-game leaderboard entries by players that cheat. If you still find any leaderboard entries that look like something is wrong, either in the accumulated scores, or on a specific beatmap - please let us know (screenshots with the title visible help a lot finding those quickly).
Performance Settings: Anti Aliasing setting is now persistent.
Mutant Club: Fixed issue with light textures that were causing little "circles" appearing mid-air.
UI: Pushing UI back into VR now works without workarounds (pause / unpause did restore it before - but that's not needed anymore).
Fixed Audio Stuttering issue
Fixed issues with the old "smiley-style" Score HUD.
... because it will crash Holodance on startup. This does not happen with the current default (non-beta) SteamVR branch. I'm filing this with Valve and will try to come up with a workaround. The crash does not happen immediately but during initialization, so we're probably calling something in OpenVR that worked before, and now no longer works. Other games may or may not be effected depending on whether or not they call that broken function (I don't know which one it is, yet).
Most important change with this release: We have activated HDR and tuned down some of the bloom and glowing effects. It still may be too much in some environments and also with the dragon stripe emission glowing. Let us know what you think (obviously, bloom has to be active in the performance settings, and this is an effect that has quite an impact on performance, so if you're on lower spec hardware, you'll probably want to avoid it).
This also has a little fix in Story Mode: The strip emission glowing didn't work for Vayusah in Level 2 - now it does ;-)
Another important change: Sliders are more forgiving now in terms of where you actually follow them. So being a little ahead or behind the sphere (on Z, which means back/forth) is okay now. I think this doesn't necessarily make the game easier but make it feel more fair and less frustrating. We'll have more work done to the sliders over time.
The gun mechanic has also been polished a little, and the previews in the Music Library should no longer cause performance issues (and also work much more reliably).
Also, we now have the meta-data of all ranked osu! maps from 2007 to 2018-03, so that's more than 12,000 songs now, and quite a bit more than 60,000 beatmaps for you to play with.
You can now also pull the Music Library to the flatscreen UI which may be useful to set up favorites (and soon playlists). This feature is still very raw and unpolished but I use it during development and felt it may be useful to you, too. Most importantly, you may have to restart the game after you pulled the UI to the flatscreen because pushing it back to VR seems to not work that well, yet (you may be able to fix that by pause / unpause but I haven't tried).
Also, we removed the "Holodance Impact Timer". This was really old, and causing trouble. Let us know in case you miss it. I think the other Impact Timers are all much better and spending time keeping that old thing working seemed like I'd better spend this on other things with higher value.
Finally, we have done some work on Beat the Rhythm, and the orb theme we have created for Beat the Rhythm is already available in Holodance. This will still get more polishing but I think it's already fun to play with. For some more information on how Beat the Rhythm compares to Holodance, check out this posting. TL;DR: If you are happy with Holodance, you don't need Beat the Rhythm (but you can support us by getting it, of course). The environments and songs we have created specifically for Beat the Rhythm will be available as addon for Holodance.
Full Release Notes
Mutant Club: We had added a "lightshow" to this environment a long time ago but for "some reason", it never worked. Turns out the issue was that our light show controller usually "forgot" the settings on startup - so it's kind of strange it ever even worked for the Retro Clubbing Environment. This is now fixed and more reliable (was actually in previous release already).
Sci-Fi Attack: This originally had a fog effect that we had disabled because we couldn't support different fog settings in different environments and needed the one in Retro Clubbing. For Beat the Rhythm, we needed yet another variation and meanwhile, different fog settings are properly supported by our fog effect.
Activated HDR which mostly improves the quality of the bloom effect we're using.
Sliders: Made Sliders more forgiving on the Z-axis. One thing that could be really frustrating with Sliders was that they were very strict "on the Z-axis", in other words, you really had to push the controller into the orb while following it. This is now quite a bit more forgiving, so if you have the controller a little behind the moving orb in the slider, or a little before, it will still count. For 2D-sliders as we have them in Free Mode / osu! support, being as strict as we were didn't really add anything interesting to the gameplay, so it was only frustrating, without adding anything - so we changed it.
Moved prewarmed objects back to -10000 so they won't be visible in environments that let you look through the floor (Trippy Tunnels, Asteroids, to name two where this is the case).
Gun Mechanic: When interpolation was active (which it is by default), the orbs only reacted to correct aiming during their "active" phase, which is a short time before the actual beat. While for regular orbs, this helps improve performance and does not have any noticeable effect, it could be irritating with the gun mechanic, so for that mechanic, this is disabled. TL;DR: Now, orbs and drones used for the gun mechanic will always react to correct aiming by showing the target indicator and a short haptic impulse.
UI: Fixed scrollbars (again). They only could be pointed at at the handle - instead of in the whole area, which made quickly jumping to a position impossible. Now this works again.
Analytics: Major redesign of how we use analytics - this will give us much better insight into what features / options are used and what people may not even discover. Also improved device tracking.
Target Area 4x3 (Standard): Made this quite a bit wider because the narrow area felt quite limiting with the radial source. In fact, this was limiting with normal orb sources as well.
Beat the Rhythm (but available in Holodance, too): Casual Orb Theme for Beat the Rhythm done except for Slider paths (the outlines and flat paths don't look well). Gun Orb theme done (except for sliders and spinners - but don't have those for the gun mechanic, yet).
Performance: Removed an issue introduced by MixCast that caused 0.6kb allocation each frame. This significantly reduces the number of hiccups during gameplay.
Game Initialization: Cleanup and better defined states.
Music Library: Moved to persistent selection paths - first step: Mode and search moved over to new data structure.
Music Library: Added meta-data for osu! ranked maps 2017-12 and 2017, 01-03. Fixed issues with preview loading.
Music Library: Improved progress during "Full Rescan!" - previously, we had "Calculating Reference Stats" which looked like it got stuck because the greater part of it didn't have it's own progress. Now, we have three steps "Calculating Stats", each with its own progress.
Local Music: Changed how beatmapSetId and beatmapHash are calculated. This may break lookups for recently played and favorites (but should not).
Music Library: Made caching and previews (images and audio previews) much more robust.
Flatscreen UI: The flatscreen UI now has a button "Pull UI to Flatscreen". If you click this while any UI is active, that UI is transferred from VR to the flatscreen. This can be very useful with the Music Library, if you want to set up favorites, for example. You can also push the UI back to VR (but that may be currently broken).
Story Mode, Level 2: Vayusah's Stripes did not glow up with the rhythm. Now they do again :slightly_smiling_face:
Audio / Level Loading / Avatar System: Fixed issue that caused the level environment sounds to start playing during a session when the Avatars were loaded right after a song was started, resulting in environment sounds and actual gameplay song to be playing together. (edited)
Impact Timers: Removed Holodance Style because it was buggy and ugly. I hope no one will miss this one. We also override your setting for the update back to the default (FullCircleUp) but you can change this back to any of the others if you prefer.
At last! If you have been following the news closely, you saw that I spent a lot of time on V0.9.0b6, with nine builds with incremental bugfixes, polishing, quick fixes, most of them delivered only to the alphadev branch, and some of them going to the beta branch. The last upgrade to the default branch was almost a month ago - so quite a bit has been happening.
Most importantly, I upgraded to Unity 2017.4. If you're wondering why this update has a massive 1.6 GB - that's why! Unity 2017.4 does open up some new possibilities (if you use Oculus and/or Windows MR, this upgrade was a major steps towards native support, even though there is still quite a bit more work to do - to be clear, obviously, Oculus support was possible in much earlier versions of Unity, but the recent versions have seen major improvements to what is supported in native Unity APIs).
Gun Mechanic Polishing and Radial Orb Sources
One thing that was really annoying with the gun mechanic was that due to the orbs coming in from a screen, aiming was unnecessarily challenging. Originally, our orb spawning was designed to be from the extension of a straight line between your chest and the "ideal impact point" and for quite a while, doing the more parallel lines was actually just hacked in. Obviously that old approach is much more suitable for the gun mechanic, so we restored it.
There is a little problem with that: Not all environments even have room for orbs or drones coming from "almost all directions". So there is now a fallback to revert to the orbs coming from a screen or specific object, if necessary.
The way this all works internally is by having different "Grid Styles" and with the non-gun modes (which require a more distant "Grid Style" that cannot be used with the other modes), you can now select 4x3 (that's the default), 4x2 (that's the one we use for Story Mode) and a "tall 4x3" which is useful if you have your feet tracked because it has orbs coming all the way down.
Plus, you can also activate radial mode for all game mechanics (if the environment has enough space - most have, Sci-Fi Attack, Sci-Fi Tunnels, Robots Attack and Full 360 Craze being the exceptions, all conveniently to your right in the selection area).
Here's a video of the radial orb sources: https://www.youtube.com/watch?v=fAUs6y-KNbI This is currently all set up in Settings / Style / Themes, which also has an option to disable the laser sight for the guns. This was requested by digitaldocc about six weeks ago, and I originally thought this wasn't even gonna work. Well, I guess this shows I'm not much of a "gun guy": It actually works really well, and I probably won't ever switch the laser sights back on again. Thanks for the request - I have learnt something!
Game Mechanics Preset Settings
Punching orbs is very different from blocking laserbeams with laserblades, and both of these are extremely different from shooting guns. We have a lot of configuration options to adapt to the different mechanics and a few of those, we already automatically set up when you select a different mechanic (you probably noticed, for example, that we switch to other orb theme ... or that sliders and spinners get automatically disabled when activating laserblades or the gun mechanic).
Those automatic settings are now polished. In particular, all the guides are disabled when the laserblade mechanic is activated, and we've increased the time for the orbs when the gun mechanic is active (I even had this set to 8 beats / fourths but that eventually seemed a little too slow ... but try it) ... because, you can still change all settings after you have selected a game mechanic to play with. This whole area will get a lot more love - but one step at a time.
Small Things, Big Difference (I hope)
The audio preview in the Music Library was very annoying, because it cut in and out abruptly. This is much softer now, but still quick. It's still cut off at the end after the 10 second preview time - that's something I'll eventually also fix but it's a little more involved.
One change that you may or may not like is in Story Mode, and related to the work we did on the "Target Grids" (where the orbs have their ideal impact points): This was tilted downwards. Now it's straight. I like it better - but do you, too? Please give feedback (if you play Story Mode at all).
The following one already was in the beta-release notes, but for the sake of completeness:
Bullet Time 360 Pans in Holodance
https://vimeo.com/265579078 Cameras that are fairly close to the player now have an "auto 360 pan" feature that gets triggered when time slows down. This is obviously inspired by Bullet Time in Matrix. We had a much worse version of this before, this is the second iteration ... it won't be the last (eventually, we'll use Cinemachine with paths for a more natural and fluid camera movement).
Full Release Notes - Since Last Beta
Story Mode Environments in Free Mode: From a very old prototype, we still had a behavior that at the end of a session, the "dragon" would be moved to 20° up (from the player perspective). In Free Mode, when using any of the Story Mode environments, this had the nasty effect of moving the target grid up at the end of each song. Not anymore.
Target Area Styles: We've had several variations in the game for a little while but only implicitly switched between the standard 4x3 and the "far style" for the gun mechanic. Now, we let you select one of three different options in the Theme settings (for punching orbs / laserblades; gun only supports "far", and the others don't support "far", so you can't select far - it is automatically selected when you activate the gun mechanic).
Radial Orb Sources are Back: We've had it in the very earliest prototypes but then moved to letting them orbs come from dragon's hands and later eyes, then, in Free Mode, from a rectangular screen. This proved very bad for the gun mechanic - so now, in any environment that has enough space, you can let the orbs come "radially" from the direction where it's also landing. Kind of hard to put in words, just give it a try.
Story Mode: Straightened out Target Area. We've had a rather uncomfortable angle for the Target Area in Story Mode (IMHO), straightened this out. This way, instead of the orbs coming roughly towards your solar plexus, the should now come more towards your chest or a little above. Please give feedback on this one! We could easily change it to something in-between.
Trippy Tunnels: Fixed tunnels being weird when you rotate your head (this was due to the TunnelFX update, which reverted my fix for this).
Story Mode: Probably still due to the Unity 2017.4 upgrade, animations in Level 2 were broken. Fixed.
Music Library: The audio preview cut in and out in a super-annoying way. Now it quickly fades in / out, which is much much much better. At last! It still cuts off at the end of the preview after about 10 seconds. So this will get another polishing round but it's already a major improvement, especially if you preview lots of songs.
Gun Mechanic: Default BufferAheadQuarters now set to 8 - because having this slow makes a lot more sense ... then back to 4 because 8 seemed a little too long make the arrival time based on orb movement a little difficult for slower songs.
Game Mechanics: For the laserblades mechanic, we usually don't want all the guidance but for the gun mechanic, we should have the impact points and the timer style "osu!" is really best. So, now we set everything up for best defaults for each mechanic. Of course, you can still change everything according to your likes once you have selected a mechanic (but this is still scattered across various screens - eventually, we'll do some major consolidation for this).
Release Notes from Second V0.9.0b6 Release on Beta
Gun Mechanic: The laser sight can now be switched off in the Theme settings. Default is still on. Funny enough: I like it better without ;-)
Simple Gun Orb Theme: While the drone orbs had a really nice "target locked" sprite, the simple "balloon" theme only had a circle that was actually kind of hard to even notice. Now the simple gun orb theme has the same target locked sprite as the drone theme.
Environment The Desert: The color grading wasn't behaving properly in this level when flashes, saturation changes or hue shift from Psychedelic Mode were active. Fixed.
Loading Screen: Fixed issue that loading texts hadn't shown up.
World Position Offset: Change steps for world position offset from 10cm to 5cm because we've had players that needed more fine-grained control. Also increased the maximum offset from 30cm to 40cm. We're conservative with the offset because using a larger offset can give you trouble in Level 3, Story Mode, when the game moves the target area around.
Release Notes from First V0.9.0b6 Release on Beta
Streamer Mode: Removed 360 Rotation camera and replaced with a rotation that works on any close camera. This is activated by checking "Time Dilation Rotation" in the Streamer Mode flatscreen UI. (edited) Streamer Mode: Made "Switch Cameras on Rhythm" persistent.
Gun Mechanic / Drone Orb Theme: The explosions had a fairly annoying distortion that could cause discomfort in VR and didn't really look all that great. Removed.
Laserblades (this was in 0.9.0b5): Added soft trails (instead of the ugly sharp ones) and added particle effects which are activated based on the current combo, as well as much improved "impact particles" which are based on the laserblades instead of the orbs
Logging (this was in 0.9.0b5): Removed logging of when session were stored - this was just bloating the logfiles.
Local Songs: Made configuration for local songs path and osu extra songs more robust against misconfigurations.
Themes: Renamed "Easy Mode" to "Style Mode" because this mode lets you focus more on style.
Themes: Added description to Time Dilation. Improved descriptions of different game mechanics.
Style Settings / Guidance: Fixed issue that Impact Timers dropdown was not made interactable / non-interactable based on Impact Timers checkbox.
Configuration Files: Added a file copy in addition to writing the string read from the file. We had a situation where the "copies" were empty with zeros, which should not happen if we directly copy the file. However, also keeping the string may give us useful debug information in cases of failure, so now we keep both.
Ported to Unity 2017.4 ... and fixed too many issues to list (but some, I do list).
Updated Hx Volumetric Lighting to 1.3.2
Removed NAudio from project because we currently don't use it, anyways, and it has dependencies that make builds file in Unity 2017.4.
Updated Volumetric Fog & Mist to 9.1
Updated Tunnel FX 2 to 1.4.1
Updated Relief Terrain Pack to 3.3l
Upgraded to Unity 2017.4.1f1 (from 2017.4.0f1)
Removed all UnityScript code from project.
Updated TextMesh Pro to 22.214.171.1247.3.0b3
Updated UniMerge to 1.10.3
UI: Fixed very annoying issue that caused the laser pointers to behave really flaky with buttons and dropdown lists (this was introduced with Unity 2017.4, so this only went to alphadev).
UI: Fixed even more annoying issue that caused the slider animations to be completely off (this was introduced with Unity 2017.4, so this only went to alphadev). This refers to the UI sliders and range sliders - there's a button to "pull the slider towards you" which makes it much easier to change the values because you don't move the handle at a large distance. Now the animation towards you is perfect, and the animation back is almost perfect.
Moved project from Mono Runtime 3.5 to 4.6 (well, see below - we didn't stay with 4.6).