"2B1" is an interactive game that requires input from both users in order to control the main character. Several input mechanisms were implemented to insure that this game require collaboration between the two users.

Team Members

Adil Yalcin

Zahra Ashktorab


Code for our project can be found here


Check out our video here.

Materials Used

Arduino Board

IR Emitters and Detectors


Rotary Knob






For our project, we decided to utilize the available tools and resources to create an innovative input for collaborative game-playing. We created a two-person game called "2B1".


"Etch a Sketch". Inspiration.
"Etch a Sketch". Inspiration.

When we began this project, we knew that we wanted to utilize an input device that would allow us to decouple x and y inputs for a character and allow two users to control one character. We decided to use a rotary knob because we found this would be an appropriate input device for such functionality. We were a inspired by a "Etch a Sketch", a toy known to almost everyone."Etch a Sketch" decouples input and allows for sketches. Our design and implementation enhance this method of input and apply it to a game environment.

Building the Controllers

Setting up the IR Emitters and Detectors

We began building the controller for our game by using an arduino board, a breadboard, a rotary knob, and wires. Upon establishing that these components were functional we began testing the IR detecters and emitters to make sure that they were working. The IR detectors and emitters were key features in the controllers that ensure collaboration in the game.
Inside of Controller and smaller breadboard with IR sensors and emitters.

To make sure that all of our components would fit into the case for our controller, we used a smaller breadboard. As pictures in the image below. The design of our hardware had to ensure that other sources of light were not interrupting communication between the two controllers.

The Game

We built our game with Processing. The main player of the game, a rabbit, is controlled by both users. In one mode, Player 1 manipulates the speed of the rabbit while Player 2 manipulates the directions of the rabbit. In another mode, both Players manipulate the direction of the Rabbit; user manipulated the Rabbit on the y axis, while the other user manipulates the rabbit on the x axis. The rabbit must avoid the wolves, who randomly around the screen.

Screen Shot 2012-10-07 at 7.19.40 PM.png
Screen shot of our game "2B1".

Furthermore, we have created "powerups", ways in which to give the main character of the game, the Rabbit, an advantage. There are four power ups that allow the Rabbit to increase it's speed, freeze the wolves, slow the speed of the wolves, and attain "invincibility" (a state in which it is not affected by the wolves). The existence of the powerups further motivates the users to collaborate. The Rabbit can recieve powerups by getting close enough to them. However, the Rabbit cannot activate the powerups without further collaboration from the two players playing the game. The two players must their controllers close enough to one another in order to activate a power up. The IR sensors in controllers allowed us to include this functionality in the game.


Throughout the course of developing our project, we came across many challenges that through trial and error and experimentation we were able to resolve. While finalizing the controllers, we realized that the analog signal would disrupt the digital signal. Our rotary knobs were connected through the digital pins and the IR sensors were connected through the Analog pins. When we tried to use the analog signal, everything else failed. Upon trial and error, we found that the solution to this issue was connecting all IR sensors through the digital input as well.
Final look of controllers. The Rotary knob is located on the top and the IR sensors are on the shorter end of the controllers.

To compensate for that change, we adjusted the resistance levels.
Another challenge faced during this project was making sure that the correct IR components communicated with one another. Our aim was to create a controller in which the IR sensors on different components would communicate with one another. We didn't want the IR detecter and emitter on one controller to communicate with one another and interrupt the collaboration and interaction between the two controllers. The case solved our problem. It encases the IR sensors on one controller insuch a way to minimize interferences.

Future Work

The concept of two people playing one game raises many new possibilities. It prompts one to ask, what other features can one decouple in such an environment. In our game, we implemented the decoupling of the character's x position and y position as well as decoupling direction and speed. This functionality could be implemented to the size of a character, as well as other the manipulation of other environment variables.

Thoughts about Project

In general, we enjoyed this project because it helped us think beyond the scope modes of inputs usually used. Though these modes have been previously established and have become the standard norm, it does not mean that they are the most intuitive ways of interacting with technology. This project necessitated that we explore innovative and interesting modes of input with the available tools.


1. http://bildr.org/2012/08/rotary-encoder-arduino/
2. http://www.letsmakerobots.com/node/28278
3. http://www.processing.org