Main concepts

Scene / Prefab

A Scene is a tree of objects — the contents of a .json file in your project's assets/ folder. You edit scenes in the Scene Hierarchy panel and save them from the editor.

A Prefab is the same on-disk format but treated as a reusable template. Save any object tree as a .prefab asset, then instantiate it into other scenes. Edits to the source prefab flow into every linked instance (except where overridden). See Instantiating Scenes for details.

Scene nodes

Every object in a scene is a node (also called a game object). Nodes form a parent-child tree: moving, rotating, or scaling a parent affects its children. Every node has a Transform component that stores its position, rotation, and scale.

Nodes are the "what" of your game world — cameras, lights, models, colliders, and empty objects that group other nodes.

Components

A component is a plain Zig struct attached to a node. Components are the "how": a MeshRenderer draws a model, a Camera defines the view, your own script controls behaviour. Every node is an empty container; its components give it identity.

You add components to a node through the Inspector panel. Built-in components ship with the engine. Custom ones are .zig files in your project annotated with pub const is_component = true.

Scene Hierarchy panel

The Scene Hierarchy is the editor panel (left side by default) that lists every node in the currently open scene as a tree. You can:

  • Click a node to select it and inspect its components.
  • Drag and drop to reorder or reparent nodes.
  • Right-click for context actions: create, duplicate, delete, or create a prefab.
  • Toggle visibility and locking per node.

A prefab instance is tinted blue in the Hierarchy with a box icon on its root, so linked copies are immediately identifiable.


← All docs Edit this page