Recreating Super Mario World in Godot

Jul 8, 2024

Recreating Super Mario World in Godot

Introduction

  • Presenter: Wye
  • Goal: Recreate Super Mario World from scratch in the Godot engine
  • Motivation: Familiarity and investment in Super Mario World
  • Experience: Background in ROM hacking Super Mario World

Project Setup

  • Start with creating a project folder in Godot
  • Chose to begin by building a level instead of title screen or file select
  • Node structure: Every element in Godot is a node, level built as a 2D node with a TileMap node attached
  • Leveraged Mario hacking experience to create tileset

Creating Tiles and Level

  • Utilized existing tilesets and personal level editor experience
  • Process: Built a dummy level, took a screenshot to create the tileset
  • Collision creation for each tile, tedious but essential
  • Added a camera node and script for navigation

Adding Mario (Player Character)

  • Added CharacterBody2D node for Mario
  • Initial graphics: Basic sprite sheet for Mario
  • Animation: Used AnimatedSprite2D for basic animations (idle, walk, run, jump, etc.)
  • Player physics: Needed to match original Mario World physics

Understanding Speed and Physics

  • SNES speed: Measured in subpixels per frame (1 pixel = 16 subpixels)
  • Godot speed: Measured in pixels per second, using delta time to maintain consistency
  • Adjusted Mario’s maximum speeds (walk, run, P speed)
  • Implemented acceleration to match original game feel
  • Tested and iterated to get it as close to the original as possible
  • Noted intricacies in Mario's physics from original game

Jump Mechanics

  • Basic logic: Upwards movement on jump, downward acceleration by gravity
  • Adjusted gravity while holding jump button for higher jumps
  • Implemented spin jump
  • Handling slopes: Different types (gradual to very steep) and their physics

Advanced Player Physics

  • Walking on slopes, adjusting speed and acceleration
  • Slide mechanics on slopes, different behavior based on slope steepness
  • Detailed explorations of Mario's behavior in various states

Further Developments

  • Future improvements: Water physics, climbing, flying, Yoshi, powerups
  • Background creation: Used parallax layers and TileMap node for backgrounds
  • Added sound effects for actions like jumping

Conclusion

  • Reflects on learnings and progress made
  • Plans for next steps: Adding coins, powerups, blocks, and enemies
  • Encourages viewer engagement and ends on a lighthearted note