← ClaudeAtlas

c99-game-opinionated-guidelisted

Use when editing C99 game-engine or runtime code in projects that follow the opinionated caller-owns-memory, SoA, builder-pattern style. A focused overlay that covers only game/engine house-style decisions, not generic C99 idioms. Triggers on `.c`/`.h` files in game/engine directories and on prompts about vectors, matrices, quaternions, physics, meshes, spatial structures, tagged unions, inverse mass, builder patterns, even when the user doesn't say 'opinionated'.
xonovex/platform · ★ 5 · AI & Automation · score 72
Install: claude install-skill xonovex/platform
# C99 Game Engine Opinionated Guidelines ## Requirements - **Overlay on c99-guide** - This guide carries only the game/engine opinionated decisions; for generic C99 idioms: `const`-correctness, designated initializers (ZII), fixed-width types, value-oriented APIs, and baseline error/return patterns, follow **c99-guide** ## Math - **Types** - 16-byte aligned vectors/matrices/quaternions, see [references/math-types.md](references/math-types.md) - **Access** - Use accessor functions for matrices, direct fields for vectors, see [references/math-types.md](references/math-types.md) - **Coordinates** - Right-handed Y-up, CCW winding, configurable clip depth, see [references/coordinate-system.md](references/coordinate-system.md) - **Suffixes** - `_aos/_soa` layouts, `_simde` SIMD, `2d/3d` dimensions ## Geometry Pipeline - **Analytic → Discrete → Packing** - Separate logic/rendering/GPU layers, see [references/geometry-pipeline.md](references/geometry-pipeline.md) - **Builder pattern** - `*_req()` query size, `*_build()` write to caller buffer, see [references/builder-pattern.md](references/builder-pattern.md) ## Patterns - **Inverse mass** - Store `1/mass`, static objects use `0.0`, see [references/physics-patterns.md](references/physics-patterns.md) - **SoA optimization** - AoS for single objects, SoA for batches, see [references/mesh-types.md](references/mesh-types.md) - **Validation** - Check capacity, bounds, NULL, overflow before operations ## Gotchas - Vertex packing