A palette-first WebGPU retro engine for TypeScript, inspired by RetroBlit by Martin Cietwierkowski (@daafu). Draw with palette indices instead of RGBA pixels, animate with palette cycling and fades, and ship authentic VGA-era effects on modern GPUs – with an automatic Canvas 2D fallback when WebGPU is unavailable.
Read the documentation at blit386.dev.
npm create blit386@latest my-gameWorks with npm, pnpm, yarn, or bun. You get a ready-to-run Vite project, a commented starter game, and local docs.
- blit386 – the engine library (npm).
- create-blit386 – the
npm create blit386scaffolder and@blit386/kit. - blit386-demos – interactive examples, hosted at demos.blit386.dev.
- True indexed rendering - primitives and sprites write palette indices, not RGBA.
- Palette effects built-in - cycling, fade, flash, and swap run per frame, no per-sprite rewrites.
- Retro palette presets - VGA, CGA, C64, Game Boy, PICO-8, and NES.
- Post-process effects - a two-tier chain with bundled CRT presets.
- Full input - pointer, keyboard, and gamepad, plus a fixed-timestep loop and frame capture.
- Václav Vančura (@vancura)
Licensed under ISC.
