opengame.json; bring your own Bevy project. PixiJS has a separate rendering result from a corrected starter.
Engine status
A small test game for each of these engines was uploaded with the CLI on 22 Oct 2026. Each upload reached Ready after the server checks. That status makes a release available for private preview; it does not record whether the game rendered or its services worked.
Detected as is the server’s engine result for that upload; where that differs from the engine, the engine’s guide explains why. Versions are the ones the server read, and it read none for React, JavaScript and Bevy. Each starter is a folder under
templates/ in the OpenGame repository to begin your own game from.
PixiJS’s first test build did not play. PixiJS 8 needed import "pixi.js/unsafe-eval" before the app started, because OpenGame did not allow eval then, and that build lacked it, so it showed a blank frame. New releases run on contract 2027-03, which allows eval. templates/pixijs now has the import, and a build of it drew in a private preview on 23 Oct 2026 with no CSP violations.
These are upload results. Rendering, review, Firefox and Safari, the public page and platform services need separate evidence under what tested means; no engine has a complete acceptance result yet.
Every engine OpenGame recognises
Every engine OpenGame recognises
Each engine links to its guide. Recognised says whether
opengame check names the engine from the export’s files. “From source” means the signature was taken from the engine’s runtime source and has not yet been matched on a real export. “As Rust” means the export is identified by the runtime it ships, so a Bevy game reads as a Rust one. Emscripten is recognised only from a threaded build’s runtime, so a single-threaded C, C++ or raylib export reads as custom. The ID is what opengame init . --engine <id> takes.Upload eligibility
An engine name is not required for hosting. An unrecognised export is checked as Custom. Package a browser build withindex.html and its companion files, or use the raw SWF and js-dos workflow. Desktop executables and editor projects need a web build first.
New releases use contract 2027-03, which permits HTTPS resources, HTTPS and WSS connections, and eval. A scan that detects threads selects 2027-04, adding cross-origin isolation and the page SDK. Threads and WebGPU covers the browser requirements. Each game still runs on its own origin inside the sandbox.
Unencrypted engine containers that the scanner cannot fully decode can proceed to manual review. The reviewer must acknowledge the files listed as not inspected before approving the release. Encrypted containers, invalid archives, credentials and other failed checks can stop the upload. Read the export workflow for the result codes.
Upload eligibility does not establish SDK, multiplayer or browser compatibility. A jam can also accept fewer engines than the platform hosts.
What tested means
A tested integration needs evidence for a named engine version and export variant through the creator’s full workflow:opengame checkreports the expected engine or runtime and finds no unexpected failures.- The game renders and takes input in Chrome, Firefox and Safari under the game page’s security policy, with required assets loading and no unexplained console errors.
- The upload passes the server’s scan and the automated play test.
- The private preview, the review copy and the public page serve the same files.
- With the SDK, sign-in, a score, an event, a link, fullscreen and, where the engine supports them, two-player rooms work on the live site. Test sign-in on a published game; private previews return
unavailablefor it. - Somebody uploads it through the website and plays it on the public page.
- OpenGame’s own code for that engine gets an independent review.
Choose an engine
A language guide covers a game written straight against the browser in that language. It cannot add a browser target or an interop path to an engine that has neither. Unreal is not part of this release: there is no guide for it, and OpenGame does not recognise its exports.
Build your game
Licensed editors need a valid licence and their web export module installed. OpenGame does not supply editors, licences or compiled games. Runtime-based targets such as js-dos, Ruffle and Pyodide need the real runtime and your game’s files. Each engine guide with a web export ends with the same steps:opengame init . --engine <id>, then opengame dev, opengame check, opengame deploy and opengame submit. Stride and MonoGame have no web export, so their guides cover porting the game to an engine that has one, such as KNI.
These pages cover what the guides share:
Export, check and preview
Choose an export, read failures and vendor runtime files.
Services from any engine
Sign-in, scores, events and rooms, and how to turn the SDK off.
SDK packages
Install the package for your engine and keep its files together.
Threads and WebGPU
What a threaded or WebGPU export needs from the page.
Memory and runtime diagnostics
Tell download size, wasm memory, browser heap and renderer failures apart.
Runtimes and contracts
Runtime contracts and platform runtimes.