Space Trouble

"Space Trouble is in development as a game to be played during a space-themed party (unfortunately delayed until after the Coronovirus apocalypse). It is my way of learning embedded development past the quick examples seen on Arduino tutorial projects. The project itself takes inspiration from the party game app Space Team.

The idea of Space Trouble is that each of three players has in front of them a panel of buttons and knobs, along with a screen instructing them what control needs twiddling to keep the ship sailing smoothly.

Picture of panel Prototype panel. One thing I learned from the prototype is that the buttons I use on the left have built-in debouncing, but sometimes require more effort than expected to register a "push". The final panel will most likely have an LED next to the buttons to give feedback to the user that the button was pressed enough to register.

The catch is that although your panel's screen might be telling you to "Enable the Gelatinous Darkbucket", the Gelatinous Darkbucket control may in fact be on someone else's panel. Therefore, players must communicate with each other (which often takes the form of chaotic yelling).

Current Status

Currently, I have developed a prototype panel which runs the game in its entirety, which is shown below. The next step will be to create three such panels, each with a module to enable wireless communication with the others.

The game flow goes as follows:

Implementation

Image of Inside of Box Wiring The wiring on the inside of the box.

The prototype panel has been implemented using a Feather M0 development board. The software itself is implemented in Rust.

Some general ideas regarding programming this in Rust: