Repository navigation
Design
In the original Super Mario Bros 1, just in like many other games from the saga, players will follow the storyline of Mario's journey to rescue Princess Peach, who has been kidnapped by the villainous Bowser. The narrative is structured around Mario's traversal through various themed worlds, each with multiple levels old platformer styled, and full of enemies that have become classics of the franchise (goomba, troopa, bullet bill...). The story unfolds as Mario ventures through each world, fighting enemies, overcoming obstacles, and collecting power-ups in a race to reach the castle where Princess Peach is held captive, ending each level in the iconic flag scene.
The game is set in the Mushroom Kingdom, a peaceful land that is suddenly thrown into chaos when Bowser and his minions invade and capture Princess Peach. Mario, our main character, hero, and also the kingdom's plumber, tries relentlessly to save the princess. Each world consists of several levels, culminating in a confrontation with one of Bowser's minions or a major boss. At the end of the game, Mario faces Bowser in a climactic battle, aiming to rescue Princess Peach and restore peace to the kingdom.
The resolution of the screen will be the same as the original NES (512x448 pixels) and every single block will be 16x16 pixels size.
The levels in this game are designed to be progressively more challenging, with each new world introducing new obstacles, enemies, and mechanics. Our game recreation will include a level from beginning to end, starring the most basic, iconic, and memorable blocks, enemies, and power-ups. Below is a breakdown of each key level feature:
- Early Levels (World 1-1, 1-2, etc.): These levels serve as the introduction to the game, focusing on basic mechanics like jumping, running, and collecting coins. Difficulty is low, with few obstacles or enemies. Players are encouraged to learn how the game works.
- Mid Levels (World 2, 3, 4): As the game progresses, difficulty increases. The player faces more complex platforming challenges, including moving platforms, pits, and tougher enemies. Hidden areas with extra lives and power-ups begin to appear.
- Late Levels (World 5 and beyond): Levels here are designed to be more punishing, with precise platforming, fast-moving enemies, and tricky jumps. Boss fights become more complex, requiring multiple hits or specific strategies to defeat.
Our prototype will only feature a plane level with floor, a background, mario himself, an enemy (Goomba) and the receiving damage and losing features.
-
Items/Power-ups:
- Mushroom: Grants the player an extra hit point, making Mario grow larger (will be featured in our prototype). A constant variable in the player class should be a checker of what state he is in. Maybe a 2 for large Mario, 1 for short Mario and 0 if the player died. This should change the sprite from the small Mario to the big one and change also the hitbox. After being hit, this variable should go down by 1 and grant him immunity for a couple seconds (which means that the receiving damage function should deactivate).
- Fire Flower: Enables Mario to shoot fireballs to attack enemies.
- Star: Grants invincibility for a limited time.
- Coins: Collecting 100 coins gives the player an extra life.
-
Enemies:
- Goomba: Simple enemy that moves forward and can be jumped on. It looks like an angry little mushroom with roundish feet. (will be present in our game protoype). We have to implement a movement function that allows him to move on a loop without jumping off the edges and keep the walking animation (which would be changing every couple frames between the two sprites Goomba has). Then we have to add a bool variable that constantly checks if he is alive, if at some moment it changes to 0 (which means he died), the class itself should be destroyed to clear some memory and in the destructor we should add the dying animation).
- Koopa Troopa: Moves in a pattern and can be jumped on or attacked with fireballs. When jumped on top, they hide in their shell and can be used as a projectile. Leaving them in that state will make them respawn.
- Piranha Plant: Pops up from pipes and damages Mario on contact. They can be killed using projectiles just like the fire balls from the flower power-up or with the star powe-up.
- Bullet Bill: Shoots across the screen and must be avoided or destroyed.


