Get SpatialOS

Sites

Menu

Building

After you’ve made code changes to a project, you should build it.

You don’t need to build the whole of a SpatialOS project at the same time. What you build depends on what changes you’ve made to it:

If you’ve changed the schema

Any time you change the schema (for example, add or change a component), you need to regenerate the generated code, and fix code references.

Don’t forget to keep your schema backwards-compatible.

Build schema changes from the command line

  1. Generate code from the schema:

  2. Fix any code references that are broken by the schema changes.

  3. Run spatial worker build <worker type> for any relevant workers.

You can then use your IDE to modify your code that uses the generated code.

Migrate the initial snapshot

If you change the schema, you’ll need to migrate your initial snapshot to the new schema, or generate a new one.

You can manipulate the snapshot using the worker SDKs. See the docs for C++, C#, or Java for details.

If you’ve changed worker code

Build from the command line

When you’ve made a change to the code of your worker, run spatial worker build <worker type>. This runs the ‘build’ task for the worker, which normally puts the resulting assets within build/assembly. See build configuration for details.

Update the initial snapshot

You must update your initial snapshot (or generate a new one) if you make any changes that affect what’s in the snapshot. This includes (but isn’t limited to):

  • adding or removing entities in the initial state (by changing the code which adds them)
  • changing the number of entities in the initial state (by changing the code which adds them)
  • changing the template (used to spawn an entity) of any entity that’s in the initial snapshot, including
    • adding components to the entity
    • removing components from the entity

To update the initial snapshot, use the worker SDKs to manipulate it. For details, see the API documentation:

Cleaning

To clean the results of code generation and build, run spatial worker clean <worker type>. This runs the ‘clean’ task for the worker. See build configuration for details.

To clean the whole project, run spatial worker clean. This also removes the build directory at the root of your project.

Next steps

When you’re ready, deploy your project locally or to the cloud.

Was this page helpful?

Thanks for letting us know!

Thanks for your feedback

Need more help? Ask on the forums