Holodance - jashan
If you have never heard of Holodance before, here's ...

A Little Bit of VR Rhythm Game History

When I began development of Holodance in early 2015, the original idea was to create a synesthetic Virtual Reality clubbing experience with trippy visuals, and twelve songs produced specifically for the game and its twelve "environments". While playing with the early prototypes, somehow the idea of making the game about dancing with dragons came up, and the direction shifted into what later became "Story Mode": Three dragons returning to planet earth to remind the human species of their duty of care for their planet.



One of the motivations behind that was to use the new medium, VR, to take players to different places. So trippy visuals turned into a beach, desert and ice desert, three environments up in the air, at varying altitudes, and three underwater environments with dolphins, whales, and increasing levels of pollution due to industrialization. Finally, an apocalyptic machines against humans 360° dystopia, an asteroid field and a place beyond time and space where you would meet "the blue mother of all dragons".

Still twelve "levels" but quite different from the original plan.

While Story Mode, with its dragons, did (and still does) have its fans, to be honest, it became clear quite early in Early Access (which began April 5, 2016) that the original idea probably would have been the smarter approach to creating a VR rhythm game. But we live to learn, so in October 2016, the very first version of Free Mode was released: This added support for osu! beatmaps (turning 7 or 8 songs available at that time to more than 10.000 songs with high quality community created beatmaps). For Free Mode, I also added new environments/arenas, including two clubs, two sci-fi arenas and a crazy 360° gameplay prototype. And the whole game started moving from its initial fantasy/environmentalism-style towards a more sci-fi approach, and kind of back towards its origins.

Long story short: Also, the scope and complexity increased hugely, Story Mode development almost completely stalled and that's why we were still in "Early Access". Still in 2016 (September 2016, to be precise), the idea for a smaller scoped, more streamlined rhythm game called Beat the Rhythm was born, a game that is primarily focused on the actual game mechanics instead of mixing dragons with Retro Clubs (anyone got the Ruirized achievement? ;-) ).

Beat the Rhythm is its own game, with its own style, and I like to call it Holodance's young brother. The cool thing is that often, the elders learn from the younger ones - so quite a few of the things you see in Holodance today were actually developed for Beat the Rhythm and ported back so our existing players can enjoy those new features already.

And that's where the custom BeatSaver-map support comes in: The big project that I'm currently working on, which will become its own (free) standalone tool but also part of both, Holodance, and Beat the Rhythm, is a universal beatmap editor designed for the community to be able to BAM! "Beatmap All Music!" ... osu! beatmaps work quite well for catching and punching orbs but if you have ever tried the slicing mechanic with osu! beatmaps in Holodance, it's quite obvious that it doesn't work that well.

The BSMG-community has done a tremendous job mapping songs specifically for that kind of mechanic, and you can now play those maps with our engine, just like osu!, and the procedural mapping that lets you play any music file on your PC without even creating a map (but with the usual caveat that procedural mapping has: it just doesn't compare with hand-crafted beatmaps, even though we do have something in the pipeline that might remedy that). You can use all the browsing features of our Music Library, plus you can even browse using the BeastSaber playlists, and finally also via beatmappers. And to keep things fair, osu! collections are now also supported.

Also, we've had 360 levels in Holodance since 2017:



So of course 90/360 BeatSaver-maps are also fully supported.

Oh, and also, if you find the planes in the new environments Desert Sky and Icy Sky annoying, you can shoot them while playing a song (and even get a new achievement for that).

Holodance - jashan
Crash bugs are ugly. Especially when they occur all the time, while the game is starting. While we did only receive a single report for such a crashbug, the hardware of that player seemed fairly standard so it's very likely that other players were also effected. After several days of searching, it turned out that this one apparently was a Unity-bug that got fixed with Unity 2019.2.

Other than that, we silently pushed a few minor feature updates since the last patch notes: Spooky Town is now an official arena of the game - you just need to have a minimum score of 3,000,000 (which is quite easy to achieve). We also added a new experimental game mechanic after a little conversation on Reddit. Here's a video:



This one only works with very specific beatmaps, so use with caution. But this will eventually turn into something really exciting ;-)

Also, due to player feedback, we fixed a few things about the scoring, and also Zen-Mode.

