# 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.