Dino8 is a 2d retro game SDK for developers who want PICO-8’s simplicity but without the limits. Write Lua, use your favorite tools, and ship to web, desktop, and mobile from one CLI.
No token limits, no restricted memory, no forced resolution. Bring your own tools and focus on making the game.
Write game logic in Lua 5.4 with hot reload during development.
Dawnbringer 16 default palette with custom palette support.
Sprites, shapes, tilemaps, camera, clipping, and render targets.
Music and sound effects with named clips, pitch, and volume control.
Bundle games into a single HTML file. Push to itch.io with one command.
Create .fos packages for distribution. Validate and inspect projects.
# create a new game dino8 create my-game # run it dino8 my-game/
-- called once at startup function _init() x, y = 64, 64 end -- called every frame for game logic (60fps) function _update() if btn(0) then x = x - 1 end if btn(1) then x = x + 1 end if btn(2) then y = y - 1 end if btn(3) then y = y + 1 end end -- called every frame to render the game world function _draw() cls() circ(x, y, 4, 7) end -- called every frame for UI (not affected by camera) function _ui() print("hello dino8", 40, 10, 14) end
dino8 my-game/ # run a project dino8 my-game.fos # run a package dino8 create my-game # scaffold a new game dino8 fossilize my-game # create .fos package dino8 validate my-game/ # check project structure dino8 export web my-game/ # single-file HTML export dino8 export mac my-game/ # export macOS app dino8 export ios my-game/ # export Xcode project dino8 push my-game/ # publish to itch.io dino8 get # download assets and tools dino8 examples # download example projects dino8 changelog # show release changelog dino8 help # all commands