The changes in detail:

  • Moved Spooky Town into the Free Mode Arena Selection area, gave it a 3,000,000 minimum score, and reduced the minimum score of Trippy Tunnels from 2,000,000 to 500,000.
  • Fixed Valve Index HMD default binding (the controller_type was correctly set in the bindings file but not correctly set in actions.json)
  • Updated SteamVR Unity Plugin to 2.5.0
  • SteamVR Integration: Added buttons to show controller bindings, and edit controller bindings to the player calibration panel
  • Player Calibration Panel: Redesigned this quite a bit; Check Tracker Roles now only shows up when using SteamVR
  • Bounce Back Theme: The idea of the bounce back theme was actually to have a much "timing sensitive" mechanic. Unfortunately, I had used a linear movement curve, so that didn't really take place. Changed this due to a conversation on Reddit with /u/rolliejoe. Also, this being significantly more difficult mechanic, you now get a 1.5 multiplier with that theme. Hardcore osu! maps with streams (which yield high scores) are impossible to play with this, so this does not make it unfair (in fact, it makes this much more fair than it used to be).
  • Casual Scoring: Decreased the penalty for large orbs, and the OctaDrop, and ghosts from 0.75 (25% penalty) to 0.9 (10% penalty). And the penalty for the larger Casual Catchers from 0.8 (20% penalty) to 0.9 (10% penalty). This still makes sure that the maximum scores are only available using "Catch Orbs" (instead of Casual Mode) - but the score penalty isn't that frustrating anymore. Also, "Style Mode" (which is a little less strict with timing) now gives you only 10% penality (instead of 20%). The thing is: All of these not only "add up" but "multiply up", so before, this ended up as a 0.48 multiplier (52% penalty). Now it's still 0.729 (27%) if all of these are active.
  • Gun Mode Scoring: Gun mode is significantly more difficult, so this now gives you a 2x multiplier for the scores.
  • Updated to Unity 2019.2.13 hoping that this will fix a mysterious crash bug (that one player reported) ... and it did fix that issue, hooray!!!
  • Updated DOTween to 1.2.280
  • Fixed that selecting a game mechanic preset, radial orb source and Zen-Mode were overridden.
Holodance - jashan
It's that time of the year where even pacifist, vegetarian game developers that have dragons throwing friendly magical orbs at you so you could tune into the rhythm of nature and save the world suddenly start punching ghosts to gory pulp as pumpkin-headed Halloween monsters. Also, some of us throw incredibly long sentences at our players, without any punctuation, which could also be considered an act of violence, fitting the season. Such a sentence is in some ways like an insanely long slider or spinner: You just can't wait until it's finished without breaking your combo.

You still here?

You better be, cause here's some important news: For those of you that don't own Holodance, yet, this will be the last chance to get it at 50% off for the time being. We can't tell you when or witchwhich the next sales will be - but we'll do the next sale that we participate in after this one at 40% off, and the one after that at 33% off. The reason is that we're slowly moving towards the end of Early Access, so the price will eventually go up. That's not meant to scare you, it's just meant to make you not put off till tomorrow what you can buy today.

We also just recently had a huge update: Holodance V0.9.1: Halloween, Modding, and all the Beta-Updates. That included the beta-update: Holodance V0.9.0b19 (alphadev/beta): A *lot* of Update and Holodance V0.9.0b21 (beta): Tech Update, Mixed Reality, Bugfixes.

There are more updates coming but here's a really quick recap of the recent news:

Spooky Town

Most importantly, this version has a seasonal Arena for the spooky season called Spooky Town. If you don't like blood, or ghosts, or giant pumpkins, this one is not for you. You'll still want to play this version of the game - just don't go to Spooky Town because it would give you nightmares. But if you want to punch, or slice, or shoot ghosts before they punch you, we got you covered.

I'm honestly not quite sure what to do with this after Halloween, so make sure to let us know in the comment section. Should Halloween stuff only be available during Halloween? Or should we simply add this to the Free Mode Arena selection, maybe to be unlocked with a not-too-hard to reach accumulated score? I'm open to all suggestions.

New Avatar System

If you followed the news (you better!), you already know that we have added a lot of new Avatars and streamlined the whole thing. Especially for Halloween, we added a few spooky ones: A Halloween monster called Methus, a shaman rat called Peter, an ice golem called Torog, and finally, the Dark Angel some of you may have seen ages ago in our first Avatar system teasers. Those will definitely stay in the game as they are.

Also, if you have the Valve Index controllers, almost all the avatars support full finger tracking. To a certain degree, this also works with Oculus Touch but it's best with the Index controllers.

Modding

This had been on the list for a really long time, and what we have now is really just the beginning: The arenas Trippy Tunnels and Zero Distraction now support text-file based modding, so you can replace textures, skyboxes, change the lighting and some of the geometry in Zero Distraction (to make it very distracting), tunnel effects based on the combo in Trippy Tunnels, and postprocessing effects in both Trippy Tunnels and Zero Distraction.

If you create mods that you want to share with the community, you can upload them to https://holodance.mod.io/. For instructions, go here: Modding Holodance / Beat the Rhythm.

