Launch Checklist
The checks a game should pass before you launch a version, in the order they usually fail.
Work through this on the version you are about to launch, in the real preview, not in a local tab.
The Handshake
- The game waits for
ready()before the first run. Nothing scores, spawns or plays audio before it resolves. - Listeners are registered before
ready(), so no host message is missed. - The SDK loads exactly once, and no copy is bundled into your code.
The Run
-
gameOveris called exactly once per run, and the loop freezes afterwards. Check a death animation cannot fire it twice. -
playresets the run in place. Play three runs in a row without a reload and confirm the score resets. - Open-ended games never call
gameOver. Level games passlevelAttempton every attempt and honourdata.levelIndexon restart. - Mute from the host chrome silences everything.
Layout and Input
- Everything the player must see or tap sits inside the safe area.
- Portrait games are legible in the feed at a glance; the first tap is the game, not a tutorial.
- Touch targets are at least 44 pixels. No hover-only affordances on mobile targets.
- The layout survives a viewport change mid-session.
Assets and Performance
- Every asset is referenced by a literal
assets/path. Nothing is fetched from a third-party host at runtime. - The document loads in under three seconds on a phone. Three.js games stay under 150 draw calls and 150k triangles.
- Audio starts only after the first interaction.
Declarations
- Every leaderboard and achievement in
remix.jsonhas a stable key you will not rename. - The publish output has no declaration warnings, or you have read each one.
- Every achievement is unlocked somewhere in game code with
sdk.achievements.unlock(key), using a key fromremix.json. - Achievement icons are square, under
assets/, and read at 44 pixels.
Progression
- Lifetime counters behind achievements live in the save and survive a reload.
- Leaderboard times are raw milliseconds on an
ascboard. EverywriteRecordhas a submission id you reuse only for retries. - Every
nullfrom a platform call is handled by showing nothing extra. Play once as a guest. - Nothing the platform owns (unlocks, stars, best scores) is stored in game state or a save slot.
Then Launch
Play the version yourself, on a phone if it is a mobile game. Launch from the game page. Watch the first few plays on the scores endpoint or in the Studio.