Creating Our Game: The M&M Journey

Introduction

We wanted to create something fun, educational, and interactive. Instead of just making a simple tutorial, we designed a game to help people learn coding skills and concepts like running commands (source venv/bin/activate) in a playful way.

We used M&M characters as a metaphor for learning:

  • A blank, colorless M&M represented the beginner.
  • As the player progressed, the M&M gained colors, showing knowledge gained.
  • By the end, the M&M was rainbow-colored, symbolizing mastery.

Game Design & Levels

We designed two levels, each with unique challenges and M&M characters:

  • Level 1
    • Red M&M
    • Orange M&M
    • Focus: Introductory coding concepts and first steps.
  • Level 2
    • Green M&M
    • Blue M&M
    • Purple M&M
    • Focus: More advanced concepts that built on the foundation.

At the end of both levels, players faced a quiz, testing their understanding before the M&M could transform into its final rainbow form.


Creation Process

The project required both coding and design skills:

  • Backgrounds: We created custom backgrounds to set the mood of each level.
  • Gameplay: The player moved the blank M&M through challenges to “collect” knowledge.
  • Learning Integration: Each color unlocked new coding commands or concepts.

The biggest challenge was making sure the educational content and the game mechanics worked together. We didn’t just want it to be fun — we wanted people to actually learn while playing.


Achievements

This project helped us grow in several ways:

  • Creativity: Turning coding tutorials into a colorful game was a unique challenge.
  • Collaboration: We worked as a team, dividing up tasks like backgrounds, mechanics, and quiz design.
  • Problem Solving: We debugged both code errors and design issues to make sure everything flowed smoothly.
  • Teaching: By explaining coding concepts through gameplay, we learned to simplify complex ideas for beginners.

What I Learned

Working on this project taught me more than just coding:

  • Coding Skills: Reinforced my understanding of running environments and commands.
  • Design Thinking: How to make learning fun and engaging through visuals and interactivity.
  • Communication: Breaking down technical steps into simple lessons for players.
  • Persistence: When something didn’t work, I kept testing and improving until it did.

Conclusion

This project showed me that teaching doesn’t have to be boring. By combining coding with creativity, we built something fun, memorable, and effective. Watching a blank M&M transform into a rainbow symbolized not just the player’s journey — but also my own growth as a coder, designer, and problem-solver.