This is obviously still quite barebones but it already is quite powerful. Eventually, we'll let you build your own Arenas, including gameplay- and audio-reactive logic, your own Avatars (we'll also support the VRM format, but native avatars will obviously be better integrated into the game, e.g. with audio-reactive effects), weapons (for punching, slicing and shooting) and "orbs" (which could also be something like ghosts ... or airplanes ... or whatever crazy thing people come up with when they're bored with circles, spheres, and the Beat the Rhythm OctaDrops, and drones that need to be shot).
Holodance - jashan
Working a lot on our upcoming game Beat the Rhythm (and porting most of the improvements immediately to Holodance for you to play with them), I apparently got a little confused between Beat and Beta. Our last update to the default-branch that most people are playing on was ... O.M.G.! - more than a year ago, on 25 June, 2018.

We still did update the alphadev and beta-branches more or less frequently but that means that all of you who don't feel like playing betas and alphas of an Early Access game have been missing out not only on major new features but also on important bugfixes. SORRY!

For Halloween, we obviously want all of you to have the Spooky Town that we first released to the beta- and alphadev-branches on October 13. And we want none of you to play on a version that's more than a year old (you still could, if you wanted, on the previous-branch that we keep just in case something breaks really badly for anyone ... but really, you shouldn't!)

Spooky Town

Most importantly, this version has a seasonal Arena for the spooky season called Spooky Town. If you don't like blood, or ghosts, or giant pumpkins, this one is not for you. You'll still want to play this version of the game - just don't go to Spooky Town because it would give you nightmares. But if you want to punch, or slice, or shoot ghosts before they punch you, we got you covered.

I'm honestly not quite sure what to do with this after Halloween, so make sure to let us know in the comment section. Should Halloween stuff only be available during Halloween? Or should we simply add this to the Free Mode Arena selection, maybe to be unlocked with a not-too-hard to reach accumulated score? I'm open to all suggestions.

New Avatar System

If you followed the news (you better!), you already know that we have added a lot of new Avatars and streamlined the whole thing. Especially for Halloween, we added a few spooky ones: A Halloween monster called Methus, a shaman rat called Peter, an ice golem called Torog, and finally, the Dark Angel some of you may have seen ages ago in our first Avatar system teasers. Those will definitely stay in the game as they are.

Also, if you have the Valve Index controllers, almost all the avatars support full finger tracking. To a certain degree, this also works with Oculus Touch but it's best with the Index controllers.

Modding

This had been on the list for a really long time, and what we have now is really just the beginning: The arenas Trippy Tunnels and Zero Distraction now support text-file based modding, so you can replace textures, skyboxes, change the lighting and some of the geometry in Zero Distraction (to make it very distracting), tunnel effects based on the combo in Trippy Tunnels, and postprocessing effects in both Trippy Tunnels and Zero Distraction.

If you create mods that you want to share with the community, you can upload them to https://holodance.mod.io/. For instructions, go here: Modding Holodance / Beat the Rhythm.

