Files
security-game/docs/adr/0016-npc-character-budget-24k.md
T

1.9 KiB

ADR-0016: 24,000-triangle character budget

  • Status: Accepted
  • Date: 2026-11-05

Context

ADR-0015 raised the character contract to 16,000 triangles / 16,000 glTF vertices for the MakeHuman head, hands and crowd variety. The local MPFB full-body prototype now uses that head, project hands and shoes, and a fused neck: it measures 19,747 triangles before any clothing variation. The 16,000 cap leaves no room for the firefighter and hoodie gear, and it forces the body and neck into a low decimation that produces visible facets.

Decision

Raise the character contract to 24,000 triangles / 24,000 glTF vertices per character (CHAR_MAX_TRIS/CHAR_MAX_VERTS, npc_pipeline.MAX_TRIANGLES/ MAX_VERTICES, and the adapt defaults). The 13 core bones, five tint slots, front orientation, grounding and single npc_base skinned mesh are unchanged. Gear stays at 1,500 triangles and props at 4,000.

Consequences

  • The MPFB body, accepted head and neck fit with headroom for the 12 clothing variants and future jacket/hoodie detail.
  • The 24-NPC and Web frame-time budgets must be re-measured before shipping any variant built at the new cap; the extra geometry is not free.
  • The procedural generator and the low-poly npc_base fallback remain valid; they are not required to use the new headroom.
  • MPFB stays a local development tool. Production must bake a committed source GLB; CI and the build must not depend on MPFB.
  • Historical reviews and measurements that state 16,000 remain accurate for the date they were recorded; current contract documents state 24,000.

Alternatives

  • Keep 16,000 and decimate the MPFB body further: rejected because the neck and shoulder already show facets and the clothing variants would exceed the cap.
  • Separate caps for the MPFB prototype and the shipped characters: rejected because it creates a second contract and makes the rollout ambiguous.