Things you can poke at
Interactive explainers for game programmers: engine fundamentals, a real ECS running in your browser, game AI, physics, rendering and networking, plus labs where you can take each idea further. Every example runs live, so change it and see what happens.
New to game programming? Start here: twelve lessons in order →
engine
What the hardware and the engine underneath actually do: cache lines and data layout, handles and allocators, fixed timesteps, determinism, spatial partitioning from grids to octrees, job systems, threads and fibers, profiling, and hot reloading code. The "why" under the flecs lessons.
Start here →Lessonsflecs
The flecs entity component system, explained with a live world in every lesson. Add components and watch archetypes form, see which tables a query matches and what it caches, step systems, and fire observers.
Start the lessons →Lessonsgame ai
How game agents choose what to do, move and read the map: utility scoring, behaviour trees, goal-oriented and HTN planning, steering and context steering, avoidance from separation to ORCA, formations and terrain analysis, all live so you can watch them think.
Start the lessons →Lessonsphysics
How rigid-body engines work, on a small 2D engine you can pause and step: broadphase, contact manifolds, solvers that hold stacks, sleep, fast bodies, joints and characters. Then real Jolt, Box3D and Bullet side by side in your browser, Chaos and PhysX, and wiring physics into flecs through handles.
Start the lessons →Lessonsrendering
How a GPU turns triangles into pixels, first on a small software rasteriser you can step a pixel at a time (rasterisation, depth, textures, blending, shaders), then on your real GPU: batching, culling, render graphs, GPU-driven rendering, lighting, shadows, post-processing and where the frame time goes.
Start the lessons →Lessonsnetworking
How networked games hide the network, on one small game over a simulated connection you can make worse: latency, jitter and loss, snapshots and interpolation, prediction and reconciliation, lag compensation, lockstep and rollback.
Start the lessons →Labpathing lab
A*, JPS, Theta*, HPA*, navmeshes, roadmaps and vehicle planners searching the same map, step by step and side by side, with terrain costs, unit sizes and several units at once.
Open the lab →Labtactics lab
Terrain analysis for AI on a 2.5D map: clearance, choke points for movement and for sight, traffic, openness, cover generation by scanning and by sampling, exposure to threats, and picking the best cover.
Open the lab →Labfeel lab
A platformer with every game-feel setting exposed: acceleration, jump height and timing, fall gravity, coyote time, jump buffering, corner correction, input delay, camera smoothing and juice. Turn one off and feel what breaks.
Open the lab →Labflecs sandbox
A real flecs world in your browser. Define components, create entities, add observers and systems, and watch rows move between archetype tables and sparse storage. Share a link that rebuilds your world step by step.
Open the sandbox →Labnetcode lab
One small game over a simulated network you can make worse, with every model from the networking lessons and their settings in one place: snapshots, interpolation, prediction, reconciliation, lag compensation and rollback.
Open the lab →Labphysics lab
A 2D physics sandbox: stacks, chains, ragdolls, a bridge and a car, with every solver, stepping, sleeping, broadphase and continuous-collision setting live and the debug draw on. Or break it on purpose, with each fix one tick away.
Open the lab →Labcrowd lab
Hundreds of agents through doors, corridors and over a narrow bridge: A* per agent or shared flow fields, Reynolds and context steering, VO, RVO and ORCA, two setups side by side on the same seed, with throughput, jams and deadlocks measured.
Open the lab →Labframe lab
A frame debugger in miniature on a software rasteriser: step a frame a draw, a triangle or a pixel at a time, click any pixel for every fragment that touched it, and flip depth, culling, blending and sampling to break and fix the classic bugs.
Open the lab →Labprocgen lab
Procedural generation step by step: noise and fBm terrain, BSP, TinyKeep-style and cellular-automaton dungeons, wave function collapse, Poisson disc scattering and L-system plants, each from a seed you can share.
Open the lab →Labanimation lab
A character rig with its animation systems laid open: sampling and blending clips, blend spaces, state machines, root motion and inverse kinematics.
Open the lab →About this site: how it's made and checked, and what it builds on.