📄️ Scenes & Roots
Dreamlab's scene graph is split into four top-level roots.
📄️ Entities
Entities are Dreamlab's fundamental game objects—similar to Unity GameObjects or Godot Nodes.
📄️ Behaviors
Behaviors are TypeScript classes that bring logic to an Entity.
📄️ Tick Loop
Dreamlab simulates the game world at a fixed tick-rate (60 TPS by default).
📄️ Synced Values & Adapters
@syncedValue() turns a field into …
📄️ Logging
console.log() (and friends) are automatically captured on both the server and the client and streamed into the in-game Log panel—no setup required.
📄️ Camera
<img
📄️ Remote Procedure Calls (RPC)
You can use the @rpc decorators to mark behavior functions as remote procedures. RPC decorated functions must have
📄️ Tilemaps
Tilemaps let you paint 2D levels quickly using a tileset (a grid of sprites) or colored-square tiles.
📄️ Key-Value (KV) Storage
Dreamlab games are stateless by default, when a new instance is created the game is started fresh every time. In order
📄️ Lighting
Lighting effects in action
📄️ Physics
Physics entities do not render to the scene by default.
📄️ Preloading Assets
Textures, sounds, and other assets can be preloaded by defining a preload.ts file in the root of your project
📄️ Rendering with Pixi
This page shows how to render 2D shapes in Dreamlab using the Pixi API.
📄️ User Interface
Dreamlab's UI system lets you author fully-interactive game interfaces—HUDs, menus, inventory screens—directly in TypeScript inside your game project.