Skip to main content
Coding Quests

The Last Forge, a top-down roguelike in Godot 4

Practice every system.
Then change it yourself.

The Last Forge, the top-down roguelike from the video, as 56 short lessons. Write each system in the browser, check that it works, then put it in your own Godot project.

You'll write
Top-down movement, aiming, a dash with invincibility frames, and screen shake. Then health and hitboxes, enemy AI, rooms, loot, a HUD and the full run loop.
You need
A little coding to start. Lesson 1 runs in your browser, so you don't need Godot yet. The Godot steps at the end of each lesson assume you know scenes, nodes and attaching a script.
Brand new to code? Do the free Code From Zero quest first
Free to start
All 8 Top-Down Controller lessons, then the first 4 of Combat Core: 12 in a row. No account or card needed. Guild Hall membership opens the rest.

The finished game

The Last Forge, the game the campaign builds. Quest 1 gets you the controller: walk, aim, dash, and a camera that shakes on impact. All of it your code.

Two ways to start

Both lead to the same design lessons. Pick the one that fits your evening.

Build the roguelike from scratch

Follow the campaign and build movement, combat, enemies, rooms, upgrades and the run loop in Godot, one system at a time.

Free: the first 12 lessons in a row, in your browser. Membership after that.

Start with a playable roguelike

Download a working Godot project and start making design decisions in it. Your first challenge: an upgrade that changes how you play the next room.

  1. 1. An Upgrade That Changes How You Play Free
  2. 2. A Dangerous Attack That Feels Fair Membership
  3. 3. One More Cursed Upgrade Membership

The download is free: a Godot 4.7 project you open and play.

Starting with the playable copy does not mark any build lesson as done. Each design lesson links to the build lesson behind it, for whenever you want to see how a system works.

How a lesson works

This is the start of lesson 1, word for word.

  1. 1. Watch it run

    The lesson opens with working code: “Your code is ready. Press Run and watch your wanderer walk to the door.” Nothing to type yet.

  2. 2. Change it yourself

    The first task: “Make your wanderer walk right only while you hold D, then press Submit.” It is one line.

    Before: velocity.x = speed

    After: velocity.x = Input.get_action_strength("move_right") * speed

  3. 3. Check it

    Submit runs your code against these checks:

    • Read the move_right key with Input.get_action_strength
    • Your wanderer walks right while D is held, and stands still when it is not

    The second check runs your script on the practice stage and holds the key for you. So it tests what the code does, not only how it is spelled. A red check names what is missing. A typo shows as an error on its line.

  4. 4. Put it in your Godot project

    Each lesson ends with the Godot steps for the same script: which scene, which node, and what you should see when you press Play.

What runs where

The browser runs your GDScript on a small practice stage, a simulation of the scene. The full game runs in Godot 4.7 on your computer. A few steps, like setting up the Input Map and building scenes, only happen in Godot, and the lesson says when.

Find the system I am learning

