Game Development with C#
Build complete browser games from the game loop upward. Learn C# through motion, collision, animation, AI, procedural worlds, game feel, and deterministic state that can be tested instead of guessed from a screenshot.
11 projects, 275 hands-on levels, run in your browser.
Syllabus
- Foundations: C# Through Game State: Learn C# through the values a game actually changes: identity, position, time, health, score, input, collections, vectors, entities, collision, deterministic randomness, and replay. The project ends with a state trace that the browser can animate and the grader can verify frame by frame.
- Pong from the Game Loop Up: Build a replayable Pong match by connecting fixed-step timing, responsive paddle control, discrete contact, shaped bounces, scoring, seeded serves and point phases. Inspect complete state and event traces while keeping rendering separate from simulation.
- Breakout and Collision Geometry: Build a deterministic Breakout level from broad-phase candidates, exact circle contact, ordered swept responses, brick health, drops and effects, lives and inspectable replay state.
- A Responsive Platformer Controller: Compose a responsive controller from gravity, slope tangents, jump timing, ground and air response, translating supports, drop-through, checkpoints and adjustable profiles, with input-attributed replay evidence.
- Animation and Game Feel: Connect animation state, continuous pose phases, impact timing, live particles, sound requests and camera framing. Build a deterministic scene with independent effect controls and trace each effect to its source event.
- Enemy Minds and Combat: Build an enemy that senses and remembers targets, chooses known goals, steers, and fights through explicit attack windows. Trace legal state changes, actor-specific health, once-per-attack hits and applied difficulty settings in a replayable encounter.
- Paths, Waves, and Tower Defence: Build a tower-defence encounter that connects weighted grid routing, scheduled and deferred enemies, target policy, projectile interception and contact, legal purchases, independent slow effects, unique rewards/leaks and an audited replay.
- Procedural Dungeons: Build a seeded dungeon from room layouts and cave updates, repair all floor components, place content under budget and spacing rules, and inspect the map, routes, stage history and replay evidence.
- Inventory, Dialogue, and Saving: Build item-specific inventory and crafting, equip owned instances, connect dialogue and quest rewards, retain complete action history, and verify versioned save migration and recovery.
- Performance and Data-Oriented Worlds: Build reusable object pools, coherent spatial queries, bounded motion scheduling and dense component storage; assemble a replayable crowded world with actual state, trace-derived integrity checks and optional measured frame-time observations.
- Complete Browser Game: Signal Courier: Design, implement, balance, make accessible, test, and publish Signal Courier: a deterministic top-down extraction game whose controls, combat, content, progression, performance, replay, and release evidence all run in the browser.
Key concepts
- Collision predicate: A Boolean test over spatial state that decides whether shapes overlap or contact, without relying on their rendered pixels.
- Delta time: The elapsed time supplied to an update so motion and timers advance by time rather than by an assumed frame count.
- Deterministic replay: Reconstructing the same state sequence from the same initial state, inputs, time steps, and random seed.
- Fixed timestep: A simulation update policy that advances state in equal time intervals and carries unused elapsed time into the next render frame.
- Game state: The complete data required to describe a game at one moment, independent of how that moment is rendered.