Helmet Racing

Arcade-Style Motion Racing Game

Team Size: 3

Unity, Arduino, Blender

Brainstorming and Ideation:

We started by brainstorming a few ideas based on the constraint that was imposed on our group by the challenge: we couldn’t use buttons. After suggesting, discussing on pros and cons, and voting, we came down to three ideas:

  1. Karting Game

    1. We could use the gyroscope (MPU6050) to track movement and a potentiometer to control velocity

    2. Based on Wooden Karts, we would add the sensor to a wood piece and the player would tweak that with their feet.

  2. Cooking Game

    1. It would be a game of sequence but with colors instead. We would use a TCS3200.

    2. Players would be prompted with a recipe, where each ingredient represents a color.

      1. They would either have to memorize and repeat the sequence. Or simply work against the clock to cook the recipe.

      2. Prepare the ingredients while controlling sensors that would represent cooking actions - such as controlling the fire with a potentiometer or steering the food with an analogue.

  3. Platformer w/ Speech Controller

    1. We would use a microphone and a speech library to control the character.

    2. The player would have to say commands such as “jump” or “attack” while the character moves through the map.

  4. Shooter Game

    1. We we would use the gyroscope to control the camera and add a button for shooting while waves of enemies would try to attack the player.

Although all those ideas sounded fun and exciting in our head, we decided to go with the safest approach. We didn’t really know how to map a camera or how to add a speech library to Unity. Even the TCS3200 project seemed too big of risk so we went with a Karting Game.

First Prototype: Our first prototype was focused on pinpointing the digital part and sketching the physical control. To make our life easier, we made use of Unity’s Karting Microgame and simply tweaked the project to our needs. During our first experimentations, the controls were too sensitive and the slightest tweak of the MPU6050 would make the character turn full speed. To fix that, we went for a more complex acceleration and driving code, mapping the gyroscope movement in one axis. At that point, we were not sure were no put the potentiometer but we realized the wooden kart idea would not work as we intended. Our main questions were: How do we keep the novelty without compromising the gameplay? Is there something we can do that doesn’t require damaging the piloting systems we’ve built? Will we need to cancel the karting idea? Maybe changing to a flight simulator? We took those concerns to the class and our helped us to think through it.

Second Prototype: Next step then was to find a new controller, and we did… A helmet! Opposing the feet-tweaking idea, the helmet was more feasible. We tweaked the sensor to detect tilting in all axis and attached the MPU6050 at the top of a motorcycle helmet. We were considering one axis as velocity (forward and back) and the other one as direction (right/left). Finally, we changed the avatar, making something similar to the physical controller.

Third Prototype: Of course, the solution would not be as simple as we wanted to be… We found out that tilting back and forward was bad for the player since the helmet would block their vision at some point. Because of that, we removed one of the axis and attached a potentiometer to the helmet instead (speed control). With the correct positioning and mapping, the gyroscope worked just fine, we would just have to test the speed. For looks, we changed the skybox, the track, visual effects of the scene and added a few assets in order to get a sci-fi-desert like map.

Final Prototype: While the alt-helmet-ctrl was feeling good, the potentiometer was feeling unnatural. We noticed players were “holding to their head” the entire time in order to accelerate and that was making difficult to tilt the head. To solve this problem we went for the obvious: a lever. We made a lever out of chopsticks and tape, which worked pretty well! Then we detached the potentiometer from the helmet and moved it in between the player’s legs. That was it! We had our final, working and immersive alt control. Most important, it was fun! We had a timer and tricky curves which added to the challenge quite well.

Lesson Learned and Potential Improvements:

  • Certain things, such as driving, have pretty straightforward standards. While looking for novelty is good and exciting, sometimes it might be good to keep well-known/natural patterns.

  • 3D printing is a must skill for the future… We felt like our potentiometer would benefit if we had actually printed a lever to attach to it.