I co-led a team of three (Ph.D. candidates Julie Newcomb (EECS) and Christine Greg (MecEng), and myself) to develop a game controller prototype as well as a 3D version of the popular game 2048 within one week.
The game mechanics of the 3D version is identical to the original version, except that the player could not interact along the z-axis (the original only enabled x and y-axis movement). There was two game boards (instead of one) which could interact with each other. Each game board (one board on the left, and the other on the right) corresponded to the top and bottom faces of the cube-shaped game controller, respectively.
The cube-shaped controller was equipped with photo-resistors embedded in a cross-shaped orientation into the controller's top and bottom faces. These photoresistors were used to detect the direction of a user's swipe to control gameplay (i.e. a swipe down corresponded to 'moving' down in the game). An accelerometer was used to determine which face of the cube was facing upwards (i.e. the face currently being used by the player). LEDs on the top and bottom faces informed the user which cube face was currently controlling gameplay.
The game controller body was housed within an acrylic enclosure. I co-led the integration and assembly of all wiring and photoresistors which were then routed to the mbed KL25Z microcontroller. I also led the development of the controls of the swiping and accelerometer using C++. With the encouragement and support of my teammates, I was able to learn and successfully program a working controller to meet the requirements of this project.
We definitely learned to "expect the unexpected" during this project. If there was a chance of something failing – it did: the laser-cut pieces did not perform as expected, the accelerometer suddenly stopped outputting data (multiple times – we remedied this by reconnecting the accelerometer directly to the breadboard), LEDs were shorting out, etc. We initially anticipated completing this assignment on Friday; due to these setbacks, however, we were unable to finish the controller by the deadline. In terms of lessons learned and experience gained, however, this remains one of my most successful projects.