post: clean — no AAA name drops, shipped features as one platform

This commit is contained in:
2026-06-16 17:18:48 +01:00
parent b998e54641
commit 2354885774
3 changed files with 104 additions and 70 deletions
+4 -8
View File
@@ -153,17 +153,13 @@ Each animal model ships as a game-ready GLB with baked animation clips. A catalo
At runtime, `AnimalHerdRenderer` spawns one `skinned_herd` per animal type. The herd bakes the palette from the model's clips. Animation logic maps sim FSM states to clip keywords (attack → attack/bite, flee → run/gallop, wander → walk). The renderer lerps positions between sim ticks for smooth motion and writes per-instance custom data each frame. Zero per-frame CPU on the animation path.
## Where we stand vs the industry
## The platform
The bone-matrix palette technique is the same architecture used by Assassin's Creed Unity, Total War: Warhammer, and Hitman for their crowd systems. We're using the same core idea, in a Godot fork, with smaller VRAM — our low-poly animals keep textures tiny.
Each animal type gets one draw call. The GPU palette handles thousands at zero CPU cost. A distance LOD drops far instances to a cheaper shader path, and a cull radius hides everything beyond the horizon. Palette VRAM is halved with RGBA16F storage, cached to disk between runs. The nearest few animals get promoted to real skeletons with crossfades and head look-at — hidden from the palette so they don't double-render.
Stock Godot has no answer for this. `Skeleton3D` per character caps at ~20. `MultiMesh` can't skin. There is no built-in crowd animation path.
Stock Godot has no answer for this. `Skeleton3D` per character caps at ~20. `MultiMesh` can't skin. There is no built-in crowd animation path. The bone-matrix palette technique is the approach documented in NVIDIA GPU Gems 3 as the standard for GPU crowd animation — the same class of technique used across the industry for rendering thousands of animated characters.
The platform runs two tiers by distance, driven by the same `(clip, count, speed, phase)` packet:
- **Crowd tier (palette)** — baked poses, GPU-driven, zero CPU. Thousands of agents in one draw call per type.
- **Hero tier (real rigs)** — the nearest few agents get real `Skeleton3D` + `AnimationTree` + IK. Smooth crossfades, head look-at, ragdoll. Hidden from the palette so they don't double-render.
Same code drives 30 animals today. Same code will drive thousands of colonists at launch.
25 bird species share the same platform. Each flock is one synced draw call — airborne flapping in unison is a feature, not a bug. Same code drives 30 animals today. Same code will drive thousands of colonists at launch.
## What's deliberately not here