Skip to content

Propose game-architecture skill (Game Coding Complete patterns) - #23

Merged
diego3 merged 1 commit into
mainfrom
claude/skill-game-coding-complete-architecture
Jul 30, 2026
Merged

Propose game-architecture skill (Game Coding Complete patterns)#23
diego3 merged 1 commit into
mainfrom
claude/skill-game-coding-complete-architecture

Conversation

@diego3

@diego3 diego3 commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

Proposes a new project skill, .claude/skills/game-architecture/, that documents how this
engine's existing patterns map to Game Coding Complete, 4th Edition (McShaffry & Graham) — the
book already cited in process/process.go's own doc comment — and gives concrete guidance for
implementing the remaining games/metalslug_demo/ideas.md TODOs using patterns already
established in this codebase instead of ad hoc versions.

It sits alongside the existing .claude/skills/game-dev (validation) skill and follows the
structural conventions of .agents/skills/python-design-patterns / python-anti-patterns
(frontmatter name/description, "When to Use This Skill", numbered "Core Concepts", a "Quick
Start", a tiered references/ file for deeper material, and a "Related Skills" pointer back to
game-dev).

What's in it

  • SKILL.md (~180 lines): layer boundary discipline (ADR-003), Component-composition actor
    pattern, Prototype spawning via GameObject.Clone()/spawnEntity, a decision guide for
    which of three timing mechanisms to use (single-instance script globals vs. the
    object.Timer component vs. the still-unwired process.Manager), informal state-machine
    guidance for actor AI, resource-cache reuse, and event-driven HUD design. Ends with a table
    mapping each ideas.md TODO to the relevant pattern — and flags that a few (enemy sprite,
    enemy shooting at the player, explosion animation) are already implemented, even though
    ideas.md still shows them unchecked.
  • references/pattern-catalog.md: a chapter-by-chapter mapping of Game Coding Complete
    concepts to where (or whether) they're implemented here, a note on the current
    Prototype-clone-vs-true-object-pool tradeoff, and a full worked CameraShake process.Process
    example — the concrete template for the first thing that should attach to a process.Manager.

Why

process/ was added standalone with no consumer yet, and several of the timing/spawning
conventions in the newer Python scripts (enemy_bomber.py, sphere_timer.py,
game_manager.py) were worked out ad hoc, script by script. This skill exists so the next
gameplay feature — pickups, camera shake, a HUD, shader-based projectiles — reuses those
conventions deliberately (and picks the right one of the three timing mechanisms) instead of
re-deriving them, and so a reviewer has a concrete checklist for whether new gameplay code is
bypassing an existing pattern.

No engine or game code changes — this PR only adds two markdown files.


Generated by Claude Code

Adds a project skill documenting how this engine's existing patterns
(GameObject/Component actors, Prototype cloning via spawnEntity, the
event bus, resource cache) map to "Game Coding Complete, 4th Edition"
(McShaffry & Graham), plus guidance on when to use the still-unwired
process.Manager vs. the two per-entity timing conventions already
established in games/metalslug_demo's scripts (module-level state for
single-instance scripts, the Timer component for shared-script clones).

Includes a decision table mapping games/metalslug_demo/ideas.md's
open TODOs to the relevant pattern, and a worked CameraShake Process
example as the template for the first process.Manager use case.
@cursor

cursor Bot commented Jul 27, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants