Midterm Project
Red Light & Green Light - Yuyao He - Eric Parren
CONTEXT AND SIGNIFICANCE
This project is inspired by a common childhood game in China, "Three-Two-One, Wooden Man," and the Korean TV show Squid Game. The original game is a multiplayer game where one person acts as the "doll", who is responsible for turning around and observing the movements of others. The rest are "runners," who must move toward the doll within a limited time and freeze completely when the doll turns around. There are two possible outcomes: if the doll sees a runner moving, the runner is "dead"; if a runner touches the doll within the given time, the doll loses the game. Our project aims to recreate this game through prototypes and coding.
I believe interaction is a dynamic process. Interactions between humans and computers, as well as between humans, is expressed through sound, visuals, emotions, and more. Our project is a two-player interactive game, also a competition. Throughout the game, players' emotions are engaged—such as tension and excitement—which is a form of interaction.
Our target audience includes anyone who maintains a childlike heart. This project can recall memories of childhood games or even memories of the intense games in the TV show. Overall, we just want everyone who plays the game to have fun.
CONCEPTION AND DESIGN
Since this game needs to be presented in the form of a prototype, it cannot move like a real person. To enable players to interact with the "movement-freeze" and "turning" mechanics, we decided to use different states of buttons to achieve this interaction. For the doll, we used a servo motor to enable a 180-degree turn, making its movement similar to that of a real person. As for the runner, figuring out how to make it move took us a long time. Initially, I thought about using a movable gear track, but we later realized that such a mechanism wasn’t available. Then, I thought of the stepper driver module we used in recitation class and decided to use a string to pull the runner forward.
Next was designing the win/loss conditions for the game. For the doll to win, both buttons must be pressed simultaneously for 0.4 seconds—this duration was determined through testing as the "reaction time" needed for the runner. For the runner, my initial plan was to use a distance sensor, but I found that its sensitivity was not ideal. Eventually, I decided to use a magnetic sensor, which allows us to control the game’s win/loss state using digitalRead in the code.
My standard for selecting these components were based on whether they could enhance the playability of our project. The materials needed to be easy to function and capable of achieving the desired interaction with the fewest possible components.
FABRICATION AND PRODUCTION
During the project development process, I played a key role in selecting components, refining the code, and designing the prototype. For example, to ensure effective interaction, I selected and decided on the use of components such as the servo motor, stepper driver module, magnetic sensor, LED lights, and buzzer. After Lucy found the code we had learned in class, we worked together to write most of the code. I was primarily responsible for coding the magnetic sensor, LED lights, and servo motor. Throughout this process, we received a lot of help from the LA and Eric—without them, it would have been much more difficult for us to complete the coding part. I also contributed significantly to the prototype construction. I was mainly responsible for setting up the entire prototype and working on details such as designing the track to restrict the runner’s movement and constructing the overall model, and Lucy focused more on the drawings.
Our teamwork experience was very smooth. We scheduled meetings and divided tasks in a friendly and efficient manner, ensuring that everything was completed as planned. User testing was incredibly helpful for us. First, I want to thank Lucy—since I’m not very good at explaining our project, she was a great help in this. From user testing, we received several key suggestions: adding sound and lighting effects for when the runner wins and improving the art design. As a result, I decided to use a magnetic sensor to detect the runner’s position and determine the game’s outcome, while Lucy took charge of the art design, creating beautifully drawn covers and scene illustrations.
Link to our material list & codes: https://docs.google.com/document/d/1Pxm_MglnzsVDIWyS5UeL-kfQhOKYxKfeViqKUtemexE/edit?usp=sharing
Conclusion
The goal of our project was to recreate the game Red Light Green Light through a functional prototype that allows for interactive gameplay between two players. Our project results align with our definition of interaction in several ways. The game successfully engages players by requiring them to react quickly, make strategic decisions, and experience emotions such as tension and excitement. The combination of sensors, buttons, servo motors, and LED lights created a responsive system where the doll and runner dynamically influenced each other’s outcomes. However, our project also had some limitations in achieving interaction. For example, while the movement-freeze mechanics were successfully implemented, a more advanced motion system could have made the runner’s movement more fluid and lifelike. Furthermore, in the original game, after the doll turns around, they must carefully observe whether the runners are still moving. However, it was difficult to replicate this process in our prototype. I believe this is an area for improvement. For example, the runner’s movements could also be restricted when they are not pressing the button, making the game transition from a simple prototype to a more interactive, real-world experience.
The audience’s response generally aligns with our expectations. They found the game fun and engaging, experiencing a sense of competition and tension, which was exactly what we want to see.
If we had more time, I think we should incorporate a timer, as suggested by our testers, to set a time limit for the game, making it more faithful to the original version. Additionally, there is still room for improvement in the art design—the overall appearance could be further refined.
Throughout this project, I encountered significant challenges in coding. I realized that actively seeking help and independently exploring solutions are essential parts of learning to code. I received a lot of support from others and also spent a long time researching on my own. This project has helped me become more familiar with fundamental coding principles. Learning through hands-on experience was a highly rewarding process.
Video of the project: https://drive.google.com/file/d/1Mn_hiXyAqQBCslgw3Sxq7lp57_DolF3F/view?usp=sharing
Disassembly & Return