Skip to content

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 ​

  1. Export the folder. In the Toolbar, open File ▾ → Export Game (folder, for hosting)…, then pick or create a destination folder. Awaken writes game.html and scene.fg, plus a web app manifest and icons when the project has App Settings, and confirms in the Console.
  2. Check it locally. Before uploading, serve the folder over http and open the URL - for example npx serve or python3 -m http.server in that folder. This proves the fetch("./scene.fg") path works (double-clicking will not).
  3. Host it. Upload the whole folder, files kept next to each other, to any static host. The fetch is relative, so scene.fg must sit beside game.html:
    • Vercel / Netlify / Cloudflare Pages - drag the folder into a new project (or vercel deploy it) 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.
  4. Confirm and share. Open the hosted URL in a WebGPU browser - the player loads ./scene.fg, boots the same @awaken/runtime you played in the editor, and runs your game. Send the link.

The File ▾ menu open with Export Game (folder, for hosting)… highlighted.

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 ​

See also ​

Awaken: browser-native WebGPU game engine.