ignifx

Getting started

Five minutes from an empty folder to a running game. You need Node 24, a package manager, and a browser with WebGPU.

WebGPU: checking…

1Create a project

shell
npx @ignifx/cli@latest my-game

The default template is 2d-topdown. Pass one to pick another:

shell
npx @ignifx/cli@latest my-game --template 3d-third-person

2Pick a template

  • 2D top-down

    A tilemap with collision, Y-sorted props, a dead-zoned camera and shrines to light.

    2d-topdown

  • 2D side-scroller

    Parallax bands, slopes and one-way platforms, coins, and a pixel-perfect camera.

    2d-sidescroller

  • 3D third-person

    A character on a capsule, an orbit camera that avoids walls, an animated rig, a companion.

    3d-third-person

  • 3D first-person

    Walk, sprint, crouch and jump with pointer lock, a view model, and things to push.

    3d-first-person

Every template is a small finished game: a title screen, a pause menu, settings for volume, render scale, shadows and post-processing, interactive rebinding, saves with checkpoint autosave, and English and French strings. Delete the game and keep the front end.

3Run it

shell
cd my-gamenpm installnpm run dev

Open http://localhost:5173. Press backtick for the devtools overlay. Press Escape for the pause menu.

4Change something

Open src/scripts/ and find a Script. Change a speed, save, and watch the game update without a reload. Every field you declare with Script.define shows up in the devtools inspector.

5Build

npm run build writes a static dist/ you can host anywhere: Cloudflare Pages, Netlify, GitHub Pages, an S3 bucket, itch.io.

Desktop

Add --desktop when you create the project and you get an Electron variant with dev:desktop, build:desktop and dist:desktop. The window is created with WebGPU enabled, context isolation on, the renderer sandboxed, and a typed bridge for the few things a game needs from the host.

shell
npx @ignifx/cli@latest my-game --template 3d-first-person --desktop

What next