Features

What Perro Provides

Browse engine subsystems and jump directly to docs pages for API details, data shapes, and integration examples.

Docs Navigation

Use each card to jump into focused docs areas: scripting, scenes, runtime APIs, resources, rendering, and shipping.

Query System

What it is

Gameplay systems avoid manual node lists. Query expressions filter runtime scene trees by meaning and ownership scope.

Why it matters

Manual arrays drift as scenes evolve. Query keeps target selection data-driven and deterministic.

Core capabilities

  • name/tag/type/base predicates
  • all/any/not boolean composition
  • subtree scope for system-owned branches

Global Signals

What it is

Emit events without hard wiring script references. Listeners attach by signal id + method id.

Why it matters

Loose coupling keeps UI/gameplay/physics systems composable without ownership tangles.

Core capabilities

  • event fanout across scene
  • connection params for context
  • listener count diagnostics

Nodes

What it is

Perro gameplay objects are typed nodes with inheritance-aware access and safe mutation helpers.

Why it matters

Typed node data keeps runtime reads/writes predictable across mixed 2D/3D/UI trees.

Core capabilities

  • Node2D/3D/UI/Resource hierarchy
  • base-type access for mixed descendants
  • with_node!/with_node_mut! script access

Scene

What it is

Scene files compose node instances, parent links, script bindings, and per-instance script_vars.

Why it matters

Scene composition keeps data authoring separate from reusable script behavior.

Core capabilities

  • parent/script/script_vars/root_of fields
  • .scn composition with reusable templates
  • runtime bridge into Variant-backed script vars

Render Pipeline

What it is

Render pipeline includes materials, shaders, particles, post-process, and accessibility final pass.

Why it matters

Unified runtime/resource APIs keep visual systems script-driven without separate tooling silos.

Core capabilities

  • .pmat + WGSL custom shaders
  • .ppart profile math + emitter modes
  • camera/global post chains + accessibility

WGSL Custom Shaders

What it is

Custom WGSL extends Perro material and post-process shading through engine-wrapped entry points.

Why it matters

Shader customization enables project-specific visuals without replacing render infrastructure.

Core capabilities

  • shade_material + optional shade_vertex
  • post_process hooks for screen effects
  • typed custom params for material/post tuning

Animation Pipeline

What it is

Animation clips stay explicit with .panim tracks/events and runtime player bindings.

Why it matters

Separated formats keep authoring predictable and runtime binding transparent.

Core capabilities

  • track binding by object names
  • runtime playback + seek/speed control
  • timeline events + script calls

Static Build + DLC

What it is

Build pipeline compiles scripts/resources into deterministic outputs and mountable DLC packs.

Why it matters

Single CLI path reduces release drift between dev runs and shipped output.

Core capabilities

  • check/dev/build script pipeline parity
  • resource packing into output
  • dlc:// mount namespace