Before you start
- The CLI, installed and signed in. The quickstart sets it up with the team’s package and internal origin.
- A static browser build with
index.htmlat the root of its output folder. - Every Three.js module, texture, sound and decoder file inside that output folder. A script from a CDN is allowed, but the game breaks whenever the CDN is slow or down.
Deploy and play your game
1
Use relative asset paths
If you build with Vite, set
base to "./" so asset URLs are relative to the page. The build then loads its files on any host, including a private preview. The templates/three-vite starter in the OpenGame repository ships with this setting; it is not in the CLI or SDK package, so ask the team for the folder if you have no repository.vite.config.js
2
Describe the game
From the game folder, create Check the build fields. Set the description, genre and controls in the same file. Packaging lists every field and the runtime requirements.
opengame.json if it is missing:build.command runs your build and build.output names the folder it writes:opengame.json
3
Check and deploy
check --build runs your build and checks the output before anything uploads. deploy runs the build again, uploads the output folder and waits for the server checks. It returns a previewUrl when the preview is ready.4
Play the preview
Open
previewUrl while signed in to the account that deployed it. Play a full round from start to finish, then:- Resize the window and check the canvas follows.
- Pause the game and toggle sound.
- Open the network panel and confirm that textures, audio and any Draco or KTX2 decoder files load.
5
Send it for review
From the linked game folder:This sends the release to review. It goes live when a reviewer approves and publishes it. Confirm the release, answer the jam’s fields if submissions are going to a jam, then complete certification in your browser. An agent passes
--release <releaseId> and submits only when you ask it to. Enter a jam lists what a jam entry needs.Fix a problem
A check fails
A check fails
Each finding lists its evidence and a correction. Read both before you change the game, fix the cause, then run
opengame check . --build again. The repair loop explains findings and retry advice.The preview is missing a texture, model or decoder file
The preview is missing a texture, model or decoder file
The file was not in the output folder when it uploaded. Put it somewhere your build copies into the output, such as Vite’s
public/ folder, and load it with a relative path. Check the letter case as well: macOS and Windows ignore case, and our servers do not. Optimise your assets shows how to ship the KTX2 transcoder.The deploy is still running when the command ends
The deploy is still running when the command ends
Run
opengame status --watch from the game folder. It follows the server checks until the deploy is ready, failed or expired.Where next
Optimise your assets
Compress models, textures and audio before the first frame.
Connect the SDK
Identify players and follow pause, mute and sign-in.
Add multiplayer
Host rooms and let players join by code.
Update a live game
Ship a new release while the published one keeps serving.