Action RPG — Learning Plan
The goal: a fast-paced top-down action game — dash, sword, readable enemies, and combat that feels violent in the good way — built at 32×32, every line typed and understood.
This curriculum assumes nothing, but if you've built the farming game, stages 01–02 will be familiar ground at a faster tempo: same engine bones, opposite design goals. Farming was calm and event-driven; this is twitchy and continuous — the contrast is itself a lesson in how genre drives architecture. The architecture document maps the whole design, including the three decisions reserved for you.
When you're done, all of this is true#
- Movement has weight — acceleration, friction, and a dash with real commitment
- The sword connects: hits land with hitstop, shake, and flash, and you can explain the component chain from swing to death poof
- One enemy chases, telegraphs, attacks, and gets stunned — and adding a variant takes
a
.tresfile, not an afternoon - The arena runs waves, keeps score, and restarting is instant
- Health, Hitbox, and Hurtbox are three small scenes you could drop into any future game
- Zero untyped declarations; every commit tells the story
What you'll learn#
New here: movement feel (acceleration curves, dash design) · component-based combat (hitbox/hurtbox/health) · enemy AI state machines · game-feel techniques (hitstop, screenshake) · input buffering. Practiced: state machines, custom Resources, signals, collision layers, typed GDScript, git.
Coming later as add-on modules: stats & leveling, loot, dungeon rooms, ranged enemies, a boss, saving, audio.
Stages#
| # | What you build (observable) | What you learn |
|---|---|---|
| 01 | The project; a player whose movement has real weight | project setup · acceleration & friction |
| 02 | A dash with duration, cooldown, and commitment | state machines under pressure |
| 03 | A sword swing with active frames and buffered inputs | Hitbox component · input buffering |
| 04 | A training dummy that takes damage, knocks back, and dies | Hurtbox & Health components · signal chains |
| 05 | A slime that chases, telegraphs, attacks, and can be stunned | enemy AI state machines · telegraphs |
| 06 | The same combat, suddenly feeling twice as good | hitstop · screenshake · flash |
| 07 | Waves, score, death, restart — a complete playable slice | spawners · the game loop closed |
Three genuine design decisions are flagged where they appear — knockback mechanics, AI style, and your cancel policy. Record each choice and its reason in the architecture document; they're what make this game yours rather than a tutorial's.
Same house motto as always: improvement every day. One stage, one sitting.