* 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>
210 lines
12 KiB
YAML
210 lines
12 KiB
YAML
# <!-- 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.
|