366 lines
15 KiB
YAML
366 lines
15 KiB
YAML
template:
|
|
id: game-architecture-template-v3
|
|
name: Game Architecture Document
|
|
version: 3.0
|
|
output:
|
|
format: markdown
|
|
filename: docs/game-architecture.md
|
|
title: "{{project_name}} Game Architecture Document"
|
|
|
|
workflow:
|
|
mode: interactive
|
|
elicitation: advanced-elicitation
|
|
|
|
sections:
|
|
- id: introduction
|
|
title: Introduction
|
|
instruction: |
|
|
If available, review any provided relevant documents to gather all relevant context before beginning. At a minimum you should locate and review: Game Design Document (GDD), Technical Preferences. If these are not available, ask the user what docs will provide the basis for the game architecture.
|
|
sections:
|
|
- id: intro-content
|
|
content: |
|
|
This document outlines the complete technical architecture for {{project_name}}, a game built with Godot Engine and GDScript. It serves as the technical foundation for AI-driven game development, ensuring consistency and scalability across all game systems.
|
|
|
|
This architecture is designed to support the gameplay mechanics defined in the Game Design Document while maintaining stable performance and cross-platform compatibility, whether the game is developed in 2D or 3D.
|
|
- id: starter-template
|
|
title: Starter Template or Existing Project
|
|
instruction: |
|
|
Before proceeding further with game architecture design, check if the project is based on a Godot template or existing codebase:
|
|
|
|
1. Review the GDD and brainstorming brief for any mentions of:
|
|
- Godot project templates or demo projects
|
|
- Existing Godot projects being used as a foundation
|
|
- Asset Library packages or game development frameworks
|
|
- Previous game projects to be cloned or adapted
|
|
|
|
2. If a starter template or existing project is mentioned:
|
|
- Ask the user to provide access via one of these methods:
|
|
- Link to the Godot demo project
|
|
- Upload/attach the project files (for small projects)
|
|
- Share a link to the project repository (GitHub, GitLab, etc.)
|
|
- Analyze the starter/existing project to understand:
|
|
- Pre-configured Godot version and renderer settings
|
|
- Project structure and scene organization patterns
|
|
- Built-in plugins and dependencies
|
|
- Existing architectural patterns and conventions
|
|
- Any limitations or constraints imposed by the starter
|
|
- Use this analysis to inform and align your architecture decisions
|
|
|
|
3. If no starter template is mentioned but this is a greenfield project:
|
|
- Suggest appropriate Godot project structure based on the target platform
|
|
- Recommend relevant demo projects or learning resources
|
|
- Consider Godot Asset Library resources for common game mechanics
|
|
|
|
- id: target-platforms
|
|
title: Target Platforms and Performance Requirements
|
|
instruction: Analyze the GDD's platform requirements and establish technical baselines
|
|
sections:
|
|
- id: platform-overview
|
|
title: Platform Overview
|
|
instruction: |
|
|
Based on the GDD, identify all target platforms for this game. For each platform, document:
|
|
- Primary target devices (e.g., PC, Mobile, Web)
|
|
- Minimum and recommended system specifications
|
|
- Input methods (keyboard/mouse, touch, gamepad)
|
|
- Distribution platforms (Steam, itch.io, mobile app stores, web)
|
|
- Platform-specific requirements or constraints
|
|
|
|
- id: performance-targets
|
|
title: Performance Targets
|
|
instruction: |
|
|
Establish performance baselines for each target platform:
|
|
- Frame rate targets (30fps minimum, 60fps target, etc.)
|
|
- Memory usage limits per platform
|
|
- Loading time requirements
|
|
- Battery life considerations (mobile)
|
|
- Network requirements (if multiplayer/online features)
|
|
|
|
- id: godot-setup
|
|
title: Godot Project Setup
|
|
instruction: Define the foundational Godot project configuration
|
|
sections:
|
|
- id: godot-version
|
|
title: Godot Version and Configuration
|
|
instruction: |
|
|
Document the Godot setup:
|
|
- Godot version (recommend 4.4 for stability)
|
|
- Renderer selection (Forward+ for desktop, Mobile for mobile/web)
|
|
- Project settings configuration
|
|
- Input map setup for target platforms
|
|
|
|
- id: project-structure
|
|
title: Project Structure
|
|
instruction: |
|
|
Design a scalable project folder structure:
|
|
```
|
|
project/
|
|
├── scenes/ # Game scenes (.tscn files)
|
|
│ ├── main/ # Main menu, settings, etc.
|
|
│ ├── levels/ # Game levels and gameplay scenes
|
|
│ ├── ui/ # UI components and HUD
|
|
│ └── components/ # Reusable scene components
|
|
├── scripts/ # GDScript files (.gd)
|
|
│ ├── managers/ # Singleton managers (GameManager, etc.)
|
|
│ ├── components/ # Reusable script components
|
|
│ ├── data/ # Custom Resource classes
|
|
│ └── utils/ # Utility functions and helpers
|
|
├── assets/ # Game assets
|
|
│ ├── 2d/ # For 2D: sprites, textures, animations
|
|
│ ├── 3d/ # For 3D: models, materials, shaders
|
|
│ ├── audio/ # Music and sound effects
|
|
│ └── fonts/ # Font files
|
|
├── data/ # Game data files
|
|
│ └── resources/ # .tres resource files
|
|
└── tests/ # Unit and integration tests
|
|
├── unit/ # Unit tests
|
|
└── integration/ # Integration tests
|
|
```
|
|
|
|
- id: core-architecture
|
|
title: Core Game Architecture
|
|
instruction: Design the fundamental system architecture following Godot best practices
|
|
sections:
|
|
- id: scene-architecture
|
|
title: Scene Architecture
|
|
instruction: |
|
|
Design the scene hierarchy and organization:
|
|
- Main scene structure and autoloads
|
|
- Scene transition management
|
|
- UI layer organization (CanvasLayer usage)
|
|
- Scene instancing patterns for reusable components
|
|
|
|
- id: node-patterns
|
|
title: Node and Component Patterns
|
|
instruction: |
|
|
Establish patterns for game object architecture:
|
|
- Component composition using child nodes
|
|
- Signal-based communication patterns
|
|
- Node group usage for categorization
|
|
- Scene inheritance and variation patterns
|
|
|
|
- id: singleton-systems
|
|
title: Singleton Systems (AutoLoad)
|
|
instruction: |
|
|
Design singleton managers for global systems:
|
|
- GameManager: Game state, scoring, level management
|
|
- AudioManager: Music and sound effect management
|
|
- SaveManager: Save/load game data
|
|
- SceneManager: Scene transition handling
|
|
- InputManager: Input handling and action management
|
|
|
|
- id: gameplay-systems
|
|
title: Gameplay Systems Architecture
|
|
instruction: Design specific game mechanics based on the GDD
|
|
sections:
|
|
- id: player-system
|
|
title: Player System
|
|
instruction: |
|
|
Design the player character architecture:
|
|
- Player scene structure (CharacterBody2D/3D, RigidBody2D/3D based on game dimension)
|
|
- Movement and physics handling (2D or 3D physics)
|
|
- Animation system integration (AnimationPlayer, AnimationTree)
|
|
- Input processing and state management
|
|
- Camera system (Camera2D for 2D, Camera3D for 3D with appropriate controls)
|
|
|
|
- id: game-mechanics
|
|
title: Core Game Mechanics
|
|
instruction: |
|
|
For each major game mechanic identified in the GDD:
|
|
- System design and node structure
|
|
- Data flow and state management
|
|
- Integration with other systems
|
|
- Performance considerations
|
|
|
|
- id: ui-system
|
|
title: User Interface System
|
|
instruction: |
|
|
Design the UI architecture:
|
|
- UI scene organization and layering
|
|
- Theme and styling approach
|
|
- Menu system and navigation
|
|
- HUD and in-game UI elements
|
|
|
|
- id: data-management
|
|
title: Data Management and Resources
|
|
instruction: Design data architecture for game content and state
|
|
sections:
|
|
- id: resource-system
|
|
title: Resource System
|
|
instruction: |
|
|
Design custom Resource classes for game data:
|
|
- Game configuration data (difficulty, settings)
|
|
- Level data and progression
|
|
- Character/enemy statistics
|
|
- Item and inventory data
|
|
|
|
- id: save-system
|
|
title: Save System
|
|
instruction: |
|
|
Design the save/load architecture:
|
|
- Save data structure and format
|
|
- Save file location and naming
|
|
- Versioning for save compatibility
|
|
- Backup and recovery strategies
|
|
|
|
- id: performance-optimization
|
|
title: Performance Optimization Strategy
|
|
instruction: Plan for performance from the architecture level
|
|
sections:
|
|
- id: rendering-optimization
|
|
title: Rendering and Graphics Optimization
|
|
instruction: |
|
|
Design for optimal rendering performance:
|
|
- Texture management and compression
|
|
- Sprite batching and draw call optimization
|
|
- Particle system usage and limits
|
|
- Camera and viewport optimization
|
|
|
|
- id: memory-management
|
|
title: Memory Management
|
|
instruction: |
|
|
Plan memory usage and optimization:
|
|
- Object pooling for frequently created objects
|
|
- Resource loading and unloading strategies
|
|
- Garbage collection optimization
|
|
- Memory profiling and monitoring
|
|
|
|
- id: cpu-optimization
|
|
title: CPU Optimization
|
|
instruction: |
|
|
Design for CPU performance:
|
|
- Process scheduling (_process vs _physics_process)
|
|
- Signal vs polling patterns
|
|
- Multithreading considerations
|
|
- Performance profiling integration
|
|
|
|
- id: platform-specific
|
|
title: Platform-Specific Considerations
|
|
instruction: Address platform-specific requirements and optimizations
|
|
sections:
|
|
- id: mobile-optimization
|
|
title: Mobile Platform Optimization
|
|
instruction: |
|
|
If targeting mobile platforms:
|
|
- Touch input handling and UI scaling
|
|
- Battery life optimization
|
|
- Performance scaling for different devices
|
|
- App lifecycle management (pause/resume)
|
|
|
|
- id: web-deployment
|
|
title: Web Platform Considerations
|
|
instruction: |
|
|
If targeting web deployment:
|
|
- File size optimization and streaming
|
|
- Browser compatibility considerations
|
|
- Input handling for web browsers
|
|
- Loading screen and progress indicators
|
|
|
|
- id: testing-architecture
|
|
title: Testing and Quality Assurance
|
|
instruction: Plan testing strategy and tooling
|
|
sections:
|
|
- id: automated-testing
|
|
title: Automated Testing Strategy
|
|
instruction: |
|
|
Design testing approach:
|
|
- Unit testing with GUT framework (GDScript) or GoDotTest (C#)
|
|
- Integration testing for game systems using builtin testing (GDScript) or GodotTestDriver (C#)
|
|
- Performance testing and benchmarking
|
|
- Automated build and testing pipeline
|
|
|
|
- id: debugging-tools
|
|
title: Debugging and Development Tools
|
|
instruction: |
|
|
Plan development and debugging support:
|
|
- Debug UI and console commands
|
|
- Performance monitoring and profiling
|
|
- Logging and error reporting
|
|
- Development mode features
|
|
|
|
- id: deployment-architecture
|
|
title: Deployment and Distribution
|
|
instruction: Plan build and deployment strategy
|
|
sections:
|
|
- id: build-pipeline
|
|
title: Build Pipeline
|
|
instruction: |
|
|
Design the build and export process:
|
|
- Export templates and configurations
|
|
- Asset optimization pipeline
|
|
- Platform-specific build settings
|
|
- Version management and tagging
|
|
|
|
- id: distribution-strategy
|
|
title: Distribution Strategy
|
|
instruction: |
|
|
Plan distribution approach:
|
|
- Target distribution platforms
|
|
- Update and patching strategy
|
|
- Analytics and telemetry integration
|
|
- User feedback collection systems
|
|
|
|
- id: development-standards
|
|
title: Development Standards and Guidelines
|
|
instruction: Establish coding and development standards
|
|
sections:
|
|
- id: coding-standards
|
|
title: C# and GDScript Coding Standards
|
|
instruction: |
|
|
Establish coding conventions:
|
|
- Naming conventions (snake_case for variables/functions, PascalCase for classes)
|
|
- Code organization and structure
|
|
- Comment and documentation standards
|
|
- Error handling patterns
|
|
|
|
- id: scene-standards
|
|
title: Scene Organization Standards
|
|
instruction: |
|
|
Define scene creation standards:
|
|
- Node naming conventions
|
|
- Scene composition patterns
|
|
- Signal connection standards
|
|
- Resource usage guidelines
|
|
|
|
- id: risk-assessment
|
|
title: Risk Assessment and Mitigation
|
|
instruction: Identify and plan for potential technical risks
|
|
sections:
|
|
- id: technical-risks
|
|
title: Technical Risk Analysis
|
|
instruction: |
|
|
Identify potential risks:
|
|
- Performance bottlenecks and scalability limits
|
|
- Platform compatibility issues
|
|
- Third-party dependency risks
|
|
- Team skill gaps and learning curves
|
|
|
|
- id: mitigation-strategies
|
|
title: Risk Mitigation Strategies
|
|
instruction: |
|
|
Plan mitigation approaches:
|
|
- Prototype critical systems early
|
|
- Performance testing milestones
|
|
- Fallback plans for complex features
|
|
- Knowledge sharing and documentation
|
|
|
|
- id: implementation-roadmap
|
|
title: Implementation Roadmap
|
|
instruction: Create development phases and priorities
|
|
sections:
|
|
- id: development-phases
|
|
title: Development Phase Planning
|
|
instruction: |
|
|
Break down implementation into phases:
|
|
- Phase 1: Core systems and foundation
|
|
- Phase 2: Gameplay mechanics implementation
|
|
- Phase 3: Content creation and level building
|
|
- Phase 4: Polish, optimization, and testing
|
|
|
|
- id: story-breakdown
|
|
title: Story Breakdown Guidance
|
|
instruction: |
|
|
Provide guidance for breaking this architecture into implementation stories:
|
|
- Recommended story size and scope
|
|
- Dependencies between architectural components
|
|
- Testing requirements for each story
|
|
- Integration points and validation criteria |