This is my final piece of university work that will decide the last contribution to my degree.
I've decided to build a game. My primary focus is to create custom physical controllers for each player to enhance the interaction while playing.
I am building web based multiplayer game focused around a tangible interface. Players work together to fly a spaceship the catch however, is that the spaceship is falling apart and needs constant adjustments to fly. Players shout out instructions from their device for others to enact with their physical controllers. If you know of the IOS game Space Team this is sure to sound very similar at this point. Physical control pads will consist of buttons, switches, sliders, knobs and ultrasonic distance sensors.
My first prototype may offer a small visual insight into what these controllers may look like. I needed to create an initial version to insure I could create make the necessary connections I would need to make this game a reality. I can and did so have been improving on this idea over the past few weeks. Actual controllers will have many more inputs and outputs.
The backbone of my project is built using Node.js, Socket.io and MQTT that combined allow me to create seamless connection between my Arduino powered physical interfaces and browser based game screens.
I'll be using Arduino to control inputs and outputs, I've already needed to upgrade to an Arduino Mega to have the necessary amount of inputs. I'm using the MQTT protocol to send data between my controller device and a Node.js App. My Node.js App controls the logic, processing data received via MQTT, creating events for the game and emitting data through web sockets when needed.
Yesterday I constructed my second prototype (seen above) to allow me to work on 2 player interaction and game logic. Each control now has 7 inputs and both connect over Wi-Fi using the same Arduino. I'm excited about my progress so far and am really enjoying this project. I'll post a couple more updates as I continue working of the next 4 weeks.