Skip to content

Learn by Doing: How to design a Jump in a 2D Platformer Game by Cave Monkey Podcast

License

DrXoo/SuperJump

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GameDev Class: Super Jump

This README is also available in: Español (README.es.md)

Designing the “classic jump” in a 2D platformer

Unity 2D License

Overview

In this class we focus on how to design and implement the jump in a classic old-school 2D platformer. We’ll start by analyzing what makes this jump unique and explain the theory behind it.
Then we’ll try the included POC, showing how the implemented jump achieves a classic feel. We’ll tweak parameters and see how small adjustments change the gameplay and player experience.
Finally, we’ll take a code tour: states, quirks, challenges, wins, and a reflection on viability in Unity.


Class goals

  • Understand why the classic jump isn’t about realism, but about control and expressiveness.
  • Master key concepts: Coyote Time, Jump Buffer, variable height, asymmetric gravity, and jump cut.
  • Learn to parameterize and fine-tune the jump to match the desired feel.
  • Review a practical Unity implementation (scripts and states).

What you’ll find in this repo

  • A proof of concept with a jump state machine (Ground → Ascend → Apex → Fall).
  • Editable parameters to experiment with feel.
  • A custom collision system because we don’t use Unity’s physics engine for movement.
  • GameAnalysis/: materials and utilities for frame-by-frame and curve analysis (see the folder for details).

GameAnalysis/ contains info and scripts for frame/data analysis of the jump.


Requirements

  • Unity 6000.2.6f2 or higher.
  • New Input System enabled (Project Settings → Player → Active Input Handling → Input System Package).

▶️ Quick start

  1. Clone the repo and open it in Unity.
  2. Enable the Input System if needed.
  3. Open Scenes/Sandbox.unity.
  4. On the Player object, check these components:
    • Move (choose instant or accelerated movement).
    • Jump (load the BaseProfile in /Assets/ScriptableObjects).
  5. Press Play and try:
    • Holding/releasing the jump button at different times.
    • Edge jumps (Coyote Time).
    • Pressing jump just before landing (Buffer).
    • Tweaking ascent/descent gravity and terminal velocity.

Turn on Gizmos to see on-scene metrics and visual guides.


📜 License

MIT — see LICENSE in the repo.

About

Learn by Doing: How to design a Jump in a 2D Platformer Game by Cave Monkey Podcast

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published