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.
Its been an exciting few months. I think I've come a long way but have a lot further to go; It's exciting and I'm enjoying the journey.
I'm no master, at times this can be frustrating but I pride myself on my ability to learn, not being put off by the next unknown challenge. I'm a problem solver.
Early september saw me make sambillingham.com a custom Wordpress theme and use it to blog. It got me going again quickly, after my earlier pseudonym has been retired. A relatively simple design but I spent this time working hard towards a solid mobile first development. Winter term was spent mainly on Arduino projects with a focus on the internet of things, in this time the two projects I was most pleased with were The ESN and Synapse. I was trying to do better and my grades were brilliant; I realise now that my projects could have been even better. Christmas came around and I decided to focus on pushing myself more and stepping out of my comfort zone. My PC rig sold and with a loan from my generous parents I brought myself a shiny MacBook Pro. It may not seem like a big deal but to me it was a mental switch to purely focus on my development skills.
It first hit me back in January, as attended my first Hackathon. Plymouth University Hackathon society was new this year so the event was small, around 15 people. I was a little unsure of what to expect. Without really knowing what was going on, not wanting to sit on my hands and trying not to panic I had a quick play with Twilio (a great service I'll be using again shortly). Soon after Saul, Ben and myself had decided to roll with Tea Run, a small web app come Chrome extension for alerting housemates you're making tea. Simple. Or maybe not… I had truly been thrown in the deep end, and it was great. We decided to build the system using Node, after toying with the idea of Rails but subsequently disregarding it as an over complication. I'm pretty sure I had a confused look on my face for the entirety of my first encounter with JADE. LESS was a little more friendly, but both accepted me into their fold eventually. I worked on turning Ben's designs into code while everybody else did the heavy lifting. I was still able to learn a lot from the experience even if Saul probably rewrote all of my code. Thanks.
The next 6 weeks or so throughout most of February and March I set out on an adventure to both learn new things and make the most out of my project briefs for university. Being pretty open briefs it allowed me to sway them toward my choice of technologies. I set off to learn the basics of Node.js and Websockets. Spaghetti code was everywhere but I iterated many times and improvements were vast. My knowledge grew as did my confidence. I played with a Node MQTT broker, Node OSC, Socket.io and MongoDb, all with relative success even if my way about it isn't perfect it did what I wanted. My next venture was with Rails, its powerful and I wanted to try my hand at using it to create a web app. I organised a Hackthon for students on my university course, only 8 people turned up and only 4 of us really stuck it out but it gave me great chance to continue my learning process. I started learning Rails for my side project Project ME, its on the bench for now while I'm concentrating on my dissertation and final project but I can't wait to ramp up development again. I really wanted to run project Six live for our demo day which lead me to my third learning curve. I needed full control of my hosting environment and such this required me to purchase a VPS. With numerous accidental firewall incidents I setup a functional production environment for my Node App, another great experience. In this short time I've gone from never have opened terminal to using Git for all of my projects and managing my own VPS. To many, this may all sound like everyday life, and now it is for me too. Prior to christmas I doubt I would have expected to be where I am today but with a passion to learn and a little help from my friends I'm on a path that is both enjoyable and fulfilling.
My new Site
A building sense of discover and confidence and with a shiny new VPS breaking the land speed record it was bout time to re-design. I remember when I first came back to university hearing Ben and Saul tell me they creating their site designs and used jeykll as a platform. After a quick google, I remember thinking "New stuff… well I just got this wordpress thing figured out". This time around with an I can do it attitude I'm proud to say my new site is running on a Jekyll setup. The workflow for writing posts is far more enjoyable and thats important.
Finally 'blogging like a hacker'
My journey is ongoing and I'm enjoying each day. I'm passionate about continuing to improve my skills. I've got a few projects in the pipeline and hope I can share them soon including a website for my family, a blog for my sister, are you busy?, Embark Creative, DAT Book, photos.sambillingham.com, my ultimate frisbee team documentary and video showcases for both Project Six and Lucid. Here's to pushing your boundaries.