Myself and five team members developed a complete VR game with Unity, SteamVR, and the VRToolKit from ideation to a fully playable game in less than two months. Design, development, gameplay scenario, playtesting, and user interface were all completed in-house by the team. The final game implemented ideas from rhythm games, old-school shooters such as Doom and Quake, and modern sensibilites like scaling difficulty and customizable levels.
Seven weeks from idea to shippable game is pretty tight, all the more so when many members of the team were inexperienced with Unity (and C#) and game design. My previous experience with Unity and VR (see ExNovo and Narrative Framework) led me to taking the project lead role.
Starting out, the team began to research what worked well in gaming already. What was popular and fun. What worked in VR. What didn't work. Brainstorming and ideation were key here, not feasability. Popular VR games such as Beat Saber and Space Pirate Trainer, as well as non-VR games like Nier: Automata, Dark Souls, and Doom (2016) were brought up.
Doom (2016) being brought up in our discussion on current popular games led us to the idea of exploring games from the early days of 3D gaming. VR is very much in it's infancy now as 3D gaming was in the 1990s, creating a nice parallel. Arena style shoots such as Doom (1993) and Quake and explorative games like Tomb Raider (1996) were all brought to the table.
The team decided that our goal for this project was to create a game that we, as the developers, would enjoy. This was inspired by how the themes and mechanics of early shooters like Doom (1993) came about. Further inspired by old and new games, the wave of nostalgia that crashes ever forward meant the team could proceed with a maze/arena style game keeping in line with neo-retro games that have become popular.
The carefully limited scope allowed myself and the team to execute an ambitious plan while maintaining a reasonable workload. The design sought to showcase the teams strengths (such as programming and game design), and minimize the weaknesses (art) while still allow all members to challenge themselves and grow.
You Can't Stop the Beat is a virtual reality rhythm-based action game. The player finds themselves lost in a maze in the depths of space and must find their way around the maze growing in power, all while avoiding the onslaught of bullets raining down around them in time with the music, with a robot intent on stopping the player at all costs. Quick movement, fast shooting, and a good sense of rhythm are the keys to success.
Like with any good project, there were lots of problems to be solved, bugs to be squashed, design choices to be made, and tests to be run. Here are a few of the highlights.
The core gameplay loop of You Can't Stop the Beat involves the enemies firing at the player in time with the level's music. While humans have a uncanny ability to pick out the beat, rhythm, and melody of a song, individually hand coding every song would prove too time intensive and necessitate the implementation of special listeners and readers on each gameobject.
The fast Fourier transform (FFT) can be used to separate a complex singal (like a sound wave) into its constituent pieces. By writing an FFT we could breakdown any song into frquency bands and the correlate those to components of the song (low bands for bass, upper bands for high-hat and snare, etc.)
This also simplified the workflow as we could have a single master game object that would fire events for relevant changes in each band. Now any gameobject could listen to the single master FFT object and react accordingly (such as by firing a bullet when a change in bass is heard).
An in progress build showing the cleared area in the maze center, and a visualization of the FFT surrounding the arena.
In the interest of maintaining compliance with copyright laws, You Can't Stop the Beat has a limited number of tracks that come prepackaged. However, as the team saw with games such as Beat Saber or Guitar Hero long track list is a key selling point.
Allowing users to import their own music lets a functionally infinite number of levels be generated. This idea came about in conjection with the necessity to hash and seed the maze generation. However, the compiled binary executable of the game didn't necessarily play well with new content being read in from the operating system as opposed to from the resource folder. The music system (including FFT, file reading, and maze hash) was overhauled to allow for the new feature.
Out of 48 participants You Can't Stop the Beat took third prize in the 2019 EON Reality x NTU VR Challenge. We received specific praise for our ambition, unique concept, and the grounding of our design ideas.