Web game builds
A web game is a folder, not a file. It is uploaded asset by asset and served as a directory from storage, then played inside the store's own player frame.
Open Appsinity StudioExport correctly
- Produce a static folder whose entry point is
index.htmlat the root. - The folder must contain that file or the upload stops with Web game folder must include index.html.
- Relative asset paths only. An absolute
/Build/game.databreaks, because the game is served from a deep storage path. - No path may climb out of the folder: Web game contains an unsafe file path.
- Compression is welcome —
.brand.gznames are handled by the extension test, and.unityweb,.wasm,.data,.mem,.pckall pass the folder rules.
COOP/COEP headers or a service worker scope, test it from the storage URL before you advertise the game as playable.Uploading the folder
The picker takes the whole folder. Each asset is presigned and PUT sequentially — not in parallel — and the progress bar reports cumulative bytes for the folder. The one visible label during this is Preparing web game.
- Every asset is re-checked against the denylist; a single blocked file fails the set.
- The browser enforces a 5 GiB total for the folder; the worker only enforces 5 GiB per file.
- A web-zip upload sends no version, so the key defaults to
draft. - There is no resume. Closing the tab mid-folder restarts the whole folder.
key layout: games/{gameId}/web/{version}/{relPath}
served root: https://storage.appsinity.com/public/games/{gameId}/web/{version}/How it plays on the store
A web listing's primary button reads ▶ Open Now rather than Download Now. Adding ?play or ?stream to the listing URL opens the player automatically, which is what you send to players and what you use for a live demo.
- The player frame offers Mute, Settings, Record, Stream, Leaderboard, Monitor, Hide, Expand, Landscape, New tab and Close.
- On a phone in portrait the rotate hint appears: Rotate your device.
- The Monitor panel closes with Everything stays in your browser.
- Sessions are counted by the play endpoints, so the leaderboard is per-game rather than global.
Scores and sessions
Web play has a leaderboard endpoint returning the top 20 scores, and the Studio play routes read session records. That is the whole social layer: no friends, no teams, no clubs.
If your game stores progress locally, say so in the description. Players on a phone browser lose it when the origin storage is cleared, and they will blame the listing.
dateOfBirth-style identity of a store account is not exposed to your game.Frequently asked questions
Can a web game also be downloadable?
The chain resolves to one URL. Publish the web build or a native build; a listing that points at a folder root will not behave like an installer.
What is the practical size limit for a browser game?
5 GiB is the enforced ceiling, but a browser game over roughly 100 MB will fail to hold a mobile audience regardless of what Appsinity accepts.
Does the store add its own code into my game?
No. The frame around it is the player UI; your page runs inside it.
Developer publishing support: [email protected]
General support: [email protected]
Partnerships: [email protected]
APPSINITY