Games
You MUST use this skill for ANY game development, SpriteKit, SceneKit, RealityKit, touch controls, game controller, or interactive simulation work.
Cursor Subagent Routing
Delegate to the appropriate Cursor subagent when this router calls for a specialized auditor.
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 → Delegate to the spritekit-auditor subagent 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?"
→ Delegate to the spritekit-auditor subagent


