Sharing And Publishing
The primary publishing path is the hosted Opal portal:
Editor project -> File -> Publish to Arcade... -> public game pageUse exports for backups, moving projects, standalone builds, and technical deployment workflows.
Publishing Options
| Option | Use |
|---|---|
| Publish to Arcade | Public playable game page hosted by Opal |
| Export Game | Full .opal project backup |
| Export Scene | One-scene JSON backup or bug repro |
| Build player | Static player folder from a .opal bundle |
| Static mirror | Developer/demo deployment of the editor and docs |
Publish To The Arcade
Publish from the hosted editor:
Publishing needs an account because the game needs an owner, project record, and public slug.
The start scene is the scene players see first. Test from that scene before publishing.
Opal snapshots the project, prepares publish metadata, and asks whether the game can be remixed.
Published games get pages such as /g/<slug> and playable routes such as /play/<slug>.
Publishing is not just a final step. Publish small builds during development so you can test the real player route and share progress.
Remixing
When publishing, decide whether other users can remix the game.
| Choice | Meaning |
|---|---|
| Remix allowed | Other users can open a copy as a starting point for their own project |
| Remix off | The game remains playable, but visitors do not get a remix starting point |
For tutorials, starter kits, and examples, enable remixing. For personal finished games, choose based on how open you want the project to be.
Update A Published Game
When you change the project:
- Make the edit.
- Press Play and test.
- Use File -> Publish to Arcade... again.
- Open the public game page in a fresh tab.
The exact public page behavior depends on the current publish metadata and slug, but the habit is simple: edit, test, publish, verify.
Export A Game Backup
Use File -> Export Game to download a .opal bundle containing the full project.
Use .opal exports for:
- Milestone backups
- Moving work between machines
- Saving a snapshot before risky changes
- Standalone player builds
- Bug reports and repro files
Even with account storage, exports are worth keeping. They are your local "I can always get back here" file.
Export One Scene
Use File -> Export Scene to download the active scene as JSON.
Scene exports are useful for:
- Sharing one level draft
- Moving one scene into another project
- Creating small bug repros
- Backing up before a large scene rewrite
A scene export is not the full game. It does not include every project scene or the whole project asset library.
Build A Standalone Player
For technical deployments, build a static player from an exported game:
npm run build:player -- Demos/game.opalThe output is a static folder that can be hosted by any basic web server. The player is for playing the game, not editing it.
Use this path when you need a standalone archive or a deployment target outside the Opal arcade.
What Needs The Hosted Server
| Feature | Needs hosted/server API? |
|---|---|
| Account login | Yes |
| Cross-device project storage | Yes |
| Publish to Arcade | Yes |
Public /g/<slug> and /play/<slug> pages | Yes |
| Password or magic-code auth | Yes |
| Background removal tooling | Usually yes |
| Local IndexedDB editing (no server API) | No |
| Static standalone player | No |
Release Checklist
Before publishing:
- Set the correct start scene.
- Play from the start scene to the ending.
- Test fullscreen layout.
- Verify images,
.ssbbundles, and sounds load. - Resolve Problems panel warnings.
- Confirm the UI/HUD works at likely screen sizes.
- Export a final
.opalbackup. - Publish to the arcade.
- Open the public game page in a new tab or device.