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.html at 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 localhost or 127.0.0.1, no http:// loads.
  • The SDK: loads https://gamealia.app/sdk/v1.js (or a shim), calls Gamealia.init() first and Gamealia.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.data for saves (Cloud save). If you use localStorage directly, 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. No document.cookie.
  • Stay in your frame: do not access window.parent or window.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). No eval or new Function on downloaded text.
  • Your servers: declare every host your game talks to in the listing's backendHosts (up to 10, for example mp.example.com or *.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 Origin header (WebSocket or CORS allowlists), allow exactly https://<your-slug>.gamealia.app (where the live game plays) and https://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 keeps none.

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

FieldRule
slug3-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
title2-60 characters
description20-2000 characters (or empty in a locale)
controlsup to 500 characters (or empty)
tagsThree 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
orientationany, landscape or portrait
multiplayer{ min, max } players per room, or null
adsEnabledtrue to earn from ads (Ads)
isolationnone or coop-coep
backendHostsyour own servers, up to 10
permissionsmicrophone, 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:

ReasonFix
content-not-all-agesRemove violent, sexual or other mature content
external-adsRemove other ad networks; use Gamealia.ad.*
purchasesRemove shops, real-money items and "remove ads" buttons
own-loginRemove the login; use the Gamealia account and let guests play
brokenRun gamealia test and fix the failing checks and console errors
misleading-listingMake 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.