Skip to content

Building a scene

Scene building is the editor’s main job. You create scenes, fill them with actors, arrange those actors into a hierarchy, and move them until the level looks right.

The engine needs to know which scene to load first. You choose it in the inspector’s Project settings tab, in the Start Scene field.

The Project settings tab with the Start Scene select open. The list shows [none], Main Menu, Level 1 and Level 2, with Main Menu selected. Below it the Global Options panels: Audio Groups, Performance, Physics and Sorting.
With [none], the engine does not start.

There are three ways to put an actor into a scene:

  • Empty. Add New Actor creates an actor with only a Transform. With an actor selected, the new actor becomes its child.
  • From a template. The template tool places an instance where you click. See Templates.
  • From another actor. Copy an actor and paste it. The copy gets its own id.

A child’s Transform is measured from its parent, so moving the parent moves the whole branch. Drag a node in the tree onto another node to change its parent.

Actor becomes a child of player and follows it.

With the pointer tool, drag actors in the viewport. Hold Shift and click to select several. A drag writes the new offset into the actor’s Transform.

Snap to Grid in the toolbar moves the actor in grid steps.

Snap to Grid off, then on.

The viewport edits position only. Type rotation and scale into the Transform component.

Every change can be undone, up to the last 100 operations. Modal editors, such as the animation editor, keep their own history.

The history lives in memory. Reloading the editor clears it, and so does a rebuild that repairs the configuration.

Ctrl/Cmd + S writes the project configuration to the file named by projectConfig in dacha-workbench.config.cjs. In the starter project that file is data/data.json, and autosave is on.

Nothing reaches the running game until the file is written. Then the page reloads and the game restarts from the start scene. How it works covers that loop.