Axiom Games logo

Axiom Games

CommunityPopular
CharlesWiltgen
axiom-games

Use when building ANY 2D or 3D game with SpriteKit, SceneKit, or RealityKit, or adding touch controls or game controller support. Covers scene graphs, ECS, physics, actions, game loops, rendering, TouchController, GCController.

Overview

PublisherCharlesWiltgen
RepositoryAxiom
Skill nameaxiom-games
Stars
1.2K
Forks
86
Bundled files
5
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by CharlesWiltgen on GitHub. Read the source before you install it.

Installation

Install the Axiom Games AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/CharlesWiltgen/Axiom/tree/main/axiom-codex/skills/axiom-games
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/CharlesWiltgen/Axiom.git /tmp/Axiom
mkdir -p .claude/skills
cp -r /tmp/Axiom/axiom-codex/skills/axiom-games .claude/skills/axiom-games
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Axiom Games in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Axiom Games on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Axiom Games is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Games

You MUST use this skill for ANY game development, SpriteKit, SceneKit, RealityKit, touch controls, game controller, or interactive simulation work.

Auditors are skills here. Where this router says "Launch some-auditor agent", invoke the matching Codex skill instead — same procedure, no Claude Code agent required.

Available: axiom-audit-spritekit.

The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.

Quick Reference

Symptom / TaskReference
Building a SpriteKit gameSee 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 OS27See skills/game-input.md
Game window resizing, orientation lock, UIRequiresFullScreen OS27See axiom-uikit (skills/uikit-modernization.md)
SpriteKit API lookupSee skills/spritekit-ref.md
Physics contacts not firingSee skills/spritekit-diag.md
Frame rate drops (SpriteKit)See skills/spritekit-diag.md
Touches not registeringSee skills/spritekit-diag.md
Memory spikes in gameplaySee skills/spritekit-diag.md
Coordinate confusionSee skills/spritekit-diag.md
Scene transition crashesSee skills/spritekit-diag.md
Objects tunneling through wallsSee skills/spritekit-diag.md
SpriteKit node/action referenceSee skills/spritekit-ref.md
SceneKit maintenance/migrationSee axiom-graphics (skills/scenekit.md)
SceneKit API / migration mappingSee axiom-graphics (skills/scenekit-ref.md)
RealityKit (3D, ECS, AR)See axiom-graphics (skills/realitykit.md)
RealityKit API referenceSee axiom-graphics (skills/realitykit-ref.md)
RealityKit diagnosticsSee 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 MetalSee axiom-graphics (skills/metal-migration.md)
In-game content, asset packs, IAPSee axiom-integration (skills/background-assets.md, skills/in-app-purchases.md)

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. UIRequiresFullScreen now means discrete snap-resizing for games (not a fullscreen opt-out); orientation lock is a preference; minimum size via sizeRestrictions → 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

dot
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"];
}
  1. Building/designing a 2D SpriteKit game? → skills/spritekit.md
  2. How to use a specific SpriteKit API? → skills/spritekit-ref.md
  3. SpriteKit broken or performing badly? → skills/spritekit-diag.md
  4. Adding touch controls, or handling game controller input? → skills/game-input.md
  5. Maintaining existing SceneKit code? → See axiom-graphics (skills/scenekit.md)
  6. SceneKit API reference or migration mapping? → See axiom-graphics (skills/scenekit-ref.md)
  7. Building new 3D game or experience? → See axiom-graphics (skills/realitykit.md)
  8. How to use a specific RealityKit API? → See axiom-graphics (skills/realitykit-ref.md)
  9. RealityKit entity not visible, gestures broken, performance? → See axiom-graphics (skills/realitykit-diag.md)
  10. Migrating SceneKit to RealityKit? → See axiom-graphics (skills/scenekit.md) (migration tree) + See axiom-graphics (skills/scenekit-ref.md) (mapping table)
  11. Building AR game? → See axiom-graphics (skills/realitykit.md)
  12. Porting a Mac/Windows game to Apple platforms? → See axiom-graphics (skills/metal-migration.md)
  13. Unlocking in-game content (asset packs, IAP)? → See axiom-integration (skills/background-assets.md, skills/in-app-purchases.md)
  14. Game needs fullscreen/orientation lock, or breaks when its window resizes? → See axiom-uikit (skills/uikit-modernization.md)
  15. Want automated SpriteKit code scan? → spritekit-auditor agent

Automated Scanning

SpriteKit audit → axiom-audit-spritekit

Detects anti-patterns AND architectural gaps:

  • Physics bitmask issues (default 0xFFFFFFFF, missing contactTestBitMask, magic numbers)
  • Draw call waste (SKShapeNode in gameplay, missing texture atlases)
  • Node accumulation and runaway spawn-in-update() without cleanup
  • Action memory leaks (strong self, .repeatForever without withKey:)
  • Coordinate confusion (touch.location(in: self.view) instead of in: self)
  • Silent input dead zones (custom touchesBegan without isUserInteractionEnabled)
  • 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 0xFFFFFFFF causes phantom collisions)
  • Camera node pattern for viewport + HUD separation
  • SKShapeNode pre-render-to-texture conversion
  • [weak self] in all SKAction.run closures
  • 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 showsNodeCount trending

Game input (skills/game-input.md):

  • One GCController pipeline — touch controls surface as a GCController, existing logic unchanged
  • TCTouchController.isSupported gate + 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

ThoughtReality
"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).
"Games are fullscreen — resizability doesn't apply to me"At 27 every app resizes, iPhone included. UIRequiresFullScreen only gets a game discrete snap-resizing, not a fixed canvas. axiom-uikit (skills/uikit-modernization.md) has the scene-geometry and minimum-size patterns.

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?" → axiom-audit-spritekit

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Axiom Games AI skill do?

Use when building ANY 2D or 3D game with SpriteKit, SceneKit, or RealityKit, or adding touch controls or game controller support. Covers scene graphs, ECS, physics, actions, game loops, rendering, TouchController, GCController.

Why use Axiom Games on TypingMind?

Because you install it once and use it with any model. Axiom Games is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Axiom Games in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/CharlesWiltgen/Axiom/tree/main/axiom-codex/skills/axiom-games. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Axiom Games?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Axiom Games?

As many as you like. As long as a model supports skills, you can use Axiom Games with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Axiom Games AI skill free?

Yes. It is published on GitHub by CharlesWiltgen under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