post: only claim shipped tiers — crowd + hero, not impostor

This commit is contained in:
2026-06-15 22:58:06 +01:00
parent 05685ba477
commit 5997a5a56f
2 changed files with 11 additions and 10 deletions
+5 -5
View File
@@ -373,13 +373,13 @@ NORMAL = normalize((skin * vec4(NORMAL, 0.0)).xyz);</code></pre>
<p>At runtime, <code>AnimalHerdRenderer</code> spawns one <code>skinned_herd</code> 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.</p>
<h2>Where we stand vs the industry</h2>
<p>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.</p>
<p>The platform supports three tiers by distance, all driven by the same <code>(clip, count, speed, phase)</code> packet:</p>
<p>Stock Godot has no answer for this. <code>Skeleton3D</code> per character caps at ~20. <code>MultiMesh</code> can't skin. There is no built-in crowd animation path.</p>
<p>The platform runs two tiers by distance, driven by the same <code>(clip, count, speed, phase)</code> packet:</p>
<ul>
<li><strong>Crowd tier (palette)</strong> — baked poses, GPU-driven, zero CPU. Thousands of agents.</li>
<li><strong>Hero tier (real rigs)</strong><code>AnimationTree</code> + <code>SkeletonIK3D</code> + <code>PhysicalBone3D</code> for the nearest few. Smooth gait blends, foot-lock, look-at, ragdoll.</li>
<li><strong>Impostor tier (2D billboards)</strong> — sprite atlas indexed by view-angle and animation-frame. For very far agents.</li>
<li><strong>Crowd tier (palette)</strong> — baked poses, GPU-driven, zero CPU. Thousands of agents in one draw call per type.</li>
<li><strong>Hero tier (real rigs)</strong>the nearest few agents get real <code>Skeleton3D</code> + <code>AnimationTree</code> + IK. Smooth crossfades, head look-at, ragdoll. Hidden from the palette so they don't double-render.</li>
</ul>
<p>One abstraction, three detail levels. The same code that drives 30 animals today will drive thousands of colonists at launch.</p>
<p>Same code drives 30 animals today. Same code will drive thousands of colonists at launch.</p>
<h2>What's deliberately not here</h2>
<ul>
<li><strong>No C# wrapper.</strong> Instantiate from GDScript via <code>ClassDB.instantiate()</code> — the binding surface is small and stable.</li>
Before
After
+6 -5
View File
@@ -157,12 +157,13 @@ At runtime, `AnimalHerdRenderer` spawns one `skinned_herd` per animal type. The
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.
The platform supports three tiers by distance, all driven by the same `(clip, count, speed, phase)` packet:
- **Crowd tier (palette)** — baked poses, GPU-driven, zero CPU. Thousands of agents.
- **Hero tier (real rigs)** — `AnimationTree` + `SkeletonIK3D` + `PhysicalBone3D` for the nearest few. Smooth gait blends, foot-lock, look-at, ragdoll.
- **Impostor tier (2D billboards)** — sprite atlas indexed by view-angle and animation-frame. For very far agents.
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.
One abstraction, three detail levels. The same code that drives 30 animals today will drive thousands of colonists at launch.
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.
## What's deliberately not here