Platforms
A game exports to Linux and Windows desktops, to the browser, and to the Steam Deck. Each needs its export template. The engine does not export to macOS, Android or iOS; phones play the browser export.
Linux and Windows
Section titled “Linux and Windows”Run the player in the game’s folder. It opens a window the size the project’s display settings (or the preset’s) ask for, titled with the project’s name.
The player needs a GPU with Vulkan 1.3, or Direct3D 12 on Windows, and its drivers; it does not bring them with it. A game exported on one platform does not run on the other: export each with its own template.
The player takes a few options, useful when testing:
| Option | What it does |
|---|---|
--vulkan, --dx12, --webgpu |
Draw with that graphics API (Vulkan by default) |
--exit-after <seconds> |
Quit after that long |
--screenshot <file.png> |
Save a screenshot at frame 30 (--screenshot-frame N or --screenshot-after S for another moment) |
--screenshot-exit |
Quit once the screenshot is saved |
--version |
Print the engine version |
The browser
Section titled “The browser”A browser export makes a web page: an .html page (named after Player name: index gives
index.html), the player (Engine.Player.js and Engine.Player.wasm), the content in two packs
(Content-bc.pak for computers and Content-astc.pak for phones; the page picks the one the
device’s GPU reads), and the shaders.
Requirements
Section titled “Requirements”- WebGPU. Current Chrome and Edge have it on computers and Android. A browser without it shows a message saying so.
- A web server. The page loads its files over HTTP, so opening the
.htmlfile directly does not work. - HTTPS, or
localhost. Browsers allow WebGPU only on a secure page.
Any static web host works, GitHub Pages included: the sample games are hosted there. Upload the folder as it is.
Trying it on your computer
Section titled “Trying it on your computer”The export includes serve.py, a small server for testing:
cd Dist/Webpython3 serve.py # http://localhost:8000python3 serve.py 8080 # another portTo try it on a phone on the same network, the page needs HTTPS: python3 serve.py --https uses a
certificate it makes itself (the phone’s browser warns once), and --cert and --key use your
own.
Phones
Section titled “Phones”On a touch device, a game whose orientation is Landscape or Portrait (in the project’s display settings or the preset’s) asks for fullscreen and that orientation at the first tap. Android allows it. Where the browser refuses, as on iPhone, the game turns its picture to match the way the phone is held instead.
Steam Deck
Section titled “Steam Deck”The Steam Deck runs a Linux player built against an older system library (glibc) than a desktop
build uses, so that it runs on SteamOS. scripts/build-steamdeck.sh, in the engine’s source,
builds it inside a container and installs it as a template named Steam Deck Release. It needs
podman or docker, and the engine’s tools built once on the computer first (it uses their shader packer).
Then add a preset for the Deck:
- In Project > Export…, add a preset and pick the Steam Deck Release template.
- On its Display tab, turn on Draw at its own render size and Open its own window, set both sizes to 1280 x 800 (the Deck’s screen), the window mode to Fullscreen, and clear Resizable.
- Export it.
To play it, copy the game’s folder to the Deck. In the Deck’s Desktop Mode, open Steam and choose Games > Add a Non-Steam Game to My Library…, browse to the player in the folder, and add it. It then appears in the library in Game Mode, and the Deck’s controls drive the game’s input map like a gamepad.