-
Hammer Brothers: They are turtles similar to Koopa but they wear armors and they jump around the screen throwing hammers. They usually come in pairs and they follow a pattern just like Koopas.
-
Lakitu: They look like Koopas too, but they wear glasses and ride a cloud around. They will throw little round spiky creatures that will also walk around and damage the player.
-
Spiny: They are the creatures spawned by Lakitu. They're covered in spikes and can be killed with projectiles or a star.
-
Bosses:
- Koopa King or Bowser: The final boss whom Mario must defeat by avoiding fireballs and jumping over pits in the fourth level of the eighth world. At every fourth stage, for the first seven times, the player will encounter another enemy dressed as Bowser ( Goomba , Koopa , Spiny , Hammer Brothers , Lakitu ...), and it will progressively become more difficult, with the last two stages spawning hammers in addition to the fireballs that all the other versions throw at Mario . There are several ways to defeat the Koopa King: either by breaking the bridge and making him fall or by throwing fireballs at him.
-
Other Characters:
- Luigi:
Can be selected as a second main character very similar to Mario but with green colored hair and t-shirt, and a white cap and overall.
- Toad:
Appears at the end of the first 7 levels at the castle saying "Thank you Mario!".
Each level is designed with specific collisions in mind:
- Ground Platforms: Mario can walk or jump on solid ground. These platforms often contain hidden blocks that reward players with power-ups or coins.
- Pipes: Some pipes act as entrances to secret areas or sub-levels. Mario can enter certain pipes to access hidden zones or shortcuts.
- Ceilings/ Walls: Mario's movement is restricted by walls and ceilings, which also influence jumping dynamics. For example, a ceiling will stop a jump mid-air.
- Enemies: Enemies collide with Mario on contact, causing him to lose a life or revert to his smaller form.
The gameplay of this recreation is designed to be faithful to the original Super Mario Bros. while introducing some subtle improvements. Here’s an overview of the key mechanics:
- Movement: The player can control Mario’s movement using the keybord. Mario moves left and right across the screen (A and D for moving backwards and forward), jumps (either press W or the Spacebar), and interacts with various objects in the environment (whenever their hitboxes collide).
- Jumping: Jumping is a central mechanic. Players can control how high or far Mario jumps depending on how long the jump button is held. Different enemies and platforms require different jumping tactics. We should check if the jump key is being pressed and increase the jumping strength until the key is released or when the maximum jump strength is reached. The character has to increase hight while jumping.
- Power-ups: Power-ups appear in blocks that Mario can hit from below, making them fall. Collecting certain items grants Mario enhanced abilities (like shooting fireballs). For controlling that we will asign and integer of "state" to mario, in which 0 is dead, 1 is little mario, 2 is big mario and 3 is power-up
- Map: The design of the map is also a vital mechanic because of the genre of the game. For doing the map we will create an array of 1's and 0's in which 0 is no collision and 1 is collision.
-
Player Character Events:
- Jump Event: When the player presses the jump button, Mario performs a jump. The jump height is proportional to how long the button is pressed.
- Power-up Collection: When Mario touches a power-up block, it is released and Mario automatically collects it.
- Enemy Collision: If Mario collides with an enemy, depending on the enemy, Mario either defeats it (if jumping on it) or loses a life (if touching it directly).
-
Non-Player Characters (NPCs) Events:
- Goomba/Koopa Troopa Movement: These enemies follow a predetermined path and react when Mario is nearby. If Mario jumps on them, they are defeated.
- Boss Events: Bosses have unique attack patterns and phases that trigger based on Mario’s actions (e.g., Bowser shooting fireballs when Mario gets too close).
-
Environmental Events:
- Hidden Block Event: A block may contain coins or power-ups. Players can interact with it by jumping beneath it.
- Pipe Interaction: When Mario approaches a pipe and presses the down button, he enters it to access a secret or sub-level.
- Player Characters: Mario, his forms (small Mario, big Mario, Fire Mario).
- Non-Player Characters: Goombas, Koopa Troopas, Piranha Plants, Bullet Bills, Bowser, Bowser Jr.
- Room Objects: Platforms, blocks (question and brick), pipes, doors, and stairways.
- Scoring/Health Objects: Coins, power-ups, extra lives, and damage events.
- Controller Objects: Movement controls (left, right, jump), power-up collection, enemy defeat interactions.
The player can use the following control scheme to interact with the game:
- Arrow Keys (Left/Right): Move Mario left or right.
- Spacebar: Make Mario jump.
- Down Arrow: Enter pipes or crouch.
- Enter: Pause the game and open the game menu.
- Left Stick (Left/Right): Move Mario left or right.
- A Button (on most controllers): Make Mario jump.
- B Button (on most controllers): Enter pipes or crouch.
- Start Button: Pause the game.
- Pressing the arrow keys or moving the left stick will trigger movement in the game. This is tied to Mario’s position and the collision events with platforms or walls.
- Pressing the jump button makes Mario jump, and holding the jump button controls the jump height.
- Collecting items, interacting with pipes, or defeating enemies are all triggered by specific player actions, with animations and sounds accompanying the events.
With this design, we’ve ensured that gameplay remains simple yet engaging, with room for difficulty progression and strategic interaction with the environment and enemies.
Nintendo. (n.d.). Super Mario Bros. Retrieved February 24, 2025, from https://www.nintendo.com/
Super Mario Wiki. (n.d.). Super Mario Bros. Retrieved February 24, 2025, from https://www.mariowiki.com/
Viquipedia. (n.d.). Super Mario Bros. Retrieved February 24, 2025, from https://ca.wikipedia.org/wiki/Super_Mario_Bros
GameFAQs. (n.d.). Super Mario Bros. Retrieved February 24, 2025, from https://www.gamefaqs.gamespot.com
Super Mario Bros. Packshot. Retroplace, https://www.retroplace.com/pics/fc/packshots/3272--super-mario-bros.png.
Image of Goomba: Goomba (Super Mario Bros.). SMW Hacks Wiki, https://static.wikia.nocookie.net/smbhacksw256/images/f/f6/GoombaSMB.png/revision/latest?cb=20121229114509.
Image of Koopa Troopa: Koopa Troopa (Super Mario Bros.). SMW Hacks Wiki, https://static.wikia.nocookie.net/smbhacksw256/images/2/29/Koopa.png/revision/latest?cb=20130102142142.
Image of Piranha Plant: Piranha Plant (Super Mario Maker). Mario Wiki, https://static.wikia.nocookie.net/mariomaker/images/e/e1/Output.bfres_M1_Lyt_P_Pakkun_00.png/revision/latest/thumbnail/width/360/height/450?cb=20191219111459.
Image of Luigi: Luigi (Super Mario Bros.). Super Smash Bros. Wiki, https://static.wikia.nocookie.net/ssbb/images/7/76/Luigi_Super_Mario_Bros..jpg/revision/latest?cb=20130526174824&path-prefix=es.
Image of Mario (Super Mario Bros.): Mario (Super Mario Bros.). YouTube, https://i.ytimg.com/vi/eZit993uDk4/hq720.jpg?sqp=-oaymwEhCK4FEIIDSFryq4qpAxMIARUAAAAAGAElAADIQj0AgKJD&rs=AOn4CLAKhjNJ-3Vk35eFuM8ssgQbbVBe9g.


