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.
Coming soon
This tutorial is being written. The step outline below is final so you can ship today. Finished prose, host-specific screenshots, and a checklist are on the way. For the authoritative reference on the folder export and its hosting notes, see Export Folder (for hosting) now.
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 exactly two files -
game.htmlandscene.fg- 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 both 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 both files in the served directory 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.
📸 Screenshot - save as img/tutorials-ship-to-url-export.png
The File ▾ menu open on Export Game (folder, for hosting)…, with the Console below confirming the two written files - game.html and scene.fg.
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 two 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