Godot Game Dev expansion pack for BMAD (#532)
* Godot Game Dev expansion pack for BMAD * Workflow changes * Workflow changes * Fixing config.yaml, editing README.md to indicate correct workflow * Fixing references to config.yaml, adding missing QA review to game-dev agent * More game story creation fixes * More game story creation fixes * Adding built web agent file * - Adding ability for QA agent to have preloaded context files similar to Dev agent. - Fixing stray Unity references in game-architecture-tmpl.yaml --------- Co-authored-by: Brian <bmadcode@gmail.com>
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
template:
|
||||
id: brainstorming-output-template-v2
|
||||
name: Brainstorming Session Results
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: docs/brainstorming-session-results.md
|
||||
title: "Brainstorming Session Results"
|
||||
|
||||
workflow:
|
||||
mode: non-interactive
|
||||
|
||||
sections:
|
||||
- id: header
|
||||
content: |
|
||||
**Session Date:** {{date}}
|
||||
**Facilitator:** {{agent_role}} {{agent_name}}
|
||||
**Participant:** {{user_name}}
|
||||
|
||||
- id: executive-summary
|
||||
title: Executive Summary
|
||||
sections:
|
||||
- id: summary-details
|
||||
template: |
|
||||
**Topic:** {{session_topic}}
|
||||
|
||||
**Session Goals:** {{stated_goals}}
|
||||
|
||||
**Techniques Used:** {{techniques_list}}
|
||||
|
||||
**Total Ideas Generated:** {{total_ideas}}
|
||||
- id: key-themes
|
||||
title: "Key Themes Identified:"
|
||||
type: bullet-list
|
||||
template: "- {{theme}}"
|
||||
|
||||
- id: technique-sessions
|
||||
title: Technique Sessions
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: technique
|
||||
title: "{{technique_name}} - {{duration}}"
|
||||
sections:
|
||||
- id: description
|
||||
template: "**Description:** {{technique_description}}"
|
||||
- id: ideas-generated
|
||||
title: "Ideas Generated:"
|
||||
type: numbered-list
|
||||
template: "{{idea}}"
|
||||
- id: insights
|
||||
title: "Insights Discovered:"
|
||||
type: bullet-list
|
||||
template: "- {{insight}}"
|
||||
- id: connections
|
||||
title: "Notable Connections:"
|
||||
type: bullet-list
|
||||
template: "- {{connection}}"
|
||||
|
||||
- id: idea-categorization
|
||||
title: Idea Categorization
|
||||
sections:
|
||||
- id: immediate-opportunities
|
||||
title: Immediate Opportunities
|
||||
content: "*Ideas ready to implement now*"
|
||||
repeatable: true
|
||||
type: numbered-list
|
||||
template: |
|
||||
**{{idea_name}}**
|
||||
- Description: {{description}}
|
||||
- Why immediate: {{rationale}}
|
||||
- Resources needed: {{requirements}}
|
||||
- id: future-innovations
|
||||
title: Future Innovations
|
||||
content: "*Ideas requiring development/research*"
|
||||
repeatable: true
|
||||
type: numbered-list
|
||||
template: |
|
||||
**{{idea_name}}**
|
||||
- Description: {{description}}
|
||||
- Development needed: {{development_needed}}
|
||||
- Timeline estimate: {{timeline}}
|
||||
- id: moonshots
|
||||
title: Moonshots
|
||||
content: "*Ambitious, transformative concepts*"
|
||||
repeatable: true
|
||||
type: numbered-list
|
||||
template: |
|
||||
**{{idea_name}}**
|
||||
- Description: {{description}}
|
||||
- Transformative potential: {{potential}}
|
||||
- Challenges to overcome: {{challenges}}
|
||||
- id: insights-learnings
|
||||
title: Insights & Learnings
|
||||
content: "*Key realizations from the session*"
|
||||
type: bullet-list
|
||||
template: "- {{insight}}: {{description_and_implications}}"
|
||||
|
||||
- id: action-planning
|
||||
title: Action Planning
|
||||
sections:
|
||||
- id: top-priorities
|
||||
title: Top 3 Priority Ideas
|
||||
sections:
|
||||
- id: priority-1
|
||||
title: "#1 Priority: {{idea_name}}"
|
||||
template: |
|
||||
- Rationale: {{rationale}}
|
||||
- Next steps: {{next_steps}}
|
||||
- Resources needed: {{resources}}
|
||||
- Timeline: {{timeline}}
|
||||
- id: priority-2
|
||||
title: "#2 Priority: {{idea_name}}"
|
||||
template: |
|
||||
- Rationale: {{rationale}}
|
||||
- Next steps: {{next_steps}}
|
||||
- Resources needed: {{resources}}
|
||||
- Timeline: {{timeline}}
|
||||
- id: priority-3
|
||||
title: "#3 Priority: {{idea_name}}"
|
||||
template: |
|
||||
- Rationale: {{rationale}}
|
||||
- Next steps: {{next_steps}}
|
||||
- Resources needed: {{resources}}
|
||||
- Timeline: {{timeline}}
|
||||
|
||||
- id: reflection-followup
|
||||
title: Reflection & Follow-up
|
||||
sections:
|
||||
- id: what-worked
|
||||
title: What Worked Well
|
||||
type: bullet-list
|
||||
template: "- {{aspect}}"
|
||||
- id: areas-exploration
|
||||
title: Areas for Further Exploration
|
||||
type: bullet-list
|
||||
template: "- {{area}}: {{reason}}"
|
||||
- id: recommended-techniques
|
||||
title: Recommended Follow-up Techniques
|
||||
type: bullet-list
|
||||
template: "- {{technique}}: {{reason}}"
|
||||
- id: questions-emerged
|
||||
title: Questions That Emerged
|
||||
type: bullet-list
|
||||
template: "- {{question}}"
|
||||
- id: next-session
|
||||
title: Next Session Planning
|
||||
template: |
|
||||
- **Suggested topics:** {{followup_topics}}
|
||||
- **Recommended timeframe:** {{timeframe}}
|
||||
- **Preparation needed:** {{preparation}}
|
||||
|
||||
- id: footer
|
||||
content: |
|
||||
---
|
||||
|
||||
*Session facilitated using the BMAD-METHOD brainstorming framework*
|
||||
@@ -0,0 +1,281 @@
|
||||
# <!-- Powered by BMAD™ Core -->
|
||||
template:
|
||||
id: brownfield-prd-template-v2
|
||||
name: Brownfield Enhancement PRD
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: docs/prd.md
|
||||
title: "{{project_name}} Brownfield Enhancement PRD"
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
elicitation: advanced-elicitation
|
||||
|
||||
sections:
|
||||
- id: intro-analysis
|
||||
title: Intro Project Analysis and Context
|
||||
instruction: |
|
||||
IMPORTANT - SCOPE ASSESSMENT REQUIRED:
|
||||
|
||||
This PRD is for SIGNIFICANT enhancements to existing projects that require comprehensive planning and multiple stories. Before proceeding:
|
||||
|
||||
1. **Assess Enhancement Complexity**: If this is a simple feature addition or bug fix that could be completed in 1-2 focused development sessions, STOP and recommend: "For simpler changes, consider using the brownfield-create-epic or brownfield-create-story task with the Product Owner instead. This full PRD process is designed for substantial enhancements that require architectural planning and multiple coordinated stories."
|
||||
|
||||
2. **Project Context**: Determine if we're working in an IDE with the project already loaded or if the user needs to provide project information. If project files are available, analyze existing documentation in the docs folder. If insufficient documentation exists, recommend running the document-project task first.
|
||||
|
||||
3. **Deep Assessment Requirement**: You MUST thoroughly analyze the existing project structure, patterns, and constraints before making ANY suggestions. Every recommendation must be grounded in actual project analysis, not assumptions.
|
||||
|
||||
Gather comprehensive information about the existing project. This section must be completed before proceeding with requirements.
|
||||
|
||||
CRITICAL: Throughout this analysis, explicitly confirm your understanding with the user. For every assumption you make about the existing project, ask: "Based on my analysis, I understand that [assumption]. Is this correct?"
|
||||
|
||||
Do not proceed with any recommendations until the user has validated your understanding of the existing system.
|
||||
sections:
|
||||
- id: existing-project-overview
|
||||
title: Existing Project Overview
|
||||
instruction: Check if document-project analysis was already performed. If yes, reference that output instead of re-analyzing.
|
||||
sections:
|
||||
- id: analysis-source
|
||||
title: Analysis Source
|
||||
instruction: |
|
||||
Indicate one of the following:
|
||||
- Document-project output available at: {{path}}
|
||||
- IDE-based fresh analysis
|
||||
- User-provided information
|
||||
- id: current-state
|
||||
title: Current Project State
|
||||
instruction: |
|
||||
- If document-project output exists: Extract summary from "High Level Architecture" and "Technical Summary" sections
|
||||
- Otherwise: Brief description of what the project currently does and its primary purpose
|
||||
- id: documentation-analysis
|
||||
title: Available Documentation Analysis
|
||||
instruction: |
|
||||
If document-project was run:
|
||||
- Note: "Document-project analysis available - using existing technical documentation"
|
||||
- List key documents created by document-project
|
||||
- Skip the missing documentation check below
|
||||
|
||||
Otherwise, check for existing documentation:
|
||||
sections:
|
||||
- id: available-docs
|
||||
title: Available Documentation
|
||||
type: checklist
|
||||
items:
|
||||
- Tech Stack Documentation [[LLM: If from document-project, check ✓]]
|
||||
- Source Tree/Architecture [[LLM: If from document-project, check ✓]]
|
||||
- Coding Standards [[LLM: If from document-project, may be partial]]
|
||||
- API Documentation [[LLM: If from document-project, check ✓]]
|
||||
- External API Documentation [[LLM: If from document-project, check ✓]]
|
||||
- UX/UI Guidelines [[LLM: May not be in document-project]]
|
||||
- Technical Debt Documentation [[LLM: If from document-project, check ✓]]
|
||||
- "Other: {{other_docs}}"
|
||||
instruction: |
|
||||
- If document-project was already run: "Using existing project analysis from document-project output."
|
||||
- If critical documentation is missing and no document-project: "I recommend running the document-project task first..."
|
||||
- id: enhancement-scope
|
||||
title: Enhancement Scope Definition
|
||||
instruction: Work with user to clearly define what type of enhancement this is. This is critical for scoping and approach.
|
||||
sections:
|
||||
- id: enhancement-type
|
||||
title: Enhancement Type
|
||||
type: checklist
|
||||
instruction: Determine with user which applies
|
||||
items:
|
||||
- New Feature Addition
|
||||
- Major Feature Modification
|
||||
- Integration with New Systems
|
||||
- Performance/Scalability Improvements
|
||||
- UI/UX Overhaul
|
||||
- Technology Stack Upgrade
|
||||
- Bug Fix and Stability Improvements
|
||||
- "Other: {{other_type}}"
|
||||
- id: enhancement-description
|
||||
title: Enhancement Description
|
||||
instruction: 2-3 sentences describing what the user wants to add or change
|
||||
- id: impact-assessment
|
||||
title: Impact Assessment
|
||||
type: checklist
|
||||
instruction: Assess the scope of impact on existing codebase
|
||||
items:
|
||||
- Minimal Impact (isolated additions)
|
||||
- Moderate Impact (some existing code changes)
|
||||
- Significant Impact (substantial existing code changes)
|
||||
- Major Impact (architectural changes required)
|
||||
- id: goals-context
|
||||
title: Goals and Background Context
|
||||
sections:
|
||||
- id: goals
|
||||
title: Goals
|
||||
type: bullet-list
|
||||
instruction: Bullet list of 1-line desired outcomes this enhancement will deliver if successful
|
||||
- id: background
|
||||
title: Background Context
|
||||
type: paragraphs
|
||||
instruction: 1-2 short paragraphs explaining why this enhancement is needed, what problem it solves, and how it fits with the existing project
|
||||
- id: changelog
|
||||
title: Change Log
|
||||
type: table
|
||||
columns: [Change, Date, Version, Description, Author]
|
||||
|
||||
- id: requirements
|
||||
title: Requirements
|
||||
instruction: |
|
||||
Draft functional and non-functional requirements based on your validated understanding of the existing project. Before presenting requirements, confirm: "These requirements are based on my understanding of your existing system. Please review carefully and confirm they align with your project's reality."
|
||||
elicit: true
|
||||
sections:
|
||||
- id: functional
|
||||
title: Functional
|
||||
type: numbered-list
|
||||
prefix: FR
|
||||
instruction: Each Requirement will be a bullet markdown with identifier starting with FR
|
||||
examples:
|
||||
- "FR1: The existing Todo List will integrate with the new AI duplicate detection service without breaking current functionality."
|
||||
- id: non-functional
|
||||
title: Non Functional
|
||||
type: numbered-list
|
||||
prefix: NFR
|
||||
instruction: Each Requirement will be a bullet markdown with identifier starting with NFR. Include constraints from existing system
|
||||
examples:
|
||||
- "NFR1: Enhancement must maintain existing performance characteristics and not exceed current memory usage by more than 20%."
|
||||
- id: compatibility
|
||||
title: Compatibility Requirements
|
||||
instruction: Critical for brownfield - what must remain compatible
|
||||
type: numbered-list
|
||||
prefix: CR
|
||||
template: "{{requirement}}: {{description}}"
|
||||
items:
|
||||
- id: cr1
|
||||
template: "CR1: {{existing_api_compatibility}}"
|
||||
- id: cr2
|
||||
template: "CR2: {{database_schema_compatibility}}"
|
||||
- id: cr3
|
||||
template: "CR3: {{ui_ux_consistency}}"
|
||||
- id: cr4
|
||||
template: "CR4: {{integration_compatibility}}"
|
||||
|
||||
- id: ui-enhancement-goals
|
||||
title: User Interface Enhancement Goals
|
||||
condition: Enhancement includes UI changes
|
||||
instruction: For UI changes, capture how they will integrate with existing UI patterns and design systems
|
||||
sections:
|
||||
- id: existing-ui-integration
|
||||
title: Integration with Existing UI
|
||||
instruction: Describe how new UI elements will fit with existing design patterns, style guides, and component libraries
|
||||
- id: modified-screens
|
||||
title: Modified/New Screens and Views
|
||||
instruction: List only the screens/views that will be modified or added
|
||||
- id: ui-consistency
|
||||
title: UI Consistency Requirements
|
||||
instruction: Specific requirements for maintaining visual and interaction consistency with existing application
|
||||
|
||||
- id: technical-constraints
|
||||
title: Technical Constraints and Integration Requirements
|
||||
instruction: This section replaces separate architecture documentation. Gather detailed technical constraints from existing project analysis.
|
||||
sections:
|
||||
- id: existing-tech-stack
|
||||
title: Existing Technology Stack
|
||||
instruction: |
|
||||
If document-project output available:
|
||||
- Extract from "Actual Tech Stack" table in High Level Architecture section
|
||||
- Include version numbers and any noted constraints
|
||||
|
||||
Otherwise, document the current technology stack:
|
||||
template: |
|
||||
**Languages**: {{languages}}
|
||||
**Frameworks**: {{frameworks}}
|
||||
**Database**: {{database}}
|
||||
**Infrastructure**: {{infrastructure}}
|
||||
**External Dependencies**: {{external_dependencies}}
|
||||
- id: integration-approach
|
||||
title: Integration Approach
|
||||
instruction: Define how the enhancement will integrate with existing architecture
|
||||
template: |
|
||||
**Database Integration Strategy**: {{database_integration}}
|
||||
**API Integration Strategy**: {{api_integration}}
|
||||
**Frontend Integration Strategy**: {{frontend_integration}}
|
||||
**Testing Integration Strategy**: {{testing_integration}}
|
||||
- id: code-organization
|
||||
title: Code Organization and Standards
|
||||
instruction: Based on existing project analysis, define how new code will fit existing patterns
|
||||
template: |
|
||||
**File Structure Approach**: {{file_structure}}
|
||||
**Naming Conventions**: {{naming_conventions}}
|
||||
**Coding Standards**: {{coding_standards}}
|
||||
**Documentation Standards**: {{documentation_standards}}
|
||||
- id: deployment-operations
|
||||
title: Deployment and Operations
|
||||
instruction: How the enhancement fits existing deployment pipeline
|
||||
template: |
|
||||
**Build Process Integration**: {{build_integration}}
|
||||
**Deployment Strategy**: {{deployment_strategy}}
|
||||
**Monitoring and Logging**: {{monitoring_logging}}
|
||||
**Configuration Management**: {{config_management}}
|
||||
- id: risk-assessment
|
||||
title: Risk Assessment and Mitigation
|
||||
instruction: |
|
||||
If document-project output available:
|
||||
- Reference "Technical Debt and Known Issues" section
|
||||
- Include "Workarounds and Gotchas" that might impact enhancement
|
||||
- Note any identified constraints from "Critical Technical Debt"
|
||||
|
||||
Build risk assessment incorporating existing known issues:
|
||||
template: |
|
||||
**Technical Risks**: {{technical_risks}}
|
||||
**Integration Risks**: {{integration_risks}}
|
||||
**Deployment Risks**: {{deployment_risks}}
|
||||
**Mitigation Strategies**: {{mitigation_strategies}}
|
||||
|
||||
- id: epic-structure
|
||||
title: Epic and Story Structure
|
||||
instruction: |
|
||||
For brownfield projects, favor a single comprehensive epic unless the user is clearly requesting multiple unrelated enhancements. Before presenting the epic structure, confirm: "Based on my analysis of your existing project, I believe this enhancement should be structured as [single epic/multiple epics] because [rationale based on actual project analysis]. Does this align with your understanding of the work required?"
|
||||
elicit: true
|
||||
sections:
|
||||
- id: epic-approach
|
||||
title: Epic Approach
|
||||
instruction: Explain the rationale for epic structure - typically single epic for brownfield unless multiple unrelated features
|
||||
template: "**Epic Structure Decision**: {{epic_decision}} with rationale"
|
||||
|
||||
- id: epic-details
|
||||
title: "Epic 1: {{enhancement_title}}"
|
||||
instruction: |
|
||||
Comprehensive epic that delivers the brownfield enhancement while maintaining existing functionality
|
||||
|
||||
CRITICAL STORY SEQUENCING FOR BROWNFIELD:
|
||||
- Stories must ensure existing functionality remains intact
|
||||
- Each story should include verification that existing features still work
|
||||
- Stories should be sequenced to minimize risk to existing system
|
||||
- Include rollback considerations for each story
|
||||
- Focus on incremental integration rather than big-bang changes
|
||||
- Size stories for AI agent execution in existing codebase context
|
||||
- MANDATORY: Present the complete story sequence and ask: "This story sequence is designed to minimize risk to your existing system. Does this order make sense given your project's architecture and constraints?"
|
||||
- Stories must be logically sequential with clear dependencies identified
|
||||
- Each story must deliver value while maintaining system integrity
|
||||
template: |
|
||||
**Epic Goal**: {{epic_goal}}
|
||||
|
||||
**Integration Requirements**: {{integration_requirements}}
|
||||
sections:
|
||||
- id: story
|
||||
title: "Story 1.{{story_number}} {{story_title}}"
|
||||
repeatable: true
|
||||
template: |
|
||||
As a {{user_type}},
|
||||
I want {{action}},
|
||||
so that {{benefit}}.
|
||||
sections:
|
||||
- id: acceptance-criteria
|
||||
title: Acceptance Criteria
|
||||
type: numbered-list
|
||||
instruction: Define criteria that include both new functionality and existing system integrity
|
||||
item_template: "{{criterion_number}}: {{criteria}}"
|
||||
- id: integration-verification
|
||||
title: Integration Verification
|
||||
instruction: Specific verification steps to ensure existing functionality remains intact
|
||||
type: numbered-list
|
||||
prefix: IV
|
||||
items:
|
||||
- template: "IV1: {{existing_functionality_verification}}"
|
||||
- template: "IV2: {{integration_point_verification}}"
|
||||
- template: "IV3: {{performance_impact_verification}}"
|
||||
@@ -0,0 +1,306 @@
|
||||
template:
|
||||
id: competitor-analysis-template-v2
|
||||
name: Competitive Analysis Report
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: docs/competitor-analysis.md
|
||||
title: "Competitive Analysis Report: {{project_product_name}}"
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
elicitation: advanced-elicitation
|
||||
custom_elicitation:
|
||||
title: "Competitive Analysis Elicitation Actions"
|
||||
options:
|
||||
- "Deep dive on a specific competitor's strategy"
|
||||
- "Analyze competitive dynamics in a specific segment"
|
||||
- "War game competitive responses to your moves"
|
||||
- "Explore partnership vs. competition scenarios"
|
||||
- "Stress test differentiation claims"
|
||||
- "Analyze disruption potential (yours or theirs)"
|
||||
- "Compare to competition in adjacent markets"
|
||||
- "Generate win/loss analysis insights"
|
||||
- "If only we had known about [competitor X's plan]..."
|
||||
- "Proceed to next section"
|
||||
|
||||
sections:
|
||||
- id: executive-summary
|
||||
title: Executive Summary
|
||||
instruction: Provide high-level competitive insights, main threats and opportunities, and recommended strategic actions. Write this section LAST after completing all analysis.
|
||||
|
||||
- id: analysis-scope
|
||||
title: Analysis Scope & Methodology
|
||||
instruction: This template guides comprehensive competitor analysis. Start by understanding the user's competitive intelligence needs and strategic objectives. Help them identify and prioritize competitors before diving into detailed analysis.
|
||||
sections:
|
||||
- id: analysis-purpose
|
||||
title: Analysis Purpose
|
||||
instruction: |
|
||||
Define the primary purpose:
|
||||
- New market entry assessment
|
||||
- Product positioning strategy
|
||||
- Feature gap analysis
|
||||
- Pricing strategy development
|
||||
- Partnership/acquisition targets
|
||||
- Competitive threat assessment
|
||||
- id: competitor-categories
|
||||
title: Competitor Categories Analyzed
|
||||
instruction: |
|
||||
List categories included:
|
||||
- Direct Competitors: Same product/service, same target market
|
||||
- Indirect Competitors: Different product, same need/problem
|
||||
- Potential Competitors: Could enter market easily
|
||||
- Substitute Products: Alternative solutions
|
||||
- Aspirational Competitors: Best-in-class examples
|
||||
- id: research-methodology
|
||||
title: Research Methodology
|
||||
instruction: |
|
||||
Describe approach:
|
||||
- Information sources used
|
||||
- Analysis timeframe
|
||||
- Confidence levels
|
||||
- Limitations
|
||||
|
||||
- id: competitive-landscape
|
||||
title: Competitive Landscape Overview
|
||||
sections:
|
||||
- id: market-structure
|
||||
title: Market Structure
|
||||
instruction: |
|
||||
Describe the competitive environment:
|
||||
- Number of active competitors
|
||||
- Market concentration (fragmented/consolidated)
|
||||
- Competitive dynamics
|
||||
- Recent market entries/exits
|
||||
- id: prioritization-matrix
|
||||
title: Competitor Prioritization Matrix
|
||||
instruction: |
|
||||
Help categorize competitors by market share and strategic threat level
|
||||
|
||||
Create a 2x2 matrix:
|
||||
- Priority 1 (Core Competitors): High Market Share + High Threat
|
||||
- Priority 2 (Emerging Threats): Low Market Share + High Threat
|
||||
- Priority 3 (Established Players): High Market Share + Low Threat
|
||||
- Priority 4 (Monitor Only): Low Market Share + Low Threat
|
||||
|
||||
- id: competitor-profiles
|
||||
title: Individual Competitor Profiles
|
||||
instruction: Create detailed profiles for each Priority 1 and Priority 2 competitor. For Priority 3 and 4, create condensed profiles.
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: competitor
|
||||
title: "{{competitor_name}} - Priority {{priority_level}}"
|
||||
sections:
|
||||
- id: company-overview
|
||||
title: Company Overview
|
||||
template: |
|
||||
- **Founded:** {{year_founders}}
|
||||
- **Headquarters:** {{location}}
|
||||
- **Company Size:** {{employees_revenue}}
|
||||
- **Funding:** {{total_raised_investors}}
|
||||
- **Leadership:** {{key_executives}}
|
||||
- id: business-model
|
||||
title: Business Model & Strategy
|
||||
template: |
|
||||
- **Revenue Model:** {{revenue_model}}
|
||||
- **Target Market:** {{customer_segments}}
|
||||
- **Value Proposition:** {{value_promise}}
|
||||
- **Go-to-Market Strategy:** {{gtm_approach}}
|
||||
- **Strategic Focus:** {{current_priorities}}
|
||||
- id: product-analysis
|
||||
title: Product/Service Analysis
|
||||
template: |
|
||||
- **Core Offerings:** {{main_products}}
|
||||
- **Key Features:** {{standout_capabilities}}
|
||||
- **User Experience:** {{ux_assessment}}
|
||||
- **Technology Stack:** {{tech_stack}}
|
||||
- **Pricing:** {{pricing_model}}
|
||||
- id: strengths-weaknesses
|
||||
title: Strengths & Weaknesses
|
||||
sections:
|
||||
- id: strengths
|
||||
title: Strengths
|
||||
type: bullet-list
|
||||
template: "- {{strength}}"
|
||||
- id: weaknesses
|
||||
title: Weaknesses
|
||||
type: bullet-list
|
||||
template: "- {{weakness}}"
|
||||
- id: market-position
|
||||
title: Market Position & Performance
|
||||
template: |
|
||||
- **Market Share:** {{market_share_estimate}}
|
||||
- **Customer Base:** {{customer_size_notables}}
|
||||
- **Growth Trajectory:** {{growth_trend}}
|
||||
- **Recent Developments:** {{key_news}}
|
||||
|
||||
- id: comparative-analysis
|
||||
title: Comparative Analysis
|
||||
sections:
|
||||
- id: feature-comparison
|
||||
title: Feature Comparison Matrix
|
||||
instruction: Create a detailed comparison table of key features across competitors
|
||||
type: table
|
||||
columns:
|
||||
[
|
||||
"Feature Category",
|
||||
"{{your_company}}",
|
||||
"{{competitor_1}}",
|
||||
"{{competitor_2}}",
|
||||
"{{competitor_3}}",
|
||||
]
|
||||
rows:
|
||||
- category: "Core Functionality"
|
||||
items:
|
||||
- ["Feature A", "{{status}}", "{{status}}", "{{status}}", "{{status}}"]
|
||||
- ["Feature B", "{{status}}", "{{status}}", "{{status}}", "{{status}}"]
|
||||
- category: "User Experience"
|
||||
items:
|
||||
- ["Mobile App", "{{rating}}", "{{rating}}", "{{rating}}", "{{rating}}"]
|
||||
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
|
||||
- category: "Integration & Ecosystem"
|
||||
items:
|
||||
- [
|
||||
"API Availability",
|
||||
"{{availability}}",
|
||||
"{{availability}}",
|
||||
"{{availability}}",
|
||||
"{{availability}}",
|
||||
]
|
||||
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
|
||||
- category: "Pricing & Plans"
|
||||
items:
|
||||
- ["Starting Price", "{{price}}", "{{price}}", "{{price}}", "{{price}}"]
|
||||
- ["Free Tier", "{{yes_no}}", "{{yes_no}}", "{{yes_no}}", "{{yes_no}}"]
|
||||
- id: swot-comparison
|
||||
title: SWOT Comparison
|
||||
instruction: Create SWOT analysis for your solution vs. top competitors
|
||||
sections:
|
||||
- id: your-solution
|
||||
title: Your Solution
|
||||
template: |
|
||||
- **Strengths:** {{strengths}}
|
||||
- **Weaknesses:** {{weaknesses}}
|
||||
- **Opportunities:** {{opportunities}}
|
||||
- **Threats:** {{threats}}
|
||||
- id: vs-competitor
|
||||
title: "vs. {{main_competitor}}"
|
||||
template: |
|
||||
- **Competitive Advantages:** {{your_advantages}}
|
||||
- **Competitive Disadvantages:** {{their_advantages}}
|
||||
- **Differentiation Opportunities:** {{differentiation}}
|
||||
- id: positioning-map
|
||||
title: Positioning Map
|
||||
instruction: |
|
||||
Describe competitor positions on key dimensions
|
||||
|
||||
Create a positioning description using 2 key dimensions relevant to the market, such as:
|
||||
- Price vs. Features
|
||||
- Ease of Use vs. Power
|
||||
- Specialization vs. Breadth
|
||||
- Self-Serve vs. High-Touch
|
||||
|
||||
- id: strategic-analysis
|
||||
title: Strategic Analysis
|
||||
sections:
|
||||
- id: competitive-advantages
|
||||
title: Competitive Advantages Assessment
|
||||
sections:
|
||||
- id: sustainable-advantages
|
||||
title: Sustainable Advantages
|
||||
instruction: |
|
||||
Identify moats and defensible positions:
|
||||
- Network effects
|
||||
- Switching costs
|
||||
- Brand strength
|
||||
- Technology barriers
|
||||
- Regulatory advantages
|
||||
- id: vulnerable-points
|
||||
title: Vulnerable Points
|
||||
instruction: |
|
||||
Where competitors could be challenged:
|
||||
- Weak customer segments
|
||||
- Missing features
|
||||
- Poor user experience
|
||||
- High prices
|
||||
- Limited geographic presence
|
||||
- id: blue-ocean
|
||||
title: Blue Ocean Opportunities
|
||||
instruction: |
|
||||
Identify uncontested market spaces
|
||||
|
||||
List opportunities to create new market space:
|
||||
- Underserved segments
|
||||
- Unaddressed use cases
|
||||
- New business models
|
||||
- Geographic expansion
|
||||
- Different value propositions
|
||||
|
||||
- id: strategic-recommendations
|
||||
title: Strategic Recommendations
|
||||
sections:
|
||||
- id: differentiation-strategy
|
||||
title: Differentiation Strategy
|
||||
instruction: |
|
||||
How to position against competitors:
|
||||
- Unique value propositions to emphasize
|
||||
- Features to prioritize
|
||||
- Segments to target
|
||||
- Messaging and positioning
|
||||
- id: competitive-response
|
||||
title: Competitive Response Planning
|
||||
sections:
|
||||
- id: offensive-strategies
|
||||
title: Offensive Strategies
|
||||
instruction: |
|
||||
How to gain market share:
|
||||
- Target competitor weaknesses
|
||||
- Win competitive deals
|
||||
- Capture their customers
|
||||
- id: defensive-strategies
|
||||
title: Defensive Strategies
|
||||
instruction: |
|
||||
How to protect your position:
|
||||
- Strengthen vulnerable areas
|
||||
- Build switching costs
|
||||
- Deepen customer relationships
|
||||
- id: partnership-ecosystem
|
||||
title: Partnership & Ecosystem Strategy
|
||||
instruction: |
|
||||
Potential collaboration opportunities:
|
||||
- Complementary players
|
||||
- Channel partners
|
||||
- Technology integrations
|
||||
- Strategic alliances
|
||||
|
||||
- id: monitoring-plan
|
||||
title: Monitoring & Intelligence Plan
|
||||
sections:
|
||||
- id: key-competitors
|
||||
title: Key Competitors to Track
|
||||
instruction: Priority list with rationale
|
||||
- id: monitoring-metrics
|
||||
title: Monitoring Metrics
|
||||
instruction: |
|
||||
What to track:
|
||||
- Product updates
|
||||
- Pricing changes
|
||||
- Customer wins/losses
|
||||
- Funding/M&A activity
|
||||
- Market messaging
|
||||
- id: intelligence-sources
|
||||
title: Intelligence Sources
|
||||
instruction: |
|
||||
Where to gather ongoing intelligence:
|
||||
- Company websites/blogs
|
||||
- Customer reviews
|
||||
- Industry reports
|
||||
- Social media
|
||||
- Patent filings
|
||||
- id: update-cadence
|
||||
title: Update Cadence
|
||||
instruction: |
|
||||
Recommended review schedule:
|
||||
- Weekly: {{weekly_items}}
|
||||
- Monthly: {{monthly_items}}
|
||||
- Quarterly: {{quarterly_analysis}}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,356 @@
|
||||
template:
|
||||
id: game-brief-template-v3
|
||||
name: Game Brief
|
||||
version: 3.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: docs/game-brief.md
|
||||
title: "{{game_title}} Game Brief"
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
|
||||
sections:
|
||||
- id: initial-setup
|
||||
instruction: |
|
||||
This template creates a comprehensive game brief that serves as the foundation for all subsequent game development work. The brief should capture the essential vision, scope, and requirements needed to create a detailed Game Design Document.
|
||||
|
||||
This brief is typically created early in the ideation process, often after brainstorming sessions, to crystallize the game concept before moving into detailed design.
|
||||
|
||||
- id: game-vision
|
||||
title: Game Vision
|
||||
instruction: Establish the core vision and identity of the game. Present each subsection and gather user feedback before proceeding.
|
||||
sections:
|
||||
- id: core-concept
|
||||
title: Core Concept
|
||||
instruction: 2-3 sentences that clearly capture what the game is and why it will be compelling to players
|
||||
- id: elevator-pitch
|
||||
title: Elevator Pitch
|
||||
instruction: Single sentence that captures the essence of the game in a memorable way
|
||||
template: |
|
||||
**"{{game_description_in_one_sentence}}"**
|
||||
- id: vision-statement
|
||||
title: Vision Statement
|
||||
instruction: Inspirational statement about what the game will achieve for players and why it matters
|
||||
|
||||
- id: target-market
|
||||
title: Target Market
|
||||
instruction: Define the audience and market context. Apply `tasks#advanced-elicitation` after presenting this section.
|
||||
sections:
|
||||
- id: primary-audience
|
||||
title: Primary Audience
|
||||
template: |
|
||||
**Demographics:** {{age_range}}, {{platform_preference}}, {{gaming_experience}}
|
||||
**Psychographics:** {{interests}}, {{motivations}}, {{play_patterns}}
|
||||
**Gaming Preferences:** {{preferred_genres}}, {{session_length}}, {{difficulty_preference}}
|
||||
- id: secondary-audiences
|
||||
title: Secondary Audiences
|
||||
template: |
|
||||
**Audience 2:** {{description}}
|
||||
**Audience 3:** {{description}}
|
||||
- id: market-context
|
||||
title: Market Context
|
||||
template: |
|
||||
**Genre:** {{primary_genre}} / {{secondary_genre}}
|
||||
**Platform Strategy:** {{platform_focus}}
|
||||
**Competitive Positioning:** {{differentiation_statement}}
|
||||
|
||||
- id: game-fundamentals
|
||||
title: Game Fundamentals
|
||||
instruction: Define the core gameplay elements. Each subsection should be specific enough to guide detailed design work.
|
||||
sections:
|
||||
- id: core-gameplay-pillars
|
||||
title: Core Gameplay Pillars
|
||||
instruction: 3-5 fundamental principles that guide all design decisions
|
||||
type: numbered-list
|
||||
template: |
|
||||
**{{pillar_name}}** - {{description_and_rationale}}
|
||||
- id: primary-mechanics
|
||||
title: Primary Mechanics
|
||||
instruction: List the 3-5 most important gameplay mechanics that define the player experience
|
||||
repeatable: true
|
||||
template: |
|
||||
**Core Mechanic: {{mechanic_name}}**
|
||||
|
||||
- **Description:** {{how_it_works}}
|
||||
- **Player Value:** {{why_its_fun}}
|
||||
- **Implementation Scope:** {{complexity_estimate}}
|
||||
- id: player-experience-goals
|
||||
title: Player Experience Goals
|
||||
instruction: Define what emotions and experiences the game should create for players
|
||||
template: |
|
||||
**Primary Experience:** {{main_emotional_goal}}
|
||||
**Secondary Experiences:** {{supporting_emotional_goals}}
|
||||
**Engagement Pattern:** {{how_player_engagement_evolves}}
|
||||
|
||||
- id: scope-constraints
|
||||
title: Scope and Constraints
|
||||
instruction: Define the boundaries and limitations that will shape development. Apply `tasks#advanced-elicitation` to clarify any constraints.
|
||||
sections:
|
||||
- id: project-scope
|
||||
title: Project Scope
|
||||
template: |
|
||||
**Game Length:** {{estimated_content_hours}}
|
||||
**Content Volume:** {{levels_areas_content_amount}}
|
||||
**Feature Complexity:** {{simple|moderate|complex}}
|
||||
**Scope Comparison:** "Similar to {{reference_game}} but with {{key_differences}}"
|
||||
- id: technical-constraints
|
||||
title: Technical Constraints
|
||||
template: |
|
||||
**Platform Requirements:**
|
||||
|
||||
- Primary: {{platform_1}} - {{requirements}}
|
||||
- Secondary: {{platform_2}} - {{requirements}}
|
||||
|
||||
**Technical Specifications:**
|
||||
|
||||
- Engine: Godot and C#/GDScript
|
||||
- Performance Target: {{fps_target}} FPS on {{target_device}}
|
||||
- Memory Budget: <{{memory_limit}}MB
|
||||
- Load Time Goal: <{{load_time_seconds}}s
|
||||
- id: resource-constraints
|
||||
title: Resource Constraints
|
||||
template: |
|
||||
**Team Size:** {{team_composition}}
|
||||
**Timeline:** {{development_duration}}
|
||||
**Budget Considerations:** {{budget_constraints_or_targets}}
|
||||
**Asset Requirements:** {{art_audio_content_needs}}
|
||||
- id: business-constraints
|
||||
title: Business Constraints
|
||||
condition: has_business_goals
|
||||
template: |
|
||||
**Monetization Model:** {{free|premium|freemium|subscription}}
|
||||
**Revenue Goals:** {{revenue_targets_if_applicable}}
|
||||
**Platform Requirements:** {{store_certification_needs}}
|
||||
**Launch Timeline:** {{target_launch_window}}
|
||||
|
||||
- id: reference-framework
|
||||
title: Reference Framework
|
||||
instruction: Provide context through references and competitive analysis
|
||||
sections:
|
||||
- id: inspiration-games
|
||||
title: Inspiration Games
|
||||
sections:
|
||||
- id: primary-references
|
||||
title: Primary References
|
||||
type: numbered-list
|
||||
repeatable: true
|
||||
template: |
|
||||
**{{reference_game}}** - {{what_we_learn_from_it}}
|
||||
- id: competitive-analysis
|
||||
title: Competitive Analysis
|
||||
template: |
|
||||
**Direct Competitors:**
|
||||
|
||||
- {{competitor_1}}: {{strengths_and_weaknesses}}
|
||||
- {{competitor_2}}: {{strengths_and_weaknesses}}
|
||||
|
||||
**Differentiation Strategy:**
|
||||
{{how_we_differ_and_why_thats_valuable}}
|
||||
- id: market-opportunity
|
||||
title: Market Opportunity
|
||||
template: |
|
||||
**Market Gap:** {{underserved_need_or_opportunity}}
|
||||
**Timing Factors:** {{why_now_is_the_right_time}}
|
||||
**Success Metrics:** {{how_well_measure_success}}
|
||||
|
||||
- id: content-framework
|
||||
title: Content Framework
|
||||
instruction: Outline the content structure and progression without full design detail
|
||||
sections:
|
||||
- id: game-structure
|
||||
title: Game Structure
|
||||
template: |
|
||||
**Overall Flow:** {{linear|hub_world|open_world|procedural}}
|
||||
**Progression Model:** {{how_players_advance}}
|
||||
**Session Structure:** {{typical_play_session_flow}}
|
||||
- id: content-categories
|
||||
title: Content Categories
|
||||
template: |
|
||||
**Core Content:**
|
||||
|
||||
- {{content_type_1}}: {{quantity_and_description}}
|
||||
- {{content_type_2}}: {{quantity_and_description}}
|
||||
|
||||
**Optional Content:**
|
||||
|
||||
- {{optional_content_type}}: {{quantity_and_description}}
|
||||
|
||||
**Replay Elements:**
|
||||
|
||||
- {{replayability_features}}
|
||||
- id: difficulty-accessibility
|
||||
title: Difficulty and Accessibility
|
||||
template: |
|
||||
**Difficulty Approach:** {{how_challenge_is_structured}}
|
||||
**Accessibility Features:** {{planned_accessibility_support}}
|
||||
**Skill Requirements:** {{what_skills_players_need}}
|
||||
|
||||
- id: art-audio-direction
|
||||
title: Art and Audio Direction
|
||||
instruction: Establish the aesthetic vision that will guide asset creation
|
||||
sections:
|
||||
- id: visual-style
|
||||
title: Visual Style
|
||||
template: |
|
||||
**Art Direction:** {{style_description}}
|
||||
**Reference Materials:** {{visual_inspiration_sources}}
|
||||
**Technical Approach:** {{2d_style_pixel_vector_etc}}
|
||||
**Color Strategy:** {{color_palette_mood}}
|
||||
- id: audio-direction
|
||||
title: Audio Direction
|
||||
template: |
|
||||
**Music Style:** {{genre_and_mood}}
|
||||
**Sound Design:** {{audio_personality}}
|
||||
**Implementation Needs:** {{technical_audio_requirements}}
|
||||
- id: ui-ux-approach
|
||||
title: UI/UX Approach
|
||||
template: |
|
||||
**Interface Style:** {{ui_aesthetic}}
|
||||
**User Experience Goals:** {{ux_priorities}}
|
||||
**Platform Adaptations:** {{cross_platform_considerations}}
|
||||
|
||||
- id: risk-assessment
|
||||
title: Risk Assessment
|
||||
instruction: Identify potential challenges and mitigation strategies
|
||||
sections:
|
||||
- id: technical-risks
|
||||
title: Technical Risks
|
||||
type: table
|
||||
template: |
|
||||
| Risk | Probability | Impact | Mitigation Strategy |
|
||||
| ---- | ----------- | ------ | ------------------- |
|
||||
| {{technical_risk}} | {{high|med|low}} | {{high|med|low}} | {{mitigation_approach}} |
|
||||
- id: design-risks
|
||||
title: Design Risks
|
||||
type: table
|
||||
template: |
|
||||
| Risk | Probability | Impact | Mitigation Strategy |
|
||||
| ---- | ----------- | ------ | ------------------- |
|
||||
| {{design_risk}} | {{high|med|low}} | {{high|med|low}} | {{mitigation_approach}} |
|
||||
- id: market-risks
|
||||
title: Market Risks
|
||||
type: table
|
||||
template: |
|
||||
| Risk | Probability | Impact | Mitigation Strategy |
|
||||
| ---- | ----------- | ------ | ------------------- |
|
||||
| {{market_risk}} | {{high|med|low}} | {{high|med|low}} | {{mitigation_approach}} |
|
||||
|
||||
- id: success-criteria
|
||||
title: Success Criteria
|
||||
instruction: Define measurable goals for the project
|
||||
sections:
|
||||
- id: player-experience-metrics
|
||||
title: Player Experience Metrics
|
||||
template: |
|
||||
**Engagement Goals:**
|
||||
|
||||
- Tutorial completion rate: >{{percentage}}%
|
||||
- Average session length: {{duration}} minutes
|
||||
- Player retention: D1 {{d1}}%, D7 {{d7}}%, D30 {{d30}}%
|
||||
|
||||
**Quality Benchmarks:**
|
||||
|
||||
- Player satisfaction: >{{rating}}/10
|
||||
- Completion rate: >{{percentage}}%
|
||||
- Technical performance: {{fps_target}} FPS consistent
|
||||
- id: development-metrics
|
||||
title: Development Metrics
|
||||
template: |
|
||||
**Technical Targets:**
|
||||
|
||||
- Zero critical bugs at launch
|
||||
- Performance targets met on all platforms
|
||||
- Load times under {{seconds}}s
|
||||
|
||||
**Process Goals:**
|
||||
|
||||
- Development timeline adherence
|
||||
- Feature scope completion
|
||||
- Quality assurance standards
|
||||
- id: business-metrics
|
||||
title: Business Metrics
|
||||
condition: has_business_goals
|
||||
template: |
|
||||
**Commercial Goals:**
|
||||
|
||||
- {{revenue_target}} in first {{time_period}}
|
||||
- {{user_acquisition_target}} players in first {{time_period}}
|
||||
- {{retention_target}} monthly active users
|
||||
|
||||
- id: next-steps
|
||||
title: Next Steps
|
||||
instruction: Define immediate actions following the brief completion
|
||||
sections:
|
||||
- id: immediate-actions
|
||||
title: Immediate Actions
|
||||
type: numbered-list
|
||||
template: |
|
||||
**{{action_item}}** - {{details_and_timeline}}
|
||||
- id: development-roadmap
|
||||
title: Development Roadmap
|
||||
sections:
|
||||
- id: phase-1-preproduction
|
||||
title: "Phase 1: Pre-Production ({{duration}})"
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Detailed Game Design Document creation
|
||||
- Technical architecture planning
|
||||
- Art style exploration and pipeline setup
|
||||
- id: phase-2-prototype
|
||||
title: "Phase 2: Prototype ({{duration}})"
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Core mechanic implementation
|
||||
- Technical proof of concept
|
||||
- Initial playtesting and iteration
|
||||
- id: phase-3-production
|
||||
title: "Phase 3: Production ({{duration}})"
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Full feature development
|
||||
- Content creation and integration
|
||||
- Comprehensive testing and optimization
|
||||
- id: documentation-pipeline
|
||||
title: Documentation Pipeline
|
||||
sections:
|
||||
- id: required-documents
|
||||
title: Required Documents
|
||||
type: numbered-list
|
||||
template: |
|
||||
Game Design Document (GDD) - {{target_completion}}
|
||||
Technical Architecture Document - {{target_completion}}
|
||||
Art Style Guide - {{target_completion}}
|
||||
Production Plan - {{target_completion}}
|
||||
- id: validation-plan
|
||||
title: Validation Plan
|
||||
template: |
|
||||
**Concept Testing:**
|
||||
|
||||
- {{validation_method_1}} - {{timeline}}
|
||||
- {{validation_method_2}} - {{timeline}}
|
||||
|
||||
**Prototype Testing:**
|
||||
|
||||
- {{testing_approach}} - {{timeline}}
|
||||
- {{feedback_collection_method}} - {{timeline}}
|
||||
|
||||
- id: appendices
|
||||
title: Appendices
|
||||
sections:
|
||||
- id: research-materials
|
||||
title: Research Materials
|
||||
instruction: Include any supporting research, competitive analysis, or market data that informed the brief
|
||||
- id: brainstorming-notes
|
||||
title: Brainstorming Session Notes
|
||||
instruction: Reference any brainstorming sessions that led to this brief
|
||||
- id: stakeholder-input
|
||||
title: Stakeholder Input
|
||||
instruction: Include key input from stakeholders that shaped the vision
|
||||
- id: change-log
|
||||
title: Change Log
|
||||
instruction: Track document versions and changes
|
||||
type: table
|
||||
template: |
|
||||
| Date | Version | Description | Author |
|
||||
| :--- | :------ | :---------- | :----- |
|
||||
@@ -0,0 +1,724 @@
|
||||
template:
|
||||
id: game-design-doc-template-v3
|
||||
name: Game Design Document (GDD)
|
||||
version: 4.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: docs/game-design-document.md
|
||||
title: "{{game_title}} Game Design Document (GDD)"
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
elicitation: advanced-elicitation
|
||||
|
||||
sections:
|
||||
- id: goals-context
|
||||
title: Goals and Background Context
|
||||
instruction: |
|
||||
Ask if Project Brief document is available. If NO Project Brief exists, STRONGLY recommend creating one first using project-brief-tmpl (it provides essential foundation: problem statement, target users, success metrics, MVP scope, constraints). If user insists on GDD without brief, gather this information during Goals section. If Project Brief exists, review and use it to populate Goals (bullet list of desired game development outcomes) and Background Context (1-2 paragraphs on what game concept this will deliver and why) so we can determine what is and is not in scope for the GDD. Include Change Log table for version tracking.
|
||||
sections:
|
||||
- id: goals
|
||||
title: Goals
|
||||
type: bullet-list
|
||||
instruction: Bullet list of 1 line desired outcomes the GDD will deliver if successful - game development and player experience goals
|
||||
examples:
|
||||
- Create an engaging 2D platformer that teaches players basic programming concepts
|
||||
- Deliver a polished mobile game that runs smoothly on low-end Android devices
|
||||
- Build a foundation for future expansion packs and content updates
|
||||
- id: background
|
||||
title: Background Context
|
||||
type: paragraphs
|
||||
instruction: 1-2 short paragraphs summarizing the game concept background, target audience needs, market opportunity, and what problem this game solves
|
||||
- id: changelog
|
||||
title: Change Log
|
||||
type: table
|
||||
columns: [Date, Version, Description, Author]
|
||||
instruction: Track document versions and changes
|
||||
|
||||
- id: executive-summary
|
||||
title: Executive Summary
|
||||
instruction: Create a compelling overview that captures the essence of the game. Present this section first and get user feedback before proceeding.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: core-concept
|
||||
title: Core Concept
|
||||
instruction: 2-3 sentences that clearly describe what the game is and why players will love it
|
||||
examples:
|
||||
- A fast-paced 2D platformer where players manipulate gravity to solve puzzles and defeat enemies in a hand-drawn world.
|
||||
- An educational puzzle game that teaches coding concepts through visual programming blocks in a fantasy adventure setting.
|
||||
- id: target-audience
|
||||
title: Target Audience
|
||||
instruction: Define the primary and secondary audience with demographics and gaming preferences
|
||||
template: |
|
||||
**Primary:** {{age_range}}, {{player_type}}, {{platform_preference}}
|
||||
**Secondary:** {{secondary_audience}}
|
||||
examples:
|
||||
- "Primary: Ages 8-16, casual mobile gamers, prefer short play sessions"
|
||||
- "Secondary: Adult puzzle enthusiasts, educators looking for teaching tools"
|
||||
- id: platform-technical
|
||||
title: Platform & Technical Requirements
|
||||
instruction: Based on the technical preferences or user input, define the target platforms and Godot-specific requirements
|
||||
template: |
|
||||
**Primary Platform:** {{platform}}
|
||||
**Engine:** Godot {{godot_version}} with GDScript & C#
|
||||
**Language Strategy:** {{gdscript_for}} (GDScript), {{csharp_for}} (C#)
|
||||
**Performance Target:** 60+ FPS minimum on {{minimum_device}}
|
||||
**Screen Support:** {{resolution_range}}
|
||||
**Export Templates:** {{export_targets}}
|
||||
**TDD Approach:** GUT for GDScript, GoDotTest for C#
|
||||
examples:
|
||||
- "Primary Platform: Mobile (iOS/Android), Engine: Godot 4.3, Performance: 60+ FPS on iPhone 8/Galaxy S8"
|
||||
- "Language Strategy: Game logic/UI (GDScript), Physics/AI systems (C#)"
|
||||
- id: unique-selling-points
|
||||
title: Unique Selling Points
|
||||
instruction: List 3-5 key features that differentiate this game from competitors
|
||||
type: numbered-list
|
||||
examples:
|
||||
- Innovative gravity manipulation mechanic that affects both player and environment
|
||||
- Seamless integration of educational content without compromising fun gameplay
|
||||
- Adaptive difficulty system that learns from player behavior
|
||||
|
||||
- id: core-gameplay
|
||||
title: Core Gameplay
|
||||
instruction: This section defines the fundamental game mechanics. After presenting each subsection, apply advanced elicitation to ensure completeness and gather additional details.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: game-pillars
|
||||
title: Game Pillars
|
||||
instruction: Define 3-5 core pillars that guide all design decisions. These should be specific and actionable for Godot development.
|
||||
type: numbered-list
|
||||
template: |
|
||||
**{{pillar_name}}** - {{description}}
|
||||
examples:
|
||||
- Performance First - Maintain 60+ FPS across all target platforms
|
||||
- Intuitive Controls - All interactions learnable within 30 seconds using InputMap
|
||||
- Immediate Feedback - Every player action provides signal response within 50ms
|
||||
- Progressive Challenge - Difficulty increases through mechanic complexity, not unfair timing
|
||||
- id: core-gameplay-loop
|
||||
title: Core Gameplay Loop
|
||||
instruction: Define the 30-60 second loop that players will repeat. Be specific about timing and player actions for Godot implementation.
|
||||
template: |
|
||||
**Primary Loop ({{duration}} seconds):**
|
||||
|
||||
1. {{action_1}} ({{time_1}}s) - {{godot_node}}
|
||||
2. {{action_2}} ({{time_2}}s) - {{godot_node}}
|
||||
3. {{action_3}} ({{time_3}}s) - {{godot_node}}
|
||||
4. {{reward_feedback}} ({{time_4}}s) - {{godot_node}}
|
||||
|
||||
**Performance Target:** Loop maintains 60+ FPS
|
||||
examples:
|
||||
- Observe environment (2s) - Camera2D node, Identify puzzle elements (3s) - Area2D detection
|
||||
- id: win-loss-conditions
|
||||
title: Win/Loss Conditions
|
||||
instruction: Clearly define success and failure states with Godot-specific implementation notes
|
||||
template: |
|
||||
**Victory Conditions:**
|
||||
|
||||
- {{win_condition_1}} - Godot Signal: {{signal_name}}
|
||||
- {{win_condition_2}} - Godot Signal: {{signal_name}}
|
||||
|
||||
**Failure States:**
|
||||
|
||||
- {{loss_condition_1}} - Trigger: {{godot_trigger}}
|
||||
- {{loss_condition_2}} - Trigger: {{godot_trigger}}
|
||||
examples:
|
||||
- "Victory: Player reaches exit portal - Signal: area_entered from Area2D"
|
||||
- "Failure: Health reaches zero - Trigger: health_depleted signal"
|
||||
|
||||
- id: game-mechanics
|
||||
title: Game Mechanics
|
||||
instruction: Detail each major mechanic that will need Godot implementation. Each mechanic should be specific enough for developers to create nodes, scripts (GDScript/C#), and scenes with TDD approach.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: primary-mechanics
|
||||
title: Primary Mechanics
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: mechanic
|
||||
title: "{{mechanic_name}}"
|
||||
template: |
|
||||
**Description:** {{detailed_description}}
|
||||
|
||||
**Player Input:** {{input_method}} - InputMap Action: {{input_action}}
|
||||
|
||||
**System Response:** {{game_response}}
|
||||
|
||||
**Godot Implementation Notes:**
|
||||
|
||||
- **Nodes Needed:** {{node_list}}
|
||||
- **Language Choice:** {{gdscript_or_csharp}} - {{language_rationale}}
|
||||
- **Physics Requirements:** {{physics_2d_3d_setup}}
|
||||
- **Animation:** {{animation_player_states}}
|
||||
- **Performance:** Must maintain 60+ FPS
|
||||
- **Object Pooling:** {{pooling_requirements}}
|
||||
|
||||
**Dependencies:** {{other_mechanics_needed}}
|
||||
|
||||
**Script Architecture:**
|
||||
|
||||
- {{script_name}}.gd/.cs - {{responsibility}}
|
||||
- {{autoload_script}}.gd/.cs - {{singleton_role}}
|
||||
|
||||
**TDD Requirements:**
|
||||
- GUT tests for GDScript components
|
||||
- GoDotTest for C# components
|
||||
examples:
|
||||
- "Nodes Needed: RigidBody2D, CollisionShape2D, PlayerController node"
|
||||
- "Language: GDScript for game logic, C# for physics calculations"
|
||||
- "Physics Requirements: Physics material for friction, gravity scale 3"
|
||||
- id: controls
|
||||
title: Controls
|
||||
instruction: Define all input methods for different platforms using Godot's InputMap
|
||||
type: table
|
||||
template: |
|
||||
| Action | Desktop | Mobile | Gamepad | InputMap Action |
|
||||
| ------ | ------- | ------ | ------- | --------------- |
|
||||
| {{action}} | {{key}} | {{gesture}} | {{button}} | {{action_name}} |
|
||||
examples:
|
||||
- Move Left, A/Left Arrow, Touch Left, Left Stick, move_left
|
||||
|
||||
- id: progression-balance
|
||||
title: Progression & Balance
|
||||
instruction: Define how players advance and how difficulty scales. This section should provide clear parameters for Godot implementation with Resources and language strategy.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: player-progression
|
||||
title: Player Progression
|
||||
template: |
|
||||
**Progression Type:** {{linear|branching|metroidvania}}
|
||||
|
||||
**Key Milestones:**
|
||||
|
||||
1. **{{milestone_1}}** - {{unlock_description}} - Godot: {{resource_update}}
|
||||
2. **{{milestone_2}}** - {{unlock_description}} - Godot: {{resource_update}}
|
||||
3. **{{milestone_3}}** - {{unlock_description}} - Godot: {{resource_update}}
|
||||
|
||||
**Save Data Structure:**
|
||||
|
||||
```csharp
|
||||
[System.Serializable]
|
||||
public class PlayerProgress
|
||||
{
|
||||
{{progress_fields}}
|
||||
}
|
||||
```
|
||||
examples:
|
||||
- public int currentLevel, public bool[] unlockedAbilities, public float totalPlayTime
|
||||
- id: difficulty-curve
|
||||
title: Difficulty Curve
|
||||
instruction: Provide specific parameters for balancing that can be implemented as Godot Resources with performance focus
|
||||
template: |
|
||||
**Tutorial Phase:** {{duration}} - {{difficulty_description}}
|
||||
- Godot Config: {{resource_values}} - Language: {{gdscript_or_csharp}}
|
||||
|
||||
**Early Game:** {{duration}} - {{difficulty_description}}
|
||||
- Godot Config: {{resource_values}} - Must maintain 60+ FPS
|
||||
|
||||
**Mid Game:** {{duration}} - {{difficulty_description}}
|
||||
- Godot Config: {{resource_values}} - Object pooling required
|
||||
|
||||
**Late Game:** {{duration}} - {{difficulty_description}}
|
||||
- Godot Config: {{resource_values}} - C# optimization for performance
|
||||
examples:
|
||||
- "enemy speed: 2.0f, jump height: 4.5f, obstacle density: 0.3f"
|
||||
- id: economy-resources
|
||||
title: Economy & Resources
|
||||
condition: has_economy
|
||||
instruction: Define any in-game currencies, resources, or collectibles with Godot implementation details
|
||||
type: table
|
||||
template: |
|
||||
| Resource | Earn Rate | Spend Rate | Purpose | Cap | Godot Resource |
|
||||
| -------- | --------- | ---------- | ------- | --- | --------------- |
|
||||
| {{resource}} | {{rate}} | {{rate}} | {{use}} | {{max}} | {{resource_name}} |
|
||||
examples:
|
||||
- Coins, 1-3 per enemy, 10-50 per upgrade, Buy abilities, 9999, CurrencyData
|
||||
|
||||
- id: level-design-framework
|
||||
title: Level Design Framework
|
||||
instruction: Provide guidelines for level creation that developers can use to create Godot scenes and nodes. Focus on modular design, scene inheritance, and performance optimization.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: level-types
|
||||
title: Level Types
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: level-type
|
||||
title: "{{level_type_name}}"
|
||||
template: |
|
||||
**Purpose:** {{gameplay_purpose}}
|
||||
**Target Duration:** {{target_time}}
|
||||
**Key Elements:** {{required_mechanics}}
|
||||
**Difficulty Rating:** {{relative_difficulty}}
|
||||
|
||||
**Godot Scene Structure:**
|
||||
|
||||
- **Environment:** {{tilemap_setup}}
|
||||
- **Gameplay Objects:** {{node_list}}
|
||||
- **Lighting:** {{lighting_setup}}
|
||||
- **Audio:** {{audio_sources}}
|
||||
|
||||
**Level Flow Template:**
|
||||
|
||||
- **Introduction:** {{intro_description}} - Area: {{godot_area_bounds}}
|
||||
- **Challenge:** {{main_challenge}} - Mechanics: {{active_components}}
|
||||
- **Resolution:** {{completion_requirement}} - Trigger: {{completion_trigger}}
|
||||
|
||||
**Reusable Scenes:**
|
||||
|
||||
- {{scene_name}}.tscn - {{scene_purpose}}
|
||||
examples:
|
||||
- "Environment: TileMap node with Platform tileset, Lighting: DirectionalLight2D + PointLight2D nodes"
|
||||
- id: level-progression
|
||||
title: Level Progression
|
||||
template: |
|
||||
**World Structure:** {{linear|hub|open}}
|
||||
**Total Levels:** {{number}}
|
||||
**Unlock Pattern:** {{progression_method}}
|
||||
**Scene Management:** {{godot_scene_loading}}
|
||||
|
||||
**Godot Scene Organization:**
|
||||
|
||||
- Scene Naming: {{naming_convention}}
|
||||
- Resource Preloading: {{preload_groups}}
|
||||
- Loading Screens: {{loading_implementation}}
|
||||
examples:
|
||||
- "Scene Naming: world_{x}_level_{y}_name.tscn, Preload Groups: levels_world1.tres, world_environments.tres"
|
||||
|
||||
- id: technical-specifications
|
||||
title: Technical Specifications
|
||||
instruction: Define Godot-specific technical requirements that will guide architecture and implementation decisions. Reference Godot documentation and best practices.
|
||||
elicit: true
|
||||
choices:
|
||||
renderer: [Forward+, Mobile, Compatibility]
|
||||
language_primary: [GDScript, C#, Both]
|
||||
physics: [2D Only, 3D Only, Hybrid]
|
||||
sections:
|
||||
- id: godot-configuration
|
||||
title: Godot Project Configuration
|
||||
template: |
|
||||
**Godot Version:** {{godot_version}} (4.3+ recommended)
|
||||
**Renderer:** {{Forward+|Mobile|Compatibility}}
|
||||
**Primary Language:** {{GDScript|C#|Both}}
|
||||
**Physics:** {{2D Only|3D Only|Hybrid}}
|
||||
**Export Templates:** {{platforms}}
|
||||
**.NET Version:** {{.NET 6.0|.NET 7.0}} (if using C#)
|
||||
|
||||
**Language Strategy:**
|
||||
- GDScript: {{gdscript_usage}} (with static typing mandatory)
|
||||
- C#: {{csharp_usage}} (for performance-critical systems)
|
||||
|
||||
**Project Settings:**
|
||||
|
||||
- Rendering Method: {{rendering_method}}
|
||||
- MSAA: {{msaa_setting}}
|
||||
- Physics Settings: {{physics_config}}
|
||||
- Object Pooling: Required for spawned entities
|
||||
examples:
|
||||
- GDScript for game logic and UI (10-20% performance gain with static typing)
|
||||
- C# for physics simulation and procedural generation (no LINQ in hot paths)
|
||||
- "Color Space: Linear, Quality: Mobile/Desktop presets, Gravity: -20"
|
||||
- id: performance-requirements
|
||||
title: Performance Requirements
|
||||
template: |
|
||||
**Frame Rate:** {{fps_target}} FPS (minimum {{min_fps}} on low-end devices)
|
||||
**Memory Usage:** <{{memory_limit}}MB heap, <{{texture_memory}}MB textures
|
||||
**Load Times:** <{{load_time}}s initial, <{{level_load}}s between levels
|
||||
**Battery Usage:** Optimized for mobile devices - {{battery_target}} hours gameplay
|
||||
|
||||
**Godot Profiler Targets:**
|
||||
|
||||
- Frame Time: <16.67ms (60+ FPS mandatory)
|
||||
- CPU Time: <{{cpu_time}}ms
|
||||
- GPU Time: <{{gpu_time}}ms
|
||||
- Physics Frame: <{{physics_time}}ms
|
||||
- Draw Calls: <{{draw_calls}} per frame
|
||||
- Object Pools: Active for all spawned entities
|
||||
examples:
|
||||
- "60 FPS (minimum 30), CPU: <16.67ms, GPU: <16.67ms, GC: <4KB, Draws: <50"
|
||||
- id: platform-specific
|
||||
title: Platform Specific Requirements
|
||||
template: |
|
||||
**Desktop:**
|
||||
|
||||
- Resolution: {{min_resolution}} - {{max_resolution}}
|
||||
- Input: Keyboard, Mouse, Gamepad ({{gamepad_support}})
|
||||
- Build Target: {{desktop_targets}}
|
||||
|
||||
**Mobile:**
|
||||
|
||||
- Resolution: {{mobile_min}} - {{mobile_max}}
|
||||
- Input: Touch, Accelerometer ({{sensor_support}})
|
||||
- OS: iOS {{ios_min}}+, Android {{android_min}}+ (API {{api_level}})
|
||||
- Device Requirements: {{device_specs}}
|
||||
|
||||
**Web (if applicable):**
|
||||
|
||||
- WebGL Version: {{webgl_version}}
|
||||
- Browser Support: {{browser_list}}
|
||||
- Compression: {{compression_format}}
|
||||
examples:
|
||||
- "Resolution: 1280x720 - 4K, Gamepad: Xbox/PlayStation controllers via Input System"
|
||||
- id: asset-requirements
|
||||
title: Asset Requirements
|
||||
instruction: Define asset specifications for Godot pipeline optimization with performance focus
|
||||
template: |
|
||||
**2D Art Assets:**
|
||||
|
||||
- Sprites: {{sprite_resolution}} at {{ppu}} PPU
|
||||
- Texture Format: {{texture_compression}}
|
||||
- Atlas Strategy: {{sprite_atlas_setup}}
|
||||
- Animation: {{animation_type}} at {{framerate}} FPS
|
||||
|
||||
**Audio Assets:**
|
||||
|
||||
- Music: {{audio_format}} at {{sample_rate}} Hz
|
||||
- SFX: {{sfx_format}} at {{sfx_sample_rate}} Hz
|
||||
- Compression: {{audio_compression}}
|
||||
- 3D Audio: {{spatial_audio}}
|
||||
|
||||
**UI Assets:**
|
||||
|
||||
- Canvas Resolution: {{ui_resolution}}
|
||||
- UI Scale Mode: {{scale_mode}}
|
||||
- Font: {{font_requirements}}
|
||||
- Icon Sizes: {{icon_specifications}}
|
||||
examples:
|
||||
- "Sprites: 32x32 to 256x256 at 16 PPU, Format: RGBA32 for quality/RGBA16 for performance"
|
||||
|
||||
- id: technical-architecture-requirements
|
||||
title: Technical Architecture Requirements
|
||||
instruction: Define high-level Godot architecture patterns and systems that the game must support. Focus on scalability, TDD, and 60+ FPS performance.
|
||||
elicit: true
|
||||
choices:
|
||||
architecture_pattern: [Node-Based, MVC, Component-Based, Signal-Driven]
|
||||
save_system: [ConfigFile, JSON, Binary, Cloud]
|
||||
audio_system: [Godot Audio, FMOD]
|
||||
sections:
|
||||
- id: code-architecture
|
||||
title: Code Architecture Pattern
|
||||
template: |
|
||||
**Architecture Pattern:** {{MVC|MVVM|ECS|Component-Based|Custom}}
|
||||
|
||||
**Core Systems Required:**
|
||||
|
||||
- **Scene Management:** {{scene_manager_approach}}
|
||||
- **State Management:** {{state_pattern_implementation}}
|
||||
- **Event System:** {{event_system_choice}}
|
||||
- **Object Pooling:** {{pooling_strategy}}
|
||||
- **Save/Load System:** {{save_system_approach}}
|
||||
|
||||
**Folder Structure:**
|
||||
|
||||
```
|
||||
Assets/
|
||||
├── _Project/
|
||||
│ ├── Scripts/
|
||||
│ │ ├── {{folder_structure}}
|
||||
│ ├── Scenes/
|
||||
│ ├── Scenes/
|
||||
│ └── {{additional_folders}}
|
||||
```
|
||||
|
||||
**Naming Conventions:**
|
||||
|
||||
- Scripts: {{script_naming}}
|
||||
- Scenes: {{scene_naming}}
|
||||
- Scenes: {{scene_naming}}
|
||||
examples:
|
||||
- "Architecture: Node-Based with Resource (.tres) data containers"
|
||||
- "Scripts: PascalCase (PlayerController.gd), snake_case (player_controller.gd), Scenes: player.tscn, level_01_forest.tscn"
|
||||
- id: godot-systems-integration
|
||||
title: Godot Systems Integration
|
||||
template: |
|
||||
**Required Godot Systems:**
|
||||
|
||||
- **Input System:** {{input_implementation}}
|
||||
- **Animation System:** {{animation_approach}}
|
||||
- **Physics Integration:** {{physics_usage}}
|
||||
- **Rendering Features:** {{rendering_requirements}}
|
||||
- **Asset Streaming:** {{asset_loading_strategy}}
|
||||
|
||||
**Third-Party Integrations:**
|
||||
|
||||
- {{integration_name}}: {{integration_purpose}}
|
||||
|
||||
**Performance Systems:**
|
||||
|
||||
- **Profiling Integration:** {{profiling_setup}}
|
||||
- **Memory Management:** {{memory_strategy}}
|
||||
- **Build Pipeline:** {{build_automation}}
|
||||
examples:
|
||||
- "Input System: Action Maps for Menu/Gameplay contexts with device switching"
|
||||
- "DOTween: Smooth UI transitions and gameplay animations"
|
||||
- id: data-management
|
||||
title: Data Management
|
||||
template: |
|
||||
**Save Data Architecture:**
|
||||
|
||||
- **Format:** {{PlayerPrefs|JSON|Binary|Cloud}}
|
||||
- **Structure:** {{save_data_organization}}
|
||||
- **Encryption:** {{security_approach}}
|
||||
- **Cloud Sync:** {{cloud_integration}}
|
||||
|
||||
**Configuration Data:**
|
||||
|
||||
- **Resources:** {{resource_usage}}
|
||||
- **Settings Management:** {{settings_system}}
|
||||
- **Localization:** {{localization_approach}}
|
||||
|
||||
**Runtime Data:**
|
||||
|
||||
- **Caching Strategy:** {{cache_implementation}}
|
||||
- **Memory Pools:** {{pooling_objects}}
|
||||
- **Asset References:** {{asset_reference_system}}
|
||||
examples:
|
||||
- "Save Data: JSON format with AES encryption, stored in persistent data path"
|
||||
- "Resources: Game settings (.tres), level configurations, character data with static typing"
|
||||
|
||||
- id: development-phases
|
||||
title: Development Phases & Epic Planning
|
||||
instruction: Break down the Godot development into phases that can be converted to agile epics. Each phase should deliver deployable functionality following TDD practices with 60+ FPS performance.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: phases-overview
|
||||
title: Phases Overview
|
||||
instruction: Present a high-level list of all phases for user approval. Each phase's design should deliver significant Godot functionality with TDD and performance validation.
|
||||
type: numbered-list
|
||||
examples:
|
||||
- "Phase 1: Godot Foundation & Core Systems: Project setup with TDD (GUT/GoDotTest), node architecture, InputMap configuration"
|
||||
- "Phase 2: Core Game Mechanics: Player controller (GDScript), physics systems (C# for performance), 60+ FPS validation"
|
||||
- "Phase 3: Level Systems & Content Pipeline: Scene loading, inheritance patterns, object pooling implementation"
|
||||
- "Phase 4: Polish & Platform Optimization: Performance profiling to 60+ FPS, export templates, platform deployment"
|
||||
- id: phase-1-foundation
|
||||
title: "Phase 1: Godot Foundation & Core Systems ({{duration}})"
|
||||
sections:
|
||||
- id: foundation-design
|
||||
title: "Design: Godot Project Foundation"
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Godot project setup with node hierarchy and resource organization
|
||||
- Core architecture implementation ({{architecture_pattern}}) with TDD setup
|
||||
- InputMap configuration for cross-platform input handling
|
||||
- Node-based scene management with signal system
|
||||
- GUT (GDScript) and GoDotTest (C#) test framework setup
|
||||
- Profiler integration for 60+ FPS validation
|
||||
- Export template configuration for target platforms
|
||||
examples:
|
||||
- "Input System: Configure PlayerInput component with Action Maps for movement and UI"
|
||||
- id: core-systems-design
|
||||
title: "Design: Essential Game Systems"
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Save/Load system using user:// path with {{save_format}} format
|
||||
- Audio bus system setup with {{audio_system}} integration
|
||||
- Signal system for decoupled node communication
|
||||
- Object pooling system for spawned entities (mandatory)
|
||||
- Control node UI framework with anchoring and themes
|
||||
- Settings and configuration management with Resources (.tres)
|
||||
- id: phase-2-gameplay
|
||||
title: "Phase 2: Core Gameplay Implementation ({{duration}})"
|
||||
sections:
|
||||
- id: gameplay-mechanics-design
|
||||
title: "Design: Primary Game Mechanics"
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Player controller with {{movement_type}} using GDScript (static typing)
|
||||
- {{primary_mechanic}} implementation with Godot physics (C# if performance-critical)
|
||||
- {{secondary_mechanic}} system with 60+ FPS maintained
|
||||
- Game state management (playing, paused, game over)
|
||||
- Collision detection with Area2D/3D and physics bodies
|
||||
- AnimationPlayer and AnimationTree integration with blend spaces
|
||||
- id: level-systems-design
|
||||
title: "Design: Level & Content Systems"
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Scene loading with transitions <3 seconds
|
||||
- Level progression with Resource-based unlock system
|
||||
- Scene inheritance and composition patterns
|
||||
- {{level_generation}} level creation with TDD tests
|
||||
- Collectibles with object pooling for performance
|
||||
- Victory/defeat conditions with signal emissions
|
||||
- id: phase-3-polish
|
||||
title: "Phase 3: Polish & Optimization ({{duration}})"
|
||||
sections:
|
||||
- id: performance-design
|
||||
title: "Design: Performance & Platform Optimization"
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Godot Profiler analysis to ensure 60+ FPS
|
||||
- Memory management and garbage collection optimization
|
||||
- Asset optimization (import settings, compression)
|
||||
- Platform-specific performance tuning for 60+ FPS
|
||||
- Export size optimization with stripping
|
||||
- Renderer settings for different device tiers
|
||||
- id: user-experience-design
|
||||
title: "Design: User Experience & Polish"
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Control node UI with responsive anchoring
|
||||
- Audio bus system with dynamic mixing
|
||||
- GPUParticles2D/3D with object pooling
|
||||
- Accessibility features with InputMap remapping
|
||||
- Tutorial flow with GUT test coverage
|
||||
- Cross-platform testing for 60+ FPS on all targets
|
||||
|
||||
- id: epic-list
|
||||
title: Epic List
|
||||
instruction: |
|
||||
Present a high-level list of all epics for user approval. Each epic should have a title and a short (1 sentence) goal statement. This allows the user to review the overall structure before diving into details.
|
||||
|
||||
CRITICAL: Epics MUST be logically sequential following agile best practices:
|
||||
|
||||
- Each epic should be focused on a single phase and it's design from the development-phases section and deliver a significant, end-to-end, fully deployable increment of testable functionality
|
||||
- Epic 1 must establish Phase 1: Godot Foundation & Core Systems (Project setup with TDD, node architecture, InputMap) unless we are adding new functionality to an existing app, while also delivering an initial piece of functionality with 60+ FPS performance!
|
||||
- Each subsequent epic builds upon previous epics' functionality delivering major blocks of functionality that provide tangible value to users or business when deployed
|
||||
- Not every project needs multiple epics, an epic needs to deliver value. For example, an API, component, or Resource completed can deliver value even if a scene or node is not complete and planned for a separate epic.
|
||||
- Err on the side of less epics, but let the user know your rationale and offer options for splitting them if it seems some are too large or focused on disparate things.
|
||||
- Cross Cutting Concerns should flow through epics and stories and not be final stories. For example, adding a logging framework as a last story of an epic, or at the end of a project as a final epic or story would be terrible as we would not have logging from the beginning.
|
||||
elicit: true
|
||||
examples:
|
||||
- "Epic 1: Godot Foundation & Core Systems: TDD setup (GUT/GoDotTest), node architecture, InputMap configuration"
|
||||
- "Epic 2: Core Game Mechanics: Player controller (GDScript), physics (C# if needed), 60+ FPS validation"
|
||||
- "Epic 3: Level Systems & Content Pipeline: Scene inheritance, resource preloading, object pooling"
|
||||
- "Epic 4: Polish & Platform Optimization: Performance profiling to 60+ FPS, export templates, deployment"
|
||||
|
||||
- id: epic-details
|
||||
title: Epic {{epic_number}} {{epic_title}}
|
||||
repeatable: true
|
||||
instruction: |
|
||||
After the epic list is approved, present each epic with all its stories and acceptance criteria as a complete review unit.
|
||||
|
||||
For each epic provide expanded goal (2-3 sentences describing the objective and value all the stories will achieve).
|
||||
|
||||
CRITICAL STORY SEQUENCING REQUIREMENTS:
|
||||
|
||||
- Stories within each epic MUST be logically sequential
|
||||
- Each story should be a "vertical slice" delivering complete functionality aside from early enabler stories for project foundation
|
||||
- No story should depend on work from a later story or epic
|
||||
- Identify and note any direct prerequisite stories
|
||||
- Focus on "what" and "why" not "how" (leave technical implementation to Architect) yet be precise enough to support a logical sequential order of operations from story to story.
|
||||
- Ensure each story delivers clear user or business value, try to avoid enablers and build them into stories that deliver value.
|
||||
- Size stories for AI agent execution: Each story must be completable by a single AI agent in one focused session without context overflow
|
||||
- Think "junior developer working for 2-4 hours" - stories must be small, focused, and self-contained
|
||||
- If a story seems complex, break it down further as long as it can deliver a vertical slice
|
||||
elicit: true
|
||||
template: "{{epic_goal}}"
|
||||
sections:
|
||||
- id: story
|
||||
title: Story {{epic_number}}.{{story_number}} {{story_title}}
|
||||
repeatable: true
|
||||
instruction: Provide a clear, concise description of what this story implements. Focus on the specific game feature or system being built. Reference the GDD section that defines this feature and reference the gamearchitecture section for additional implementation and integration specifics.
|
||||
template: "{{clear_description_of_what_needs_to_be_implemented}}"
|
||||
sections:
|
||||
- id: acceptance-criteria
|
||||
title: Acceptance Criteria
|
||||
instruction: Define specific, testable conditions that must be met for the story to be considered complete. Each criterion should be verifiable and directly related to gameplay functionality.
|
||||
sections:
|
||||
- id: functional-requirements
|
||||
title: Functional Requirements
|
||||
type: checklist
|
||||
items:
|
||||
- "{{specific_functional_requirement}}"
|
||||
- id: technical-requirements
|
||||
title: Technical Requirements
|
||||
type: checklist
|
||||
items:
|
||||
- Code follows GDScript/C# best practices with static typing
|
||||
- Maintains 60+ FPS on all target devices
|
||||
- No memory leaks, proper signal cleanup, object pooling active
|
||||
- "{{specific_technical_requirement}}"
|
||||
- id: game-design-requirements
|
||||
title: Game Design Requirements
|
||||
type: checklist
|
||||
items:
|
||||
- "{{gameplay_requirement_from_gdd}}"
|
||||
- "{{balance_requirement_if_applicable}}"
|
||||
- "{{player_experience_requirement}}"
|
||||
|
||||
- id: success-metrics
|
||||
title: Success Metrics & Quality Assurance
|
||||
instruction: Define measurable goals for the Godot game development project with specific targets that can be validated through Godot profiler and performance monitoring.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: technical-metrics
|
||||
title: Technical Performance Metrics
|
||||
type: bullet-list
|
||||
template: |
|
||||
- **Frame Rate:** Consistent {{fps_target}} FPS with <5% drops below {{min_fps}}
|
||||
- **Load Times:** Initial load <{{initial_load}}s, level transitions <{{level_load}}s
|
||||
- **Memory Usage:** Heap memory <{{heap_limit}}MB, texture memory <{{texture_limit}}MB
|
||||
- **Crash Rate:** <{{crash_threshold}}% across all supported platforms
|
||||
- **Build Size:** Final build <{{size_limit}}MB for mobile, <{{desktop_limit}}MB for desktop
|
||||
- **Battery Life:** Mobile gameplay sessions >{{battery_target}} hours on average device
|
||||
examples:
|
||||
- "Frame Rate: Consistent 60 FPS with <5% drops below 45 FPS on target hardware"
|
||||
- "Crash Rate: <0.5% across iOS/Android, <0.1% on desktop platforms"
|
||||
- id: gameplay-metrics
|
||||
title: Gameplay & User Engagement Metrics
|
||||
type: bullet-list
|
||||
template: |
|
||||
- **Tutorial Completion:** {{tutorial_rate}}% of players complete basic tutorial
|
||||
- **Level Progression:** {{progression_rate}}% reach level {{target_level}} within first session
|
||||
- **Session Duration:** Average session length {{session_target}} minutes
|
||||
- **Player Retention:** Day 1: {{d1_retention}}%, Day 7: {{d7_retention}}%, Day 30: {{d30_retention}}%
|
||||
- **Gameplay Completion:** {{completion_rate}}% complete main game content
|
||||
- **Control Responsiveness:** Input lag <{{input_lag}}ms on all platforms
|
||||
examples:
|
||||
- "Tutorial Completion: 85% of players complete movement and basic mechanics tutorial"
|
||||
- "Session Duration: Average 15-20 minutes per session for mobile, 30-45 minutes for desktop"
|
||||
- id: platform-specific-metrics
|
||||
title: Platform-Specific Quality Metrics
|
||||
type: table
|
||||
template: |
|
||||
| Platform | Frame Rate | Load Time | Memory | Build Size | Battery |
|
||||
| -------- | ---------- | --------- | ------ | ---------- | ------- |
|
||||
| {{platform}} | {{fps}} | {{load}} | {{memory}} | {{size}} | {{battery}} |
|
||||
examples:
|
||||
- iOS, 60 FPS, <3s, <150MB, <80MB, 3+ hours
|
||||
- Android, 60 FPS, <5s, <200MB, <100MB, 2.5+ hours
|
||||
|
||||
- id: next-steps-integration
|
||||
title: Next Steps & BMad Integration
|
||||
instruction: Define how this GDD integrates with BMad's agent workflow and what follow-up documents or processes are needed.
|
||||
sections:
|
||||
- id: architecture-handoff
|
||||
title: Godot Architecture Requirements
|
||||
instruction: Summary of key architectural decisions that need to be implemented in Godot project setup with TDD and performance focus
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Godot {{godot_version}} project with {{renderer}} renderer
|
||||
- {{architecture_pattern}} node architecture with {{folder_structure}}
|
||||
- Language strategy: GDScript for {{gdscript_use}}, C# for {{csharp_use}}
|
||||
- Performance targets: 60+ FPS mandatory, {{key_performance_metrics}}
|
||||
- Platform exports: {{deployment_targets}} with export templates
|
||||
- id: story-creation-guidance
|
||||
title: Story Creation Guidance for SM Agent
|
||||
instruction: Provide guidance for the Story Manager (SM) agent on how to break down this GDD into implementable user stories
|
||||
template: |
|
||||
**Epic Prioritization:** {{epic_order_rationale}}
|
||||
|
||||
**Story Sizing Guidelines:**
|
||||
|
||||
- Foundation stories: {{foundation_story_scope}}
|
||||
- Feature stories: {{feature_story_scope}}
|
||||
- Polish stories: {{polish_story_scope}}
|
||||
|
||||
**Godot-Specific Story Considerations:**
|
||||
|
||||
- Each story should result in testable Godot scenes with GUT/GoDotTest coverage
|
||||
- Include specific node hierarchies and signal flows in acceptance criteria
|
||||
- Enforce 60+ FPS performance validation in each story
|
||||
- Account for export template configuration and deployment
|
||||
- Specify language choice (GDScript vs C#) for each component
|
||||
examples:
|
||||
- "Foundation stories: Individual Godot systems with TDD (InputMap, Audio Bus, Scene Tree) - 1-2 days each"
|
||||
- "Feature stories: Complete gameplay mechanics with 60+ FPS validation - 2-4 days each"
|
||||
- id: recommended-agents
|
||||
title: Recommended BMad Agent Sequence
|
||||
type: numbered-list
|
||||
template: |
|
||||
1. **{{agent_name}}**: {{agent_responsibility}}
|
||||
examples:
|
||||
- "Godot Architect: Create detailed technical architecture with node patterns and language strategy"
|
||||
- "Godot Developer: Implement systems with TDD (GUT/GoDotTest) maintaining 60+ FPS"
|
||||
- "QA Tester: Validate performance targets, signal cleanup, and platform exports"
|
||||
209
expansion-packs/bmad-godot-game-dev/templates/game-prd-tmpl.yaml
Normal file
209
expansion-packs/bmad-godot-game-dev/templates/game-prd-tmpl.yaml
Normal file
@@ -0,0 +1,209 @@
|
||||
# <!-- Powered by BMAD™ Core -->
|
||||
template:
|
||||
id: game-prd-template-v2
|
||||
name: Product Requirements Document
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: docs/game-prd.md
|
||||
title: "{{project_name}} Godot Product Requirements Document (PRD)"
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
elicitation: advanced-elicitation
|
||||
|
||||
sections:
|
||||
- id: goals-context
|
||||
title: Goals and Background Context
|
||||
instruction: |
|
||||
Ask if Project Brief document is available. If NO Project Brief exists, STRONGLY recommend creating one first using game-brief-tmpl (it provides essential foundation: problem statement, target users, success metrics, MVP scope, constraints). If user insists on PRD without brief, gather this information during Goals section. If Project Brief exists, review and use it to populate Goals (bullet list of desired outcomes) and Background Context (1-2 paragraphs on what this solves and why) so we can determine what is and is not in scope for PRD mvp. Either way this is critical to determine the requirements. Include Change Log table.
|
||||
sections:
|
||||
- id: goals
|
||||
title: Goals
|
||||
type: bullet-list
|
||||
instruction: Bullet list of 1 line desired outcomes the game will deliver if successful - player experiences and gameplay goals
|
||||
- id: background
|
||||
title: Background Context
|
||||
type: paragraphs
|
||||
instruction: 1-2 short paragraphs summarizing the game concept, target audience, genre influences, what player need or desire this game fulfills, competitive landscape
|
||||
- id: changelog
|
||||
title: Change Log
|
||||
type: table
|
||||
columns: [Date, Version, Description, Author]
|
||||
instruction: Track document versions and changes
|
||||
|
||||
- id: requirements
|
||||
title: Requirements
|
||||
instruction: Draft the list of functional and non functional requirements under the two child sections
|
||||
elicit: true
|
||||
sections:
|
||||
- id: functional
|
||||
title: Functional
|
||||
type: numbered-list
|
||||
prefix: FR
|
||||
instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with FR
|
||||
examples:
|
||||
- "FR6: The player character can double jump after collecting the Wing Boots power-up."
|
||||
- "FR7: Enemy AI uses Godot's NavigationAgent2D to pathfind around obstacles."
|
||||
- "FR8: The inventory system supports drag-and-drop item management."
|
||||
- id: non-functional
|
||||
title: Non Functional
|
||||
type: numbered-list
|
||||
prefix: NFR
|
||||
instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with NFR
|
||||
examples:
|
||||
- "NFR1: Game must maintain 60 FPS on mid-range hardware (GTX 1060 or equivalent)."
|
||||
- "NFR2: All UI elements must be readable at 720p resolution minimum."
|
||||
- "NFR3: Save files must be compatible across all target platforms."
|
||||
|
||||
- id: ui-goals
|
||||
title: Game UI/UX Design Goals
|
||||
condition: Game has UI/menu requirements
|
||||
instruction: |
|
||||
Capture high-level game UI/UX vision to guide Game Designer and inform implementation. Steps:
|
||||
|
||||
1. Pre-fill all subsections with educated guesses based on game genre and platform
|
||||
2. Present the complete rendered section to user
|
||||
3. Clearly let the user know where assumptions were made
|
||||
4. Ask targeted questions for unclear/missing elements or areas needing more specification
|
||||
5. This is NOT detailed UI spec - focus on player experience and game feel
|
||||
elicit: true
|
||||
choices:
|
||||
accessibility: [None, Basic, Colorblind Support, Full Accessibility]
|
||||
platforms: [PC Only, Mobile Only, PC + Mobile, PC + Console, All Platforms]
|
||||
sections:
|
||||
- id: ux-vision
|
||||
title: Overall Game UX Vision
|
||||
- id: interaction-paradigms
|
||||
title: Control Schemes and Input Methods
|
||||
- id: core-screens
|
||||
title: Core Game Screens and Menus
|
||||
instruction: From a game design perspective, what are the most critical screens, menus, and HUD elements necessary to deliver the gameplay experience? This is meant to be Conceptual High Level to Drive Rough Epic or Game Stories
|
||||
examples:
|
||||
- "Main Menu"
|
||||
- "Game HUD (health, score, inventory)"
|
||||
- "Pause Menu"
|
||||
- "Level Select Screen"
|
||||
- "Character Customization"
|
||||
- "Settings/Options Menu"
|
||||
- id: accessibility
|
||||
title: "Accessibility: {None|Basic|Colorblind Support|Full Accessibility}"
|
||||
- id: branding
|
||||
title: Branding
|
||||
instruction: Any known branding elements or style guides that must be incorporated?
|
||||
examples:
|
||||
- "Pixel art style inspired by 16-bit era JRPGs with modern lighting effects."
|
||||
- "Dark fantasy aesthetic with muted colors and Gothic UI elements."
|
||||
- "Vibrant cartoon style with thick outlines and cel-shading."
|
||||
- id: target-platforms
|
||||
title: "Target Platforms: {PC Only|Mobile Only|PC + Mobile|PC + Console|All Platforms}"
|
||||
examples:
|
||||
- "Windows, Linux, Mac via Steam"
|
||||
- "iOS and Android via App Stores"
|
||||
- "PC (Steam) + Nintendo Switch"
|
||||
- "Web export for itch.io"
|
||||
|
||||
- id: technical-assumptions
|
||||
title: Godot Technical Assumptions
|
||||
instruction: |
|
||||
Gather Godot-specific technical decisions that will guide development. Steps:
|
||||
|
||||
1. Check if {root}/data/godot-preferences.yaml or an attached technical-preferences file exists - use it to pre-populate choices
|
||||
2. Ask user about: Godot version, 2D/3D, GDScript/C#, plugins/addons, target platforms, networking needs
|
||||
3. For unknowns, offer guidance based on game type and target platforms
|
||||
4. Document ALL technical choices with rationale (why this choice fits the game)
|
||||
5. These become constraints for development - be specific and complete
|
||||
elicit: true
|
||||
choices:
|
||||
godot_version: [Godot 4.4, Godot 4.3, Godot 3.x]
|
||||
architecture: [Single Player, Local Multiplayer, Online Multiplayer, MMO]
|
||||
testing: [Manual Playtesting, Automated Tests, Both]
|
||||
sections:
|
||||
- id: godot-version
|
||||
title: "Godot Version: {4.4|4.3|3.x}"
|
||||
- id: game-architecture
|
||||
title: Game Architecture
|
||||
instruction: "CRITICAL DECISION - Document the game architecture (e.g., Single Player, Local Co-op, Online PvP, Server-Authoritative Multiplayer, P2P)."
|
||||
- id: testing-requirements
|
||||
title: Testing & QA Requirements
|
||||
instruction: "CRITICAL DECISION - Document playtesting approach, automated testing needs (if any), performance profiling requirements, platform certification requirements."
|
||||
- id: additional-assumptions
|
||||
title: Additional Godot Technical Assumptions
|
||||
instruction: Throughout the entire process of drafting this document, if any other Godot-specific technical assumptions are raised (rendering pipeline, physics engine settings, audio system, input handling), add them here as additional bulleted items
|
||||
|
||||
- id: epic-list
|
||||
title: Epic List
|
||||
instruction: |
|
||||
Present a high-level list of all epics for user approval. Each epic should have a title and a short (1 sentence) goal statement. This allows the user to review the overall structure before diving into details.
|
||||
|
||||
CRITICAL: Epics MUST be logically sequential following agile best practices:
|
||||
|
||||
- Each epic should deliver a significant, end-to-end, fully deployable increment of testable functionality
|
||||
- Epic 1 must establish foundational project infrastructure (app setup, Git, CI/CD, core services) unless we are adding new functionality to an existing app, while also delivering an initial piece of functionality, even as simple as a health-check route or display of a simple canary page - remember this when we produce the stories for the first epic!
|
||||
- Each subsequent epic builds upon previous epics' functionality delivering major blocks of functionality that provide tangible value to users or business when deployed
|
||||
- Not every project needs multiple epics, an epic needs to deliver value. For example, an API completed can deliver value even if a UI is not complete and planned for a separate epic.
|
||||
- Err on the side of less epics, but let the user know your rationale and offer options for splitting them if it seems some are too large or focused on disparate things.
|
||||
- Cross Cutting Concerns should flow through epics and stories and not be final stories. For example, adding a logging framework as a last story of an epic, or at the end of a project as a final epic or story would be terrible as we would not have logging from the beginning.
|
||||
elicit: true
|
||||
examples:
|
||||
- "Epic 1: Foundation & Core Systems: Setup Godot project, implement player controller, and basic game loop"
|
||||
- "Epic 2: Core Gameplay Mechanics: Implement primary game mechanics, combat/interaction systems"
|
||||
- "Epic 3: Level Design & Content: Create levels, enemies, and game progression"
|
||||
- "Epic 4: Polish & Game Feel: Add VFX, audio, juice, and game polish"
|
||||
- "Epic 5: Menus & Meta Systems: Implement save/load, settings, achievements"
|
||||
|
||||
- id: epic-details
|
||||
title: Epic {{epic_number}} {{epic_title}}
|
||||
repeatable: true
|
||||
instruction: |
|
||||
After the epic list is approved, present each epic with all its stories and acceptance criteria as a complete review unit.
|
||||
|
||||
For each epic provide expanded goal (2-3 sentences describing the objective and value all the stories will achieve).
|
||||
|
||||
CRITICAL STORY SEQUENCING REQUIREMENTS:
|
||||
|
||||
- Stories within each epic MUST be logically sequential
|
||||
- Each story should be a "vertical slice" delivering complete functionality aside from early enabler stories for project foundation
|
||||
- No story should depend on work from a later story or epic
|
||||
- Identify and note any direct prerequisite stories
|
||||
- Focus on "what" and "why" not "how" (leave technical implementation to Architect) yet be precise enough to support a logical sequential order of operations from story to story.
|
||||
- Ensure each story delivers clear user or business value, try to avoid enablers and build them into stories that deliver value.
|
||||
- Size stories for AI agent execution: Each story must be completable by a single AI agent in one focused session without context overflow
|
||||
- Think "junior developer working for 2-4 hours" - stories must be small, focused, and self-contained
|
||||
- If a story seems complex, break it down further as long as it can deliver a vertical slice
|
||||
elicit: true
|
||||
template: "{{epic_goal}}"
|
||||
sections:
|
||||
- id: story
|
||||
title: Story {{epic_number}}.{{story_number}} {{story_title}}
|
||||
repeatable: true
|
||||
template: |
|
||||
As a {{user_type}},
|
||||
I want {{action}},
|
||||
so that {{benefit}}.
|
||||
sections:
|
||||
- id: acceptance-criteria
|
||||
title: Acceptance Criteria
|
||||
type: numbered-list
|
||||
item_template: "{{criterion_number}}: {{criteria}}"
|
||||
repeatable: true
|
||||
instruction: |
|
||||
Define clear, comprehensive, and testable acceptance criteria that:
|
||||
|
||||
- Precisely define what "done" means from a functional perspective
|
||||
- Are unambiguous and serve as basis for verification
|
||||
- Include any critical non-functional requirements from the PRD
|
||||
- Consider local testability for backend/data components
|
||||
- Specify UI/UX requirements and framework adherence where applicable
|
||||
- Avoid cross-cutting concerns that should be in other stories or PRD sections
|
||||
|
||||
- id: checklist-results
|
||||
title: Checklist Results Report
|
||||
instruction: Before running the checklist and drafting the prompts, offer to output the full updated PRD. If outputting it, confirm with the user that you will be proceeding to run the checklist and produce the report. Once the user confirms, execute the pm-checklist and populate the results in this section.
|
||||
|
||||
- id: next-steps
|
||||
title: Next Steps
|
||||
sections:
|
||||
- id: architect-prompt
|
||||
title: Game Architect Prompt
|
||||
instruction: This section will contain the prompt for the Game Architect, keep it short and to the point to initiate Godot architecture design using this document as input.
|
||||
@@ -0,0 +1,186 @@
|
||||
template:
|
||||
id: godot-qa-gate-template-v2
|
||||
name: Godot Game Quality Gate Decision
|
||||
version: 2.0
|
||||
output:
|
||||
format: yaml
|
||||
filename: docs/qa/gates/{{epic_num}}.{{story_num}}-{{story_slug}}.yml
|
||||
title: "Godot Quality Gate: {{epic_num}}.{{story_num}}"
|
||||
|
||||
# Required fields (keep these first)
|
||||
schema: 1
|
||||
story: "{{epic_num}}.{{story_num}}"
|
||||
story_title: "{{story_title}}"
|
||||
gate: "{{gate_status}}" # PASS|CONCERNS|FAIL|WAIVED
|
||||
status_reason: "{{status_reason}}" # 1-2 sentence summary focusing on TDD compliance and 60+ FPS performance
|
||||
reviewer: "Linus (Godot Game Test Architect)"
|
||||
updated: "{{iso_timestamp}}"
|
||||
|
||||
# Always present but only active when WAIVED
|
||||
waiver: { active: false }
|
||||
|
||||
# Godot-specific Issues (if any) - Use fixed severity: low | medium | high
|
||||
top_issues: [] # Focus on performance drops below 60 FPS, missing TDD tests, wrong language choices
|
||||
|
||||
# Risk summary (from risk-profile task if run)
|
||||
risk_summary:
|
||||
totals: { critical: 0, high: 0, medium: 0, low: 0 }
|
||||
recommendations:
|
||||
must_fix: []
|
||||
monitor: []
|
||||
|
||||
# Godot examples section using block scalars for clarity
|
||||
examples:
|
||||
with_issues: |
|
||||
top_issues:
|
||||
- id: "PERF-001"
|
||||
severity: high # ONLY: low|medium|high
|
||||
finding: "Frame rate drops to 45 FPS during particle spawning"
|
||||
suggested_action: "Implement object pooling for particle systems"
|
||||
- id: "TDD-001"
|
||||
severity: high
|
||||
finding: "No GUT tests for player controller despite GDScript implementation"
|
||||
suggested_action: "Add GUT test coverage before marking story complete"
|
||||
- id: "LANG-001"
|
||||
severity: medium
|
||||
finding: "Physics system using GDScript instead of C# causing performance issues"
|
||||
suggested_action: "Refactor physics calculations to C# for better performance"
|
||||
|
||||
when_waived: |
|
||||
waiver:
|
||||
active: true
|
||||
reason: "Performance at 55 FPS acceptable for early access - optimization planned for next sprint"
|
||||
approved_by: "Product Owner"
|
||||
|
||||
# ============ Optional Extended Fields ============
|
||||
# Uncomment and use if your team wants more detail
|
||||
# CRITICAL: Gates should FAIL if performance drops below 60 FPS or TDD is not followed
|
||||
|
||||
optional_fields_examples:
|
||||
quality_and_expiry: |
|
||||
quality_score: 75 # 100 - (20*FAILs) - (10*CONCERNS) - (5*FPS_drops_below_60)
|
||||
expires: "2025-01-26T00:00:00Z" # Optional gate freshness window
|
||||
|
||||
evidence: |
|
||||
evidence:
|
||||
gut_tests_reviewed: 15 # GDScript tests
|
||||
godottest_reviewed: 8 # C# tests
|
||||
performance_validated: true # 60+ FPS confirmed
|
||||
language_strategy_verified: true # GDScript/C# choices appropriate
|
||||
trace:
|
||||
ac_covered: [1, 2, 3] # AC numbers with GUT/GoDotTest coverage
|
||||
ac_gaps: [4] # AC numbers lacking TDD coverage
|
||||
fps_validation: "60+ FPS on all target platforms"
|
||||
|
||||
nfr_validation: |
|
||||
nfr_validation:
|
||||
performance: { status: PASS, notes: "60+ FPS maintained, frame time <16.67ms" }
|
||||
tdd_compliance: { status: PASS, notes: "GUT coverage 85%, GoDotTest coverage 80%" }
|
||||
language_strategy: { status: PASS, notes: "GDScript for logic, C# for physics - appropriate" }
|
||||
object_pooling: { status: CONCERNS, notes: "Pooling missing for bullet spawns" }
|
||||
signal_cleanup: { status: PASS, notes: "All signals properly disconnected" }
|
||||
platform_exports: { status: PASS, notes: "Export templates configured for all targets" }
|
||||
|
||||
history: |
|
||||
history: # Append-only audit trail
|
||||
- at: "2025-01-12T10:00:00Z"
|
||||
gate: FAIL
|
||||
note: "Initial review - FPS dropped to 45, no GUT tests"
|
||||
- at: "2025-01-12T15:00:00Z"
|
||||
gate: CONCERNS
|
||||
note: "GUT tests added, FPS improved to 58 - needs object pooling"
|
||||
|
||||
risk_summary: |
|
||||
risk_summary: # From Godot risk-profile task
|
||||
totals:
|
||||
critical: 0 # FPS < 30 or no TDD
|
||||
high: 0 # FPS < 60 or wrong language choice
|
||||
medium: 0 # Missing optimizations
|
||||
low: 0 # Minor issues
|
||||
# 'highest' is emitted only when risks exist
|
||||
recommendations:
|
||||
must_fix: [] # Performance below 60 FPS, missing TDD
|
||||
monitor: [] # Language strategy concerns
|
||||
|
||||
recommendations: |
|
||||
recommendations:
|
||||
immediate: # Must fix before production
|
||||
- action: "Implement object pooling for all spawned entities"
|
||||
refs: ["res://scripts/spawners/bullet_spawner.gd:42-68"]
|
||||
- action: "Add GUT tests for player controller"
|
||||
refs: ["res://scripts/player/player_controller.gd"]
|
||||
- action: "Optimize particle system to maintain 60+ FPS"
|
||||
refs: ["res://scenes/effects/particles.tscn"]
|
||||
future: # Can be addressed later
|
||||
- action: "Consider migrating physics to C# for 20% performance gain"
|
||||
refs: ["res://scripts/physics/physics_manager.gd"]
|
||||
- action: "Add performance benchmarks to GUT test suite"
|
||||
refs: ["res://tests/"]
|
||||
|
||||
godot_performance_metrics: |
|
||||
godot_metrics:
|
||||
frame_rate:
|
||||
current: 62 # Current FPS
|
||||
target: 60 # Minimum acceptable (FAIL if below)
|
||||
peak: 120 # Best achieved
|
||||
frame_time:
|
||||
current_ms: 16.1 # Current frame time
|
||||
target_ms: 16.67 # Maximum for 60 FPS
|
||||
memory:
|
||||
scene_mb: 45 # Scene memory usage
|
||||
texture_mb: 128 # Texture memory
|
||||
pool_count: 5 # Active object pools
|
||||
draw_calls:
|
||||
current: 85
|
||||
budget: 100 # Platform-specific budget
|
||||
language_distribution:
|
||||
gdscript_files: 45 # With static typing
|
||||
csharp_files: 12 # Performance-critical systems
|
||||
|
||||
test_coverage_metrics: |
|
||||
test_coverage:
|
||||
gut_tests:
|
||||
total: 45
|
||||
passing: 43
|
||||
coverage_percent: 85
|
||||
performance_tests: 8 # Tests validating 60+ FPS
|
||||
godottest_tests:
|
||||
total: 20
|
||||
passing: 20
|
||||
coverage_percent: 80
|
||||
physics_tests: 15 # C# physics validation
|
||||
tdd_compliance:
|
||||
stories_with_tests_first: 18
|
||||
stories_without_tests: 2
|
||||
compliance_percent: 90
|
||||
|
||||
# ============ Godot Gate Decision Criteria ============
|
||||
# Apply these rules in order to determine gate status:
|
||||
|
||||
gate_decision_rules: |
|
||||
1. AUTOMATIC FAIL CONDITIONS:
|
||||
- Performance below 60 FPS on any target platform
|
||||
- No TDD tests (neither GUT nor GoDotTest)
|
||||
- Memory leaks detected (signals not cleaned up)
|
||||
- Wrong language choice causing performance issues
|
||||
- Object pooling missing for frequently spawned entities
|
||||
|
||||
2. CONCERNS CONDITIONS:
|
||||
- Performance between 55-59 FPS
|
||||
- TDD coverage below 80%
|
||||
- Static typing not used in GDScript
|
||||
- LINQ usage in C# hot paths
|
||||
- Scene transitions exceeding 3 seconds
|
||||
|
||||
3. PASS CONDITIONS:
|
||||
- Consistent 60+ FPS across all platforms
|
||||
- GUT/GoDotTest coverage >= 80%
|
||||
- Appropriate language choices (GDScript for logic, C# for performance)
|
||||
- Object pooling implemented for all spawned entities
|
||||
- All signals properly connected and cleaned up
|
||||
|
||||
4. WAIVER ONLY WITH:
|
||||
- Product Owner approval
|
||||
- Clear remediation plan
|
||||
- Timeline for fixing issues
|
||||
- Risk acceptance documented
|
||||
@@ -0,0 +1,406 @@
|
||||
template:
|
||||
id: godot-game-story-template-v4
|
||||
name: Godot Game Development Story
|
||||
version: 4.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: "stories/{{epic_name}}/{{story_id}}-{{story_name}}.md"
|
||||
title: "Godot Story: {{story_title}}"
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
|
||||
sections:
|
||||
- id: initial-setup
|
||||
instruction: |
|
||||
This template creates detailed Godot game development stories with TDD focus and 60+ FPS performance requirements. Each story should focus on a single, implementable feature using appropriate language choices (GDScript for logic, C# for performance-critical systems).
|
||||
|
||||
Before starting, ensure you have access to:
|
||||
|
||||
- Game Design Document (GDD) with Godot specifications
|
||||
- Game Architecture Document with node hierarchy
|
||||
- Language strategy decisions (GDScript vs C#)
|
||||
- Performance targets (60+ FPS mandatory)
|
||||
- Any existing stories in this epic
|
||||
|
||||
The story must include TDD requirements (GUT for GDScript, GoDotTest for C#) and performance validation steps.
|
||||
|
||||
- id: story-header
|
||||
content: |
|
||||
**Epic:** {{epic_name}}
|
||||
**Story ID:** {{story_id}}
|
||||
**Priority:** {{High|Medium|Low}}
|
||||
**Points:** {{story_points}}
|
||||
**Status:** Draft
|
||||
**Language:** {{GDScript|C#|Both}}
|
||||
**Performance Target:** 60+ FPS
|
||||
|
||||
- id: description
|
||||
title: Description
|
||||
instruction: Provide a clear, concise description of what this story implements in Godot. Focus on the specific game feature, node architecture, and language choice rationale. Reference the GDD section and performance requirements.
|
||||
template: |
|
||||
{{clear_description_of_what_needs_to_be_implemented}}
|
||||
|
||||
**Godot Implementation:** Using {{node_types}} with {{language_choice}} for {{performance_reason}}
|
||||
**Performance Impact:** {{expected_fps_impact}}
|
||||
|
||||
- id: acceptance-criteria
|
||||
title: Acceptance Criteria
|
||||
instruction: Define specific, testable conditions that must be met for the story to be considered complete. Each criterion should be verifiable and directly related to gameplay functionality.
|
||||
sections:
|
||||
- id: functional-requirements
|
||||
title: Functional Requirements
|
||||
type: checklist
|
||||
items:
|
||||
- "{{specific_functional_requirement}}"
|
||||
- id: technical-requirements
|
||||
title: Technical Requirements
|
||||
type: checklist
|
||||
items:
|
||||
- Code follows GDScript/C# best practices with static typing
|
||||
- Maintains 60+ FPS on all target devices (frame time <16.67ms)
|
||||
- Object pooling implemented for spawned entities
|
||||
- Signals properly connected and cleaned up
|
||||
- GUT/GoDotTest coverage >= 80%
|
||||
- "{{specific_technical_requirement}}"
|
||||
- id: game-design-requirements
|
||||
title: Game Design Requirements
|
||||
type: checklist
|
||||
items:
|
||||
- "{{gameplay_requirement_from_gdd}}"
|
||||
- "{{balance_requirement_if_applicable}}"
|
||||
- "{{player_experience_requirement}}"
|
||||
|
||||
- id: technical-specifications
|
||||
title: Technical Specifications
|
||||
instruction: Provide specific Godot technical details including node hierarchy, signal flow, and language decisions. Include scene structure and resource requirements.
|
||||
sections:
|
||||
- id: files-to-modify
|
||||
title: Files to Create/Modify
|
||||
template: |
|
||||
**New Scenes (.tscn):**
|
||||
|
||||
- `res://scenes/{{scene_name}}.tscn` - {{purpose}}
|
||||
|
||||
**New Scripts:**
|
||||
|
||||
- `res://scripts/{{script_name}}.gd` - {{gdscript_purpose}} (static typing required)
|
||||
- `res://scripts/{{script_name}}.cs` - {{csharp_purpose}} (for performance)
|
||||
|
||||
**New Resources (.tres):**
|
||||
|
||||
- `res://resources/{{resource_name}}.tres` - {{resource_purpose}}
|
||||
|
||||
**Modified Files:**
|
||||
|
||||
- `{{existing_file_1}}` - {{changes_needed}}
|
||||
- `{{existing_file_2}}` - {{changes_needed}}
|
||||
- id: class-interface-definitions
|
||||
title: Node/Class Definitions
|
||||
instruction: Define specific Godot node structures and classes with language strategy
|
||||
template: |
|
||||
**GDScript Implementation (for game logic):**
|
||||
```gdscript
|
||||
# {{script_name}}.gd
|
||||
class_name {{ClassName}}
|
||||
extends {{Node2D|Control|Node3D}}
|
||||
|
||||
# Static typing mandatory for 10-20% performance gain
|
||||
@export var {{property_name}}: {{type}} = {{default_value}}
|
||||
|
||||
var _{{private_property}}: {{type}}
|
||||
|
||||
signal {{signal_name}}({{params}})
|
||||
|
||||
func _ready() -> void:
|
||||
# TDD: Write GUT tests first
|
||||
pass
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
# Must maintain 60+ FPS
|
||||
pass
|
||||
```
|
||||
|
||||
**C# Implementation (for performance-critical systems):**
|
||||
```csharp
|
||||
// {{script_name}}.cs
|
||||
using Godot;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class {{ClassName}} : {{Node2D|Control|Node3D}}
|
||||
{
|
||||
[Export] public {{type}} {{PropertyName}} { get; set; }
|
||||
|
||||
[Signal]
|
||||
public delegate void {{SignalName}}EventHandler({{params}});
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
// TDD: Write GoDotTest tests first
|
||||
// No LINQ in hot paths
|
||||
}
|
||||
|
||||
public override void _PhysicsProcess(double delta)
|
||||
{
|
||||
// Optimize for 60+ FPS, no allocations
|
||||
}
|
||||
}
|
||||
```
|
||||
- id: integration-points
|
||||
title: Integration Points
|
||||
instruction: Specify how this feature integrates with existing Godot systems
|
||||
template: |
|
||||
**Scene Tree Integration:**
|
||||
|
||||
- Parent Scene: `res://scenes/{{parent_scene}}.tscn`
|
||||
- Node Path: `/root/{{node_path}}`
|
||||
- Scene Instancing: {{instancing_details}}
|
||||
|
||||
**Node Dependencies:**
|
||||
|
||||
- {{node_name}}: {{dependency_description}}
|
||||
- Language: {{GDScript|C#}} - {{language_reason}}
|
||||
|
||||
**Signal Connections:**
|
||||
|
||||
- Emits: `{{signal_name}}` when {{condition}}
|
||||
- Connects to: `{{node_path}}.{{signal_name}}` for {{response}}
|
||||
- Cleanup: Signals disconnected in `_exit_tree()`
|
||||
|
||||
**Resource Dependencies:**
|
||||
|
||||
- `res://resources/{{resource}}.tres` - {{usage}}
|
||||
- Preloaded: {{yes|no}} - {{preload_reason}}
|
||||
|
||||
- id: tdd-workflow
|
||||
title: TDD Workflow (Red-Green-Refactor)
|
||||
instruction: Define the Test-Driven Development approach for this story
|
||||
template: |
|
||||
**RED Phase - Write Failing Tests First:**
|
||||
|
||||
GDScript (GUT):
|
||||
- [ ] Create test file: `res://tests/unit/test_{{component}}.gd`
|
||||
- [ ] Write test for {{behavior_1}} - expect failure
|
||||
- [ ] Write test for {{behavior_2}} - expect failure
|
||||
- [ ] Write performance test for 60+ FPS - expect failure
|
||||
|
||||
C# (GoDotTest):
|
||||
- [ ] Create test file: `res://tests/unit/{{Component}}Tests.cs`
|
||||
- [ ] Write test for {{behavior_1}} - expect failure
|
||||
- [ ] Write optimization test (no allocations) - expect failure
|
||||
|
||||
**GREEN Phase - Make Tests Pass:**
|
||||
|
||||
- [ ] Implement minimal code to pass {{behavior_1}} test
|
||||
- [ ] Implement minimal code to pass {{behavior_2}} test
|
||||
- [ ] Ensure 60+ FPS requirement is met
|
||||
- [ ] Verify all tests are green
|
||||
|
||||
**REFACTOR Phase - Optimize and Clean:**
|
||||
|
||||
- [ ] Add static typing to all GDScript (10-20% perf gain)
|
||||
- [ ] Remove LINQ from C# hot paths
|
||||
- [ ] Implement object pooling for {{spawned_entities}}
|
||||
- [ ] Clean up signal connections
|
||||
- [ ] Profile and verify 60+ FPS maintained
|
||||
- [ ] Ensure test coverage >= 80%
|
||||
|
||||
- id: implementation-tasks
|
||||
title: Implementation Tasks
|
||||
instruction: Break down the implementation into TDD-focused tasks following Red-Green-Refactor cycle. Each task should maintain 60+ FPS.
|
||||
sections:
|
||||
- id: dev-agent-record
|
||||
title: Dev Agent Record
|
||||
template: |
|
||||
**TDD Tasks (Red-Green-Refactor):**
|
||||
|
||||
- [ ] Write GUT/GoDotTest tests for {{component}} (RED phase)
|
||||
- [ ] Implement {{node_structure}} to pass tests (GREEN phase)
|
||||
- [ ] Refactor with static typing and optimization (REFACTOR phase)
|
||||
- [ ] Create object pool for {{spawned_entities}}
|
||||
- [ ] Implement signal connections with cleanup
|
||||
- [ ] Profile performance to ensure 60+ FPS
|
||||
- [ ] Language optimization (GDScript static typing or C# no-LINQ)
|
||||
- [ ] Integration testing with {{related_system}}
|
||||
- [ ] Final performance validation (must maintain 60+ FPS)
|
||||
|
||||
**Debug Log:**
|
||||
| Task | File | Change | Reverted? |
|
||||
|------|------|--------|-----------|
|
||||
| | | | |
|
||||
|
||||
**Completion Notes:**
|
||||
|
||||
<!-- Only note deviations from requirements, keep under 50 words -->
|
||||
|
||||
**Change Log:**
|
||||
|
||||
<!-- Only requirement changes during implementation -->
|
||||
|
||||
- id: godot-technical-context
|
||||
title: Godot Technical Context
|
||||
instruction: Define the Godot-specific technical implementation details
|
||||
template: |
|
||||
**Engine Version:** Godot {{version}} (4.3+ recommended)
|
||||
**Renderer:** {{Forward+|Mobile|Compatibility}}
|
||||
**Primary Language:** {{GDScript|C#}} - {{reason}}
|
||||
|
||||
**Node Architecture:**
|
||||
```
|
||||
{{parent_node}}
|
||||
└── {{child_node_1}} ({{node_type}})
|
||||
├── {{child_node_2}} ({{node_type}})
|
||||
└── {{child_node_3}} ({{node_type}})
|
||||
```
|
||||
|
||||
**Performance Requirements:**
|
||||
- Target FPS: 60+ (mandatory)
|
||||
- Frame Budget: 16.67ms
|
||||
- Memory Budget: {{memory_mb}}MB
|
||||
- Draw Calls: < {{draw_calls}}
|
||||
|
||||
**Object Pooling Required:**
|
||||
- {{entity_type}}: Pool size {{pool_size}}
|
||||
- Recycling strategy: {{strategy}}
|
||||
|
||||
- id: game-design-context
|
||||
title: Game Design Context
|
||||
instruction: Reference the specific sections of the GDD that this story implements with Godot-specific details
|
||||
template: |
|
||||
**GDD Reference:** {{section_name}} ({{page_or_section_number}})
|
||||
|
||||
**Game Mechanic:** {{mechanic_name}}
|
||||
|
||||
**Godot Implementation Approach:**
|
||||
- Node Architecture: {{node_hierarchy}}
|
||||
- Language Choice: {{GDScript|C#}} for {{reason}}
|
||||
- Performance Target: 60+ FPS with {{expected_load}}
|
||||
|
||||
**Player Experience Goal:** {{experience_description}}
|
||||
|
||||
**Balance Parameters (Resource-based):**
|
||||
|
||||
- {{parameter_1}}: {{value_or_range}} (stored in .tres)
|
||||
- {{parameter_2}}: {{value_or_range}} (exported variable)
|
||||
|
||||
- id: testing-requirements
|
||||
title: Testing Requirements
|
||||
instruction: Define specific TDD testing criteria with GUT (GDScript) and GoDotTest (C#) frameworks
|
||||
sections:
|
||||
- id: unit-tests
|
||||
title: Unit Tests (TDD Mandatory)
|
||||
template: |
|
||||
**GUT Test Files (GDScript):**
|
||||
|
||||
- `res://tests/unit/test_{{component_name}}.gd`
|
||||
- Coverage Target: 80% minimum
|
||||
|
||||
**GoDotTest Files (C#):**
|
||||
|
||||
- `res://tests/unit/{{ComponentName}}Tests.cs`
|
||||
- No LINQ in test hot paths
|
||||
|
||||
**Test Scenarios (Write First - Red Phase):**
|
||||
|
||||
- {{test_scenario_1}} - Must validate 60+ FPS
|
||||
- {{test_scenario_2}} - Signal emission verification
|
||||
- {{edge_case_test}} - Object pool boundary testing
|
||||
- Performance test: Frame time < 16.67ms
|
||||
- id: game-testing
|
||||
title: Game Testing
|
||||
template: |
|
||||
**Manual Test Cases (Godot Editor):**
|
||||
|
||||
1. {{test_case_1_description}}
|
||||
|
||||
- Expected: {{expected_behavior}}
|
||||
- Performance: Must maintain 60+ FPS
|
||||
- Profiler Check: Frame time < 16.67ms
|
||||
- Language Validation: {{GDScript|C#}} performing as expected
|
||||
|
||||
2. {{test_case_2_description}}
|
||||
- Expected: {{expected_behavior}}
|
||||
- Signal Flow: {{signal_verification}}
|
||||
- Memory: No leaks, signals cleaned up
|
||||
- Object Pools: Verify pooling active
|
||||
- id: performance-tests
|
||||
title: Performance Tests
|
||||
template: |
|
||||
**Godot Profiler Metrics (Mandatory):**
|
||||
|
||||
- Frame rate: 60+ FPS consistently (FAIL if below)
|
||||
- Frame time: < 16.67ms average
|
||||
- Physics frame: < {{physics_time}}ms
|
||||
- Memory usage: < {{memory_limit}}MB
|
||||
- Draw calls: < {{draw_call_budget}}
|
||||
- Object pools: Active and recycling properly
|
||||
- GDScript static typing: Verified (10-20% perf gain)
|
||||
- C# optimization: No LINQ, no allocations in hot paths
|
||||
- {{feature_specific_performance_metric}}
|
||||
|
||||
- id: dependencies
|
||||
title: Dependencies
|
||||
instruction: List any dependencies including Godot-specific requirements
|
||||
template: |
|
||||
**Story Dependencies:**
|
||||
|
||||
- {{story_id}}: {{dependency_description}}
|
||||
|
||||
**Godot System Dependencies:**
|
||||
|
||||
- Node: {{parent_node}} must exist in scene tree
|
||||
- Autoload: {{autoload_singleton}} configured
|
||||
- Language: {{prerequisite_language_setup}}
|
||||
|
||||
**Resource Dependencies:**
|
||||
|
||||
- Resource Type: {{.tres|.tscn}}
|
||||
- Asset: {{asset_description}}
|
||||
- Location: `res://{{asset_path}}`
|
||||
- Import Settings: {{import_configuration}}
|
||||
|
||||
- id: definition-of-done
|
||||
title: Definition of Done
|
||||
instruction: Checklist that must be completed with focus on Godot, TDD, and performance
|
||||
type: checklist
|
||||
items:
|
||||
- All acceptance criteria met
|
||||
- TDD followed (tests written first, then implementation)
|
||||
- GUT tests passing (GDScript) with 80%+ coverage
|
||||
- GoDotTest passing (C#) with 80%+ coverage
|
||||
- Performance: 60+ FPS maintained on all platforms
|
||||
- Static typing used in all GDScript
|
||||
- C# optimized (no LINQ in hot paths)
|
||||
- Object pooling active for spawned entities
|
||||
- Signals properly connected and cleaned up
|
||||
- No GDScript or C# errors/warnings
|
||||
- Node hierarchy follows architecture
|
||||
- Resources (.tres) configured properly
|
||||
- Export templates tested
|
||||
- Documentation updated
|
||||
- "{{game_specific_dod_item}}"
|
||||
|
||||
- id: notes
|
||||
title: Notes
|
||||
instruction: Any additional Godot-specific context, language decisions, or optimization notes
|
||||
template: |
|
||||
**Godot Implementation Notes:**
|
||||
|
||||
- Language Choice: {{GDScript|C#}} because {{performance_reason}}
|
||||
- Node Architecture: {{node_pattern}} for {{benefit}}
|
||||
- Signal Pattern: {{signal_strategy}}
|
||||
- {{note_1}}
|
||||
|
||||
**Performance Decisions:**
|
||||
|
||||
- Static Typing: {{gdscript_typing_strategy}} for 10-20% gain
|
||||
- C# Usage: {{csharp_systems}} for critical performance
|
||||
- Object Pooling: {{pooling_strategy}} for spawned entities
|
||||
- {{decision_1}}: {{rationale}}
|
||||
|
||||
**Future Optimizations:**
|
||||
|
||||
- Consider migrating {{system}} to C# if FPS drops
|
||||
- Implement LOD for {{complex_nodes}}
|
||||
- Add performance benchmarks to test suite
|
||||
- {{future_optimization_1}}
|
||||
@@ -0,0 +1,601 @@
|
||||
template:
|
||||
id: frontend-spec-template-v2
|
||||
name: UI/UX Specification
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: docs/front-end-spec.md
|
||||
title: "{{project_name}} UI/UX Specification"
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
elicitation: advanced-elicitation
|
||||
|
||||
sections:
|
||||
- id: introduction
|
||||
title: Introduction
|
||||
instruction: |
|
||||
Review provided documents including Project Brief, PRD, and any user research to gather context. Focus on understanding user needs, pain points, and desired outcomes before beginning the specification.
|
||||
|
||||
Establish the document's purpose and scope. Keep the content below but ensure project name is properly substituted.
|
||||
content: |
|
||||
This document defines the user experience goals, information architecture, user flows, and visual design specifications for {{project_name}}'s user interface. It serves as the foundation for visual design and frontend development, ensuring a cohesive and user-centered experience.
|
||||
sections:
|
||||
- id: ux-goals-principles
|
||||
title: Overall UX Goals & Principles
|
||||
instruction: |
|
||||
Work with the user to establish and document the following. If not already defined, facilitate a discussion to determine:
|
||||
|
||||
1. Target User Personas - elicit details or confirm existing ones from PRD
|
||||
2. Key Usability Goals - understand what success looks like for users
|
||||
3. Core Design Principles - establish 3-5 guiding principles
|
||||
elicit: true
|
||||
sections:
|
||||
- id: user-personas
|
||||
title: Target User Personas
|
||||
template: "{{persona_descriptions}}"
|
||||
examples:
|
||||
- "**Power User:** Technical professionals who need advanced features and efficiency"
|
||||
- "**Casual User:** Occasional users who prioritize ease of use and clear guidance"
|
||||
- "**Administrator:** System managers who need control and oversight capabilities"
|
||||
- id: usability-goals
|
||||
title: Usability Goals
|
||||
template: "{{usability_goals}}"
|
||||
examples:
|
||||
- "Ease of learning: New users can complete core tasks within 5 minutes"
|
||||
- "Efficiency of use: Power users can complete frequent tasks with minimal clicks"
|
||||
- "Error prevention: Clear validation and confirmation for destructive actions"
|
||||
- "Memorability: Infrequent users can return without relearning"
|
||||
- id: design-principles
|
||||
title: Design Principles
|
||||
template: "{{design_principles}}"
|
||||
type: numbered-list
|
||||
examples:
|
||||
- "**Clarity over cleverness** - Prioritize clear communication over aesthetic innovation"
|
||||
- "**Progressive disclosure** - Show only what's needed, when it's needed"
|
||||
- "**Consistent patterns** - Use familiar UI patterns throughout the application"
|
||||
- "**Immediate feedback** - Every action should have a clear, immediate response"
|
||||
- "**Accessible by default** - Design for all users from the start"
|
||||
- id: changelog
|
||||
title: Change Log
|
||||
type: table
|
||||
columns: [Date, Version, Description, Author]
|
||||
instruction: Track document versions and changes
|
||||
|
||||
- id: information-architecture
|
||||
title: Information Architecture (IA)
|
||||
instruction: |
|
||||
Collaborate with the user to create a comprehensive information architecture:
|
||||
|
||||
1. Build a Site Map or Screen Inventory showing all major areas
|
||||
2. Define the Navigation Structure (primary, secondary, breadcrumbs)
|
||||
3. Use Mermaid diagrams for visual representation
|
||||
4. Consider user mental models and expected groupings
|
||||
elicit: true
|
||||
sections:
|
||||
- id: sitemap
|
||||
title: Site Map / Screen Inventory
|
||||
type: mermaid
|
||||
mermaid_type: graph
|
||||
template: "{{sitemap_diagram}}"
|
||||
examples:
|
||||
- |
|
||||
graph TD
|
||||
A[Homepage] --> B[Dashboard]
|
||||
A --> C[Products]
|
||||
A --> D[Account]
|
||||
B --> B1[Analytics]
|
||||
B --> B2[Recent Activity]
|
||||
C --> C1[Browse]
|
||||
C --> C2[Search]
|
||||
C --> C3[Product Details]
|
||||
D --> D1[Profile]
|
||||
D --> D2[Settings]
|
||||
D --> D3[Billing]
|
||||
- id: navigation-structure
|
||||
title: Navigation Structure
|
||||
template: |
|
||||
**Primary Navigation:** {{primary_nav_description}}
|
||||
|
||||
**Secondary Navigation:** {{secondary_nav_description}}
|
||||
|
||||
**Breadcrumb Strategy:** {{breadcrumb_strategy}}
|
||||
|
||||
- id: user-flows
|
||||
title: User Flows
|
||||
instruction: |
|
||||
For each critical user task identified in the PRD:
|
||||
|
||||
1. Define the user's goal clearly
|
||||
2. Map out all steps including decision points
|
||||
3. Consider edge cases and error states
|
||||
4. Use Mermaid flow diagrams for clarity
|
||||
5. Link to external tools (Figma/Miro) if detailed flows exist there
|
||||
|
||||
Create subsections for each major flow.
|
||||
elicit: true
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: flow
|
||||
title: "{{flow_name}}"
|
||||
template: |
|
||||
**Player Goal:** {{flow_goal}}
|
||||
|
||||
**Entry Scene:** {{entry_scene}}.tscn
|
||||
|
||||
**Input Methods:** {{supported_inputs}}
|
||||
|
||||
**Performance Target:** 60+ FPS throughout
|
||||
|
||||
**Success Criteria:** {{success_criteria}}
|
||||
sections:
|
||||
- id: flow-diagram
|
||||
title: Flow Diagram
|
||||
type: mermaid
|
||||
mermaid_type: graph
|
||||
template: "{{flow_diagram}}"
|
||||
- id: edge-cases
|
||||
title: "Edge Cases & Error Handling:"
|
||||
type: bullet-list
|
||||
template: "- {{edge_case}}"
|
||||
- id: notes
|
||||
template: "**Notes:** {{flow_notes}}"
|
||||
|
||||
- id: wireframes-mockups
|
||||
title: Wireframes & Mockups
|
||||
instruction: |
|
||||
Clarify where detailed visual designs will be created (Figma, Sketch, etc.) and how to reference them. If low-fidelity wireframes are needed, offer to help conceptualize layouts for key screens.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: design-files
|
||||
template: "**Primary Design Files:** {{design_tool_link}}"
|
||||
- id: key-scene-layouts
|
||||
title: Key UI Scene Layouts
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: scene
|
||||
title: "{{scene_name}}.tscn"
|
||||
template: |
|
||||
**Purpose:** {{scene_purpose}}
|
||||
|
||||
**Control Node Hierarchy:**
|
||||
```
|
||||
Control (root)
|
||||
├── MarginContainer
|
||||
│ └── VBoxContainer
|
||||
│ ├── {{element_1}}
|
||||
│ ├── {{element_2}}
|
||||
│ └── {{element_3}}
|
||||
```
|
||||
|
||||
**Anchoring Strategy:** {{anchor_preset}}
|
||||
|
||||
**InputMap Actions:** {{input_actions}}
|
||||
|
||||
**Performance Impact:** {{fps_impact}}
|
||||
|
||||
**Theme Resource:** res://themes/{{theme_name}}.tres
|
||||
|
||||
- id: component-library
|
||||
title: Godot UI Component Library
|
||||
instruction: |
|
||||
Define reusable Godot UI scenes and Control node patterns. Specify theme resources, custom Control classes, and performance considerations. Focus on scene inheritance and instancing patterns.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: godot-ui-approach
|
||||
template: |
|
||||
**Godot UI Approach:** {{ui_approach}}
|
||||
|
||||
**Theme Strategy:** {{theme_strategy}}
|
||||
- Base Theme: res://themes/base_theme.tres
|
||||
- Theme Overrides: {{override_strategy}}
|
||||
|
||||
**Language Choice:** {{GDScript|C#}} for UI logic
|
||||
- Rationale: {{language_reason}}
|
||||
- id: core-components
|
||||
title: Core Components
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: component
|
||||
title: "{{component_name}}"
|
||||
template: |
|
||||
**Scene Path:** res://ui/components/{{component_name}}.tscn
|
||||
|
||||
**Purpose:** {{component_purpose}}
|
||||
|
||||
**Control Type:** {{control_node_type}}
|
||||
|
||||
**Signals:**
|
||||
- {{signal_1}}
|
||||
- {{signal_2}}
|
||||
|
||||
**Export Variables:**
|
||||
- @export var {{var_name}}: {{type}}
|
||||
|
||||
**States:** {{component_states}}
|
||||
|
||||
**Performance:** {{performance_notes}}
|
||||
|
||||
**Usage Guidelines:** {{usage_guidelines}}
|
||||
|
||||
- id: branding-style
|
||||
title: Game Visual Style Guide
|
||||
instruction: Define visual style for Godot UI using themes, stylebox resources, and shader materials. Ensure consistency across all UI scenes while maintaining 60+ FPS.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: visual-identity
|
||||
title: Visual Identity
|
||||
template: |
|
||||
**Game Art Style:** {{art_style}}
|
||||
|
||||
**Godot Theme Resources:**
|
||||
- Main Theme: res://themes/main_theme.tres
|
||||
- Dark Theme: res://themes/dark_theme.tres
|
||||
|
||||
**StyleBox Resources:**
|
||||
- Panel: res://themes/styles/panel_style.tres
|
||||
- Button: res://themes/styles/button_style.tres
|
||||
- id: color-palette
|
||||
title: Color Palette
|
||||
type: table
|
||||
columns: ["Color Type", "Hex Code", "Usage"]
|
||||
rows:
|
||||
- ["Primary", "{{primary_color}}", "{{primary_usage}}"]
|
||||
- ["Secondary", "{{secondary_color}}", "{{secondary_usage}}"]
|
||||
- ["Accent", "{{accent_color}}", "{{accent_usage}}"]
|
||||
- ["Success", "{{success_color}}", "Positive feedback, confirmations"]
|
||||
- ["Warning", "{{warning_color}}", "Cautions, important notices"]
|
||||
- ["Error", "{{error_color}}", "Errors, destructive actions"]
|
||||
- ["Neutral", "{{neutral_colors}}", "Text, borders, backgrounds"]
|
||||
- id: typography
|
||||
title: Typography
|
||||
sections:
|
||||
- id: font-families
|
||||
title: Font Resources
|
||||
template: |
|
||||
- **Primary:** res://fonts/{{primary_font}}.ttf
|
||||
- **Secondary:** res://fonts/{{secondary_font}}.ttf
|
||||
- **Monospace:** res://fonts/{{mono_font}}.ttf
|
||||
|
||||
**Dynamic Font Settings:**
|
||||
- Use Mipmaps: true (for scaling)
|
||||
- Antialiasing: true
|
||||
- Hinting: Light
|
||||
- id: type-scale
|
||||
title: Type Scale
|
||||
type: table
|
||||
columns: ["Element", "Size", "Weight", "Line Height"]
|
||||
rows:
|
||||
- ["H1", "{{h1_size}}", "{{h1_weight}}", "{{h1_line}}"]
|
||||
- ["H2", "{{h2_size}}", "{{h2_weight}}", "{{h2_line}}"]
|
||||
- ["H3", "{{h3_size}}", "{{h3_weight}}", "{{h3_line}}"]
|
||||
- ["Body", "{{body_size}}", "{{body_weight}}", "{{body_line}}"]
|
||||
- ["Small", "{{small_size}}", "{{small_weight}}", "{{small_line}}"]
|
||||
- id: iconography
|
||||
title: Iconography
|
||||
template: |
|
||||
**Icon Atlas:** res://ui/icons/icon_atlas.png
|
||||
|
||||
**Icon Size Standards:**
|
||||
- Small: 16x16
|
||||
- Medium: 32x32
|
||||
- Large: 64x64
|
||||
|
||||
**Texture Import Settings:**
|
||||
- Filter: Linear (for smooth scaling)
|
||||
- Mipmaps: Generate
|
||||
|
||||
**Usage Guidelines:** {{icon_guidelines}}
|
||||
- id: spacing-layout
|
||||
title: Spacing & Layout
|
||||
template: |
|
||||
**Container System:**
|
||||
- MarginContainer: {{margin_values}}
|
||||
- Separation (H/VBox): {{separation_pixels}}
|
||||
- GridContainer columns: {{grid_columns}}
|
||||
|
||||
**Anchor Presets:** {{anchor_strategy}}
|
||||
|
||||
**Spacing Scale:** {{spacing_scale}} (in pixels)
|
||||
|
||||
**Safe Area Margins:** {{safe_margins}} (for mobile)
|
||||
|
||||
- id: accessibility
|
||||
title: Game Accessibility Requirements
|
||||
instruction: Define specific accessibility requirements for Godot game UI, including input remapping through InputMap, visual adjustments through themes, and performance considerations for accessibility features.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: compliance-target
|
||||
title: Compliance Target
|
||||
template: |
|
||||
**Standard:** {{compliance_standard}}
|
||||
|
||||
**Godot Accessibility Features:**
|
||||
- InputMap remapping support
|
||||
- Theme system for high contrast
|
||||
- Font scaling through DynamicFont
|
||||
- Performance: Accessibility features maintain 60+ FPS
|
||||
- id: key-requirements
|
||||
title: Key Requirements
|
||||
template: |
|
||||
**Visual (Godot Theme System):**
|
||||
- Color contrast ratios: {{contrast_requirements}}
|
||||
- Focus indicators: Custom StyleBox for focused state
|
||||
- Text sizing: DynamicFont with size range {{min_size}}-{{max_size}}
|
||||
- Colorblind modes: Theme variants for different types
|
||||
|
||||
**Interaction (InputMap):**
|
||||
- Full keyboard navigation through ui_* actions
|
||||
- Gamepad support with proper button prompts
|
||||
- Touch targets: Minimum 44x44 pixels
|
||||
- Hold-to-confirm for destructive actions
|
||||
- Input buffer: {{buffer_frames}} frames for combo inputs
|
||||
|
||||
**Performance:**
|
||||
- Accessibility features maintain 60+ FPS
|
||||
- No additional draw calls for focus indicators
|
||||
- Theme switching without frame drops
|
||||
- id: testing-strategy
|
||||
title: Testing Strategy
|
||||
template: |
|
||||
**Godot-Specific Testing:**
|
||||
- InputMap verification for all UI actions
|
||||
- Theme contrast validation
|
||||
- Performance testing with accessibility features enabled
|
||||
- Touch target size verification
|
||||
- {{additional_testing}}
|
||||
|
||||
- id: responsiveness
|
||||
title: Godot UI Responsiveness Strategy
|
||||
instruction: Define viewport scaling, anchor presets, and Control node adaptation strategies for different screen sizes. Consider Godot's stretch modes and aspect ratios while maintaining 60+ FPS.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: viewport-settings
|
||||
title: Viewport Configuration
|
||||
template: |
|
||||
**Project Settings:**
|
||||
- Base Resolution: {{base_width}}x{{base_height}}
|
||||
- Stretch Mode: {{canvas_items|viewport|2d}}
|
||||
- Stretch Aspect: {{keep|keep_width|keep_height|expand}}
|
||||
|
||||
**Resolution Support:**
|
||||
| Resolution | Aspect | Platform | UI Scale |
|
||||
|------------|--------|----------|----------|
|
||||
| 1280x720 | 16:9 | Mobile | 1.0x |
|
||||
| 1920x1080 | 16:9 | Desktop | 1.5x |
|
||||
| 2560x1440 | 16:9 | Desktop | 2.0x |
|
||||
| {{custom}} | {{asp}}| {{plat}} | {{scale}}|
|
||||
- id: adaptation-patterns
|
||||
title: Godot UI Adaptation Patterns
|
||||
template: |
|
||||
**Anchor Presets:**
|
||||
- Mobile: Full Rect with margins
|
||||
- Desktop: Center with fixed size
|
||||
- Wide: Proportional margins
|
||||
|
||||
**Container Adjustments:**
|
||||
- Mobile: VBoxContainer for vertical layout
|
||||
- Desktop: HBoxContainer or GridContainer
|
||||
|
||||
**Control Visibility:**
|
||||
- Hide/show nodes based on viewport size
|
||||
- Use Control.visible property
|
||||
|
||||
**Font Scaling:**
|
||||
- DynamicFont size based on viewport
|
||||
- Maintain readability at all scales
|
||||
|
||||
**Performance:** All adaptations maintain 60+ FPS
|
||||
|
||||
- id: animation
|
||||
title: Godot UI Animation & Transitions
|
||||
instruction: Define AnimationPlayer and Tween-based animations for UI. Ensure all animations maintain 60+ FPS and can be disabled for accessibility.
|
||||
elicit: true
|
||||
sections:
|
||||
- id: motion-principles
|
||||
title: Motion Principles
|
||||
template: |
|
||||
**Godot Animation Guidelines:**
|
||||
- Use AnimationPlayer for complex sequences
|
||||
- Use Tweens for simple property animations
|
||||
- All animations < 0.3s for responsiveness
|
||||
- Maintain 60+ FPS during animations
|
||||
- Provide animation_speed setting for accessibility
|
||||
|
||||
{{additional_principles}}
|
||||
- id: key-animations
|
||||
title: Key UI Animations
|
||||
repeatable: true
|
||||
template: |
|
||||
- **{{animation_name}}:**
|
||||
- Method: {{AnimationPlayer|Tween}}
|
||||
- Properties: {{animated_properties}}
|
||||
- Duration: {{duration}}s
|
||||
- Easing: {{Trans.LINEAR|Trans.QUAD|Trans.CUBIC}}
|
||||
- Performance Impact: {{fps_impact}}
|
||||
- Can Disable: {{yes|no}}
|
||||
|
||||
- id: performance
|
||||
title: UI Performance Requirements
|
||||
instruction: Define Godot UI performance goals ensuring 60+ FPS is maintained. Consider draw calls, Control node count, and theme complexity.
|
||||
sections:
|
||||
- id: performance-goals
|
||||
title: Performance Goals
|
||||
template: |
|
||||
- **Frame Rate:** 60+ FPS mandatory (frame time <16.67ms)
|
||||
- **Scene Load:** <3 seconds for UI scene transitions
|
||||
- **Input Response:** <50ms (3 frames at 60 FPS)
|
||||
- **Draw Calls:** UI should add <20 draw calls
|
||||
- **Control Nodes:** <100 active Control nodes per scene
|
||||
- **Theme Complexity:** <10 StyleBox resources active
|
||||
- id: optimization-strategies
|
||||
title: Godot UI Optimization Strategies
|
||||
template: |
|
||||
**Node Optimization:**
|
||||
- Use scene instancing for repeated UI elements
|
||||
- Hide off-screen Control nodes (visible = false)
|
||||
- Pool dynamic UI elements (popups, tooltips)
|
||||
|
||||
**Rendering Optimization:**
|
||||
- Batch UI draw calls through theme consistency
|
||||
- Use nine-patch rect for scalable backgrounds
|
||||
- Minimize transparent overlays
|
||||
|
||||
**Update Optimization:**
|
||||
- Use signals instead of polling for UI updates
|
||||
- Update UI only when values change
|
||||
- Batch multiple UI updates in single frame
|
||||
|
||||
**Language Choice:**
|
||||
- GDScript for simple UI logic (with static typing)
|
||||
- C# for complex UI systems (inventory, crafting)
|
||||
|
||||
{{additional_strategies}}
|
||||
|
||||
- id: godot-implementation
|
||||
title: Godot UI Implementation Guide
|
||||
instruction: |
|
||||
Define specific Godot implementation details for UI developers including scene structure, script organization, and resource management.
|
||||
sections:
|
||||
- id: scene-organization
|
||||
title: UI Scene Organization
|
||||
template: |
|
||||
**Scene Structure:**
|
||||
```
|
||||
res://
|
||||
├── ui/
|
||||
│ ├── scenes/
|
||||
│ │ ├── main_menu.tscn
|
||||
│ │ ├── hud.tscn
|
||||
│ │ └── {{scene}}.tscn
|
||||
│ ├── components/
|
||||
│ │ ├── button.tscn
|
||||
│ │ └── {{component}}.tscn
|
||||
│ └── popups/
|
||||
│ └── {{popup}}.tscn
|
||||
```
|
||||
|
||||
**Script Organization:**
|
||||
- UI Logic: GDScript with static typing
|
||||
- Performance-critical: C# for complex systems
|
||||
- Autoload: UI manager singleton
|
||||
- id: theme-resources
|
||||
title: Theme Resource Setup
|
||||
template: |
|
||||
**Theme Hierarchy:**
|
||||
- Base Theme: res://themes/base_theme.tres
|
||||
- Variations: {{theme_variations}}
|
||||
|
||||
**Resource Preloading:**
|
||||
- Preload frequently used UI scenes
|
||||
- Load themes at startup
|
||||
- Cache StyleBox resources
|
||||
- id: input-configuration
|
||||
title: InputMap Configuration
|
||||
template: |
|
||||
**UI Actions:**
|
||||
- ui_accept: Space, Enter, Gamepad A
|
||||
- ui_cancel: Escape, Gamepad B
|
||||
- ui_up/down/left/right: Arrow keys, WASD, D-pad
|
||||
- ui_focus_next: Tab, Gamepad RB
|
||||
- ui_focus_prev: Shift+Tab, Gamepad LB
|
||||
- {{custom_actions}}
|
||||
|
||||
**Touch Gestures:**
|
||||
- Tap: ui_accept
|
||||
- Swipe: Navigation
|
||||
- Pinch: Zoom (if applicable)
|
||||
|
||||
- id: next-steps
|
||||
title: Next Steps
|
||||
instruction: |
|
||||
After completing the Godot UI/UX specification:
|
||||
|
||||
1. Review with game design team
|
||||
2. Create UI mockups considering Godot's Control nodes
|
||||
3. Prepare theme resources and StyleBoxes
|
||||
4. Set up TDD with GUT tests for UI components
|
||||
5. Note performance requirements (60+ FPS)
|
||||
sections:
|
||||
- id: immediate-actions
|
||||
title: Immediate Actions
|
||||
type: numbered-list
|
||||
template: |
|
||||
1. Create base theme resource (res://themes/base_theme.tres)
|
||||
2. Set up UI scene templates with proper anchoring
|
||||
3. Configure InputMap for UI navigation
|
||||
4. Write GUT tests for UI components
|
||||
5. Profile UI scenes to ensure 60+ FPS
|
||||
6. {{additional_action}}
|
||||
- id: godot-handoff-checklist
|
||||
title: Godot UI Handoff Checklist
|
||||
type: checklist
|
||||
items:
|
||||
- "All UI scenes mapped with .tscn files"
|
||||
- "Control node hierarchies defined"
|
||||
- "Theme resources prepared"
|
||||
- "InputMap actions configured"
|
||||
- "Anchor presets documented"
|
||||
- "60+ FPS performance validated"
|
||||
- "GUT test coverage planned"
|
||||
- "Language strategy decided (GDScript vs C#)"
|
||||
- "Accessibility features implemented"
|
||||
- "Touch controls configured"
|
||||
|
||||
- id: godot-ui-patterns
|
||||
title: Godot UI Design Patterns
|
||||
instruction: Document common Godot UI patterns and best practices used in the game.
|
||||
sections:
|
||||
- id: common-patterns
|
||||
title: Common UI Patterns
|
||||
template: |
|
||||
**Dialog System:**
|
||||
- Use PopupPanel nodes for modal dialogs
|
||||
- AcceptDialog/ConfirmationDialog for prompts
|
||||
- Signal pattern: dialog.popup_hide.connect(callback)
|
||||
|
||||
**Menu Navigation:**
|
||||
- TabContainer for multi-page interfaces
|
||||
- Tree node for hierarchical menus
|
||||
- Focus management with grab_focus()
|
||||
|
||||
**HUD Layout:**
|
||||
- MarginContainer for screen edges
|
||||
- Anchor presets for corner elements
|
||||
- CanvasLayer for overlay UI (stays on top)
|
||||
|
||||
**Inventory Grid:**
|
||||
- GridContainer with fixed columns
|
||||
- ItemList for scrollable lists
|
||||
- Drag and drop with Control._gui_input()
|
||||
|
||||
**Health/Mana Bars:**
|
||||
- ProgressBar with custom StyleBox
|
||||
- TextureProgressBar for themed bars
|
||||
- Tween for smooth value changes
|
||||
- id: signal-patterns
|
||||
title: UI Signal Patterns
|
||||
template: |
|
||||
**Button Signals:**
|
||||
```gdscript
|
||||
button.pressed.connect(_on_button_pressed)
|
||||
button.button_down.connect(_on_button_down)
|
||||
button.toggled.connect(_on_button_toggled)
|
||||
```
|
||||
|
||||
**Input Handling:**
|
||||
```gdscript
|
||||
func _gui_input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("ui_accept"):
|
||||
# Handle input with 60+ FPS maintained
|
||||
```
|
||||
|
||||
**Custom Signals:**
|
||||
```gdscript
|
||||
signal value_changed(new_value: float)
|
||||
signal item_selected(item_id: int)
|
||||
```
|
||||
|
||||
- id: checklist-results
|
||||
title: Checklist Results
|
||||
instruction: If a Godot UI/UX checklist exists, run it against this document and report results here.
|
||||
@@ -0,0 +1,620 @@
|
||||
template:
|
||||
id: godot-level-design-doc-template-v3
|
||||
name: Godot Level Design Document
|
||||
version: 3.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: docs/godot-level-design-document.md
|
||||
title: "{{game_title}} Godot Level Design Document"
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
|
||||
sections:
|
||||
- id: initial-setup
|
||||
instruction: |
|
||||
This template creates comprehensive Godot level design documentation focusing on scene structure, TileMap implementation, and performance optimization (60+ FPS). This document provides detail for creating Godot scenes (.tscn), implementing node hierarchies, and optimizing with object pooling.
|
||||
|
||||
If available, review: Game Design Document (GDD), Game Architecture Document, Language Strategy (GDScript vs C#). This document must align with 60+ FPS performance requirements and TDD practices (GUT/GoDotTest).
|
||||
|
||||
- id: introduction
|
||||
title: Introduction
|
||||
instruction: Establish the purpose and scope of level design for this game
|
||||
content: |
|
||||
This document defines the Godot level design framework for {{game_title}}, providing guidelines for creating performant, engaging levels using Godot's scene system, TileMap nodes, and Area2D/3D collision systems while maintaining 60+ FPS.
|
||||
|
||||
This framework ensures consistency across all level scenes (.tscn) while leveraging Godot's node inheritance, scene instancing, and object pooling for optimal performance.
|
||||
sections:
|
||||
- id: change-log
|
||||
title: Change Log
|
||||
instruction: Track document versions and changes
|
||||
type: table
|
||||
template: |
|
||||
| Date | Version | Description | Author |
|
||||
| :--- | :------ | :---------- | :----- |
|
||||
|
||||
- id: level-design-philosophy
|
||||
title: Level Design Philosophy
|
||||
instruction: Establish the overall approach to level design based on the game's core pillars and mechanics. Apply `tasks#advanced-elicitation` after presenting this section.
|
||||
sections:
|
||||
- id: design-principles
|
||||
title: Design Principles
|
||||
instruction: Define 3-5 core principles that guide all level design decisions
|
||||
type: numbered-list
|
||||
template: |
|
||||
**{{principle_name}}** - {{description}}
|
||||
- id: player-experience-goals
|
||||
title: Player Experience Goals
|
||||
instruction: Define what players should feel and learn in each level category
|
||||
template: |
|
||||
**Tutorial Levels:** {{experience_description}}
|
||||
**Standard Levels:** {{experience_description}}
|
||||
**Challenge Levels:** {{experience_description}}
|
||||
**Boss Levels:** {{experience_description}}
|
||||
- id: level-flow-framework
|
||||
title: Level Flow Framework
|
||||
instruction: Define the standard structure for level progression with performance targets
|
||||
template: |
|
||||
**Introduction Phase:** {{duration}} - {{purpose}} - Target: 60+ FPS
|
||||
**Development Phase:** {{duration}} - {{purpose}} - Object pooling active
|
||||
**Climax Phase:** {{duration}} - {{purpose}} - Peak performance critical
|
||||
**Resolution Phase:** {{duration}} - {{purpose}} - Scene cleanup required
|
||||
|
||||
- id: level-categories
|
||||
title: Level Categories
|
||||
instruction: Define different types of levels based on the GDD requirements. Each category should be specific enough for implementation.
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: level-category
|
||||
title: "{{category_name}} Levels"
|
||||
template: |
|
||||
**Purpose:** {{gameplay_purpose}}
|
||||
|
||||
**Target Duration:** {{min_time}} - {{max_time}} minutes
|
||||
|
||||
**Difficulty Range:** {{difficulty_scale}}
|
||||
|
||||
**Key Mechanics Featured:**
|
||||
|
||||
- {{mechanic_1}} - {{usage_description}}
|
||||
- {{mechanic_2}} - {{usage_description}}
|
||||
|
||||
**Player Objectives:**
|
||||
|
||||
- Primary: {{primary_objective}}
|
||||
- Secondary: {{secondary_objective}}
|
||||
- Hidden: {{secret_objective}}
|
||||
|
||||
**Success Criteria:**
|
||||
|
||||
- {{completion_requirement_1}}
|
||||
- {{completion_requirement_2}}
|
||||
|
||||
**Godot Technical Requirements:**
|
||||
|
||||
- Maximum nodes: {{node_limit}} active nodes
|
||||
- Performance target: 60+ FPS mandatory (frame time <16.67ms)
|
||||
- Memory budget: {{memory_limit}}MB scene memory
|
||||
- Draw calls: <{{draw_call_limit}} for level geometry
|
||||
- Object pools: Required for {{spawned_entities}}
|
||||
- Language: {{GDScript|C#}} for level logic - {{reason}}
|
||||
|
||||
- id: level-progression-system
|
||||
title: Level Progression System
|
||||
instruction: Define how players move through levels and how difficulty scales
|
||||
sections:
|
||||
- id: world-structure
|
||||
title: World Structure
|
||||
instruction: Define the Godot scene organization and resource structure
|
||||
template: |
|
||||
**Scene Organization:** {{linear|hub_world|open_world}}
|
||||
|
||||
**Total Level Scenes:** {{number}} .tscn files
|
||||
|
||||
**World Scene Breakdown:**
|
||||
|
||||
- World 1: {{level_count}} scenes - res://levels/world1/ - {{difficulty_range}}
|
||||
- World 2: {{level_count}} scenes - res://levels/world2/ - {{difficulty_range}}
|
||||
- World 3: {{level_count}} scenes - res://levels/world3/ - {{difficulty_range}}
|
||||
|
||||
**Scene Loading:** < 3 seconds with loading screen if needed
|
||||
**Scene Instancing:** Use PackedScene for repeated elements
|
||||
- id: difficulty-progression
|
||||
title: Difficulty Progression
|
||||
instruction: Define how challenge increases across the game
|
||||
sections:
|
||||
- id: progression-curve
|
||||
title: Progression Curve
|
||||
type: code
|
||||
language: text
|
||||
template: |
|
||||
Difficulty
|
||||
^ ___/```
|
||||
| /
|
||||
| / ___/```
|
||||
| / /
|
||||
| / /
|
||||
|/ /
|
||||
+-----------> Level Number
|
||||
Tutorial Early Mid Late
|
||||
- id: scaling-parameters
|
||||
title: Scaling Parameters
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Enemy count: {{start_count}} → {{end_count}} (pooled)
|
||||
- Enemy difficulty: {{start_diff}} → {{end_diff}}
|
||||
- Level complexity: {{start_complex}} → {{end_complex}}
|
||||
- Time pressure: {{start_time}} → {{end_time}}
|
||||
- Performance impact: Must maintain 60+ FPS at peak
|
||||
- id: unlock-requirements
|
||||
title: Unlock Requirements
|
||||
instruction: Define how players access new levels
|
||||
template: |
|
||||
**Progression Gates:**
|
||||
|
||||
- Linear progression: Complete previous level
|
||||
- Star requirements: {{star_count}} stars to unlock
|
||||
- Skill gates: Demonstrate {{skill_requirement}}
|
||||
- Optional content: {{unlock_condition}}
|
||||
|
||||
- id: level-design-components
|
||||
title: Level Design Components
|
||||
instruction: Define the building blocks used to create levels
|
||||
sections:
|
||||
- id: environmental-elements
|
||||
title: Environmental Elements
|
||||
instruction: Define Godot nodes and resources for level components
|
||||
template: |
|
||||
**TileMap Layers:**
|
||||
|
||||
- Background: TileMap node - {{tile_size}}px tiles
|
||||
- Collision: TileMap with physics layers
|
||||
- Foreground: TileMap for overlays
|
||||
|
||||
**Interactive Nodes:**
|
||||
|
||||
- {{node_1}}: Area2D/3D - {{signals_emitted}}
|
||||
- {{node_2}}: RigidBody2D/3D - {{physics_properties}}
|
||||
|
||||
**Hazard Nodes:**
|
||||
|
||||
- {{hazard_1}}: Area2D with damage signal
|
||||
- {{hazard_2}}: AnimationPlayer for moving hazards
|
||||
|
||||
**Performance:** All interactive elements use object pooling
|
||||
- id: collectibles-rewards
|
||||
title: Collectibles and Rewards
|
||||
instruction: Define all collectible items and their placement rules
|
||||
template: |
|
||||
**Collectible Types:**
|
||||
|
||||
- {{collectible_1}}: {{value_and_purpose}}
|
||||
- {{collectible_2}}: {{value_and_purpose}}
|
||||
|
||||
**Placement Guidelines:**
|
||||
|
||||
- Mandatory collectibles: {{placement_rules}}
|
||||
- Optional collectibles: {{placement_rules}}
|
||||
- Secret collectibles: {{placement_rules}}
|
||||
|
||||
**Reward Distribution:**
|
||||
|
||||
- Easy to find: {{percentage}}%
|
||||
- Moderate challenge: {{percentage}}%
|
||||
- High skill required: {{percentage}}%
|
||||
- id: enemy-placement-framework
|
||||
title: Enemy Placement Framework
|
||||
instruction: Define enemy node placement and pooling strategies
|
||||
template: |
|
||||
**Enemy Scene Types:**
|
||||
|
||||
- {{enemy_scene_1}}.tscn: {{node_type}} - {{ai_behavior}}
|
||||
- {{enemy_scene_2}}.tscn: {{node_type}} - {{ai_behavior}}
|
||||
|
||||
**Godot Placement Methods:**
|
||||
|
||||
- Spawn Points: Position2D/3D markers in scene
|
||||
- Dynamic Spawning: Object pool with max {{pool_size}}
|
||||
- Wave System: Timer-based with performance monitoring
|
||||
|
||||
**Performance Scaling:**
|
||||
|
||||
- Max active enemies: {{max_count}} to maintain 60+ FPS
|
||||
- LOD system: Disable AI beyond {{distance}} units
|
||||
- Pooling strategy: Reuse instances, never instantiate in gameplay
|
||||
|
||||
- id: level-creation-guidelines
|
||||
title: Level Creation Guidelines
|
||||
instruction: Provide specific guidelines for creating individual levels
|
||||
sections:
|
||||
- id: level-layout-principles
|
||||
title: Godot Level Layout Principles
|
||||
template: |
|
||||
**TileMap Design:**
|
||||
|
||||
- Tile size: {{tile_size}}x{{tile_size}} pixels
|
||||
- Grid dimensions: {{grid_width}}x{{grid_height}} tiles
|
||||
- Collision layers: {{collision_layer_count}}
|
||||
- Autotiling: {{autotile_enabled}} for efficiency
|
||||
|
||||
**Node-Based Navigation:**
|
||||
|
||||
- Navigation2D/3D setup: {{nav_mesh_config}}
|
||||
- Path2D for guided movement
|
||||
- Area2D triggers for zone transitions
|
||||
- Position2D markers for spawn points
|
||||
|
||||
**Performance Layout:**
|
||||
- Chunk size for streaming: {{chunk_size}}
|
||||
- Occlusion culling setup: {{occlusion_config}}
|
||||
- Draw call optimization: Batch similar tiles
|
||||
- id: pacing-and-flow
|
||||
title: Pacing and Flow
|
||||
instruction: Define how to control the rhythm and pace of gameplay within levels
|
||||
template: |
|
||||
**Action Sequences:**
|
||||
|
||||
- High intensity duration: {{max_duration}}
|
||||
- Rest period requirement: {{min_rest_time}}
|
||||
- Intensity variation: {{pacing_pattern}}
|
||||
|
||||
**Learning Sequences:**
|
||||
|
||||
- New mechanic introduction: {{teaching_method}}
|
||||
- Practice opportunity: {{practice_duration}}
|
||||
- Skill application: {{application_context}}
|
||||
- id: challenge-design
|
||||
title: Challenge Design
|
||||
instruction: Define how to create appropriate challenges for each level type
|
||||
template: |
|
||||
**Challenge Types:**
|
||||
|
||||
- Execution challenges: {{skill_requirements}}
|
||||
- Puzzle challenges: {{complexity_guidelines}}
|
||||
- Time challenges: {{time_pressure_rules}}
|
||||
- Resource challenges: {{resource_management}}
|
||||
|
||||
**Difficulty Calibration:**
|
||||
|
||||
- Skill check frequency: {{frequency_guidelines}}
|
||||
- Failure recovery: {{retry_mechanics}}
|
||||
- Hint system integration: {{help_system}}
|
||||
|
||||
- id: technical-implementation
|
||||
title: Godot Technical Implementation
|
||||
instruction: Define Godot-specific technical requirements for level scenes
|
||||
sections:
|
||||
- id: level-scene-structure
|
||||
title: Level Scene Structure
|
||||
instruction: Define Godot scene hierarchy and resource organization
|
||||
template: |
|
||||
**Scene File Format:**
|
||||
|
||||
- File type: .tscn (Godot scene)
|
||||
- Naming: `level_{{world}}_{{number}}.tscn`
|
||||
- Location: res://levels/{{world}}/
|
||||
- Resource format: .tres for level data
|
||||
|
||||
**Scene Hierarchy:**
|
||||
```
|
||||
Level (Node2D/Spatial)
|
||||
├── TileMap (background)
|
||||
├── TileMap (collision)
|
||||
├── TileMap (foreground)
|
||||
├── Entities (Node2D)
|
||||
│ ├── Enemies (pooled)
|
||||
│ └── Pickups (pooled)
|
||||
├── Triggers (Node2D)
|
||||
└── LevelLogic (Node with script)
|
||||
```
|
||||
sections:
|
||||
- id: level-resource-data
|
||||
title: Level Resource Data (.tres)
|
||||
type: code
|
||||
language: gdscript
|
||||
template: |
|
||||
# LevelData.gd - extends Resource
|
||||
class_name LevelData
|
||||
extends Resource
|
||||
|
||||
@export var level_id: String = "{{unique_identifier}}"
|
||||
@export var world_id: String = "{{world_identifier}}"
|
||||
@export var difficulty: float = {{difficulty_value}}
|
||||
@export var target_time: float = {{completion_time_seconds}}
|
||||
@export var target_fps: int = 60 # Mandatory
|
||||
|
||||
@export var objectives: Dictionary = {
|
||||
"primary": "{{primary_objective}}",
|
||||
"secondary": ["{{secondary_objectives}}"],
|
||||
"hidden": ["{{secret_objectives}}"]
|
||||
}
|
||||
|
||||
@export var performance_limits: Dictionary = {
|
||||
"max_enemies": {{enemy_pool_size}},
|
||||
"max_particles": {{particle_limit}},
|
||||
"max_draw_calls": {{draw_call_limit}}
|
||||
}
|
||||
|
||||
# Entity spawn data
|
||||
@export var spawn_points: Array[Vector2] = []
|
||||
@export var enemy_waves: Array[Resource] = []
|
||||
- id: godot-asset-integration
|
||||
title: Godot Asset Integration
|
||||
instruction: Define how Godot resources and assets are organized
|
||||
template: |
|
||||
**TileSet Resource:**
|
||||
|
||||
- Resource path: res://tilesets/{{tileset_name}}.tres
|
||||
- Tile size: {{tile_dimensions}}x{{tile_dimensions}}px
|
||||
- Physics layers: {{collision_layers}}
|
||||
- Autotile setup: {{autotile_config}}
|
||||
- Custom data layers: {{custom_properties}}
|
||||
|
||||
**Audio Integration:**
|
||||
|
||||
- AudioStreamPlayer2D for positional audio
|
||||
- Audio bus: "Level" for volume control
|
||||
- Stream format: .ogg for music, .wav for SFX
|
||||
- Preload critical sounds to avoid frame drops
|
||||
|
||||
**Texture Import Settings:**
|
||||
- Filter: Nearest (for pixel art) or Linear
|
||||
- Mipmaps: Disabled for 2D, Enabled for 3D
|
||||
- Compression: Lossless for important visuals
|
||||
- id: godot-performance-optimization
|
||||
title: Godot Performance Optimization
|
||||
instruction: Define Godot-specific optimization for 60+ FPS
|
||||
template: |
|
||||
**Node Limits (for 60+ FPS):**
|
||||
|
||||
- Maximum active nodes: {{node_limit}}
|
||||
- Maximum physics bodies: {{physics_limit}}
|
||||
- Maximum particles: {{particle_limit}} (use GPUParticles2D/3D)
|
||||
- Maximum lights: {{light_limit}}
|
||||
|
||||
**Memory Management:**
|
||||
|
||||
- Scene memory budget: {{scene_memory}}MB
|
||||
- Texture memory: {{texture_memory}}MB
|
||||
- Object pooling: Mandatory for all spawned entities
|
||||
- Scene loading: <3 seconds (show loading screen if longer)
|
||||
|
||||
**Godot Optimization Techniques:**
|
||||
|
||||
- VisibilityEnabler2D/3D for automatic culling
|
||||
- LOD using visibility ranges
|
||||
- Static body optimization for non-moving collision
|
||||
- YSort for efficient 2D depth sorting
|
||||
- Multimesh for repeated elements
|
||||
|
||||
**Language Strategy:**
|
||||
- Level logic: GDScript with static typing
|
||||
- Performance-critical systems: C# (no LINQ)
|
||||
|
||||
- id: godot-level-patterns
|
||||
title: Godot Level Design Patterns
|
||||
instruction: Document common Godot patterns for level implementation
|
||||
sections:
|
||||
- id: scene-inheritance
|
||||
title: Scene Inheritance Pattern
|
||||
template: |
|
||||
**Base Level Scene:**
|
||||
- res://levels/base_level.tscn
|
||||
- Contains common nodes (UI, pause, music)
|
||||
- Child scenes inherit and override
|
||||
|
||||
**Inherited Scenes:**
|
||||
- Each level extends base_level.tscn
|
||||
- Override specific properties
|
||||
- Maintain 60+ FPS through shared resources
|
||||
- id: tilemap-patterns
|
||||
title: TileMap Best Practices
|
||||
template: |
|
||||
**Layer Organization:**
|
||||
- Background: Decorative, no collision
|
||||
- Collision: Physics bodies, one-way platforms
|
||||
- Foreground: Overlay effects
|
||||
|
||||
**Autotiling Setup:**
|
||||
- 3x3 minimal or 16-tile for complex terrain
|
||||
- Custom data for gameplay properties
|
||||
- Collision shapes optimized per tile
|
||||
- id: spawning-patterns
|
||||
title: Entity Spawning Patterns
|
||||
template: |
|
||||
**Object Pooling (Mandatory):**
|
||||
```gdscript
|
||||
# Enemy pool manager
|
||||
var enemy_pool: Array = []
|
||||
var max_enemies: int = {{max_count}}
|
||||
|
||||
func _ready() -> void:
|
||||
# Pre-instantiate enemies
|
||||
for i in max_enemies:
|
||||
var enemy = enemy_scene.instantiate()
|
||||
enemy.set_process(false)
|
||||
enemy_pool.append(enemy)
|
||||
```
|
||||
|
||||
**Spawn Points:**
|
||||
- Use Position2D/3D markers
|
||||
- Group spawn points for wave management
|
||||
- Signal when spawn completes
|
||||
- id: performance-patterns
|
||||
title: Performance Optimization Patterns
|
||||
template: |
|
||||
**Visibility Management:**
|
||||
- VisibilityEnabler2D for off-screen culling
|
||||
- LOD groups for distance-based quality
|
||||
- Disable process for inactive entities
|
||||
|
||||
**Memory Management:**
|
||||
- Preload frequently used resources
|
||||
- Queue_free() with object pool return
|
||||
- Signal cleanup in _exit_tree()
|
||||
|
||||
**Draw Call Batching:**
|
||||
- Use same material/shader where possible
|
||||
- Batch static geometry
|
||||
- Minimize transparent overdraw
|
||||
|
||||
- id: level-testing-framework
|
||||
title: Level Testing Framework
|
||||
instruction: Define how levels should be tested and validated
|
||||
sections:
|
||||
- id: automated-testing
|
||||
title: Automated Testing
|
||||
template: |
|
||||
**Performance Testing (GUT/GoDotTest):**
|
||||
|
||||
- Frame rate validation: Must maintain 60+ FPS
|
||||
- Frame time monitoring: <16.67ms average
|
||||
- Memory leak detection: Check signal cleanup
|
||||
- Object pool verification: Ensure recycling works
|
||||
- Loading time: <3 seconds per scene
|
||||
|
||||
**Gameplay Testing (TDD Approach):**
|
||||
|
||||
- Write GUT tests for level completion paths
|
||||
- Test all Area2D triggers fire correctly
|
||||
- Verify collectible spawn points accessible
|
||||
- Test enemy AI with performance monitoring
|
||||
- Validate all signals connect/disconnect properly
|
||||
- id: manual-testing-protocol
|
||||
title: Manual Testing Protocol
|
||||
sections:
|
||||
- id: playtesting-checklist
|
||||
title: Godot Playtesting Checklist
|
||||
type: checklist
|
||||
items:
|
||||
- Level maintains 60+ FPS throughout gameplay
|
||||
- TileMap collision works correctly
|
||||
- All Area2D triggers activate properly
|
||||
- Object pooling functions without hiccups
|
||||
- Scene transitions take <3 seconds
|
||||
- Input responsiveness <50ms (3 frames)
|
||||
- No memory leaks from signals
|
||||
- Navigation mesh pathfinding works
|
||||
- id: player-experience-testing
|
||||
title: Player Experience Testing
|
||||
type: checklist
|
||||
items:
|
||||
- Tutorial levels teach effectively
|
||||
- Challenge feels fair and rewarding
|
||||
- Flow and pacing maintain engagement
|
||||
- Audio and visual feedback support gameplay
|
||||
- id: balance-validation
|
||||
title: Balance Validation
|
||||
template: |
|
||||
**Godot Metrics Collection:**
|
||||
|
||||
- FPS consistency: >95% of time at 60+ FPS
|
||||
- Completion rate: Target {{completion_percentage}}%
|
||||
- Average completion time: {{target_time}} ± {{variance}}
|
||||
- Object pool efficiency: >90% reuse rate
|
||||
- Draw calls per level: <{{draw_call_target}}
|
||||
|
||||
**Performance-Based Iteration:**
|
||||
|
||||
- If FPS drops: Reduce active enemies/particles
|
||||
- If loading slow: Optimize texture imports
|
||||
- If memory high: Check for signal leaks
|
||||
- Testing with Godot profiler mandatory
|
||||
|
||||
- id: content-creation-pipeline
|
||||
title: Godot Level Creation Pipeline
|
||||
instruction: Define the workflow for creating new Godot level scenes
|
||||
sections:
|
||||
- id: design-phase
|
||||
title: Design Phase
|
||||
template: |
|
||||
**Concept Development:**
|
||||
|
||||
1. Define level goals and performance targets (60+ FPS)
|
||||
2. Sketch TileMap layout and node placement
|
||||
3. Plan object pooling for spawned entities
|
||||
4. Choose language (GDScript vs C#) for level logic
|
||||
5. Estimate memory and draw call budget
|
||||
|
||||
**Godot Documentation Requirements:**
|
||||
|
||||
- Level scene hierarchy diagram
|
||||
- TileSet resource requirements
|
||||
- Signal flow documentation
|
||||
- Performance budget allocation
|
||||
- TDD test plan (GUT/GoDotTest)
|
||||
- id: implementation-phase
|
||||
title: Godot Implementation Phase
|
||||
template: |
|
||||
**Scene Creation (TDD Approach):**
|
||||
|
||||
1. Write GUT tests for level mechanics (RED phase)
|
||||
2. Create level scene (.tscn) structure
|
||||
3. Build TileMap layers (collision, visual, background)
|
||||
4. Implement object pools for enemies/pickups
|
||||
5. Add Area2D triggers and signals (GREEN phase)
|
||||
6. Configure Navigation2D mesh
|
||||
7. Optimize with static typing (REFACTOR phase)
|
||||
|
||||
**Godot Quality Assurance:**
|
||||
|
||||
1. Run GUT/GoDotTest suites
|
||||
2. Profile with Godot debugger (60+ FPS check)
|
||||
3. Verify object pooling efficiency
|
||||
4. Check memory usage and draw calls
|
||||
5. Test on minimum spec hardware
|
||||
- id: integration-phase
|
||||
title: Godot Integration Phase
|
||||
template: |
|
||||
**Scene Integration:**
|
||||
|
||||
1. Add to level scene autoload manager
|
||||
2. Connect to game state signals
|
||||
3. Integrate with save system (user:// path)
|
||||
4. Link achievements via signal system
|
||||
5. Set up scene transitions (<3 seconds)
|
||||
|
||||
**Final Godot Validation:**
|
||||
|
||||
1. Test scene in full game context
|
||||
2. Verify 60+ FPS with all systems active
|
||||
3. Export template testing (all platforms)
|
||||
4. Check InputMap works for all devices
|
||||
5. Validate object pools don't leak memory
|
||||
|
||||
- id: success-metrics
|
||||
title: Godot Level Success Metrics
|
||||
instruction: Define metrics for level design success with performance focus
|
||||
sections:
|
||||
- id: player-engagement
|
||||
title: Player Engagement
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Level completion rate: {{target_rate}}%
|
||||
- Replay rate: {{replay_target}}%
|
||||
- Time spent per level: {{engagement_time}}
|
||||
- Player satisfaction: {{satisfaction_target}}/10
|
||||
- Input responsiveness: <50ms feedback
|
||||
- id: godot-performance
|
||||
title: Godot Technical Performance
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Frame rate: 60+ FPS maintained {{fps_consistency}}%
|
||||
- Frame time: <16.67ms average
|
||||
- Scene loading: <3 seconds {{load_compliance}}%
|
||||
- Memory efficiency: {{memory_efficiency}}%
|
||||
- Object pool reuse: >90% efficiency
|
||||
- Draw calls: Within budget {{draw_compliance}}%
|
||||
- Signal leaks: 0 tolerance
|
||||
- Crash rate: <{{crash_threshold}}%
|
||||
- id: design-quality
|
||||
title: Design Quality
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Difficulty curve adherence: {{curve_accuracy}}
|
||||
- Node architecture efficiency: {{node_score}}
|
||||
- TileMap optimization: {{tilemap_score}}
|
||||
- Signal flow clarity: {{signal_score}}
|
||||
- TDD coverage: >80% (GUT/GoDotTest)
|
||||
- Language strategy appropriateness: {{language_score}}
|
||||
- Content accessibility: {{accessibility_rate}}%
|
||||
@@ -0,0 +1,418 @@
|
||||
template:
|
||||
id: game-market-research-template-v3
|
||||
name: Game Market Research Report
|
||||
version: 3.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: docs/game-market-research.md
|
||||
title: "Game Market Research Report: {{game_title}}"
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
elicitation: advanced-elicitation
|
||||
custom_elicitation:
|
||||
title: "Game Market Research Elicitation Actions"
|
||||
options:
|
||||
- "Expand platform market analysis (PC, Console, Mobile)"
|
||||
- "Deep dive into a specific player demographic"
|
||||
- "Analyze genre trends and player preferences"
|
||||
- "Compare to successful games in similar genre"
|
||||
- "Analyze monetization models (F2P, Premium, Hybrid)"
|
||||
- "Explore cross-platform opportunities"
|
||||
- "Evaluate streaming and content creator potential"
|
||||
- "Assess esports and competitive gaming potential"
|
||||
- "Analyze seasonal and regional market variations"
|
||||
- "Proceed to next section"
|
||||
|
||||
sections:
|
||||
- id: executive-summary
|
||||
title: Executive Summary
|
||||
instruction: Provide a high-level overview of key findings, target platforms, player demographics, monetization opportunities, and launch strategy recommendations. Write this section LAST after completing all other sections.
|
||||
|
||||
- id: research-objectives
|
||||
title: Research Objectives & Methodology
|
||||
instruction: This template guides the creation of a comprehensive game market research report. Begin by understanding target platforms, player demographics, genre positioning, and monetization strategies. Consider both direct competitors and substitute entertainment options.
|
||||
sections:
|
||||
- id: objectives
|
||||
title: Research Objectives
|
||||
instruction: |
|
||||
List the primary objectives of this game market research:
|
||||
- Target platform selection (PC/Console/Mobile/Cross-platform)
|
||||
- Genre positioning and differentiation
|
||||
- Player demographic identification
|
||||
- Monetization model selection
|
||||
- Launch timing and strategy
|
||||
- Marketing channel prioritization
|
||||
- id: methodology
|
||||
title: Research Methodology
|
||||
instruction: |
|
||||
Describe the research approach:
|
||||
- Data sources used (primary/secondary)
|
||||
- Analysis frameworks applied
|
||||
- Data collection timeframe
|
||||
- Limitations and assumptions
|
||||
|
||||
- id: market-overview
|
||||
title: Market Overview
|
||||
sections:
|
||||
- id: market-definition
|
||||
title: Game Market Definition
|
||||
instruction: |
|
||||
Define the game market being analyzed:
|
||||
- Genre and sub-genre classification
|
||||
- Platform scope (PC/Steam, Console/PS5/Xbox, Mobile/iOS/Android)
|
||||
- Geographic regions (NA, EU, Asia, Global)
|
||||
- Player segments (Casual, Core, Hardcore)
|
||||
- Age ratings and content restrictions
|
||||
- id: market-size-growth
|
||||
title: Game Market Size & Growth
|
||||
instruction: |
|
||||
Calculate market opportunity for the game. Consider:
|
||||
- Global games market size by platform
|
||||
- Genre-specific market share
|
||||
- Regional market variations
|
||||
- Seasonal trends (launch windows)
|
||||
- Digital vs physical distribution
|
||||
sections:
|
||||
- id: tam
|
||||
title: Total Addressable Market (TAM)
|
||||
instruction: |
|
||||
Calculate total game market opportunity:
|
||||
- Platform market size (PC: $X, Console: $Y, Mobile: $Z)
|
||||
- Genre market share (e.g., RPG: 15% of total)
|
||||
- Geographic reach potential
|
||||
- id: sam
|
||||
title: Serviceable Addressable Market (SAM)
|
||||
instruction: |
|
||||
Define reachable market based on:
|
||||
- Target platforms and distribution channels
|
||||
- Language localization plans
|
||||
- Age rating restrictions
|
||||
- Technical requirements (minimum specs)
|
||||
- id: som
|
||||
title: Serviceable Obtainable Market (SOM)
|
||||
instruction: |
|
||||
Realistic capture estimates:
|
||||
- Launch year projections
|
||||
- Marketing budget constraints
|
||||
- Competition intensity in genre
|
||||
- Platform holder relationships
|
||||
- id: market-trends
|
||||
title: Gaming Industry Trends & Drivers
|
||||
instruction: Analyze key trends shaping the gaming market including technology, player behavior, and business models
|
||||
sections:
|
||||
- id: key-trends
|
||||
title: Key Gaming Trends
|
||||
instruction: |
|
||||
Identify 5-7 major gaming trends:
|
||||
- Platform shifts (PC gaming growth, mobile dominance)
|
||||
- Genre popularity cycles (Battle Royale, Roguelike, etc.)
|
||||
- Monetization evolution (Battle Pass, NFTs, Subscriptions)
|
||||
- Social/Streaming integration (Twitch, YouTube Gaming)
|
||||
- Cross-platform play adoption
|
||||
- Cloud gaming emergence
|
||||
- VR/AR market development
|
||||
- id: growth-drivers
|
||||
title: Growth Drivers
|
||||
instruction: |
|
||||
Gaming market growth factors:
|
||||
- Expanding player demographics
|
||||
- Improved internet infrastructure
|
||||
- Mobile device penetration
|
||||
- Esports and streaming culture
|
||||
- Social gaming trends
|
||||
- Pandemic-driven adoption
|
||||
- id: market-inhibitors
|
||||
title: Market Inhibitors
|
||||
instruction: |
|
||||
Factors constraining growth:
|
||||
- Market saturation in genres
|
||||
- Rising development costs
|
||||
- Platform holder fees (30% cut)
|
||||
- Regulatory challenges (loot boxes, age ratings)
|
||||
- Discovery challenges (Steam has 50k+ games)
|
||||
- Player time constraints
|
||||
|
||||
- id: player-analysis
|
||||
title: Player Analysis
|
||||
sections:
|
||||
- id: player-segments
|
||||
title: Target Player Segments
|
||||
instruction: For each player segment, create detailed profiles including demographics, play patterns, platform preferences, and spending behavior
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: segment
|
||||
title: "Player Segment {{segment_number}}: {{segment_name}}"
|
||||
template: |
|
||||
- **Description:** {{player_type_overview}}
|
||||
- **Size:** {{number_of_players_market_value}}
|
||||
- **Demographics:** {{age_gender_location}}
|
||||
- **Play Patterns:** {{hours_per_week_session_length}}
|
||||
- **Platform Preference:** {{PC_console_mobile}}
|
||||
- **Genre Preferences:** {{favorite_genres}}
|
||||
- **Spending Behavior:** {{F2P_premium_whale_status}}
|
||||
- **Social Behavior:** {{solo_coop_competitive}}
|
||||
- id: player-motivations
|
||||
title: Player Motivation Analysis
|
||||
instruction: Understand why players engage with games using Bartle's taxonomy and SDT
|
||||
sections:
|
||||
- id: achievement-motivated
|
||||
title: Achievers
|
||||
instruction: Players who seek mastery, completion, high scores
|
||||
- id: social-motivated
|
||||
title: Socializers
|
||||
instruction: Players who value interaction, community, cooperation
|
||||
- id: exploration-motivated
|
||||
title: Explorers
|
||||
instruction: Players who enjoy discovery, lore, secrets
|
||||
- id: competition-motivated
|
||||
title: Killers/Competitors
|
||||
instruction: Players who seek dominance, PvP, rankings
|
||||
- id: player-journey
|
||||
title: Player Journey Mapping
|
||||
instruction: Map the player lifecycle from discovery to advocacy
|
||||
template: |
|
||||
For primary player segment:
|
||||
|
||||
1. **Discovery:** {{streamers_ads_friends_app_stores}}
|
||||
2. **Evaluation:** {{reviews_gameplay_videos_demos}}
|
||||
3. **Acquisition:** {{purchase_download_game_pass}}
|
||||
4. **Onboarding:** {{tutorial_difficulty_curve}}
|
||||
5. **Engagement:** {{core_loop_progression_social}}
|
||||
6. **Retention:** {{updates_seasons_events}}
|
||||
7. **Monetization:** {{DLC_MTX_battle_pass}}
|
||||
8. **Advocacy:** {{streaming_reviews_word_of_mouth}}
|
||||
|
||||
- id: competitive-landscape
|
||||
title: Game Competitive Landscape
|
||||
sections:
|
||||
- id: genre-competition
|
||||
title: Genre Competition Analysis
|
||||
instruction: |
|
||||
Analyze the competitive environment:
|
||||
- Direct genre competitors
|
||||
- Substitute entertainment (other genres, media)
|
||||
- Platform exclusives impact
|
||||
- Indie vs AAA dynamics
|
||||
- Release window competition
|
||||
- id: competitor-analysis
|
||||
title: Direct Competitor Analysis
|
||||
instruction: |
|
||||
For top 5-10 competing games:
|
||||
- Game title and developer/publisher
|
||||
- Platform availability
|
||||
- Launch date and lifecycle stage
|
||||
- Player count/sales estimates
|
||||
- Metacritic/Steam reviews
|
||||
- Monetization model
|
||||
- Content update cadence
|
||||
- Community size and engagement
|
||||
- id: competitive-positioning
|
||||
title: Competitive Positioning
|
||||
instruction: |
|
||||
Analyze positioning strategies:
|
||||
- Unique gameplay mechanics
|
||||
- Art style differentiation
|
||||
- Narrative/IP strength
|
||||
- Technical innovation (graphics, physics)
|
||||
- Community features
|
||||
- Monetization fairness
|
||||
- Platform optimization
|
||||
|
||||
- id: gaming-industry-analysis
|
||||
title: Gaming Industry Analysis
|
||||
sections:
|
||||
- id: gaming-five-forces
|
||||
title: Gaming Industry Five Forces
|
||||
instruction: Analyze forces specific to game development
|
||||
sections:
|
||||
- id: platform-power
|
||||
title: "Platform Holder Power: {{power_level}}"
|
||||
template: |
|
||||
- Steam/Epic/Console manufacturers control
|
||||
- 30% revenue share standard
|
||||
- Certification requirements
|
||||
- Featured placement influence
|
||||
- id: player-power
|
||||
title: "Player Power: {{power_level}}"
|
||||
template: |
|
||||
- Abundant game choices
|
||||
- Review bombing capability
|
||||
- Refund policies
|
||||
- Community influence
|
||||
- id: genre-rivalry
|
||||
title: "Genre Competition: {{intensity_level}}"
|
||||
template: |
|
||||
- Number of similar games
|
||||
- Release timing conflicts
|
||||
- Marketing spend requirements
|
||||
- Talent competition
|
||||
- id: entry-barriers
|
||||
title: "Barriers to Entry: {{barrier_level}}"
|
||||
template: |
|
||||
- Development costs
|
||||
- Technical expertise requirements
|
||||
- Marketing/visibility challenges
|
||||
- Platform relationships
|
||||
- id: entertainment-substitutes
|
||||
title: "Entertainment Alternatives: {{threat_level}}"
|
||||
template: |
|
||||
- Other game genres
|
||||
- Streaming services
|
||||
- Social media
|
||||
- Traditional entertainment
|
||||
- id: genre-lifecycle
|
||||
title: Genre Lifecycle Stage
|
||||
instruction: |
|
||||
Identify where your game genre is in its lifecycle:
|
||||
- Emerging (new mechanics, small audience)
|
||||
- Growth (expanding player base, innovation)
|
||||
- Mature (established conventions, large market)
|
||||
- Decline (decreasing interest, oversaturation)
|
||||
- Revival potential (nostalgia, modernization)
|
||||
|
||||
- id: opportunity-assessment
|
||||
title: Game Market Opportunity Assessment
|
||||
sections:
|
||||
- id: market-opportunities
|
||||
title: Game Market Opportunities
|
||||
instruction: Identify specific opportunities in the gaming market
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: opportunity
|
||||
title: "Opportunity {{opportunity_number}}: {{name}}"
|
||||
template: |
|
||||
- **Description:** {{opportunity_description}}
|
||||
- **Market Size:** {{player_base_revenue_potential}}
|
||||
- **Platform Focus:** {{PC_console_mobile}}
|
||||
- **Development Requirements:** {{time_budget_team}}
|
||||
- **Technical Requirements:** {{engine_tools_infrastructure}}
|
||||
- **Marketing Requirements:** {{budget_channels_influencers}}
|
||||
- **Risks:** {{competition_timing_execution}}
|
||||
- id: strategic-recommendations
|
||||
title: Game Launch Strategic Recommendations
|
||||
sections:
|
||||
- id: go-to-market
|
||||
title: Game Go-to-Market Strategy
|
||||
instruction: |
|
||||
Recommend game launch approach:
|
||||
- Platform launch sequence (PC first, console later, etc.)
|
||||
- Early Access vs Full Release
|
||||
- Geographic rollout (soft launch regions)
|
||||
- Marketing campaign timing
|
||||
- Influencer/streamer strategy
|
||||
- Community building approach
|
||||
- Steam wishlist campaign
|
||||
- id: monetization-strategy
|
||||
title: Monetization Strategy
|
||||
instruction: |
|
||||
Based on player analysis and genre standards:
|
||||
- Business model (Premium, F2P, Freemium, Subscription)
|
||||
- Price points ($19.99, $39.99, $59.99)
|
||||
- DLC/Season Pass strategy
|
||||
- Microtransaction approach (cosmetic only, P2W, etc.)
|
||||
- Battle Pass potential
|
||||
- Platform fees consideration (30% cut)
|
||||
- id: risk-mitigation
|
||||
title: Game Development Risk Mitigation
|
||||
instruction: |
|
||||
Key game industry risks and mitigation:
|
||||
- Launch window competition (AAA releases)
|
||||
- Platform certification delays
|
||||
- Streamer/influencer reception
|
||||
- Review bombing potential
|
||||
- Server/online infrastructure
|
||||
- Post-launch content pipeline
|
||||
- Community management needs
|
||||
- Regulatory (ESRB, PEGI, loot boxes)
|
||||
|
||||
- id: platform-analysis
|
||||
title: Platform-Specific Analysis
|
||||
sections:
|
||||
- id: platform-comparison
|
||||
title: Platform Comparison
|
||||
template: |
|
||||
| Platform | Market Size | Competition | Dev Cost | Revenue Share |
|
||||
|----------|------------|-------------|----------|---------------|
|
||||
| Steam/PC | {{size}} | {{competition}} | {{cost}} | 30% |
|
||||
| PlayStation | {{size}} | {{competition}} | {{cost}} | 30% |
|
||||
| Xbox | {{size}} | {{competition}} | {{cost}} | 30% |
|
||||
| Nintendo | {{size}} | {{competition}} | {{cost}} | 30% |
|
||||
| iOS | {{size}} | {{competition}} | {{cost}} | 30% |
|
||||
| Android | {{size}} | {{competition}} | {{cost}} | 30% |
|
||||
- id: distribution-channels
|
||||
title: Distribution Channel Analysis
|
||||
template: |
|
||||
**Digital Storefronts:**
|
||||
- Steam: {{pros_cons_requirements}}
|
||||
- Epic Games Store: {{12_percent_exclusivity}}
|
||||
- GOG: {{DRM_free_considerations}}
|
||||
- Itch.io: {{indie_friendly_revenue_share}}
|
||||
- Platform stores: {{certification_requirements}}
|
||||
|
||||
**Subscription Services:**
|
||||
- Game Pass: {{opportunity_requirements}}
|
||||
- PlayStation Plus: {{tier_considerations}}
|
||||
- Apple Arcade: {{exclusive_requirements}}
|
||||
|
||||
- id: marketing-channels
|
||||
title: Game Marketing Channel Analysis
|
||||
sections:
|
||||
- id: channel-effectiveness
|
||||
title: Marketing Channel Effectiveness
|
||||
template: |
|
||||
**Organic Channels:**
|
||||
- Steam Discovery: {{algorithm_factors}}
|
||||
- Platform Features: {{visibility_opportunities}}
|
||||
- Word of Mouth: {{virality_potential}}
|
||||
|
||||
**Paid Channels:**
|
||||
- Digital Ads: {{ROI_targeting_options}}
|
||||
- Influencer Partnerships: {{cost_reach_engagement}}
|
||||
- Gaming Media: {{PR_review_coverage}}
|
||||
|
||||
**Community Channels:**
|
||||
- Discord: {{community_building}}
|
||||
- Reddit: {{subreddit_engagement}}
|
||||
- Social Media: {{platform_specific_strategies}}
|
||||
- id: content-creator-strategy
|
||||
title: Content Creator & Streaming Strategy
|
||||
template: |
|
||||
**Streaming Platforms:**
|
||||
- Twitch: {{viewer_demographics_peak_times}}
|
||||
- YouTube Gaming: {{long_form_content}}
|
||||
- TikTok: {{viral_clips_potential}}
|
||||
|
||||
**Creator Engagement:**
|
||||
- Early access keys: {{timing_selection}}
|
||||
- Creator programs: {{incentives_support}}
|
||||
- Stream-friendly features: {{built_in_tools}}
|
||||
|
||||
- id: appendices
|
||||
title: Appendices
|
||||
sections:
|
||||
- id: data-sources
|
||||
title: A. Data Sources
|
||||
instruction: |
|
||||
Game industry sources:
|
||||
- Newzoo reports
|
||||
- SteamSpy/SteamDB data
|
||||
- App Annie/Sensor Tower mobile data
|
||||
- NPD/GfK/GSD sales data
|
||||
- Platform holder reports
|
||||
- id: genre-benchmarks
|
||||
title: B. Genre Success Benchmarks
|
||||
instruction: |
|
||||
Success metrics by genre:
|
||||
- Sales thresholds
|
||||
- Player retention rates
|
||||
- Monetization benchmarks
|
||||
- Review score correlations
|
||||
- id: seasonal-analysis
|
||||
title: C. Seasonal & Event Analysis
|
||||
instruction: |
|
||||
Release timing considerations:
|
||||
- Holiday seasons
|
||||
- Steam sales events
|
||||
- Competition calendar
|
||||
- Platform holder promotions
|
||||
Reference in New Issue
Block a user