Game Prototyping & Systems
Build playable prototypes in code and in Godot: game loops, input, collision, physics, state machines, data-driven tuning, jams and publishing.
Leads to: Video Game Designer
Before you start
This course builds on Game Design Fundamentals and JavaScript Essentials. Take them first if you are new to the topic.
About this course
Game designers are hired on finished, playable work. This mid-level course takes you from design ideas to prototypes that run, and from prototypes to a published game and a portfolio. In four modules you write the core of a 2D game in plain JavaScript and HTML canvas (drawing, an update/draw loop with delta time, keyboard input), then the mechanics most games rely on (AABB collision, gravity and jumping, and game flow as a finite state machine). You compare Unity, Godot and Unreal, build your first scene in Godot, and tune difficulty from playtest data with a seeded random number generator. Finally you scope a 48-hour game jam entry, publish a browser build on itch.io, and present your work as design breakdowns. Every lesson has a reading with worked examples, free videos, a quiz and an in-browser coding exercise or a hands-on task with free tools. You should have finished Game Design Fundamentals and JavaScript Essentials first.
Course content
Module 1
The Game Loop in Code
3 lessons · 2hDraw on an HTML canvas, run an update/draw loop with delta time, and respond to keyboard input.
- 35mDrawing with canvasReading
Draw a sprite on an HTML canvas, move it by changing its state, and keep it inside the play area.
- 53mThe game loopReading
Write an update/draw loop with requestAnimationFrame and delta time so movement is the same at any frame rate.
- 32mInput handlingReading
Track keyboard state with keydown and keyup, move a player from that state each frame, and avoid stuck keys.
Module 2
Mechanics
3 lessons · 1h 53mDetect AABB collisions, add gravity and jumping, and structure game flow as a state machine.
- 25mCollision detectionReading
Detect overlaps between axis-aligned boxes and points, and find every object a player touches.
- 50mSimple physicsReading
Add gravity, ground contact, jumping and variable jump height to a canvas platformer.
- 38mGame statesReading
Model menu, play, pause and game-over as a finite state machine with a pure transition function.
Module 3
Engines and Tools
3 lessons · 2h 25mCompare Unity, Godot and Unreal, build a first scene in Godot, and tune difficulty from playtest data.
- 22mChoosing an engineReading
Compare Unity, Godot and Unreal on licensing, languages, platforms and fit, and pick a tool for a given project.
- 1h 20mFirst scene in GodotReading
Install Godot, build a 2D scene from nodes, and attach a GDScript that moves a character with gravity and input.
- 43mTuning with dataReading
Summarise playtest sessions into completion rates, find the problem level, and adjust a difficulty value towards a target.
Module 4
Shipping a Game
3 lessons · 2h 28mScope a game jam entry, publish a browser build on itch.io, and present your work as a design portfolio.
- 51mGame jamsReading
Scope a 48-hour jam game around one core mechanic, plan the hours, and cut features before they cut you.
- 48mPublishing on itch.ioReading
Export a browser build, upload it to itch.io with a clear store page, and test it before making it public.
- 49mDesigner portfolioReading
Present your prototypes as design breakdowns that show the problem, your decisions, the evidence and the result.