This is obviously still quite barebones but it already is quite powerful. Eventually, we'll let you build your own Arenas, including gameplay- and audio-reactive logic, your own Avatars (we'll also support the VRM format, but native avatars will obviously be better integrated into the game, e.g. with audio-reactive effects), weapons (for punching, slicing and shooting) and "orbs" (which could also be something like ghosts ... or airplanes ... or whatever crazy thing people come up with when they're bored with circles, spheres, and the Beat the Rhythm OctaDrops, and drones that need to be shot).

So much other new stuff
If you haven't done so, yet, be sure to read the V0.9.0b19 patch notes from March 18, 2019 to learn more about the new game mechanic presets (punching, slicing, shooting, with a few variations in each mechanic), the much improved gun mechanic, a new Slider Visualization that comes with the OctaDrop Theme that we developed for Beat the Rhythm (but that will always also be available in Holodance), better handling of tempo changes in songs, the new backend server, improvements to scoring based on velocity and directionality, tracked appendages and localization ...

... and a much smaller game package size. That last one is a little unfortunate for the update because the package structure has changed, so it will be a 2GB download. But after the update, the size of the full package is now only 6.3 GB instead of the 9.5 GB it was before. Your SSD will sure like that, and so should you.

Where are we going next?
The beatmap editor is taking much longer than anticipated - but it should land soon. This is really big because it will let you create maps that are much better optimized for our different mechanics than using osu!-maps or procedural mapping. In my opinion, osu!-maps work really well for catching and punching, and you can have fun with slicing and shooting when you pick easy enough maps - but those mechanics really need maps designed for the mechanic, so I want to make sure that we offer tools that help create that content. We may also add support for more beatmap formats.

Also, we have a few open ends, like with the new leaderboards and how your scoring is presented after each session, and generally the new backend, while providing a good foundation for what we want to do still needs to have quite a few things added and polished.

The work on the avatar system also inspired a few new ideas that will actually finally make "Holodance" a fitting name for what the game offers. I'm not so sure about Story Mode. It's how the game started but for a long time it has been a bit of a burden that very few people actually enjoy playing while at the same time requiring a lot more time, energy and money to add content to than the features that almost everyone enjoys. So please let us know your perspective on this! We definitely will not remove it, and I'm hoping to eventually finish it in one form or another but it feels increasingly strange to have that part keep the game tagged as Early Access.

That said, Story Mode also got some love in this update:
Holodance - jashan
We're about to push one of the biggest updates in the history of Holodance to the main branch before Halloween, to celebrate this spooky season with all of you! And you can already try it on the beta-branch and help us find any issues that may still be in there (in addition to the ghosts and gore we put in there intentionally).

For Halloween, we'll have a completely new Arena, called Spooky Town. And spooky, it is! In that special Halloween Arena, you can punch ghosts, or slice them, or shoot them.



And to make it all more fun to show off, we also completely redesigned our Avatar system and added a whole bunch of new avatars, including a few ones that fit the spooky season: A Halloween monster called Methus, a shaman rat called Peter, an ice golem called Torog, and finally, the Dark Angel some of you may have seen ages ago in our first Avatar system teasers. The new Avatar system fully supports Index Controllers and no longer requires calibration when you only use controllers (for full body tracking with Vive trackers, calibration is still needed).

Speaking of teasers ... a video says more than a thousand words and is also more entertaining to watch. So here goes:



Please help us test this version so Halloween won't be spooky because of any bugs we may have missed.

If you haven't opted in to a beta branch before, this guide will be useful: Opting In and Out of Steam Client and Product Betas (navigate to section Product Betas). You can use either beta or alphadev, those are now in sync (we've had this version on alphadev for about a week, with a few updates already).
Holodance - jashan
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.
Holodance - jashan
So this is kind of a huge one, because the last patch update was in June 25, roughly 9 months ago. We did post some updates to the alphadev channels and also beta channels but announced them only via our Official Discord. But this current version will probably go to the default channel in a week or two, so it would be awesome if you could opt-in to the alphadev or beta channel, try it, test it and let us know what you think about it (ideally in the forum to keep things organized).

This is a really long list, so here are some of the highlights:

Settings / Themes / Game Mechanics / Presets
This has been completely re-designed to make the different game mechanics easier to find and activate. Also, we previously had quite a few implicit changes in the settings (e.g. when you activated Laserblades or Guns) that did make sense when we originally introduced them but became pretty annoying over time, as development evolved (like, choosing guns would always activate the balloons - but actually shooting drones is more fun than shooting balloons ;-) ).

We have consolidated almost all the settings into one screen (Settings / Style / Presets & Themes), and have added a few presets that set up everything in a consistent way that hopefully makes sense. After activating one of the presets, you can still fine-tune everything according to your likes and dislikes. Here's the current list of presets:
  • Casual Mode
  • Catch Orbs
  • Punch Drops
  • Slice Drops
  • Shoot Drones
  • Shoot Balloons

Gun Mechanic
We've had this in the game for a long time but polished it a lot during the last few months:

The explosions are now based on how perfectly you time shooting the drone. If the timing is perfect or near perfect, the explosion is very quick. If, however, the timing is a little off (a little too early, or a little too late), you get a longer explosion as a penalty. Before, the explosions were random and the longer explosions would unfairly obstruct the view. Now this is "by design" if your timing is off.

Also, all explosion effects were polished and optimized to work really well with the drone and gameplay.

The gun mechanic will still get proper support for sliders and spinners.

New Slider Visualization
This comes with the new OctaDrop theme (see below). We've had that theme in previous builds - but the slider visualization is new. It's true 3D: Sliders in the OctaDrop theme are now streams of the OctaDrop outline. ;-)

OctaDrop Theme
This now has its own hitsounds, also for sliders and spinners, and full support for punching and slicing as well as directionality. The OctaDrop theme will be the default theme for Beat the Rhythm but we'll also keep this as an option in Holodance as well. We're still polishing the OctaDrops and will make some of the mechanics more strict. But it's already close ... at least in our opinion ;-)

Improved Handling of Tempo Changes
Notes are now properly looking ahead so they use the tempo while they play for the buffered ahead spawning. Previously, the orbs were speeding up just when the tempo of the song already had increased. We need this for the original soundtrack of Beat the Rhythm which has quite a few tempo-changes, and even switches back and forth between 3/4 and 4/4 in one song.

Backend Server
This is currently only visible in the leaderboards that show up after a session. The leaderboard when you select a beatmap and the leaderboards in Story Mode are still the Steam Leaderboards, so currently, in some places, we have two different leaderboards, an old one, and a new one. That server not only has new leaderboards but will also let us do things like song ratings, beatmap ratings (in terms of "how fun is it"), and difficulty ratings and will also be used to host beatmaps you create with our upcoming beatmap editor. It will also let you do things like in-game "challenge me". The possibilities are literally endless, so this will evolve a lot over time.

