Tutorials
How to Distribute Your Games
Export your game and publish it on the web, desktop, mobile, itch.io, and Steam.
How to Add a Custom Cursor
Hide the default cursor, design a pixel-art replacement, and make it follow the mouse.
How to Build a Virtual Cursor
Control a cursor with the keyboard, scroll larger worlds with the camera, and handle clicks on objects.
How to Build a Save/Load System
Store game state in localStorage and cookies, validate loaded data, throttle writes, and export save strings.
How to Build a Platformer
Add gravity, solid platforms, jumping, one-way platforms, coyote time, enemy stomping, and reactive blocks to your game.
How to Take Screenshots
Capture the game canvas as an image and trigger a PNG download with one function call.
How to Use the Map System
Build tile-based levels with layers, manage multiple maps, and scroll the camera across worlds larger than the screen.
How to Add Custom Keybinds
Create an input mapping layer, let players rebind keys at runtime, and persist their preferences with localStorage.
How to Build a Raycasting Engine
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.
How to Build Click-to-Move Navigation
Build a top-down game with click-to-move navigation, BFS pathfinding around obstacles, grid-snap and free movement modes.