Ozone Command is a one or two player arcade game – the intention is to provide a solid, reliable, and self-sustaining game that can be displayed and played without needed maintenance or curation/explanation.
The ‘twist’ on the traditional arcade game concept is the embedded camera that puts the player on display at the game’s most hectic moments. The player(s) stand in front of a small controller console that beckons them with two large knobs as well as a one player and two player start button.
Phase I: Design and Programming
While the concept appeared clearly in my mind, it was a hurdle to make a game that followed my vision accurately. Using simple collision detection between rectangles and ellipses as derived from the examples of REAS, I
was able to put together the basic mechanics easily. A particularly frustrating hurdle was that I could not test the gameplay until my physical controls were wired, something I had not anticipated. To make the paddles follow the arcs I had defined for them, I derived a formula for each player’s Y value based on the equation of an ellipse (and not on polar coordinates).
An early screenshot.
I based the video portion off of an amalgamation of Dan Shiffman’s pixelation and motion detection video tutorials but only after failing to use the background removal tutorial. At first, video performance was so poor it slowed the entire game to an unplayable crawl. Finally, the pixelation allowed me to capture fewer pixels, thus putting less strain on the sketch computationally. I switched from an all-white background and a minimalist vector look for the earth to a more realistic black space background and realistic earth image.
What was originally conceived as a game with three game states (Title screen, Game, and Game Over screens) was expanded to 5 as I included a High Score page and a brief How To Play panel. I did end up having enough time to put in a few basic powerups; however, I never got to modify the scoring mechanics much.
Phase II: Circuitry
The circuit itself ended up being quite simple, with two potentiometers sending values along with the value of three digital switches (Player 1 Start, Player 2 Start, and Reset button) to processing via the punctuation method.
Originally I had conceived of a heart rate monitor to occupy the most complicated portion of the circuit; however, Tom Igoe and my classmates convinced me not to include technology for the mere sake of it and to focus on a solid concept, interaction, and quality fit and finish.
Phase III: Construction
I sketched out a design for the box which I originally intended to produce using the band saw and a variety of hole saws. The biggest challenge in this phase was determining how far apart to place the two potentiometers. The potentiometers needed to be far enough apart to allow two players to stand next to each other and play without being far enough away from each other that the mounted webcam could keep them both in frame, a variable that was difficult to test without having the unit finished. Ultimately, the first designs were way too small (the inside of the compartment grew quite cramped even with the larger design) and I was happy with the compromise I chose.
The laser cutter provided really precise output and, after a stressful few days of trying to purchase the right wood, format my files correctly, and find a time where a trained ER member could help me use the laser cutter, I was left with some very nice, precise pieces.
I built the console by using some wood glue and clamping the pieces together. The potentiometers were mounted (after being sanded down to fit inside the small compartment) with a hot glue gun and are by far the most fragile part of the device. I suspect I will have to refasten them with superglue before they are able to withstand the rigors of the Winter show.
Phase IV: Sound Design and Testing
I designed some simple sounds with a simple sound generator called SFXR and took a loop from the Amistrad version of Robocop to compose the games’ title screen music. I found some royalty free heartbeat sound effects, boosted their bass and sped them up to varying degrees. The biggest challenge in this part is working with the minim library and ensuring that finished music tracks repeat once they have finished. For now, I took the lazy way out and just made the files longer to reduce the chance of it happening. The game was played and many commented that they found the gameplay enjoyable; however, only one pair of two was able to test the game in each of my final presentations. I think I will reduce the ‘life’ the player(s) has/have in order to make gameplay a less time-consuming experience.
Ozone Command Debut at ITP from Nick Santaniello on Vimeo.