Games
You MUST use this skill for ANY game development, SpriteKit, SceneKit, RealityKit, touch controls, game controller, or interactive simulation work.
<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit --><!-- AXIOM_AUDITOR_INLINE_END -->Not on Claude Code? Where this router says "Launch
some-auditoragent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read.Available here:
skills/spritekit-auditor.md.Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those.
Quick Reference
External Routes
These topics are part of the broader games/3D domain but live in separate skill suites:
SceneKit (3D — soft-deprecated iOS 26):
- Maintenance and migration planning → See axiom-graphics (skills/scenekit.md)
- API reference and migration mapping → See axiom-graphics (skills/scenekit-ref.md)
RealityKit (3D — modern):
- ECS architecture, AR, SwiftUI integration → See axiom-graphics (skills/realitykit.md)
- API reference → See axiom-graphics (skills/realitykit-ref.md)
- Troubleshooting → See axiom-graphics (skills/realitykit-diag.md)
- 27-cycle game-engine layer: navigation mesh + pathfinding, behavior trees, animation graphs, LOD, Gaussian splats → See axiom-graphics (skills/realitykit-ref.md Part 10)
Game performance and porting:
- Long-session game traces, metalperftrace CLI, Game Performance Overview template → See axiom-graphics (skills/display-performance.md Part 12)
- Metal migration, shader conversion → See axiom-graphics (skills/metal-migration.md)
In-game content and monetization:
- Apple-Hosted Background Assets, asset packs, Steam depot conversion → See axiom-integration (skills/background-assets.md)
- In-app purchase, StoreKit views → See axiom-integration (skills/in-app-purchases.md)
Windowing and orientation (OS27):
- Every app resizes at 27, iPhone included.
UIRequiresFullScreennow means discrete snap-resizing for games (not a fullscreen opt-out); orientation lock is a preference; minimum size viasizeRestrictions→ See axiom-uikit (skills/uikit-modernization.md) - Game runs in iPhone Mirroring: trackpad/mouse input reaches custom gestures as indirect events, and the scene always reports portrait → See axiom-uikit (skills/uikit-modernization.md)
- Metal drawable sizing, render-target reallocation, and quality throttling during live resize → See axiom-graphics (skills/resizable-rendering.md)
Decision Tree
- Building/designing a 2D SpriteKit game? →
skills/spritekit.md - How to use a specific SpriteKit API? →
skills/spritekit-ref.md - SpriteKit broken or performing badly? →
skills/spritekit-diag.md - Adding touch controls, or handling game controller input? →
skills/game-input.md - Maintaining existing SceneKit code? → See axiom-graphics (skills/scenekit.md)
- SceneKit API reference or migration mapping? → See axiom-graphics (skills/scenekit-ref.md)
- Building new 3D game or experience? → See axiom-graphics (skills/realitykit.md)
- How to use a specific RealityKit API? → See axiom-graphics (skills/realitykit-ref.md)
- RealityKit entity not visible, gestures broken, performance? → See axiom-graphics (skills/realitykit-diag.md)
- Migrating SceneKit to RealityKit? → See axiom-graphics (skills/scenekit.md) (migration tree) + See axiom-graphics (skills/scenekit-ref.md) (mapping table)
- Building AR game? → See axiom-graphics (skills/realitykit.md)
- Porting a Mac/Windows game to Apple platforms? → See axiom-graphics (skills/metal-migration.md)
- Unlocking in-game content (asset packs, IAP)? → See axiom-integration (skills/background-assets.md, skills/in-app-purchases.md)
- Game needs fullscreen/orientation lock, or breaks when its window resizes? → See axiom-uikit (skills/uikit-modernization.md)
- Want automated SpriteKit code scan? →
spritekit-auditoragent
Automated Scanning
SpriteKit audit → Launch spritekit-auditor agent or /axiom:audit spritekit
Detects anti-patterns AND architectural gaps:
- Physics bitmask issues (default
0xFFFFFFFF, missingcontactTestBitMask, magic numbers) - Draw call waste (
SKShapeNodein gameplay, missing texture atlases) - Node accumulation and runaway spawn-in-
update()without cleanup - Action memory leaks (strong
self,.repeatForeverwithoutwithKey:) - Coordinate confusion (
touch.location(in: self.view)instead ofin: self) - Silent input dead zones (custom
touchesBeganwithoutisUserInteractionEnabled) - Missing object pooling for hot spawns
- Missing/ungated debug overlays
- Leaked scenes (transition without
removeAllActions()and child cleanup) - Missing time-step clamping → spiral-of-death teleports bodies through walls
- HUD attached to scene root instead of camera (drifts with scrolling)
- Fast bodies without
usesPreciseCollisionDetection(tunneling)
Scores: PERFORMANT / DEGRADED / UNPLAYABLE
Critical Patterns
SpriteKit (skills/spritekit.md):
- PhysicsCategory struct with explicit bitmasks (default
0xFFFFFFFFcauses phantom collisions) - Camera node pattern for viewport + HUD separation
- SKShapeNode pre-render-to-texture conversion
[weak self]in allSKAction.runclosures- Delta time with spiral-of-death clamping
SpriteKit diagnostics (skills/spritekit-diag.md):
- 5-step bitmask checklist (2 min vs 30-120 min guessing)
- Debug overlays as mandatory first diagnostic step
- Tunneling prevention flowchart
- Memory growth diagnosis via
showsNodeCounttrending
Game input (skills/game-input.md):
- One GCController pipeline — touch controls surface as a
GCController, existing logic unchanged TCTouchController.isSupportedgate + connect/render/touch-routing setup- Half-screen collider shapes for movement and camera (never small circles)
- Safe-area-adjusted anchor offsets for fullscreen games
- GCMouse delta look/aim + GCKeyboard key state (iPad pointer, iPhone Mirroring)
- Controller Home button settings + visionOS spatial accessories
OS27
Anti-Rationalization
Example Invocations
User: "I'm building a SpriteKit game"
→ See skills/spritekit.md
User: "My physics contacts aren't firing"
→ See skills/spritekit-diag.md
User: "How do I create a physics body from a texture?"
→ See skills/spritekit-ref.md
User: "Frame rate is dropping in my game"
→ See skills/spritekit-diag.md
User: "What action types are available?"
→ See skills/spritekit-ref.md
User: "Objects pass through walls"
→ See skills/spritekit-diag.md
User: "I'm porting my controller game to iPhone and need touch controls"
→ See skills/game-input.md
User: "How do I handle game controller input?"
→ See skills/game-input.md
User: "How do I read spatial accessory input on visionOS?"
→ See skills/game-input.md
User: "My game's layout breaks when the window is resized" → See axiom-uikit (skills/uikit-modernization.md)
User: "I need to build a 3D game" → Invoke: See axiom-graphics (skills/realitykit.md)
User: "I'm migrating from SceneKit to RealityKit" → Invoke: See axiom-graphics (skills/scenekit.md) + See axiom-graphics (skills/scenekit-ref.md)
User: "Can you scan my SpriteKit code for common issues?"
→ Launch spritekit-auditor agent


