warming up your workspace

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 Pong as an inspectable deterministic simulation. Control time, input, paddle response, collision contact, scoring, serves, rallies, and a full replayable match whose visible motion follows server-verified state.
  • Breakout and Collision Geometry: Build a deterministic Breakout level from geometric evidence: broad-phase candidates, exact contact, stable normals, penetration correction, swept collision for fast balls, brick and drop state, lives, and a replay audit that catches tunnelling and double-scoring.
  • A Responsive Platformer Controller: Build and measure a platformer controller from gravity, slopes, forgiving jump timing, ground and air response, moving platforms, one-way surfaces, checkpoints, accessibility profiles, and a deterministic input-to-state replay.
  • Animation and Game Feel: Turn authoritative state into readable motion using animation state machines, easing, anticipation, impact timing, bounded particles and audio, camera framing, and accessibility-safe feedback. Finish with a deterministic combat vignette whose every cue can be traced to its cause.
  • Enemy Minds and Combat: Build explainable enemy behaviour from finite-state machines, perception and bounded memory, steering and threat selection, exact attack windows, idempotent damage, visible difficulty policy, and a deterministic encounter replay.
  • Paths, Waves, and Tower Defence: Build a deterministic tower-defence encounter from grid graphs, A* and flow fields, target policy, projectile interception, wave scheduling, economy ledgers, base damage, status effects, and audited replay evidence.
  • Procedural Dungeons: Build reproducible dungeon generation from explicit random state, room and corridor geometry, cellular caves, connectivity repair, constrained content placement, pacing metrics, audits, and a seed-backed dungeon dossier.
  • Inventory, Dialogue, and Saving: Build transactional inventory and crafting, condition-driven dialogue, quest state machines, append-only event evidence, versioned saves, migrations, recovery slots, and a replayable player-state dossier.
  • Performance and Data-Oriented Worlds: Build measurable object pools, local spatial queries, bounded frame scheduling, dense component storage, distribution-based profiling, and a replayable crowded-world simulation dossier.
  • 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.