P Comp – Midterm Group Project – Zombie Boot Camp

Zombie Boot Camp Controller
Zombie Boot Camp Controller

My partner for the midterm project for Physical Computing was Patrick Warren. Together, we worked closely on a Halloween-themed video game, “Zombie Boot Camp”, by modifying and enhancing a p5.js game he’d already been working on and creating a controller-based interface (that connects to the p5.js sketch in the browser via an Arduino microprocessor.) 

In “Zombie Boot Camp”, the player controls an out-of-shape, newly-recruited zombie as he starts his afterlife learning how to successfully satisfy his human hankerings. In this game, our code-controlled computer zombie trainer leads the way and helps our zombie recruit learn to moderate his speed and avoid obstacles. Using a potentiometer to moderate speed, players help the new zombie follow the commands of the trainer by speeding up and slowing down, and, at the same time, through use of a button, jump over debris in this post-apocolyptic obstacle course.

After learning how to work the laser cutter and creating a handheld mount for the potentiometer out of wood, we played around with the configuration of the controller and re-cut/-etched a new faceplate. We also added obstacles to the game to give the zombie-in-training stuff to jump over. Over the past couple of weeks, our game has gone through significant transformations, both stylistically and functionally.

Cutting the controller for Zombie Boot Camp on the Laser Cutter.
Cutting the controller for Zombie Boot Camp on the Laser Cutter.

In terms of problem areas and sticking points, we spent several hours getting the potentiometer to output the desired results—ones that would correlate the movement to the direction we were turning the knob. We eventually were able to hone down on the code and divide the speed mapped from the potentiometer to get the effect we wanted. The next big challenge we faced was adding the jump effect into the game.  After several tutorials, attempts at implementation, and a *huge* dose of help from fellow first-year ITPer Max Da Silva, we were able to achieve this as well. In fact, we used the time leading up to our deadline to enhance our game to include obstacles with penalties and even a restart screen for the next players.

Patrick and I met several times (six to be exact… for a total of over 24 hours) to make sure we got the project to where we wanted it. Patrick spent the majority of his time re-skinning the game and modifying/enhancing the code in the p5.js sketch. I spent most of my time building the actual controller—which included learning how to use the laser cutter and working in The Shop—and trying to get the Arduino/potentiometer/button and the game in the browser to talk to each other. Though we each focused primarily on different parts of the project, we both felt it important to make sure we understood the other components involved in the production of the final product. Additionally, as the coding side of the game was the most intensive part of the project, I helped Patrick research different ways to approach solving some of the issues we were having with the performance; he also helped provide input in the design and functionality of the controller. As a team, we worked really well together!