Tutorials
Export your game and publish it on the web, desktop, mobile, itch.io, and Steam.
by assertchris
Hide the default cursor, design a pixel-art replacement, and make it follow the mouse.
by assertchris
Control a cursor with the keyboard, scroll larger worlds with the camera, and handle clicks on objects.
by assertchris
Store game state in localStorage and cookies, validate loaded data, throttle writes, and export save strings.
by assertchris
Add gravity, solid platforms, jumping, one-way platforms, coyote time, enemy stomping, and reactive blocks to your game.
by assertchris
Capture the game canvas as an image and trigger a PNG download with one function call.
by assertchris
Build tile-based levels with layers, manage multiple maps, and scroll the camera across worlds larger than the screen.
by assertchris
Create an input mapping layer, let players rebind keys at runtime, and persist their preferences with localStorage.
by assertchris
Cast rays across a grid map, project 3D walls from hit distances, sample textures from sprites, and add distance shading — all with pset and basic trig.
by assertchris
Build a top-down game with click-to-move navigation, BFS pathfinding around obstacles, grid-snap and free movement modes.
by assertchris
Expand BFS to eight directions, add terrain costs with Dijkstra, and speed up search with A* — all on the same grid, with visual comparison.
by assertchris
Create reusable engine extensions with the plugin API, test them in draft mode, and publish releases.
by assertchris
Draw a top-down race track, add tank-style steering with acceleration, a second player, car collisions, off-track penalties, and a three-lap finish.
by assertchris
Build a tile-based world with a walking character, wall collisions, NPC interactions, and a dialogue system.
by assertchris
Build a top-down world with random encounters, turn-based combat, HP bars, a monster-catching mechanic, and a party system.
by assertchris
Organize your game into distinct states — title screen, gameplay, game over — using a simple mode variable that controls what updates and draws each frame.
by assertchris
Pre-allocate and recycle objects instead of creating and destroying them every frame — watch the FPS counter prove it works.
by assertchris
Spawn enemies from the edges, organize them into waves, and ramp difficulty over time — a reusable pattern for any arena survival game.
by assertchris
Follow a player with a smooth camera, clamp to world bounds, and add screen shake for impact — three systems every action game needs.
by assertchris
A survivors-like game with auto-attacking projectiles, enemy waves, XP collection, and upgrade choices — built on object pooling, wave spawning, and camera systems.
by assertchris
Toggle visual overlays to highlight game objects, draw connections between related elements, and build a help system players can activate on demand.
by assertchris
Build a scene manager with level select, progress tracking, and transitions — using a collect-the-gems mini-game.
by assertchris
Screen flash, particle bursts, pulsing indicators, and easing curves — small tricks that make a breakout game feel alive.
by assertchris
Push boxes onto targets across hand-crafted levels — with undo, scene management, a hint overlay, and animated polish.
by assertchris
Add walking rhythm and collision feedback to a first-person raycaster — a sine-wave view bob when moving and exponential-decay screen shake when bumping walls.
by assertchris
Replace flat distance shading with dithered fog, add a parabolic player torch, and place volumetric street lamps in a first-person raycaster.
by assertchris
Render billboard sprites in a first-person raycaster, give monsters line-of-sight chasing and BFS pathfinding around walls, and spawn them with area triggers.
by assertchris
Load multiple maps, transition between levels with a fade effect, track player progress, and build a complete game flow for a first-person raycaster.
by assertchris
Learn how to place wall-mounted decal textures and freestanding props with collision in a raycaster.
by assertchris
Learn how to define raycaster levels as pixel art and build higher-fidelity wall textures, posters, and props from multiple sprites.
by assertchris