Each chapter of the video has lessons where you write that system yourself. Every link starts at lesson 1 of its quest, because each lesson builds on the last. Open a chapter to see where its system is.

  1. Project setup and the Input MapTop-Down Controller, lesson 1, free

    You write the first Player.gd: read the move keys, set velocity, and call move_and_slide(). Lesson: Move the Wanderer.

    This link opens Top-Down Controller at lesson 1, Move the Wanderer. All of Top-Down Controller is free.

    Start Top-Down Controller at lesson 1
  2. Player movement on a CharacterBody2DTop-Down Controller, lesson 2, free. Starts at lesson 1

    You write the input vector and the normalize step that stops diagonals from being faster. Lesson: Eight Directions, One Speed.

    This link opens Top-Down Controller at lesson 1, Move the Wanderer, because each lesson's code builds on the one before. You reach lesson 2 with that code already in your editor. All of Top-Down Controller is free.

    Start Top-Down Controller at lesson 1
  3. Aiming at the cursor and the dashTop-Down Controller, lessons 3 and 4, free. Starts at lesson 1

    You write a weapon pivot that turns to face the mouse, then a dash: a burst in a locked direction on a cooldown. Lessons: Aim at the Cursor, then The Dash.

    This link opens Top-Down Controller at lesson 1, Move the Wanderer, because each lesson's code builds on the one before. You reach lessons 3 and 4 with that code already in your editor. All of Top-Down Controller is free.

    Start Top-Down Controller at lesson 1
  4. Invincibility frames and afterimagesTop-Down Controller, lesson 5, free. Starts at lesson 1

    You write the invincible window and the ghost sprites the dash leaves behind. Lesson: I-Frames & Afterimages.

    This link opens Top-Down Controller at lesson 1, Move the Wanderer, because each lesson's code builds on the one before. You reach lesson 5 with that code already in your editor. All of Top-Down Controller is free.

    Start Top-Down Controller at lesson 1
  5. The follow cameraTop-Down Controller, lesson 6, free. Starts at lesson 1

    You write PlayerCamera.gd: a Camera2D that eases toward the player, smooth at any frame rate. Lesson: The Follow Camera.

    This link opens Top-Down Controller at lesson 1, Move the Wanderer, because each lesson's code builds on the one before. You reach lesson 6 with that code already in your editor. All of Top-Down Controller is free.

    Start Top-Down Controller at lesson 1
  6. Hit-stop and screen shake in the GameManagerTop-Down Controller, lesson 7, free. Starts at lesson 1

    You write the GameManager autoload and trauma-based screen shake (hit-stop comes later, in Combat Core lesson 7). Lesson: Screen Shake.

    This link opens Top-Down Controller at lesson 1, Move the Wanderer, because each lesson's code builds on the one before. You reach lesson 7 with that code already in your editor. All of Top-Down Controller is free.

    Start Top-Down Controller at lesson 1
  7. The HealthComponentCombat Core, lesson 1, free

    You write a reusable HealthComponent with a died signal any node can carry. Lesson: The Health Component.

    This link opens Combat Core at lesson 1, The Health Component. Lesson 1 is free: the first 4 lessons of Combat Core are.

    Start Combat Core at lesson 1
  8. The Hitbox and Hurtbox componentsCombat Core, lessons 2 and 3, free. Starts at lesson 1

    You write the Hitbox that deals damage once per swing on named collision layers, then the Hurtbox that detects it. Lessons: Layers & the Hitbox, then The Hurtbox That Detects.

    This link opens Combat Core at lesson 1, The Health Component, because each lesson's code builds on the one before. You reach lessons 2 and 3 with that code already in your editor. Lessons 2 and 3 are free: the first 4 lessons of Combat Core are.

    Start Combat Core at lesson 1
  9. The weapon state machine and the sword swingCombat Core, lessons 5 and 6, member lessons. Starts at lesson 1

    You write WeaponController.gd: a state machine for the sword swing, then the hitbox that makes it connect. Lessons: The Weapon State Machine, then The Swing Connects.

    This link opens Combat Core at lesson 1, The Health Component, because each lesson's code builds on the one before. You reach lessons 5 and 6 with that code already in your editor. The first 4 lessons of Combat Core are free. Lessons 5 and 6 need membership.

    Start Combat Core at lesson 1
  10. EnemyBase and the enemy state machineEnemies & AI, lessons 1 and 2, free

    You write EnemyBase.gd: a body that takes hits and dies, then a Grunt that chases you. Lessons: EnemyBase: A Body That Dies, then The Chase.

    This link opens Enemies & AI at lesson 1, EnemyBase: A Body That Dies. Lessons 1 and 2 are free: the first 3 lessons of Enemies & AI are.

    Start Enemies & AI at lesson 1
  11. The RoomController and the wave loopRooms & Dungeon, lessons 4 and 5, member lessons. Starts at lesson 1

    You write the RoomController that spawns a wave, then doors that lock you in and open on clear. Lessons: The Room Director, then Lock In, Fight Out.

    This link opens Rooms & Dungeon at lesson 1, The Room Scene, because each lesson's code builds on the one before. You reach lessons 4 and 5 with that code already in your editor. The first 3 lessons of Rooms & Dungeon are free. Lessons 4 and 5 need membership.

    Start Rooms & Dungeon at lesson 1
  12. The HUD and the health barHUD & Meta, lesson 1, free

    You write a CanvasLayer HUD that the HealthComponent pushes into by signal. Lesson: The Health Bar.

    This link opens HUD & Meta at lesson 1, The Health Bar. Lesson 1 is free: the first 3 lessons of HUD & Meta are.

    Start HUD & Meta at lesson 1
  13. Upgrades as data and the UpgradeManagerLoot & Corruption, lessons 3 and 4, member lessons. Starts at lesson 1

    You write an upgrade as a Dictionary with an apply Callable, then the UpgradeManager that offers a few at random. Lessons: An Upgrade Is Data, then The UpgradeManager.

    This link opens Loot & Corruption at lesson 1, The First Pickup, because each lesson's code builds on the one before. You reach lessons 3 and 4 with that code already in your editor. The first 3 lessons of Loot & Corruption are free. Lessons 3 and 4 need membership.

    Start Loot & Corruption at lesson 1
  14. Corruption: power and riskLoot & Corruption, lesson 5, member lessons. Starts at lesson 1

    You write add_corruption(), the tiers, and the damage multiplier that makes every reward a decision. Lesson: Corruption: Power and Risk.

    This link opens Loot & Corruption at lesson 1, The First Pickup, because each lesson's code builds on the one before. You reach lesson 5 with that code already in your editor. The first 3 lessons of Loot & Corruption are free. Lesson 5 needs membership.

    Start Loot & Corruption at lesson 1
  15. Procedural rooms built in codeRooms & Dungeon, lesson 2, free. Starts at lesson 1

    You write DungeonRoom.gd: paint the floor and a border of walls onto a TileMapLayer, with wall collision built from the same data. Lesson: Floor & Walls.

    This link opens Rooms & Dungeon at lesson 1, The Room Scene, because each lesson's code builds on the one before. You reach lesson 2 with that code already in your editor. Lesson 2 is free: the first 3 lessons of Rooms & Dungeon are.

    Start Rooms & Dungeon at lesson 1
  16. Pickups and enemy dropsLoot & Corruption, lesson 1, free

    You write an Area2D pickup with a magnet radius that fills the enemy's _drop() seam. Lesson: The First Pickup.

    This link opens Loot & Corruption at lesson 1, The First Pickup. Lesson 1 is free: the first 3 lessons of Loot & Corruption are.

    Start Loot & Corruption at lesson 1
  17. You Died, banked essence, and the saveHUD & Meta, lessons 6 to 8, member lessons. Starts at lesson 1

    You write the YOU DIED overlay, the essence that survives it, and the save that keeps it. Lessons: You Died, then Banked Essence, then The Save That Survives.

    This link opens HUD & Meta at lesson 1, The Health Bar, because each lesson's code builds on the one before. You reach lessons 6 to 8 with that code already in your editor. The first 3 lessons of HUD & Meta are free. Lessons 6 to 8 need membership.

    Start HUD & Meta at lesson 1
  18. The AudioManagerCapstone, lesson 5, member lessons. Starts at lesson 1

    You write an SFX pool on its own bus, plus play_music() with a calm and a combat track. Lesson: The AudioManager.

    This link opens Capstone at lesson 1, The Title Screen, because each lesson's code builds on the one before. You reach lesson 5 with that code already in your editor. The first 3 lessons of Capstone are free. Lesson 5 needs membership.

    Start Capstone at lesson 1
  19. Title screen, transitions, and the full run loopCapstone, lesson 7, member lessons. Starts at lesson 1

    You write the loop from title to run to death to retry, on the title screen and scene transitions from lessons 1 and 2. Lesson: Assembling the Loop.

    This link opens Capstone at lesson 1, The Title Screen, because each lesson's code builds on the one before. You reach lesson 7 with that code already in your editor. The first 3 lessons of Capstone are free. Lesson 7 needs membership.

    Start Capstone at lesson 1

