Skip to content

Publish on arrr.fun

arrr.fun is a gaming portal built on the network: players sign in once with ARRR identity, play games, and see every game they have played with the data they saved in each. Publishing a game there gets you in front of that audience with no hosting of your own to run.

Publish by URL or by zip

Open arrr.fun/create (sign in with ARRR first) and choose one of two ways to publish:

  • An iframe URL — point at a game you already host anywhere. The portal embeds it; you keep running it yourself.
  • A zip uploadindex.html at the root of the zip (or one folder down), up to 100 MiB. The portal extracts it and serves it as static files. The play origin does not support HTTP Range requests yet, so seeking inside a large <audio> or <video> file will not work in Safari (which insists on byte ranges for media); short sounds decoded with the Web Audio API are fine, and Chrome and Firefox play whole files without ranges.

Either way you give it a title, a description and a cover image, and it shows up in the portal's grid: featured, newest and most played.

The sandbox

A zip you upload is served from an origin of its own — https://<your-slug>.play.arrr.fun/, a hostname that is neither the portal's nor any other game's — inside a sandboxed <iframe>. That separation means your game's script can never read the portal's own cookie or reach across into another game's storage (including the session the SDK keeps for that game); it runs as an ordinary, isolated web page that happens to be embedded. The slug is made from your title when you publish and does not change afterwards, because it is your game's address. Popups are allowed (so identity.login() still works from inside a published game), autoplay, the gamepad API, the microphone and fullscreen are allowed; reading the parent page's DOM is not.

Every game gets an app

Publishing a game creates an app for it in the console, owned by your account, the same kind of app you would create by hand for API Keys. That means a game published through the portal is a normal ARRR app underneath: it has its own API key if you want to add real-time rooms, NPCs, or a data key to read players' saves from your own backend — the portal is a front door, not a separate, smaller product.

What a player sees

  • The game grid at arrr.fun — featured, newest, most played, with live player counts.
  • arrr.fun/play/<slug> — the game itself in its sandbox, with its title, author, description and play count, and a prompt to sign in if the game wants to save.
  • arrr.fun/me — every game the player has signed in to (read from their own index record), each with its saved data and a button to delete it in that one game.

Check it worked

Publish a game (even a trivial index.html that just prints "hello"), open its /play/<slug> page in a new tab, and confirm it loads inside the sandbox. Sign in on that page and check that the game shows up under arrr.fun/me for the account you signed in with, and that its app appears in the cloud console under your apps.

Next steps

  • Identity — what signing in on the portal actually does
  • Player data — what the "data saved in each" on /me is
  • API Keys — the app your published game gets, from the SDK side