From axiom
Provides SpriteKit, SceneKit, RealityKit game development guidance including scene graphs, ECS, physics, touch controls, and game controller support.
How this skill is triggered — by the user, by Claude, or both
Slash command
/axiom:axiom-gamesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**You MUST use this skill for ANY game development, SpriteKit, SceneKit, RealityKit, touch controls, game controller, or interactive simulation work.**
You MUST use this skill for ANY game development, SpriteKit, SceneKit, RealityKit, touch controls, game controller, or interactive simulation work.
| Symptom / Task | Reference |
|---|---|
| Building a SpriteKit game | See skills/spritekit.md |
| Adding touch controls to a game (TouchController) | See skills/game-input.md |
| Game controller input (GCController, polling vs handlers) | See skills/game-input.md |
Controller Home button settings, spatial accessories OS27 | See skills/game-input.md |
| SpriteKit API lookup | See skills/spritekit-ref.md |
| Physics contacts not firing | See skills/spritekit-diag.md |
| Frame rate drops (SpriteKit) | See skills/spritekit-diag.md |
| Touches not registering | See skills/spritekit-diag.md |
| Memory spikes in gameplay | See skills/spritekit-diag.md |
| Coordinate confusion | See skills/spritekit-diag.md |
| Scene transition crashes | See skills/spritekit-diag.md |
| Objects tunneling through walls | See skills/spritekit-diag.md |
| SpriteKit node/action reference | See skills/spritekit-ref.md |
| SceneKit maintenance/migration | See axiom-graphics (skills/scenekit.md) |
| SceneKit API / migration mapping | See axiom-graphics (skills/scenekit-ref.md) |
| RealityKit (3D, ECS, AR) | See axiom-graphics (skills/realitykit.md) |
| RealityKit API reference | See axiom-graphics (skills/realitykit-ref.md) |
| RealityKit diagnostics | See axiom-graphics (skills/realitykit-diag.md) |
| RealityKit 27 game features (navmesh, LOD, splats) | See axiom-graphics (skills/realitykit-ref.md Part 10) |
| Long-session game performance tracing (metalperftrace) | See axiom-graphics (skills/display-performance.md Part 12) |
| Porting a Mac/Windows game to Metal | See axiom-graphics (skills/metal-migration.md) |
| In-game content, asset packs, IAP | See axiom-integration (skills/background-assets.md, skills/in-app-purchases.md) |
These topics are part of the broader games/3D domain but live in separate skill suites:
SceneKit (3D — soft-deprecated iOS 26):
RealityKit (3D — modern):
Game performance and porting:
In-game content and monetization:
digraph games {
start [label="Game development" shape=ellipse];
what [label="Which framework?" shape=diamond];
sprite_what [label="SpriteKit need?" shape=diamond];
start -> what;
what -> sprite_what [label="SpriteKit (2D)"];
what -> "skills/game-input.md" [label="touch controls / game controllers"];
what -> "axiom-graphics/scenekit" [label="SceneKit (3D legacy)"];
what -> "axiom-graphics/realitykit" [label="RealityKit (3D modern)"];
what -> "axiom-graphics/metal-migration" [label="porting (Metal)"];
sprite_what -> "skills/spritekit.md" [label="architecture/patterns"];
sprite_what -> "skills/spritekit-ref.md" [label="API lookup"];
sprite_what -> "skills/spritekit-diag.md" [label="broken/slow"];
}
skills/spritekit.mdskills/spritekit-ref.mdskills/spritekit-diag.mdskills/game-input.mdspritekit-auditor agentSpriteKit audit → Launch spritekit-auditor agent or /axiom:audit spritekit
Detects anti-patterns AND architectural gaps:
0xFFFFFFFF, missing contactTestBitMask, magic numbers)SKShapeNode in gameplay, missing texture atlases)update() without cleanupself, .repeatForever without withKey:)touch.location(in: self.view) instead of in: self)touchesBegan without isUserInteractionEnabled)removeAllActions() and child cleanup)usesPreciseCollisionDetection (tunneling)Scores: PERFORMANT / DEGRADED / UNPLAYABLE
SpriteKit (skills/spritekit.md):
0xFFFFFFFF causes phantom collisions)[weak self] in all SKAction.run closuresSpriteKit diagnostics (skills/spritekit-diag.md):
showsNodeCount trendingGame input (skills/game-input.md):
GCController, existing logic unchangedTCTouchController.isSupported gate + connect/render/touch-routing setupOS27| Thought | Reality |
|---|---|
| "SpriteKit is simple, I don't need a skill" | Physics bitmasks default to 0xFFFFFFFF and cause phantom collisions. The bitmask checklist catches this in 2 min. |
| "I'll just use SKShapeNode, it's quick" | Each SKShapeNode is a separate draw call. 50 of them = 50 draw calls. spritekit.md has the pre-render-to-texture pattern. |
| "I can figure out the coordinate system" | SpriteKit uses bottom-left origin (opposite of UIKit). Anchor points add another layer. spritekit-diag.md Symptom 6 resolves in 5 min. |
| "Physics is straightforward" | Three different bitmask properties, modification rules inside callbacks, and tunneling edge cases. spritekit.md Section 3 covers all gotchas. |
| "The performance is fine on my device" | Performance varies dramatically across devices. spritekit.md Section 6 has the debug overlay checklist. |
| "SceneKit is fine for our new project" | SceneKit is soft-deprecated iOS 26. No new features, only security patches. axiom-graphics (skills/scenekit.md) has the migration decision tree. |
| "ECS is overkill for a simple 3D app" | You're already using ECS — Entity + ModelComponent. axiom-graphics (skills/realitykit.md) shows how to scale from simple to complex. |
| "I don't need collision shapes for taps" | RealityKit gestures require CollisionComponent. axiom-graphics (skills/realitykit-diag.md) diagnoses this in 2 min vs 30 min guessing. |
| "I'll overlay UIButtons for touch controls" | TouchController renders in your Metal pass and surfaces as a GCController — existing controller logic just works. UIButton overlays mean a second input path and per-frame UIKit cost. game-input.md Section 2. |
| "Touch controls = put every controller button on screen" | A 1:1 mapping clutters the play area and demands 3+ fingers. game-input.md Section 5 has the redesign patterns (context icons, hide unused, collapse combos). |
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: "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
npx claudepluginhub charleswiltgen/axiom --plugin axiomBuilds 2D games and animations with SpriteKit, covering scenes, sprites, SKAction sequences, physics, particle effects, tile maps, camera, and SwiftUI integration.
Routes game projects to the right platform, dimension, and engine sub-skill. Use when starting a game, choosing between Phaser, PixiJS, Three.js, Babylon.js, Godot, Unity, or Ink/Twine.
Orchestrates game development projects by routing to platform-specific sub-skills based on context. Teaches core principles including game loop, pattern selection, input abstraction, and performance budgeting.