Beat the Rhythm VR cover
Beat the Rhythm VR screenshot
Genre: Sport, Indie

Beat the Rhythm VR

Devlog 2: Building Our Own Backend Server

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 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!

Devlog 1: A new kind of "Orb" - The OctaDrop

We have already been working on Beat the Rhythm for quite a while. Some of that work already went into Holodance, so if you were following the release notes there, some things in this posting may sound familiar - but not quite all of it. So here is a first devlog:

Music is Done - Beatmap Design in Progress



Just yesterday, Billy Mello finished the last song for the Beat the Rhythm original soundtrack. It's called Eternity and is a marathon (full 12 minutes). All of the music for the game has been produced in a very close collaboration between Billy and me, and I think this initial set of six built-in songs will give you a good start into the game.

The songs are composed and produced with a progression in difficulty: It begins fairly easy with a short, almost tutorial-style song, and gets longer and more intense and complex with each track.

Time, the fourth song, switches meter a few times, so there are 3/4 sections as well as 4/4 sections. It's the most experimental song we have in the game. The Singularity, our fifth song, is about the Singularity, so the obvious thing to do is play with tempo-changes - we go from a relaxed 64 BPM up to 256 BPM in the finale.

We call the style Gamestep - so there is obviously quite a bit of Dubstep in there, but also 8bit-elements, trance and house. The idea is to have music that is intense, for intense gameplay. As you can also use osu! beatmaps, or your own music, you get a huge variety.

We have also already done a bit of experimental beatmapping for our built-in songs - but the core game elements are currently getting a fairly major upgrade, so that's what this devlog really is about:

Orbs are becoming OctaDrops



When I started developing Holodance, which was originally called "Holodance Episode 1: Dancing with Dragons", after a few early prototypes, I 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. The orbs were designed as "magical orbs" that the dragons were throwing at you, so you could catch them, so you could "tune into their rhythm". It was all about "playing with the music".

I was very careful to always speak of "catching the orbs" to maintain a non-violent atmosphere, even though the game actually always did give you a higher score the stronger you punched them. Also, while we've had the idea to have specific orbs for specific hands very early in development, I decided to let players catch any orb with any hand (or your head), at any time - so players could invent their own choreographies based on the given mapping.

Going from Catching to Punching



During a recent meditation retreat, I realized that Beat the Rhythm (and as an option also Holodance) might become much more interesting if we allow beatmappers to define orbs for specific hands (as it was introduced by Audioshield), and specific directions (as it was introduced by BoxVR).

This is a surprisingly big change - punching things creates much more intensity, and that's a really good thing. And of course, it fits the title Beat the Rhythm. We could have called the game Drum the Rhythm - but we want some real punch here.

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 and I'm calling it OctaDrop:



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 probably noticed that we eventually added outlines around the circles because we had visibility issues in bright environments.

This shape doesn't have those issues - by its design.

Furthermore, we have 5 well-defined colors, so head, hands and feet can be "assigned". For head OctaDrops, we will only use only the outline without the main metal-body - no one wants to have a metallic drop bump into their heads.

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. In Holodance, those were represented as text. In Beat the Rhythm, they will be very simple symbols: Two dots, three dots, four dots, like dice, and a more or less filled square. We will place them depending on the direction so that they are always inside the dark area (and with the same color as the outline).

Obviously, we will design the beatmaps for our native songs to properly use these features, and our upcoming beatmap editor will let you do the same.

But we will also have osu! support, of course, and with osu! 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 automatically be converted into directional drops. The others will be straight (like the center one).

Building our own Tools



Long story short, for Beat the Rhythm, 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.

Sometimes, when designing effects, it's quite helpful to build tools to be able to quickly test something, iterate on it, tweak it, try something else, rinse repeat. You could, of course, do the same thing in the game - and that's how I quite often approached it with Holodance. But sometimes, this makes iterating on the design too cumbersome and time-consuming. So here's what I'm currently using to design the spawning and punch / slice / shoot animations for the orbs:



I hope you enjoyed this little (yeah, right ;-) ) devlog. Stay tuned for more!