2025-07-06 18:26:09 -05:00
template :
id : game-architecture-template-v2
name : Game Architecture Document
version : 2.0
output :
format : markdown
filename : "docs/{{game_name}}-game-architecture.md"
title : "{{game_title}} Game Architecture Document"
workflow :
mode : interactive
sections :
- id : initial-setup
instruction : |
This template creates a comprehensive game architecture document specifically for Phaser 3 + TypeScript projects. This should provide the technical foundation for all game development stories and epics.
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
If available, review any provided documents : Game Design Document (GDD), Technical Preferences. This architecture should support all game mechanics defined in the GDD.
- id : introduction
title : Introduction
instruction : Establish the document's purpose and scope for game development
content : |
This document outlines the complete technical architecture for {{game_title}}, a 2D game built with Phaser 3 and TypeScript. It serves as the technical foundation for AI-driven game development, ensuring consistency and scalability across all game systems.
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
This architecture is designed to support the gameplay mechanics defined in the Game Design Document while maintaining 60 FPS performance and cross-platform compatibility.
sections :
- id : change-log
title : Change Log
instruction : Track document versions and changes
type : table
template : |
| Date | Version | Description | Author |
| :--- | :------ | :---------- | :----- |
- id : technical-overview
title : Technical Overview
instruction : Present all subsections together, then apply `tasks#advanced-elicitation` protocol to the complete section.
sections :
- id : architecture-summary
title : Architecture Summary
instruction : |
Provide a comprehensive overview covering :
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Game engine choice and configuration
- Project structure and organization
- Key systems and their interactions
- Performance and optimization strategy
- How this architecture achieves GDD requirements
- id : platform-targets
title : Platform Targets
instruction : Based on GDD requirements, confirm platform support
template : |
**Primary Platform:** {{primary_platform}}
**Secondary Platforms:** {{secondary_platforms}}
**Minimum Requirements:** {{min_specs}}
**Target Performance:** 60 FPS on {{target_device}}
- id : technology-stack
title : Technology Stack
template : |
**Core Engine:** Phaser 3.70+
**Language:** TypeScript 5.0+ (Strict Mode)
**Build Tool:** {{build_tool}} (Webpack/Vite/Parcel)
**Package Manager:** {{package_manager}}
**Testing:** {{test_framework}}
**Deployment:** {{deployment_platform}}
- id : project-structure
title : Project Structure
instruction : Define the complete project organization that developers will follow
sections :
- id : repository-organization
title : Repository Organization
instruction : Design a clear folder structure for game development
type : code
language : text
template : |
{{game_name}}/
├── src/
│ ├── scenes/ # Game scenes
│ ├── gameObjects/ # Custom game objects
│ ├── systems/ # Core game systems
│ ├── utils/ # Utility functions
│ ├── types/ # TypeScript type definitions
│ ├── config/ # Game configuration
│ └── main.ts # Entry point
├── assets/
│ ├── images/ # Sprite assets
│ ├── audio/ # Sound files
│ ├── data/ # JSON data files
│ └── fonts/ # Font files
├── public/ # Static web assets
├── tests/ # Test files
├── docs/ # Documentation
│ ├── stories/ # Development stories
│ └── architecture/ # Technical docs
└── dist/ # Built game files
- id : module-organization
title : Module Organization
instruction : Define how TypeScript modules should be organized
sections :
- id : scene-structure
title : Scene Structure
type : bullet-list
template : |
- Each scene in separate file
- Scene-specific logic contained
- Clear data passing between scenes
- id : game-object-pattern
title : Game Object Pattern
type : bullet-list
template : |
- Component-based architecture
- Reusable game object classes
- Type-safe property definitions
- id : system-architecture
title : System Architecture
type : bullet-list
template : |
- Singleton managers for global systems
- Event-driven communication
- Clear separation of concerns
- id : core-game-systems
title : Core Game Systems
instruction : Detail each major system that needs to be implemented. Each system should be specific enough for developers to create implementation stories.
sections :
- id : scene-management
title : Scene Management System
template : |
**Purpose:** Handle game flow and scene transitions
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Key Components:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Scene loading and unloading
- Data passing between scenes
- Transition effects
- Memory management
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Implementation Requirements:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Preload scene for asset loading
- Menu system with navigation
- Gameplay scenes with state management
- Pause/resume functionality
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Files to Create:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- `src/scenes/BootScene.ts`
- `src/scenes/PreloadScene.ts`
- `src/scenes/MenuScene.ts`
- `src/scenes/GameScene.ts`
- `src/systems/SceneManager.ts`
- id : game-state-management
title : Game State Management
template : |
**Purpose:** Track player progress and game status
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**State Categories:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Player progress (levels, unlocks)
- Game settings (audio, controls)
- Session data (current level, score)
- Persistent data (achievements, statistics)
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Implementation Requirements:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Save/load system with localStorage
- State validation and error recovery
- Cross-session data persistence
- Settings management
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Files to Create:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- `src/systems/GameState.ts`
- `src/systems/SaveManager.ts`
- `src/types/GameData.ts`
- id : asset-management
title : Asset Management System
template : |
**Purpose:** Efficient loading and management of game assets
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Asset Categories:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Sprite sheets and animations
- Audio files and music
- Level data and configurations
- UI assets and fonts
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Implementation Requirements:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Progressive loading strategy
- Asset caching and optimization
- Error handling for failed loads
- Memory management for large assets
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Files to Create:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- `src/systems/AssetManager.ts`
- `src/config/AssetConfig.ts`
- `src/utils/AssetLoader.ts`
- id : input-management
title : Input Management System
template : |
**Purpose:** Handle all player input across platforms
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Input Types:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Keyboard controls
- Mouse/pointer interaction
- Touch gestures (mobile)
- Gamepad support (optional)
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Implementation Requirements:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Input mapping and configuration
- Touch-friendly mobile controls
- Input buffering for responsive gameplay
- Customizable control schemes
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Files to Create:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- `src/systems/InputManager.ts`
- `src/utils/TouchControls.ts`
- `src/types/InputTypes.ts`
- id : game-mechanics-systems
title : Game Mechanics Systems
instruction : For each major mechanic defined in the GDD, create a system specification
repeatable : true
sections :
- id : mechanic-system
title : "{{mechanic_name}} System"
template : |
**Purpose:** {{system_purpose}}
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Core Functionality:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- {{feature_1}}
- {{feature_2}}
- {{feature_3}}
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Dependencies:** {{required_systems}}
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Performance Considerations:** {{optimization_notes}}
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Files to Create:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- `src/systems/{{system_name}}.ts`
- `src/gameObjects/{{related_object}}.ts`
- `src/types/{{system_types}}.ts`
- id : physics-collision
title : Physics & Collision System
template : |
**Physics Engine:** {{physics_choice}} (Arcade Physics/Matter.js)
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Collision Categories:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Player collision
- Enemy interactions
- Environmental objects
- Collectibles and items
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Implementation Requirements:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Optimized collision detection
- Physics body management
- Collision callbacks and events
- Performance monitoring
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Files to Create:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- `src/systems/PhysicsManager.ts`
- `src/utils/CollisionGroups.ts`
- id : audio-system
title : Audio System
template : |
**Audio Requirements:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Background music with looping
- Sound effects for actions
- Audio settings and volume control
- Mobile audio optimization
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Implementation Features:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Audio sprite management
- Dynamic music system
- Spatial audio (if applicable)
- Audio pooling for performance
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Files to Create:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- `src/systems/AudioManager.ts`
- `src/config/AudioConfig.ts`
- id : ui-system
title : UI System
template : |
**UI Components:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- HUD elements (score, health, etc.)
- Menu navigation
- Modal dialogs
- Settings screens
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Implementation Requirements:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- Responsive layout system
- Touch-friendly interface
- Keyboard navigation support
- Animation and transitions
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
**Files to Create:**
2025-08-15 22:22:24 -05:00
2025-07-06 18:26:09 -05:00
- `src/systems/UIManager.ts`
- `src/gameObjects/UI/`
- `src/types/UITypes.ts`
- id : performance-architecture
title : Performance Architecture
instruction : Define performance requirements and optimization strategies
sections :
- id : performance-targets
title : Performance Targets
template : |
**Frame Rate:** 60 FPS sustained, 30 FPS minimum
**Memory Usage:** <{{memory_limit}}MB total
**Load Times:** <{{initial_load}}s initial, <{{level_load}}s per level
**Battery Optimization:** Reduced updates when not visible
- id : optimization-strategies
title : Optimization Strategies
sections :
- id : object-pooling
title : Object Pooling
type : bullet-list
template : |
- Bullets and projectiles
- Particle effects
- Enemy objects
- UI elements
- id : asset-optimization
title : Asset Optimization
type : bullet-list
template : |
- Texture atlases for sprites
- Audio compression
- Lazy loading for large assets
- Progressive enhancement
- id : rendering-optimization
title : Rendering Optimization
type : bullet-list
template : |
- Sprite batching
- Culling off-screen objects
- Reduced particle counts on mobile
- Texture resolution scaling
- id : optimization-files
title : Files to Create
type : bullet-list
template : |
- `src/utils/ObjectPool.ts`
- `src/utils/PerformanceMonitor.ts`
- `src/config/OptimizationConfig.ts`
- id : game-configuration
title : Game Configuration
instruction : Define all configurable aspects of the game
sections :
- id : phaser-configuration
title : Phaser Configuration
type : code
language : typescript
template : |
// src/config/GameConfig.ts
const gameConfig : Phaser.Types.Core.GameConfig = {
type : Phaser.AUTO,
width : {{game_width}},
height : {{game_height}},
scale : {
mode : {{scale_mode}},
autoCenter : Phaser.Scale.CENTER_BOTH
},
physics : {
default : '{{physics_system}}' ,
{{physics_system}} : {
gravity : { y : {{gravity}} },
debug : false
}
},
// Additional configuration...
};
- id : game-balance-configuration
title : Game Balance Configuration
instruction : Based on GDD, define configurable game parameters
type : code
language : typescript
template : |
// src/config/GameBalance.ts
export const GameBalance = {
player : {
speed : {{player_speed}},
health : {{player_health}},
// Additional player parameters...
},
difficulty : {
easy : {{easy_params}},
normal : {{normal_params}},
hard : {{hard_params}}
},
// Additional balance parameters...
};
- id : development-guidelines
title : Development Guidelines
instruction : Provide coding standards specific to game development
sections :
- id : typescript-standards
title : TypeScript Standards
sections :
- id : type-safety
title : Type Safety
type : bullet-list
template : |
- Use strict mode
- Define interfaces for all data structures
- Avoid `any` type usage
- Use enums for game states
- id : code-organization
title : Code Organization
type : bullet-list
template : |
- One class per file
- Clear naming conventions
- Proper error handling
- Comprehensive documentation
- id : phaser-best-practices
title : Phaser 3 Best Practices
sections :
- id : scene-management-practices
title : Scene Management
type : bullet-list
template : |
- Clean up resources in shutdown()
- Use scene data for communication
- Implement proper event handling
- Avoid memory leaks
- id : game-object-design
title : Game Object Design
type : bullet-list
template : |
- Extend Phaser classes appropriately
- Use component-based architecture
- Implement object pooling where needed
- Follow consistent update patterns
- id : testing-strategy
title : Testing Strategy
sections :
- id : unit-testing
title : Unit Testing
type : bullet-list
template : |
- Test game logic separately from Phaser
- Mock Phaser dependencies
- Test utility functions
- Validate game balance calculations
- id : integration-testing
title : Integration Testing
type : bullet-list
template : |
- Scene loading and transitions
- Save/load functionality
- Input handling
- Performance benchmarks
- id : test-files
title : Files to Create
type : bullet-list
template : |
- `tests/utils/GameLogic.test.ts`
- `tests/systems/SaveManager.test.ts`
- `tests/performance/FrameRate.test.ts`
- id : deployment-architecture
title : Deployment Architecture
instruction : Define how the game will be built and deployed
sections :
- id : build-process
title : Build Process
sections :
- id : development-build
title : Development Build
type : bullet-list
template : |
- Fast compilation
- Source maps enabled
- Debug logging active
- Hot reload support
- id : production-build
title : Production Build
type : bullet-list
template : |
- Minified and optimized
- Asset compression
- Performance monitoring
- Error tracking
- id : deployment-strategy
title : Deployment Strategy
sections :
- id : web-deployment
title : Web Deployment
type : bullet-list
template : |
- Static hosting ({{hosting_platform}})
- CDN for assets
- Progressive loading
- Browser compatibility
- id : mobile-packaging
title : Mobile Packaging
type : bullet-list
template : |
- Cordova/Capacitor wrapper
- Platform-specific optimization
- App store requirements
- Performance testing
- id : implementation-roadmap
title : Implementation Roadmap
instruction : Break down the architecture implementation into phases that align with the GDD development phases
sections :
- id : phase-1-foundation
title : "Phase 1: Foundation ({{duration}})"
sections :
- id : phase-1-core
title : Core Systems
type : bullet-list
template : |
- Project setup and configuration
- Basic scene management
- Asset loading pipeline
- Input handling framework
- id : phase-1-epics
title : Story Epics
type : bullet-list
template : |
- "Engine Setup and Configuration"
- "Basic Scene Management System"
- "Asset Loading Foundation"
- id : phase-2-game-systems
title : "Phase 2: Game Systems ({{duration}})"
sections :
- id : phase-2-gameplay
title : Gameplay Systems
type : bullet-list
template : |
- {{primary_mechanic}} implementation
- Physics and collision system
- Game state management
- UI framework
- id : phase-2-epics
title : Story Epics
type : bullet-list
template : |
- "{{primary_mechanic}} System Implementation"
- "Physics and Collision Framework"
- "Game State Management System"
- id : phase-3-content-polish
title : "Phase 3: Content & Polish ({{duration}})"
sections :
- id : phase-3-content
title : Content Systems
type : bullet-list
template : |
- Level loading and management
- Audio system integration
- Performance optimization
- Final polish and testing
- id : phase-3-epics
title : Story Epics
type : bullet-list
template : |
- "Level Management System"
- "Audio Integration and Optimization"
- "Performance Optimization and Testing"
- id : risk-assessment
title : Risk Assessment
instruction : Identify potential technical risks and mitigation strategies
type : table
template : |
| Risk | Probability | Impact | Mitigation Strategy |
| ---------------------------- | ----------- | ---------- | ------------------- |
| Performance issues on mobile | {{prob}} | {{impact}} | {{mitigation}} |
| Asset loading bottlenecks | {{prob}} | {{impact}} | {{mitigation}} |
| Cross-platform compatibility | {{prob}} | {{impact}} | {{mitigation}} |
- id : success-criteria
title : Success Criteria
instruction : Define measurable technical success criteria
sections :
- id : technical-metrics
title : Technical Metrics
type : bullet-list
template : |
- All systems implemented per specification
- Performance targets met consistently
- Zero critical bugs in core systems
- Successful deployment across target platforms
- id : code-quality
title : Code Quality
type : bullet-list
template : |
- 90 %+ test coverage on game logic
- Zero TypeScript errors in strict mode
- Consistent adherence to coding standards
2025-08-15 22:22:24 -05:00
- Comprehensive documentation coverage