Publishing from the Studio
Publish a project from the browser Studio with Build > Publish to NEO Platform, run a private beta with invited testers, and republish changes.
On this page
The Studio publishes your project straight to NEO. Each project becomes its own game on the platform, and each publish adds a new version to it. This page explains what happens when you publish, how private betas work, and what players end up running.
Before you publish#
- Use the browser Studio. Publishing runs in the browser Studio at /studio. The desktop Studio's publish commands report that publishing runs in the browser Studio.
- Open it from the platform while signed in. The platform hands the Studio a short-lived session when you open it from Open Studio or /studio. Guests can't publish. Without a session, publishing stops with "Open the Studio from the NEO Platform to publish".
Publish#
- Choose Build in the Studio's mode switcher.
- Under NEO Platform, choose Publish to NEO Platform.
The status line next to the buttons shows the progress, then the result, for example "Published version 3 (2 files uploaded, 14 unchanged)", followed by the link to the game's page.
What happens when you publish#
- The Studio saves the project, then gathers its own files:
neo.toml,scene.json, scripts, sources and anything you imported intoassets/. - Each file is uploaded as its own blob. Blobs are addressed by their SHA-256 hash, so the Studio first checks whether the platform already has each one and only sends the files that changed. A single file can be up to 8 MB.
- A small manifest is uploaded, listing each file's path, address, size and hash.
- The game is created the first time. The first publish of a project creates a game in your account for it. After that, every publish of that project goes to the same game. The title is the project's title.
- A version is published with the manifest as its Web build and the note "Published from the NEO Studio". It goes live straight away.
- The game is made public, unless you published a private beta.
The template's large content (its animation library, models and sounds) is never uploaded: published games read it from NEO's content network, as the Studio does.
The game the Studio creates#
| Setting | Value | Change it in |
|---|---|---|
| Title | The project's title | Settings in the Creator Hub (also updated on each publish) |
| Description | "Made in the NEO Studio." | Settings in the Creator Hub |
| Genre | Action | |
| Hosting | Small groups | |
| Players per server | 8 |
See Game settings and versions for the Creator Hub side.
Private betas and testers#
To let only invited people play, choose Publish as private beta instead. The game is set to private before the new version goes live, so the beta's version is never shown publicly, even if the game was public before.
Under the buttons, Testers has a username field and Invite:
- Type a tester's username.
- Choose Invite.
The invited testers are listed next to it. Before anyone is invited the line reads "No testers yet: only you can play the beta". Testers find the game under Games you're testing on their home page. You can also manage testers from the game's Testers tab in the Creator Hub; see Private betas and testers.
When the beta is ready, publish again with Publish to NEO Platform to make the game public, or use Make public in the Creator Hub.
What players run#
A published version doesn't ship the Studio. It plays your project's own game build, the template's web game, which is a much smaller download than the Studio. When a player presses Play:
- the game's page fetches your manifest;
- it hands the game your
scene.json, so your added objects and moves are in place; - it hands the game your scripts from
assets/scripts/, and the game runs the ones yourneo.toml[script] scriptslist names, as your scripts. Scripts from players run only if[script.players]allows them.
If the game build isn't on the content network, the version plays the Studio's own build in player mode instead: the editor's interface hidden, straight into Play with your saved scene. Either way, nothing the player does is saved into your project.
The Studio publishes a Web build only, so players play Studio games in the browser. See Publish and share a game for build locations for other devices.
Republishing#
Publish again whenever you change something. Only changed files are uploaded, so a small change publishes quickly: republishing with no changes reports 0 files uploaded. Each publish makes a new, numbered version, and players always get the live one. If a publish goes wrong, roll back to an earlier version on the game's Versions tab in the Creator Hub (see Game settings and versions).
Commands#
| Command | Arguments | What it does |
|---|---|---|
editor.platform.publish | title?, description?, visibility? (public or private) | Publishes the open project. |
editor.platform.status | Where publishing stands: state (idle, publishing, published or error), message, signed_in, experience_id, version, game_url, play_url, scene_url, testers. | |
editor.platform.invite | username | Invites a tester to the private beta. |
editor.platform.uninvite | username | Removes a tester. |
editor.platform.testers | Refreshes the tester list (read it from editor.platform.status). |
In the browser Studio you can call these from the page with await neo.command("editor.platform.publish", { visibility: "private" }).