Off-Killter Released for VR-JAM 2020!


Make a few recordings of yourself moving your body/limbs around. Memorize these movements by playing them back if necessary. Ready to begin?

Your recorded movements will be played back to you...but something isn't quite right with one of the replays. Identify the imposter. Choose carefully; the results are fatal.

Off-Killter is a WIP prototype WebVR puzzle/action game created in less than a week for VR-JAM 2020. The jam ran May 1st through May 8th with the theme "one tool, many uses".

The game uses your headset and motion controls to track and record player movements which are mirrored back to you in real time. You can record short clips of movement that can be replayed back to you. These clips are then used at the game's start to animate the replay ghosts shown to the player. While replaying, a random ghost's movements will play back slightly different than initially recorded. It's up to you to spot and eliminate the imposter to win. Check out the preview video to see Off-Killter in action.

A couple days after the jam started I setup the repository base and got my Vive out of storage but I didn't get started working on the game until late on the 4th. Unfortunately as a result the game is not in the state I'd normally release it in, but I was able to get the basic game loop implemented.

The game has only been tested on my HTC Vive headset/controllers using Firefox and SteamVR. Off-Killter's initial release ships with A-Frame 1.0.4; it appears that the latest (unreleased) version of A-Frame supports WebXR through Chrome and perhaps other browsers. As soon as there is a stable build I will be updating the game to support as many headsets and controls as possible. I've already got a handful of fixes and improvements waiting to be released so check back when the VR-JAM 2020 voting period is over!

Follow me on Twitter and for updates on Off-Killter!

Off-Killter was built with A-Frame. I'm very impressed with this framework; after working with Three.js on my last project A-Frame just feels like such a great simple abstraction layer for rapid prototyping and development. There are also a lot of community components that are super helpful such as the environment component which is used in this project.

The inspiration for the idea actually came partly from an A-Frame component that was written to handle the scenario of recording and replaying movement. Unfortunately that component broke a few releases ago and I wasn't able to get it to work so I just decided to write my own instead of stepping through the code to try and debug it.

If anybody is interested: the code is currently not public on my GitHub but I will either be publishing it or releasing an example repository on how to mirror/record/playback user movement in the near future.

Leave a comment

Log in with to leave a comment.