Nov 5, 2020

Super Mario Bros. Master Copy

Team of 3
October 2019
Skills Utilized: JavaScript, p5.js

Introduction

During the semester, there was an assignment to copy an entire game. We chose Super Mario Bros. for our game and managed to implement the 1-1 stage in a month.

Showcase

Play Online (If it doesn't show up, please use other browsers such as Microsoft Edge.)

How to play
- A / D: Left/Right
- S: Go down a pipe
- U / I: Select / Start
- J / K: Dash / Jump
- Space bar: (Cheat) Power Up

Note: You need to press Start(I) on the main menu to start the game.



Responsibilities

  • Game Core Logic
  • Game Object Management
  • Blocks
  • Enemies
  • Other Objects
  • Sound System
  • UI
  • Asset Analyzation & Management

Technical Highlights

Simplifying the animation sequence with generators

In Super Mario Bros., various objects exhibit distinct animation sequences. When considering their implementation, I devised an approach to manage animations using generators. Each object is associated with a generator yields next sprite. The animate() function then invokes next() on the generator object after a predefined number of frames. This method provided an intuitive and unified way of managing the object animation sequences.


Conclusion

I extensively researched the exact numbers related to the Mario's movement to precisely replicate it and was surprised to know how intricate it is. This project underscored the substantial effort required even for seemingly simple games, imparting a comprehensive understanding of game development's fundamental structure and mechanics.