Seven quests, one project

The order matches the course. Each quest continues the same game.

What is free, what membership adds

Free

  • All 8 Top-Down Controller lessons, then the first 4 of Combat Core: 12 in a row.
  • The first lessons of every later quest: 27 free lessons in all.
  • The finished Top-Down Controller Godot project, with a free account.
  • No account needed to start. A free account saves your progress and needs no card.

Guild Hall membership

  • The other 29 guided lessons, with the same checks and Godot steps.
  • The finished Godot project for each later quest, to compare against or recover from.
  • The community Q&A in the Tavern.

Membership is US$25 per month or US$200 per year. Eligible new members start with 7 days free. Card required.

The 7-day trial starts only when you finish checkout with a card. A free account is not a trial.

Questions from the comments

Is this the same game as the video?
Yes. The Last Forge, the top-down roguelike from the video, is the project every quest here builds. Same systems, same node names, same order: controller, combat components, enemies, rooms, loot and corruption, HUD, then the full run loop.
What is free?
The whole Top-Down Controller quest (8 lessons) and the first 4 lessons of Combat Core: 12 lessons in a row, with no account and no card. Each later quest opens its first lessons free too, 27 free lessons in all. Guild Hall membership opens the rest.
How long does it take?
Lesson 1 takes about 20 minutes. All 7 quests are 56 lessons, and the campaign plan is 25 to 40 hours including the Godot work. It takes longer than watching because here you write and test every line yourself. Go at your own pace: your place is saved.
Which Godot version, and what should I know first?
Godot 4. The project files are built and tested in Godot 4.7. A little coding to start. Lesson 1 runs in your browser, so you don't need Godot yet. The Godot steps at the end of each lesson assume you know scenes, nodes and attaching a script. If you have never written code, do the free Code From Zero quest first. No roguelike experience needed.
Do I need the project files from the video?
No. Every lesson gives you its starter code in the browser. If you built the game while watching, you can paste each finished script into your own project. The finished Top-Down Controller project is a free download with a free account. The finished projects for the later quests come with membership.
Do I have to build the whole game first?
No. You can start with a playable copy instead: a free Godot 4.7 project and three design lessons that change it. Lesson 1 and the download are free, lessons 2 and 3 come with membership. Starting there does not mark any build lesson as done, and if you build the game later, the design lessons work on your own project too.
Will this just repeat what I watched?
It repeats the systems, not the experience. In the video you saw the code appear. Here you write the lines yourself, predict what code will do before it runs, and fix broken versions. The checks tell you what your script got right and what it missed.
Can I do it on my phone?
You can read the lessons and press Run on a phone. Writing code is much easier on a computer, and the Godot steps need one. Your progress is saved on the device you use, and on your account once you make a free one.
Build the 2D Roguelike Yourself | The Last Forge, Interactive | Coding Quests