The space exploration, trading and combat sim Elite:Dangerous lies towards the “sim” end of the flying spectrum, and because of that, has LOTS of buttons. In addition to the usual joystick inputs for pitch, yaw, roll and throttle, and the traditional stuff like firing weapons and whatnot, there are inputs required for functions such as:
- HUD control:
- Opening the relevant panel (A,B,C,D)
- Navigating computerised HUD main tabs (LEFT, RIGHT)
- Navigating within each HUD tab (UP, DOWN, LEFT, RIGHT, CLICK)
- Various toggles for ship systems:
- Landing Gear
- Fuel Scoop
- Cargo Scoop
- Silent Running
- Frame-shift drive engage/disengage
- More “one-press” actions:
- Dumping radiators
- Three-axes of maneuvering thrusters (UP/DOWN, LEFT/RIGHT, FORWARD/BACKWARD)
I’ve made a start on a prototype, using a Teensy (thanks for the suggestion, @Macaba), as it has out-of-the-box support for pretending to be a joystick, and also a mouse and keyboard if that’s required.
One of the biggest complications is that the game doesn’t offer explict “on” and “off” keybinding options for every control, so many elements (e.g. lights) simply have a “Toggle Lights” command. That means that a two-position toggle switch can’t just permanently send a “key down” when in the “on” position. I’m currently implementing them as ‘fake’ toggles, so when you flip the switch from “ON” to “OFF”, it just sends a “joystick button 5 pressed… wait… released” sequence.
I can send keyboard presses instead, but if I use joystick inputs wherever possible, they won’t do weird things if someone is in a screen where mashing the “L” key for lights would do something weird (such as typing chat messages).
Now I need help finding cool buttons and switches. Something for the joystick inputs is the hardest to find at a suitable size and price.