Inspiration

The original goal was to create something with the simplest possible VR input, to keep controls intuitive and strictly motion based. After a few smaller experiments, inspiration was taken from "That one arcade game where you press a button to stack cubes that's seemingly in every store and movie theater from my childhood".

What it does

As the name implies, the player can stack potentially dozens of cubes by pressing the space bar and "cloning" their current cube. The cubes get smaller as the player stacks more, adding to the difficulty. Easy to play, but hard to master!

How I built it

Built using Unreal Engine 4, Blender, and SteamVR. The motion tracked cube is implemented in a way where dozens of tracked motion cubes would be easy to add, given more trackers. The project is primarily built with UE4's "Blueprints" visual programming system. The SteamVR headset is initialized to a "null" headset with a screen of 512 x 512 rendered to the VR compositor (the minimum possible resolution). A USB radio is used to communicate with the tracker, rather relying on components inside a VR headset to transfer the motion data. The game was rendered using a mobile OpenGL based renderer within UE4.

Challenges I ran into

This game was intended to offer "zero button gameplay", however early testing revealed this project was near unplayable without a large screen and a large playable environment. A projector and plenty of space would open new opportunities for a more unique design. Likewise, a desktop or laptop with a stronger dedicated GPU would have allowed the project to achieve substantially more impressive visuals than VR titles, as the screen only needs to be rendered once with the spoofed SteamVR headset driver.

Accomplishments that I'm proud of

The simple scaling algorithm for the cube size took a while to perfect. In addition, there was initially a lot of variation in how UE4 interpreted the motion controller location, so many small optomizations were added to get the cube feeling more "accurate" to the player's hand position.

What I learned

For a future "VR without a headset" style project, I would likely want to target a more ambitious use case than stacking cubes. I also learned minimalist input systems function best in enviroments with both high precision and high visibility.

What's next for Cube Stacker 3000

While Cube Stacker 3000 will likely remain as a proof of concept, I'd like to experiment with 3-4 trackers instead of one. Replacing the hands with a controller with buttons and adding additional trackers for the player's feet would open up gameplay options that may fit in their own niche outside of a VR ecosystem. I'd also like to experiment with a "versus" style game, because this would better fit the core concept of levering a VR ecosystem to function outside of VR.

Built With

Share this project:

Updates