Hosting — three classes. Most of the engine runs headless: world, simulation,
physics, gameplay, navigation, input, and the logic of animation/particles/terrain all run
on the Quickstart’s headless server. What needs more: (1) visible output
(rendering, camera, and the on-screen side of UI/animation/particles/terrain) needs a
GPU/render host; (2) audio and Lua scripting need their own resources — an audio engine,
a script VM — not a GPU; (3) everything else, including input, is fully headless. Cards
below mark which is which.
“AI” here is never an in-engine LLM. Euca ships no language model. The agents that
drive Euca are external — your code or model, talking to the
API. In-engine AI is classical and deterministic:
POST /ai/set
assigns a behavior (idle / patrol / chase / flee), and the euca-ai crate is a
behavior-tree library (selectors, sequences, a blackboard). AI asset generation is a
separate feature that calls external text/image-to-3D providers — and even then the generated
mesh never touches the world’s ground truth.Build a world
Entities & components
Spawn/despawn, patch components, tag, reset, observe — the world as a table.
Rules as data
when X do Y as inspectable data, changeable mid-run.Templates & prefabs
Named entity templates and registered prefabs for reusable spawns.
Heroes
Hero definitions and selection — apply hero templates to entities.
Play a world
Simulation
Step, play, pause — physics, combat, and rules run deterministically each tick.
Combat & abilities
Damage/heal, projectiles, triggers, abilities, AI behaviors (behavior trees), match lifecycle.
Economy & items
Inventories, equipment, a gold-based shop, and status effects.
Navigation
Navmesh generation and A* pathfinding; set entity path goals.
Experiment & verify
Forks & counterfactuals
Deep-clone the world, intervene, diff, drop.
Snapshots & probes
Labeled snapshots, diffs, and probe = advance + assert in one call.
Assertions & manifest
Testable expectations and a feature manifest for sprint contracts.
Determinism & replay
Byte-for-byte reproducible runs; scenarios, levels, scene save/load.
Rendering, visuals & I/O
The logic of most of these runs headless; only the visible output (or, for audio/scripting, a non-render resource) needs more than the headless example server.Camera & rendering
Camera pose/presets, screenshots, per-entity materials, post-processing, volumetric fog.
Needs a render/GPU host — see Engine internals.
UI & HUD
HUD text and bars; layout + hit-testing compute headless, drawing needs the GPU host.
Animation
State machines, blend spaces, montages, root motion, two-bone + FABRIK IK — pose math is
headless; on-screen skinning needs the GPU host.
Particles & terrain
Particle emitters; heightmap terrain (sculpt/splat, LDtk/Tiled import, heightfield
colliders) — simulation/authoring is headless, display needs the GPU host.
Audio
Spatial + global sources, buses, reverb zones, occlusion. Needs an audio-engine resource (not a GPU).
Lua scripting
Sandboxed Lua per entity (spawn/despawn, read/write position & health, events, hot reload).
Needs a script-engine resource — headless-compatible, no GPU.
Input
Key/action bindings, action maps, a context stack, gamepad. Fully headless.
MOBA systems
A full MOBA layer — hero attributes, buildings/towers, creep waves, Roshan, items/recipes,
fog-of-war/wards, day-night, neutral camps. Headless logic.
Platform & tools
The euca CLI
A command-line client that maps 1:1 to the HTTP API, plus
discover / explain / schema.Networking
A client-server replication + prediction library (UDP/QUIC). A library, not yet wired into a
shipping game.
AI asset generation
Text/image → 3D mesh across 8 providers; appearance stays decoupled from ground truth.
Asset cooking
euca-cook: GLB → optimized .emesh with LODs and baked convex-hull collision.AI asset generation
POST /asset/generate starts an AI 3D-asset job (text/image → mesh) across multiple providers;
poll status and list tasks. Generated appearance is decoupled from ground truth — an AI-made
mesh never changes the world’s exact state, which is what keeps the
engine usable as a world-model answer key.
The full surface
All 121 endpoints, grouped by family, with request/response schemas and a playground.