Important: We might reset our backend server a few times until the release of Beat the Rhythm. But you won't lose your skill on such a reset ;-)

Scoring: Velocity and Directionality
In the first early versions of Holodance, the velocity bonus used the velocity on impact. Then, I thought using the maximum velocity between catching two orbs was a good idea. It wasn't. So that's reverted, and velocity on impact is what matters again. This is coherent with moving from primarily catching orbs to primarily punching orbs. You can still catch orbs - but punching is more fun and will give you the higher scores.

The OctaDrop theme also has directionality, so some of those drops will come at you with a direction (very short sliders in osu! beatmaps are converted into those directional drops). We had a rotation bonus but that never really felt right because how does wildly rotating your controller really matter in the game? Well, now that bonus is based on how well you are in tune with the rotation of the drop. Makes a lot more sense, doesn't it?

Tracked Appendages:
One really special thing about Holodance from the beginning was that you could also catch orbs with your head. One problem with this was that it gave you a bonus, so it does give you an advantage with your score - but not everyone enjoys this mechanic. So now, we're properly tracking which appendages you use: Two Hands (TH), Head and Hands (HAH), Head Hands and Feet (HHAF), Head Only (HO), Hands and Feet (HAF), Single Hand (SH), Two Feet (TF) or Single Foot (SF). And each gets its own leaderboard. While in principle, you could play each map in any way, maps designed for a specific gameplay style will also be preferable, so Beatographer will let you say what style a map was designed for. With guns, laserblades and bow and arrow, there are only single hand and dual wielding, or in the case of bow and arrow, obviously, only single hand.

Localization
We have started localization. We have quite a bit of Chinese already done, Japanese, Korean and Russian are there but very incomplete, and the translations we have were done using Google translate (so expect some weirdness). As many of the texts are still changing, we'll do a professional full translations when things have stabilized a bit.

Game Package Size
The game package has become much smaller, going from 9.5 GB down to 6.3 GB.

Lots of Bug Fixes and Unity Updates
A lot of bugs were fixed. A lot of new bugs were introduced by incrementally updating Unity, and then fixed (either by more Unity updates, or by implementing workarounds). But using Unity 2018.3 significantly improves the development process, especially due to the new nested prefabs workflow. I wish I had done this much earlier.

Also, ported PostProcessing from v1 to v2. As the color grading set up works differently in v2 compared to v1, there will be some changes in the color grading. Also, v2 has a new bloom effect that provides higher quality, at the cost of lower performance. But it has a "Fast Mode", which you can activate via the performance settings. We have both versions in a current builds, so you can easily switch between the two. But eventually, we'll remove v1 from the project.


