Futurejam - a music rhythm game for Steam VR (Vive, Rift, Windows MR)
Guitar Hero-like gameplay but using drumsticks to hit drumpads and a marimba keyboard.
The game is powered by Koreographer to play 6 music stems synchronized against hand-made beat maps.
If a player misses a beat, that stem is muted by turning on a Low Pass Filter.
A spectator camera moves around each scene to provide anyone watching a music video like experience, with cuts sync'd to the beats. The spectator camera was one of the hardest compromises in the game. We knew it'd make the game more enjoyable for people watching, but means we have yet another camera to render. It required a ton of extra optimization.
One of the core challenges on Futurejam was trying to create a 'touchable' user interface. Most VR user interfaces rely on laser pointers to interact with various buttons and widgets. This is often intuitive to most users. Instead Futurejam's UI was designed for players to reach out, touch and push buttons to trigger them. The key to that is good haptics. When a user touches a virtual surface with motion control or pushes something in, a little rumble feeds back there is something physically there to interact with.
Core Technologies
VRTK - For all hit detection between the players hands, sticks and pads.
Koreographer - Used for all beat mapping
HX Volumetric Lighting - Adds atmosphere to every scene
Cinemachine - Managing moves and angles of the spectator camera
Zenject - For gluing everything together explicitly through code
UniRx - Used here and there to make dealing with async code a little more hospitable.
Facepunch.Steamworks - Powering steam leader-board and cloud integration
Final IK - Puppets the player's avatar for the spectator camera
LeanTween - Powers a ton of animations and tweens in the UI and visual effects
MeshAnimator - Allows us to run large crowds at decent frame rates.
Alan Stafford
VR Freelancer - Programmer