Part of the
make-game skill. The skill links here when your agent needs the detail.character-movement skill (base controller) and its
platformer-feel reference (summer_docs_read id skill/character-movement/references/platformer-feel.md: coyote time, jump buffer, variable height) - do
not rewrite it here; wire it in. For Celeste-grade precision movement (dash, wall
jump, climb) use celeste-momentum-platforming instead.
Minimum playable base (build this first)
Scene first (the make-game Scaffold phase):main.tscn with a Node2D root, a ground StaticBody2D
with a CollisionShape2D, the player, and a Camera2D child of the player. Prove
run + jump + land before anything else. Placeholder art is a colored
ColorRect/Sprite2D.
Architecture (grows into a full game)
process_mode = ALWAYS so they survive pause.
Collision layers (set names in Project Settings)
Hitboxes mask the OPPOSING hurtbox (see the
combat-basics skill). The stomp detector is a
separate Area under the player masking only the Enemies layer.
Building the level with a TileMap
Use aTileMapLayer for the solid world. Create a TileSet, paint
the collision polygon on the solid tiles, put the layer on the World collision
layer. The player collides with it for free - no per-tile StaticBody.
- One
TileMapLayerfor collidable terrain, a second (no collision, lower z-index) for background decoration. - For large levels, split into room
.tscns and load the current room via a RoomManager; connect doors tochange_scene_to_fileor swap room instances. - Parallax background:
Parallax2D(or ParallaxBackground) layers withmotion_scale< 1 so distant layers move slower.
Moving, one-way, and crumbling platforms
These three cover most platformer level tech.AnimatableBody2D (not StaticBody2D) for movers - it carries the player. For
one-way platforms, enable one_way_collision on the platform’s CollisionShape2D
so the player jumps up through and lands on top. Crumbling platform: on
body_entered, start a short timer, shake, then disable collision and fade out;
re-enable after a respawn delay.
Checkpoints and death
Core loop checklist (the 30-second bar)
- Run + jump feels good (tuned gravity/fall multiplier, coyote + buffer).
- Coins/goal give immediate feedback: sound + pop tween + counter tick.
- Death is instant and respawns at the last checkpoint, no long reload.
- A visible goal (flag/door) ends the level with a clear result.
2d-platformer-polish.md.
Source:
library/skills/make-game/references/2d-platformer.md, rendered from summer-engine@4.3.0 on npm.
