One Small Delivery: your first Godot game
Build a small top-down delivery game in six lessons. Move a courier, navigate a wall, collect one parcel, deliver it once, and restore the whole run with a restart.
Godot 4.7.2 stable · standard edition · GDScriptOne game. A complete small loop.
A complete editable Godot project with one playable delivery, distance-checked interaction, physical wall collision, clear text feedback and a full-state restart. All six checkpoints contain source code, instructions and an MIT license.
Before you begin
- A desktop computer with a keyboard and Godot 4.7.2 standard edition. Use the Compatibility renderer; .NET, plugins and paid assets are not needed.
- Download Godot from the official Windows, macOS or Linux page. Engine installation time is separate from the lesson estimates.
- A folder you can edit, plus an untouched copy of each downloaded checkpoint. Extract ZIP files before importing project.godot.
- Basic comfort saving a text file. The first lesson explains the project’s scene and script files.
- The code was tested with Godot 4.7.2. Other engine versions, mobile devices and exported builds need separate checks.
Your six useful steps.
01Open a room and understand its parts
Import the starter, find the scene and scripts, and make one small visual change you can identify.
15 minutes estimated practice · editable checkpointGive the courier controlled movement
Use input actions, a speed in pixels per second, and CharacterBody2D movement without a diagonal speed boost.
20 minutes estimated practice · editable checkpointMake an obstacle physically block the route
Build collision bodies from rectangles and use the same rectangles to draw the boundaries.
25 minutes estimated practice · editable checkpointCollect one parcel when you are close enough
Use an explicit parcel state and a distance guard so interaction produces one clear result.
25 minutes estimated practice · editable checkpointFinish one delivery without counting it twice
Add a destination, guard the completion transition, and make success readable.
25 minutes estimated practice · editable checkpointRestore the whole run and test a complete game
Connect a button and a keyboard command to one reset function, then check every state.
20 minutes estimated practice · editable checkpoint