Ship to a URL
Take the game you have been editing and put it on the web - export a small hosting folder and drop it on any static host (Vercel, Netlify, Cloudflare Pages, itch.io) to get a shareable link.
Awaken exports a game as plain static files with no server-side logic, so "shipping" is really just "upload two files." This tutorial uses the folder export - the smallest output Awaken produces - which writes a game.html plus a compressed scene.fg sidecar. Because the game fetches its scene at boot, the folder must be served (not double-clicked); hosting it is what makes that fetch work and turns your project into a URL you can share.
What you will build
Your existing scene, exported to a folder and hosted at a public URL anyone can open in a WebGPU browser - no install, no login, just a link.
Why a folder, not a single file
The single-file game.html inlines the scene as base64, which inflates the scene bytes by ~33%. The folder export keeps the compressed scene as a raw binary sidecar the game fetches at boot, so the download is as small as possible - the win that matters when you are hosting. The trade-off: the folder export will not run when double-clicked (a file:// page cannot fetch its sibling), so it must be served. Hosting is exactly what provides that.
If you only want a file to email or double-click, use Export game.html instead.
Before you start
- Complete Make Your First Game so you have something to ship.
- A Chromium browser - the folder export uses the directory picker (
showDirectoryPicker), which Firefox and Safari do not implement. - Read Export Folder (for hosting) for the full behaviour.
Steps
- Export the folder. In the Toolbar, open File ▾ → Export Game (folder, for hosting)…, then pick or create a destination folder. Awaken writes
game.htmlandscene.fg, plus a web app manifest and icons when the project has App Settings, and confirms in the Console. - Check it locally. Before uploading, serve the folder over
httpand open the URL - for examplenpx serveorpython3 -m http.serverin that folder. This proves thefetch("./scene.fg")path works (double-clicking will not). - Host it. Upload the whole folder, files kept next to each other, to any static host. The fetch is relative, so
scene.fgmust sit besidegame.html:- Vercel / Netlify / Cloudflare Pages - drag the folder into a new project (or
vercel deployit) and open the generated URL. - S3+CloudFront / itch.io - drop the files in the served directory (for itch.io, zip the folder and upload it as an HTML game) and open
game.html's URL.
- Vercel / Netlify / Cloudflare Pages - drag the folder into a new project (or
- Confirm and share. Open the hosted URL in a WebGPU browser - the player loads
./scene.fg, boots the same@awaken/runtimeyou played in the editor, and runs your game. Send the link.

TIP
scene.fg is already Zstd-compressed, so extra host-level gzip/brotli on it buys little, and its MIME type does not matter (it is fetched as an ArrayBuffer). Just keep the files together.
Where to go next
- Prefer a single double-clickable file? See Export game.html.
- Understand how the player finds and loads your scene in The Player Runtime.
See also
- Export Folder (for hosting) - the authoritative reference and host-by-host notes
- Export game.html - the single-file alternative
- Preview - test the same build served over
httpbefore uploading - The Player Runtime - how
game.htmlfinds and loadsscene.fg