PromptFork

2D platformer with tuned physics, juice, and progressive level design

Goes beyond 'make a platformer' — specifies the exact physics values that make jumps feel great (coyote time, input buffering, variable gravity), the juice layer (screen shake, squash-stretch, particles), and the level design methodology that teaches mechanics through play.

Open in Studio
Prompt
Build a 2D platformer in [Godot / Unity / Phaser] that feels as tight as Celeste or Hollow Knight.

PHASE 1 — CHARACTER CONTROLLER (get this perfect before anything else):

Physics values to implement as exposed/tunable constants (not hardcoded):
- Gravity: use a higher gravity multiplier (2–3× default engine gravity). Platformers need fast, snappy falls — default physics feels floaty.
- Jump: variable height — while jump is held, apply upward force; on release, immediately increase gravity multiplier to 2× for a fast fall. This gives the player precise control.
- Jump apex hang time: at the peak of the jump (when vertical velocity is near zero), reduce gravity by 40% for ~0.1s. This creates the satisfying "float" at the top that makes precision jumping feel forgiving.
- Coyote time: 6–8 frames (100–130ms) after walking off a ledge, the player can still jump. Store a coyote timer that starts when grounded becomes false.
- Input buffering: if the player presses jump within 6 frames of landing, execute the jump on landing. Store a jump buffer timer that starts on jump press.
- Acceleration: don\'t set velocity directly — use acceleration (ground: ~50, air: ~30) and deceleration (ground: ~60, air: ~20) so movement has subtle momentum without feeling slippery.
- Max fall speed: cap it (e.g. 400 units/s) so long falls feel controlled.
- Wall slide (optional): reduce fall speed to 30% when pressing into a wall. Wall jump launches at a 45° angle away from the wall.

These values should all be adjustable from one config/resource file so I can tune during playtesting.

PHASE 2 — THE JUICE LAYER (what makes it FEEL good):
- Squash and stretch: compress the sprite 15% on landing, stretch 10% on jump. Tween back to normal over 0.1s.
- Screen shake: 2–4px for 0.1s on landing from a height, on enemy hit, on taking damage. Use decreasing intensity (not random jitter).
- Particle trails: small dust particles on run (every 4th frame), a puff on jump, a burst on land.
- Landing dust: 3–5 particles spread horizontally on ground impact.
- Hit pause: freeze the game for 2–3 frames on dealing/taking damage. This tiny pause makes impacts feel powerful.
- Camera: smooth follow with slight lookahead in the movement direction. Don\'t center the player — offset the camera so more of the upcoming level is visible.

PHASE 3 — LEVEL DESIGN (build 3–5 levels using this methodology):
Each new mechanic follows this 4-step teaching pattern:
1. INTRODUCE: show the mechanic in a safe, zero-risk environment (e.g., spikes over a pit the player must jump — but the pit is shallow and non-lethal the first time).
2. TEST: a challenge that requires the mechanic but has a clear solution.
3. COMBINE: pair the new mechanic with a previously learned one (e.g., wall jump + moving platform).
4. CHALLENGE: a difficult version that requires mastery.

Level 1: just movement + jump + collectibles (coins). No enemies. Teaches the controls.
Level 2: introduce hazards (spikes, pits). Tests jump precision.
Level 3: introduce enemies with simple patrol AI (walk left-right, turn at ledges). Tests combat timing.
Level 4: moving platforms + timed hazards. Combines jump precision + timing.
Level 5: vertical level with wall mechanics. Tests everything.

PHASE 4 — SYSTEMS:
- Health: 3 hits, with 1s invincibility frames (sprite flashes). No instant death (except bottomless pits).
- Checkpoints: flag system, respawn at last checkpoint with current collectibles retained.
- HUD: health (hearts), collectible count, minimal and non-intrusive.
- Menus: title screen, pause, death screen with quick restart.
- Tile-based levels: use tilemaps for easy level creation.

Deliver the project structure, implement Phase 1 first, and after each phase give me a playtest checklist of what to feel for.

Tip: the difference between a "good" platformer and a great one is 100% in the invisible systems — coyote time, input buffering, and variable jump height. Players can\'t name these features, but they instantly feel when they\'re missing. Spend 80% of your tuning time on Phase 1 before moving on.
Source
promptfork seed
License
CC-BY-4.0
Published
6/22/2026

More prompts you might like

Editor’s pickGame DevelopmentSeed

Open-world (GTA-style) game build prompt

Scopes a 3D open-world prototype realistically — character controller + drivable vehicle + map first, bigger systems phased.

0001

Design + build a game: from design doc to playable prototype in one conversation

Starts with a structured game design document (core loop, Bartle motivation type, the one mechanic that makes it unique), then prototypes the core loop first with playtest checkpoints — not just 'make me a game.'

New

Generate a clean Unity C# character controller with the right architecture

Produces a maintainable Unity C# controller using proper component separation, the chosen input system, and inspector-tunable values — not a messy god-class in Update().

#unity#csharp
New

Build a modular Unity enemy AI with a behavior tree or state machine

Produces a decoupled Unity C# enemy AI driven by a behavior tree or finite-state machine with reusable nodes, inspector-tunable decision weights, and clean extension points for new behaviors.

#unity#csharp
New

Build a Unity interactable-object system driven by events

Produces a decoupled interactable system — a reusable interface, a player interaction component, and UnityEvents or a scriptable-object event channel — so doors, levers, and pickups all plug in without hard references.

#unity#csharp
New

Model a game economy's currency sinks and sources with a tuning sheet

Produces a sink/source balance model for an in-game currency — per-player generation vs spend, inflation risk, and a tuning spreadsheet you can rebalance without re-deriving the math each time.

#game-design#economy
New