Super Mario World: Koopa Krisis

A Super Mario World Clone.

Posted by David Leonard on August 13, 2013

Super Mario World - Koopa Krisis is a JavaScript remake of Super Mario World, built on top of the ImpactJS Game Engine, purely for educational purposes. The motivation of this project is to create a replica of one of most iconic games in the history of Nintendo, and to further my knowledge of JavaScript and the ImpactJS framework.

Project Conception

As the new leader of CCNY ACM’s Game Development group for the Fall 2013 - Spring 2014 year, I decided to experiment with the ImpactJS Game Engine after being exposed to it in Fall 2012. I decided to begin working on a simple platformer game in late July, based on Super Mario World. My motivation was to create a skeleton game which others could build on top of, and to produce a well polished game at the end of the Fall 2013 semester. Once our Game Development club meetings started, I assembled a team of 5 others and development began.

Roles and Responsibilities

As the project leader, I began with introducing my teammates to ImpactJS and JavaScript by going over the existing codebase. During this time, I explained the architecture of the framework, the existing features of the game, and the progression of features to come. After this, I delegated tasks weekly, maintained the codebase through refactoring, and addressed any questions and concerns of my teammates. Aside from that, my contributions to this project are shown below:

  • Coin / Life System
  • Heads Up Display (HUD)
  • Expansive Item System
  • Dynamic camera system
  • Enemy Artificial Intelligence
  • Development of Powerup System
  • Level Design / Overworld Design
  • Checkpoint system for saving progress
  • Gathering of assets (Musical, Graphical)
  • Development of wide array of player abilities

Challenges and Experiences

Overall, Super Mario World Koopa Krisis was a huge success. Along with my group, I gained a lot of experience with JavaScript and learned more of the advantages of Object Oriented Programming firsthand, along with becoming more familiar with the ImpactJS Game Engine. As a project leader, I learned to coordinate tasks among my team members, and to maintain a codebase with consistent, readable code.

Along the way, there were numerous challenges faced which required more in-depth knowledge of the game engine itself, as well as architecting algorithms to solve these problems. Development of web games using JavaScript requires designing algorithms which will not slow down the browser, either through optimizing the event loop of the framework or developing effecient Artificial Intelligence algorithms for the enemies.

Upon completion of the game, we deployed our project for our fellow club members to enjoy. With all the skills learned from building Super Mario World: Koopa Krisis, our team moved towards building a far more challenging game.

Contributors

This project would not have been such a huge success if not for my teammates and their major contributions. Links to their respective profiles can be found below.