The developer docs are written in English and Spanish. You are reading the English version.
Game requirements
Every new game and every update passes the autotest and a review by a person before it goes live. This page lists what the reviewer checks.
Content
- All ages. No sexual content, gore, hate or other mature content. Gamealia is a general audience portal; player accounts are 13+.
- An honest listing. The title, description, cover, thumbnail and tags must match the game.
- A complete game. It loads, it is playable on the devices its tags claim (
mobile,desktop), and it does not crash or soft-lock. - Your own work, or work you have the rights to publish.
Technical
- The build: a folder (or zip) with
index.htmlat its root: your build output (dist/,build/), a Unity WebGL build, a Godot web export, a GameMaker or Construct HTML5 export. - Size: at most 250 MB and 5000 files.
- Relative URLs for your own files. No
localhostor127.0.0.1, nohttp://loads. - The SDK: loads
https://gamealia.app/sdk/v1.js(or a shim), callsGamealia.init()first andGamealia.game.loadingStop()within 15 s of loading. See the SDK reference. - Something on screen within 5 s (a title screen is fine), and it reacts to a click, a tap or Space/Enter.
- No service workers. Do not register one.
- Storage: use
Gamealia.datafor saves (Cloud save). If you uselocalStoragedirectly, only touch your own keys (prefix them with your slug): your game plays from its own origin, but previews and the review run every game on one shared origin, and reading other games' keys fails the build. Nodocument.cookie. - Stay in your frame: do not access
window.parentorwindow.top(the SDK is the only way to talk to the portal). Do not navigate the top page. - No remote code: bundle your scripts. If a CDN script must stay, pin an exact version (never
@latest). Noevalornew Functionon downloaded text. - Your servers: declare every host your game talks to in the listing's
backendHosts(up to 10, for examplemp.example.comor*.example.com). Unknown hosts are warned at review; sending player data to undeclared hosts fails the build. - Origins your servers must allow: if your server checks the
Originheader (WebSocket or CORS allowlists), allow exactlyhttps://<your-slug>.gamealia.app(where the live game plays) andhttps://gamealia-cdn.tinchogon34.workers.dev(previews, the autotest and older links). Never allow*.gamealia.app: every other game lives there too. - Device permissions: camera or microphone only when declared, with a justification, see Device permissions. Location, notifications and clipboard reading are not available to games.
- Threads: builds that need SharedArrayBuffer (Unity or Godot with threads) set the listing's isolation to
coop-coep; everything else keepsnone.
Policy
- No external ads. Ads only through
Gamealia.ad.*(Ads). Remove AdSense tags of your own, AdinPlay, GameMonetize and any other ad SDK. - No trackers or third-party analytics. Gamealia gives you plays, players, sessions and devices in the dashboard.
- No crypto miners. Builds that mine are banned.
- No purchases. No shops with real money, in-app purchases or "remove ads" buttons in v1. See In-game purchases.
- No login of your own. Use the Gamealia account (Player accounts). Guests must always be able to play.
- No obfuscation beyond normal minification: the reviewer has to be able to read your code.
Listing
| Field | Rule |
|---|---|
slug | 3-40 characters: a-z, 0-9 and -, starting and ending with a letter or digit. It becomes the page URL (/game/<slug>) and the game's own host (https://<slug>.gamealia.app), so infrastructure names (www, api, cdn, mail, admin, docs, status, ...) are reserved. It cannot change once the game has been live |
title | 2-60 characters |
description | 20-2000 characters (or empty in a locale) |
controls | up to 500 characters (or empty) |
tags | Three kinds in one array. 1-6 categories (what kind of game): action, puzzle, drawing, party, casual, racing, sports, strategy, io, idle, shooter, adventure, simulation, word, card, music, arcade, platformer, fighting, board, horror, educational, quiz. Up to 8 mechanics (how it plays): match-3, merge, physics, runner, clicker, tower-defense, point-and-click, hidden-object, memory, typing, rhythm, building, crafting, sandbox, survival, stealth, turn-based, real-time, roguelike, open-world, social-deduction, guessing, management, dress-up. Attributes: multiplayer, singleplayer, mobile, desktop, two-player, co-op, online. Players browse (/browse/<tag>) and search by all three |
orientation | any, landscape or portrait |
multiplayer | { min, max } players per room, or null |
adsEnabled | true to earn from ads (Ads) |
isolation | none or coop-coep |
backendHosts | your own servers, up to 10 |
permissions | microphone, camera, with a justification (Device permissions) |
Write the texts in at least one language; English or Spanish is best. The portal shows the listing in about 30 languages: see Translating the listing.
Images: a cover of at least 1200x630 (about 1.91:1) and a square thumbnail of at least 512x512, PNG, JPEG or WebP, at most 2 MB each. gamealia cover and gamealia_generate_cover make both from a screenshot.
The review
uploaded → testing → tested (or test_failed) → you submit → awaiting_review → approved (live) or rejected. A rejection lists the reasons:
| Reason | Fix |
|---|---|
content-not-all-ages | Remove violent, sexual or other mature content |
external-ads | Remove other ad networks; use Gamealia.ad.* |
purchases | Remove shops, real-money items and "remove ads" buttons |
own-login | Remove the login; use the Gamealia account and let guests play |
broken | Run gamealia test and fix the failing checks and console errors |
misleading-listing | Make the title, description, cover and tags match the game |
The reviewer may also write a free-text reason. Fix it, upload a new version and submit again.