Full Chronological Changes List:
  • Sliders: Now also play a hit sound the first time you touch them. Not having this was mildly disorienting.
  • Sliders: A completely new way to visualize Sliders - they are now streams of the OctaDrop outline.
  • Directional Drops: Part of the black magic hackery for the tracers is that very short sliders are now automatically converted to directional orbs.
  • OctaDrops: Moved spawning particle closer to player to prevent interference with screens.
  • Leaderboards: We had two release on alphadev with the new OctaDrops where we had storing your scores to the leaderboard disabled (because the new OctaDrops tracers, which are a new visualization for sliders, were still very experimental and I wasn't perfectly sure they wouldn't give you ridiculously high scores ;-) ). This is all safe now, so leaderboards are stored again.
  • Orbs / Drops / Flying Notes: We did some major refactoring to clean up years of adding cool things and make the whole thing much more modular. Still not quite perfect working towards that.
  • Directional Orbs: Moved logic that converts sliders into directional orbs from our new Tracer implementation to the beatmap parser which is a much more appropriate approach and solves several issues we've had previously.
  • OctaDrops: Orbs that were missed now properly dissolve instead of just disappearing; or worse, bumping to the floor causing plenty of physics action (we still have this for the old orbs).
  • Core Engine: Notes are now properly looking ahead so they use the tempo while they play for the buffered ahead spawning. Previously, the orbs were speeding up just when the tempo of the song already had increased.
  • Directional Orbs: We now use both, a minimum time and distance for sliders to determine whether we convert them to directional orbs. Only if both criteria are met, the slider is converted to a directional orb.
  • Core Engine: In some maps, we have fairly massive streams which both is a problem for visibility of the next notes and also can be a performance issue. For that, we now keep track of the distance and time between the current note and the next note, and if they are too close, we can use alternative visualizations. With this, we could even convert streams into sliders, which is more appropriate when we focus on punching instead of catching (with orbs; obviously you can't punch a slider).
  • Flatscreen UI: Fixed a bug that we have had in the game since forever which caused sliders and range sliders (the UI element) to not work when trying to control them via mouse. The problem were our UI audio events that didn't properly bubble the events. Interestingly, this only caused an issue with dragging - everything else always worked just fine.
  • OctaDrop Tracers: Now flash in and out like the full OctaDrops.
  • OctaDrop Tracers: Now have much improved particle effects for tracers - instead of emitting a turquoise old-style particle effect at the end of a tracer, you now get particles emitting from the catchers based on the catcher velocity during following the tracer, and one final effect based on the completion, and emitted from the catchers, at the end.
  • Main Score HUD: This went through a few iterations, from the "big smiling face" via the more sci-fi style HUD that we use in all the new environments. The truth, however, is that the tech we used for this was never really designed for that purpose (it was a good test-case for what can be done with our ScoreFlash Asset Store package, though). For the new Beat the Rhythm "Triggered" environment, we now have a shortcut that simply puts the information into UI elements that are part of the environment. This is not quite as flexible, so the old approach will remain for where we need the flexibility. But step by step we'll move some of this UI into appropriate styles and places for the environments where we can do that, which are most.
  • Main Score HUD: Fixed small glitch that caused the score per drop / slider to not be shown for sliders until the next note was caught again, after a note was missed (only in the special new shortcut approach).
  • Flatscreen UI Part 2: Range sliders were actually still broken, the fix for normal sliders didn't work for those. Reason was that for some unknown reason a OnPointerUp was sent, and Range Sliders used that to reset the state. They no longer do, and so now they work.
  • Localization: Started globalizing (= preparing for localizing) the UI. Used Google Translate to Chinese for testing. This is a pretty big one, including re-baking some of the fonts - there is still a lot of work to do ... but I made some really significant progress.
  • Beat the Rhythm / Beat Challenge: Fixed Gun Mode (using drones and showing the orb score huds). Particles still don't show up.
  • Play Area Calibration: Combined World Rotation / Movement and UI Rotation into one Element, added reset for the rotation (for some reason, only the position got reset, essentially making reset not have any effect on world/ui rotation). Also added a Recenter-Button - but only for hardware that actually has Recenter (we currently only use standing / room-scale setups).
  • Localization: We're currently in the process of localizing the whole game. We won't localize the voice acting in Story Mode for now, but all texts in the UI and messages during gameplay will be localized. For now, we start with Chinese. Japanese, Korean and Russian will follow very soon. If you want the game in your language, please let us know!
  • Analytics: Slowed down sending some of the analytics so they will hopefully get through more reliably.
  • Performance: Significantly reduced allocations, especially with the new OctaDrop theme and the new tracers.
  • Music Library: The "range sliders broken on flatscreen UI broken"-fix caused a new bug in VR, where clicking a button in a list would start dragging and basically scroll to the beginning of the list on each click. That issue only was on the alpha channel but boy was that an annoying one. Fixed.
  • Music Library: There was one super-annoying bug that sometimes occurred where you'd click on invisible panes and instead of getting what the button you clicked on shows (e.g. Favorites), you'd get what the button at the same location in another screen shows (e.g. Genres). This should be fixed now. Also, panes reacting to pointing and button presses when they are actually hidden below you should no longer happen.
  • Community Server: To cut dependencies on Steamworks, we are building our own community server for leaderboards, player state, achievements and also most popular and so forth. This is a larger project but we're making progress - players are now registered with the server ;-)
  • Gun Mode: Removed trails and multiplier rings from gun. Those looked pretty dumb and didn't really serve that much purpose.
  • osu! beatmaps: Fixed a bug that kept the slider velocity multipler of inherited timing points when there was another timing point. osu! handles this differently: Each timing point resets the multiplier to 1x and you need another inherited timing point to change it (if you want to change it). This had created issues with our Eternity map (Eternity is the last song of Beat the Rhythm and now I'm kind of glad I'm still using the osu! beatmap editor to build this one because our own, native beatmap editor isn't ready, yet)
  • osu! beatmaps / procedural maps: Fixed a few pretty nasty issues that caused wrong counts of total notes, especially with the new OctaDrop theme, which could, among other issues, trigger a "full combo" in the middle of a song.
  • Difficulty: This is a rather "hot" subject because we use the calculated difficulty as basis for the skill and style level. There were some rare cases, where the difficulty would use outdated data. While we still do display this outdated data, we make sure to use the actual mapping data, with any tweaks (e.g. the quick repeaters replaced with actual orbs in the OctaDrop theme), for the final calculation that will be used to determine skill and style levels.
  • New leaderboard UI: Finally upgraded the leaderboards to our new UI style (we had this integrated with the new UI style for quite a while - but it was very very hacky). The Steam leaderboards, however, still use the old UI (and will eventually disappear).
  • Smart Leaderboards: The new leaderboard lists are simplified and have less information and automatically show the most relevant entries: If you are in the top 10, the top 10 are shown. If you are below that, the top 1 and, depending on the number of entries available in the leaderboard, top 10 entry are shown, then the two ranks directly above you, and the ranks below you. This is linked to the new leaderboard community server. The leaderboards also show how your score has changed compared to your last session.
  • Tracked Appendages: One really special thing about Holodance from the beginning was that you could also catch orbs with your head. One problem with this was that it gave you a bonus, so it does give you an advantage with your score - but not everyone enjoys this mechanic. So now, we're properly tracking which appendages you use: Two Hands (TH), Head and Hands (HAH), Head Hands and Feet (HHAF), Head Only (HO), Hands and Feet (HAF), Single Hand (SH), Two Feet (TF) or Single Foot (SF). And each gets its own leaderboard. While in principle, you could play each map in any way, maps designed for a specific gameplay style will also be preferable, so Beatographer will let you say what style a map was designed for. With guns, laserblades and bow and arrow, there are only single hand and dual wielding, or in the case of bow and arrow, obviously, only single hand.
  • Hitsounds and Effects: The OctaDrops and Laserblade/laserbeam deflection have new hitsounds, and the gun also has a new gun sound.
  • Gun Mechanic - Shooting Drones: The explosions are now based on how perfectly you time shooting the drone. If the timing is perfect or near perfect, the explosion is very quick. If, however, the timing is a little off (a little too early, or a little too late), you get a longer explosion as a penalty. Before, the explosions were random and the longer explosions would unfairly obstruct the view. Now this is "by design" if your timing is off.
  • Gun Mechanic - Shooting Drones: All explosion effects were polished and optimized to work really well with the drone and gameplay.
  • Tracers (Sliders) & Spinners: Added possibility for looped sounds while following tracers and spinning spinners. For now, this is only used by the OctaDrop theme and we use the same loop for both.
  • OctaDrop Orb Theme / New Slider Visualization: Fixed a bug that caused sliders where you didn't catch the head caused a miss, breaking the combo. Finally, the new OctaDrop theme is fully working as intended ;-)
  • Added a little "cleanup phase" before and after each song, to avoid nasty things (framedrops) from happening while playing songs. This drops into the compositor; we'll probably remove that once we switch over to Unity 2019.1 which has incremental garbage collection.
  • File Scanners (MP3 / osu): In earlier versions of our file scanners, there were quite a few cases that could cause inconsistencies in the data, so we had a "do a full rescan every week" logic, that would make sure that if there were inconsistencies, they would be remedied within a reasonable time. That was added a long time ago, before we had a button to do a "Full Rescan", which does the exact same thing but by clicking a button. Also, inconsistencies should now be rare and really only occur when you change the library sources (add or remove local osu library, or local music and so forth). Long story short: We don't do automatic full rescans just because a week has passed. If you change the sources, do a "Full Rescan". Also, if you run into "Beatmap not found" errors when trying to start a song - do a "Full Rescan".
  • Community Server: Prepared logic for popular and recently played.
  • Story Mode: Fixed a long standing bug that caused all start/stop events to be called twice in Level-01.
  • Music Library: Fixed issue where locally loaded images were flipped upside down.
  • Music Library: Fixed a few more issues with image loading, some of which were introduced during the current iteration.
  • Leaderboards: Fixed problem that caused player avatar images to not be loaded.
  • Fixed issue that caused total notes to be off by one (one too few), which also resulted in full combos being triggered when players missed exactly one note, and this also threw off the leaderboard logic.
  • OctaDrop Theme: Polished hitsounds.
  • Player: Fixed issue that player height and player chest height (this is where the target area is) was not stored correctly.
  • Music Library: Fixed RecentlyAdded sorting issue (the most recently added songs were at the end of the list).
  • Audio Files (osu! beatmaps and local music): Fixed an issue that would have songs muted half way into the song. This was fairly rare but it did happen with a few osu! beatmaps, in particular when the audio files were mono. This should no longer happen now.
  • Music Library: Improved error message when beatmap files are not found (which is usually a result of changes to the folders and no 'Full Rescan' having been done).
  • Leaderboards: Fixed nasty issue that broke the "per beatmap" leaderboards
  • Added initial Oculus SDK support, using Oculus Integration 1.32.
  • Made controllers work properly with native Oculus support (tracking, position offsets, buttons).
  • Made haptic feedback on controllers properly work with native Oculus support.
  • Proper support for Dash (Holodance automatically goes into pause when Dash is activated).
  • Adapted loading screen to native Oculus SDK ... but that doesn't work too well because OVROverlay apparently is kind of buggy and also it seems the Oculus compositor lacks quite a few nice features that the SteamVR compositor has (fading things in and out conveniently, suspending rendering, working reliably).
  • Oculus Guardian system is now properly used to determine the Play Area.
  • Fixed broken Player Height check when using native Oculus SDK.
  • Now the haptic intensity slider also has the expected effect when using native Oculus SDK.
  • Fixed several issues in the loading screen when using Oculus SDK.
  • Fixed remaining issues with loading screen when using Oculus SDK: The progress and floor hadn't shown up; we had used a single texture for the logo instead of the 3D multi-billboard logo we used in SteamVR; there was no fading (in SteamVR, we crossfade, with Oculus SDK, due to limitations in the API, we have to fade out, switch to the compositor, then fade back in); and the overlays were in the wrong locations when entering levels where the player platform is not located at the origin (e.g. Paradise Beach).
  • Initialization on Game Load: Avoid unnecessary wait times.
  • Loading Screen: Fixed a really annoying bug that caused one progress bar to start up with the Beat the Rhythm color theme.
  • Music Library: Added UI-based universal keyboard. This still needs more input options but at least it's a start.
  • Native Oculus SDK: Fixed head gameplay objects not being tracked when not using SteamVR.
  • Music Library: Fixed theme-issue with keyboard that caused exception spam which also resulted in severe performance degradation.
  • Fixed automatic performance settings for 2080 (Ti), 2070 and 2060
  • Ported project to Unity 2018.2.20f1 - it was a bit of a hassle but it seems that almost nothing broke, so that is quite nice.
  • Ported project to Unity 2018.3.3f1. More hassles, and a few things did break (including a few fairly nasty crash bugs), but it seems there's nothing we can't handle.
  • One of the things that caused crashes was that we frequently used MeshFilter.mesh instead of MeshFilter.sharedMesh, when actually not really needing a new Mesh instance. Changing this not only fixes those Unity 2018.3 crash bugs but also slightly improves performance.
  • Story Mode almost completely broke in 2018.3.3 ... fixed all issues that I found: No audio, no voice acting, first orb thrown by Pritvitej didn't work, high five, fist bump, stroking and tickling didn't work, and a few more.
  • Another crash occurred more sporadically when storing the sessions; this is now hopefully also fixed.
  • Changed all Rigidbodies to "Continuous Speculative" which should be both, faster and more reliable.
  • Removed Slider/Tracer Themes because we only had two themes, and the non-default one was broken.
  • Added option to disable the orb trail particle effects (Themes / Orb Trails (Particles))
  • Ported project to Unity 2018.3.5f1, which fixed one extremely nasty "system crash" bug that happened both with the built game and the Unity editor: When closing the game, it would freeze for a while, then other running applications would randomly crash, the screen would go black, and usually, a hard reset would be required to continue working. This bug was specific to Unity 2018.3 and didn't occur on 2018.2 or 2019.1.
  • Ported PostProcessing from v1 to v2. As the color grading set up works differently in v2 compared to v1, there will be some changes in the color grading. Also, v2 has a new bloom effect that provides higher quality, at the cost of lower performance. But it has a "Fast Mode", which you can activate via the performance settings. We will have both versions in a few builds, so you can easily switch between the two - but eventually, we'll remove v1 from the project.
  • Major shader and shader keywords cleanup.
  • Major texture cleanup; took full game from 9.3 GB down to 6.3 GB. This should also speed up some of the level (environment/stage) and avatar loading times.
  • Using current velocity instead of max velocity (since last punch) for calculating the bonus. Using maximum velocity made sense when "catching" - but we're back to punching, and there, the current velocity on impact is best.
  • Made laserblades shorter - 80cm are long enough (that's just the blade).
  • Rotation is now based on direction of punch / slice vs. direction of the orb. With all themes except OctaDrop, the expected direction is "forward" (the opposite direction into which the orb is flying).
  • Finally, finished implementation of slicing.
  • Completely re-designed "Themes" UI: Added six presets (Casual Mode, Catch Orbs, Punch Drops, Slice Drops, Shoot Drones and Shoot Balloons). This also no longer makes arbitrary changes when changing the mechanic (it did this before - that's what the defaults are used for now).
Holodance - jashan
Hey everyone,

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.

And if you have any question - make sure to post them into the Holodance Steam Community forums, or join our official Holodance Discord.
Holodance - jashan
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).

Let me know what you think!
Holodance - jashan
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.
...

Search news
Archive
2020
May   Apr   Mar   Feb   Jan  
Archives By Year
2020   2019   2018   2017   2016  
2015   2014   2013   2012   2011  
2010   2009   2008   2007   2006  
2005   2004   2003   2002