You sit in your spaceship cockpit. The sounds of the engines throbbing behind you, the rings of Saturn slowly coming into view through the launch window. The voice in your ear tells you that all systems are go, it is time to blast out into deep space and defend your space from the attackers. You reach up, adjust your VR headset, make sure your headphones are perfectly placed, and they seem to disappear as you’re drawn into the amazing visuals and sounds of the experience. Then, you look down at your instrument cluster. Neon glowing holograms hover in front of you and buttons beckon to be pressed. This is pretty much the setup to Eve: Valkyrie.
With those visuals and sounds being supplied, imagine how let down you feel when you reach out and find a standard Xbox controller in your hands.
Wouldn’t it be better if your space ship had a matching real-life control panel that matched it so that you felt more immersed? What if your game involved jumping up and down, wouldn’t actually jumping feel better than pushing a button on your game pad? Well, right now, your options are limited. The landscape of Virtual Reality is just beginning to take form, and available peripherals are few and far between.
Makers are stepping up to this challenge though. You might be envisioning all kinds of custom control panels for interfacing, but the interfaces for virtual reality can get really wild. For example, a group of students at Full Sail University set up an experience where you strap into a parachute and the actual parachute controls are what controls the movement within the experience.
No matter how complex your concept for a game interface is, as far as the computer is concerned, it is just a series of buttons and analog readings. The computer doesn’t care what it looks like or how it is shaped. Making a custom controller pretty much consists of two parts: creating the circuit and constructing the physical structure.
Building a circuit
Hacked Xbox Controller
Many games are already built with Xbox controller compatibility. You can literally just crack one of these controllers open and solder external buttons directly to the PCB. Using this method, you can have an official Xbox controller at the core of your project, and create an interface in whatever shape you want. This video from Ben Heck explains how he creates single handed controllers by rearranging parts of an Xbox controller, but the same principles apply to using one for new projects.
The teensy is a tiny prototyping board that can be seen by the computer as a keyboard, mouse, or both without installing any additional software. Simply load the profile you want, attach the buttons you need, and plug it in. The computer won’t know it isn’t a mouse or keyboard.
Bluefruit EZ Key
The Bluefruit EZ key is ideal for creating a bluetooth controller. These come directly from adafruit pre-loaded to be seen as a bluetooth keyboard. Solder buttons in place to be the space, enter, arrow keys, w, a, s, d, 1, or 2 keys. Or, load your own custom configuration.
If you’re making a game of your own, you have the option of incorporating input/output directly to an Arduino. This would allow for more alternative methods of input, such as distance sensor, knobs, microphones, etc. Since you’re making custom software, you’re free to break loose from the limitations of having to use an Xbox controller or emulated keyboard.
Shaping the Form of Your Controller
Now that you’ve seen what you can use to build the circuit, consider that you need to construct the physical shape of the controller. Are you making the cockpit of a spaceship? A pinball table? There are so many options here and the truth is, any of them will work as long as you end up with something that feels right. Here are a few common materials to consider when constructing your controller:
This is a heat moldable plastic that you can use to form all kinds of shapes. It comes in little pellets that, when heated can be shaped by hand. When they’re cool, it is a very tough plastic.
Papercraft + Resin
For complex shapes, you can create a paper model of the interface you want, then paint layers of resin on top of that to gradually make it stronger. This is a fantastic alternative for people who don’t have access to a 3D printer.
Design your interface in CAD and print it out! Changing your design is so much faster with a 3D printer.
Remember, you’re not going to be looking at this, it just has to feel right. Slap anything together to get the job done! Maybe your in-game time bomb is a basketball with a circuit taped to it in real life. Maybe your experience can rely on something that already exists. If your game is about a riding lawnmower, why not use the seat and wheel from a real one?