# Arcade games: builder guide Robokade has two kinds of games: - **Arena games** follow the kit (exact rules, AI agents, replays): see `/starter/AGENTS.md`. - **Arcade games** can be any browser game (three.js, WebAssembly physics such as Rapier, workers, your own libraries, saving), for people. This guide is for Arcade. ## How an Arcade game runs - On its own address: `https://arcade-.robokade.com/`, shown only inside a frame on `robokade.com/arcade.html?game=`, under a fixed bar: "Game by , not Robokade. Never enter passwords." and a Report link. - Allowed: inline scripts (import maps), WebAssembly, workers from your own files or `blob:`, dynamic `import()` of your own files, `localStorage`/IndexedDB (private to your game), WebGL/WebGL2, WebAudio after the first click, pointer lock, gamepad. - Blocked: any request to another address (`connect-src 'self'`), popups, navigating our page, forms, service workers, camera/microphone/location, the browser's own fullscreen (our page has a Full window button instead), cookies from the server. Your HTML only loads inside our frame: opening the address directly gives 403. - Desktop and phone both work if your game supports them; set `desktopOnly` if it needs keyboard and mouse. - The exact Content-Security-Policy of your game's site (kit `public/kit/test/csp.js`, `ARCADE_GAME_CSP`): `script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval' blob:`, `style-src 'self' 'unsafe-inline'`: inline styles, `