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:
sjennings
2025-09-06 13:49:21 -05:00
committed by GitHub
parent 076c104b2c
commit f20d572216
71 changed files with 64443 additions and 0 deletions

View File

@@ -0,0 +1,245 @@
workflow:
id: godot-game-dev-greenfield
name: Godot Game Development - Greenfield Project
description: Specialized workflow for creating games from concept to implementation using Godot Engine 4.x with GDScript and C#. Guides teams through Godot-specific design patterns, node-based architecture, scene composition, signal systems, and resource management. Emphasizes Godot's unique features like AnimationTree, shader language, and built-in physics while maintaining 60+ FPS performance targets.
type: greenfield
project_types:
- godot-2d-game
- godot-3d-game
- godot-mobile-game
- godot-web-export
- godot-vr-game
- godot-multiplayer-game
sequence:
- agent: game-designer
creates: project-brief.md
optional_steps:
- godot_genre_analysis
- godot_asset_store_research
- target_platform_capabilities
notes: "Define game concept with Godot's strengths in mind (2D pixel-perfect, procedural generation, shader effects). Consider Godot's export targets and platform-specific features. SAVE OUTPUT: Copy final project-brief.md to your project's docs/design/ folder."
- agent: game-designer
creates: game-design-doc.md
requires: project-brief.md
optional_steps:
- godot_node_system_planning
- scene_hierarchy_design
- input_map_configuration
notes: "Create Godot-specific GDD defining node hierarchies, scene transitions, input actions, and resource preloading strategies. Map mechanics to Godot's built-in nodes (Area2D, CharacterBody2D, RigidBody2D). SAVE OUTPUT: Copy final game-design-doc.md to your project's docs/design/ folder."
- agent: game-designer
creates: level-design-doc.md (optional)
requires: game-design-doc.md
optional_steps:
- tilemap_system_design
- scene_instancing_strategy
- godot_room_system_planning
notes: "OPTIONAL BUT RECOMMENDED: Design levels using Godot's TileMap, GridMap, or modular scene approach. Define scene instancing patterns, resource groups, and level streaming strategy. SAVE OUTPUT: Copy final level-design-doc.md to your project's docs/design/ folder."
- agent: game-pm
creates: prd.md
requires:
- project-brief.md
- game-design-doc.md
notes: "Creates PRD from project brief using game-prd-tmpl. SAVE OUTPUT: Copy final prd.md to your project's docs/ folder."
- agent: game-architect
creates: architecture.md
requires:
- game-design-doc.md
- prd.md
optional_steps:
- godot_autoload_architecture
- signal_bus_design
- resource_loading_strategy
- gdextension_evaluation
notes: "Design Godot-specific architecture: autoload singletons, signal bus patterns, scene tree organization, resource loading (preload vs load), and GDScript/C#/GDExtension strategy. Define custom nodes, resources, and editor tools. SAVE OUTPUT: Copy final architecture.md to your project's docs/architecture/ folder."
- agent: game-pm
updates: prd.md (if needed)
requires: architecture.md
condition: architecture_suggests_prd_changes
notes: "If game-architect suggests story changes, update PRD and re-export the complete unredacted prd.md to docs/ folder."
- agent: game-po
validates: all_artifacts
uses: po-master-checklist
notes: "Validates all documents for consistency and completeness. May require updates to any document."
- agent: various
updates: any_flagged_documents
condition: po_checklist_issues
notes: "If game-po finds issues, return to relevant agent to fix and re-export updated documents to docs/ folder."
- project_setup_guidance:
action: initialize_godot_project
notes: "Create Godot 4.x project with proper folder structure: scenes/, scripts/, resources/, shaders/, addons/. Configure project settings: rendering (Forward+/Mobile), physics tick rate, input map, autoloads. Install GUT for GDScript testing, configure export presets for target platforms."
- agent: game-po
action: shard_documents
creates: sharded_docs
requires: all_artifacts_in_project
notes: |
Shard documents for IDE development:
- Option A: Use PO agent to shard: @game-po then ask to shard docs/prd.md
- Option B: Manual: Drag shard-doc task + docs/prd.md into chat
- Creates docs/prd/ and docs/architecture/ folders with sharded content
- agent: game-sm
action: create_story
creates: story.md
requires: sharded_docs
repeats: for_each_epic
notes: |
Story creation cycle:
- SM Agent (New Chat): @game-sm → *create
- Creates next story from sharded docs
- Story starts in "Draft" status
- agent: game-qa
action: test_design
updates: story.md
requires: story.md
optional: true
condition: user_wants_test_design
notes: |
OPTIONAL: Design tests for draft story
- Analyze story for possible risks
- Create tests to mitigate those risks
- agent: game-po
action: review_draft_story
updates: story.md
requires: story.md
optional: true
condition: user_wants_story_review
notes: |
OPTIONAL: Review and approve draft story
- Review story completeness and alignment
- Update story status: Draft → Approved
- agent: game-dev
action: implement_story
creates: implementation_files
requires: story.md
notes: |
Dev Agent (New Chat): @game-dev
- Implements approved story
- Updates File List with all changes
- Marks story as "Review" when complete
- agent: game-qa
action: review_implementation
updates: implementation_files
requires: implementation_files
optional: true
notes: |
OPTIONAL: QA Agent (New Chat): @qa → review-story
- Senior dev review with refactoring ability
- Fixes small issues directly
- Leaves checklist for remaining items
- Updates story status (Review → Done or stays Review)
- agent: game-dev
action: address_qa_feedback
updates: implementation_files
condition: qa_left_unchecked_items
notes: |
If QA left unchecked items:
- Dev Agent (New Chat): Address remaining items
- Return to QA for final approval
- repeat_development_cycle: ""
action: continue_for_all_stories
notes: |
Repeat story cycle (SM → Dev → QA) for all epic stories
Continue until all stories in PRD are complete
- agent: game-po
action: epic_retrospective
creates: epic-retrospective.md
condition: epic_complete
optional: true
notes: |
OPTIONAL: After epic completion
- NOTE: epic-retrospective task coming soon
- Validate epic was completed correctly
- Document learnings and improvements
- workflow_end: ""
action: project_complete
notes: |
All stories implemented and reviewed!
Project development phase complete.
Reference: {root}/data/bmad-kb.md#IDE Development Workflow
flow_diagram: |
```mermaid
graph TD
A[Start: Greenfield Project] --> B[game-designer: project-brief.md]
B --> C[game-pm: prd.md]
C --> D[game-architect: architecture.md]
D --> E{Architecture suggests PRD changes?}
E -->|Yes| F[game-pm: update prd.md]
E-->|No| G[game-po: validate all artifacts]
F--> G
G --> I{game-po finds issues?}
I -->|Yes| J[Return to relevant agent for fixes]
I -->|No| K[game-po: shard documents]
J --> H
K --> L[game-sm: create story]
L --> M{Review draft story?}
M -->|Yes| N[game-po: review & approve story]
M -->|No| O[game-dev: implement story]
N --> O
O --> P{QA review?}
P -->|Yes| Q[game-qa: review implementation]
P -->|No| R{More stories?}
Q --> S{QA found issues?}
S -->|Yes| T[game-dev: address QA feedback]
S -->|No| R
T --> Q
R -->|Yes| L
R -->|No| U{Epic retrospective?}
U -->|Yes| V[game-po: epic retrospective]
U -->|No| W[Project Complete]
V --> W
B -.-> B1[Optional: brainstorming]
B -.-> B2[Optional: market research]
C -.-> C1[Optional: user research]
F -.-> D1[Optional: technical research]
style W fill:#90EE90
style K fill:#ADD8E6
style L fill:#ADD8E6
style O fill:#ADD8E6
style B fill:#FFE4B5
style C fill:#FFE4B5
style D fill:#FFE4B5
style E fill:#FFE4B5
style N fill:#F0E68C
style Q fill:#F0E68C
style V fill:#F0E68C
```
decision_guidance:
when_to_use:
- Building complex Godot games with multiple scenes
- Implementing networked multiplayer with Godot's high-level API
- Complex feature requirements
- Need comprehensive documentation
- Long-term maintenance expected
handoff_prompts:
analyst_to_pm: "Project brief is complete. Save it as docs/project-brief.md in your project, then create the PRD."
pm_to_ux: "PRD is ready. Save it as docs/prd.md in your project, then create the UI/UX specification."
ux_to_architect: "UI/UX spec complete. Save it as docs/front-end-spec.md in your project, then create the fullstack architecture."
architect_review: "Architecture complete. Save it as docs/architecture.md. Do you suggest any changes to the PRD stories or need new stories added?"
architect_to_pm: "Please update the PRD with the suggested story changes, then re-export the complete prd.md to docs/."
updated_to_po: "All documents ready in docs/ folder. Please validate all artifacts for consistency."
po_issues: "PO found issues with [document]. Please return to [agent] to fix and re-save the updated document."
complete: "All planning artifacts validated and saved in docs/ folder. Move to IDE environment to begin development."

View File

@@ -0,0 +1,213 @@
workflow:
id: godot-game-prototype
name: Godot Rapid Prototype Development
description: Godot-optimized workflow leveraging the engine's rapid prototyping features - @tool scripts, built-in nodes, CSG geometry, immediate mode GUI, and GDScript's duck typing. Emphasizes Godot's hot reload, in-editor testing, and scene-based iteration for validating game concepts in hours, not days.
type: prototype
project_types:
- godot-game-jam
- godot-mechanic-test
- godot-shader-demo
- godot-physics-sandbox
- godot-ui-experiment
- godot-multiplayer-test
prototype_sequence:
- step: concept_definition
agent: game-designer
duration: 15-30 minutes
creates: concept-summary.md
notes: Define concept leveraging Godot's strengths - built-in physics (Box2D/Bullet), particle systems, shaders, or procedural generation. Identify which Godot nodes will drive the core mechanic.
- step: rapid_design
agent: game-designer
duration: 30-60 minutes
creates: prototype-spec.md
requires: concept-summary.md
optional_steps:
- godot_node_selection
- scene_structure_sketch
- input_action_mapping
notes: Map mechanics to specific Godot nodes (Area2D, CharacterBody2D, RigidBody2D). Define scene hierarchy and signal connections. Plan InputMap actions for immediate responsiveness.
- step: technical_planning
agent: game-developer
duration: 15-30 minutes
creates: prototype-architecture.md
requires: prototype-spec.md
notes: Plan Godot-specific implementation - scene structure, autoload needs, @tool scripts for in-editor testing. Use GDScript for all prototype code (duck typing speeds iteration). Identify built-in nodes to leverage.
- step: implementation_stories
agent: game-sm
duration: 30-45 minutes
creates: prototype-stories/
requires: prototype-spec.md, prototype-architecture.md
notes: Create 3-5 Godot-focused stories - "Create player scene with CharacterBody2D", "Implement _physics_process movement", "Connect Area2D signals for interactions". Each story includes specific node types and Godot methods.
- step: iterative_development
agent: game-developer
duration: varies
implements: prototype-stories/
notes: Use Godot's hot reload and @tool scripts for real-time iteration. Test in editor with F6 (scene) and F5 (project). Profile with Godot's built-in monitors. Use Remote Debugger for mobile testing. Document which built-in nodes work best.
workflow_end:
action: prototype_evaluation
notes: "Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive."
game_jam_sequence:
- step: jam_concept
agent: game-designer
duration: 10-15 minutes
creates: jam-concept.md
notes: Match jam theme to Godot's built-in capabilities. Identify hero nodes (e.g., CPUParticles2D for effects, AudioStreamPlayer2D for dynamic audio). Define InputMap actions.
- step: jam_implementation
agent: game-developer
duration: varies (jam timeline)
creates: working-prototype
requires: jam-concept.md
notes: Build directly in Godot editor. Use built-in nodes, CSG for 3D prototypes, immediate GUI for quick UI. Leverage Godot's animation player for juice. Export to HTML5 for easy sharing. Keep scenes under 100 nodes for performance.
jam_workflow_end:
action: jam_submission
notes: Submit to game jam. Capture lessons learned and consider post-jam development if concept shows promise.
flow_diagram: |
```mermaid
graph TD
A[Start: Prototype Project] --> B{Development Context?}
B -->|Standard Prototype| C[game-designer: concept-summary.md]
B -->|Game Jam| D[game-designer: jam-concept.md]
C --> E[game-designer: prototype-spec.md]
E --> F[game-developer: prototype-architecture.md]
F --> G[game-sm: create prototype stories]
G --> H[game-developer: iterative implementation]
H --> I[Prototype Evaluation]
D --> J[game-developer: direct implementation]
J --> K[Game Jam Submission]
E -.-> E1[Optional: quick brainstorming]
E -.-> E2[Optional: reference research]
style I fill:#90EE90
style K fill:#90EE90
style C fill:#FFE4B5
style E fill:#FFE4B5
style F fill:#FFE4B5
style G fill:#FFE4B5
style H fill:#FFE4B5
style D fill:#FFB6C1
style J fill:#FFB6C1
```
godot_specific_features:
rapid_prototyping_tools:
- Tool scripts for in-editor testing without running
- CSG nodes for quick 3D geometry without modeling
- Immediate mode drawing for debug visualizations
- Built-in placeholder assets (icon.svg, default theme)
- Hot reload for GDScript changes
prototype_acceleration:
- F6 to test current scene instantly
- F5 to run full project
- Remote debugging on devices
- Live scene editing while running
- Inspector value tweaking in real-time
godot_node_combinations:
quick_player: CharacterBody2D + CollisionShape2D + Sprite2D
pickup_system: Area2D + signal connections
physics_toy: RigidBody2D + joints + constraints
particle_effects: CPUParticles2D with built-in parameters
ui_prototype: Control + containers + theme variations
export_for_testing:
- HTML5 export for easy web sharing
- One-click APK export for Android testing
- Debug export with remote debugger enabled
- PCK files for quick distribution
decision_guidance:
use_prototype_sequence_when:
- Testing Godot-specific features (shaders, particles, physics)
- Validating scene composition strategies
- Experimenting with Godot's node system combinations
- Building with Godot's animation tools (AnimationPlayer, AnimationTree)
- Testing Godot export targets (HTML5, Mobile, Desktop)
- Learning Godot's signal patterns and node communication
use_game_jam_sequence_when:
- Godot Game Jam participation
- Leveraging Godot's rapid development features
- Using CSG for quick 3D prototypes
- Building with Godot's immediate mode GUI
- Testing Godot's networking capabilities quickly
godot_prototype_best_practices:
godot_rapid_development:
- Use @tool scripts to test mechanics in editor without running
- Leverage Godot's hot reload for immediate feedback
- Build scenes incrementally with F6 (test current scene)
- Use placeholder Godot icons and CSG shapes
godot_node_leverage:
- Start with Godot's template projects when applicable
- Use Area2D for all detection/trigger needs
- Implement with CharacterBody2D's built-in movement methods
- Apply RigidBody2D for physics toys
- Use Control nodes with containers for auto-layout UI
godot_iteration_tools:
- Run scenes directly with F6 during development
- Use Godot's remote debugger for device testing
- Monitor performance with built-in profiler (not external tools)
- Adjust project settings in real-time
- Use editor's node property tweaking for balancing
godot_prototyping_patterns:
- Compose scenes, don't code everything
- Signal connections over hard references
- Export variables for in-editor tweaking
- AnimationPlayer for all timed events
- Resource files (.tres) for data-driven design
godot_prototype_evaluation:
godot_mechanic_validation:
- Does the mechanic work well with Godot's physics engine?
- Are Godot's built-in nodes sufficient or do we need custom?
- Can the mechanic scale with Godot's scene instancing?
- Does it perform well on Godot's HTML5 export?
godot_technical_assessment:
- Draw calls under 1000 (check Godot profiler)
- Physics bodies under 200 for mobile targets
- Scene tree depth reasonable (<10 levels)
- Proper use of Godot's threading if needed
- GDScript performance adequate or need C#/GDExtension?
godot_expansion_viability:
- Can current scene structure support more content?
- Are signals and groups set up for scaling?
- Is the resource system being used effectively?
- Would Godot's multiplayer API support this mechanic?
- Are we leveraging Godot's strengths (not fighting it)?
post_prototype_options:
iterate_and_improve:
action: continue_prototyping
when: Core mechanic shows promise but needs refinement
next_steps: Create new prototype iteration focusing on identified improvements
expand_to_full_game:
action: transition_to_full_development
when: Prototype validates strong game concept
next_steps: Use game-dev-greenfield workflow to create full game design and architecture
pivot_concept:
action: new_prototype_direction
when: Current mechanic doesn't work but insights suggest new direction
next_steps: Apply learnings to new prototype concept
archive_and_learn:
action: document_learnings
when: Prototype doesn't work but provides valuable insights
next_steps: Document lessons learned and move to next prototype concept
godot_time_boxing:
concept_phase: 30 min - Pick Godot nodes that drive your mechanic
design_phase: 1 hour - Sketch scene tree and signal flow
planning_phase: 30 min - Set up Godot project with right settings
implementation_phase: 2-hour sprints - F6 test after each sprint
polish_phase: 1 hour - Godot's animation tools for juice
godot_success_metrics:
godot_velocity:
- First scene running in Godot within 2 hours
- Core nodes connected and signaling within 4 hours
- Playable build exported (HTML5) within 8 hours
- All built-in Godot features identified for mechanic
godot_learning:
- Which Godot nodes best serve the mechanic
- Performance profile from Godot's monitors
- Export size and load time benchmarks
- Godot-specific optimizations discovered
- Editor workflow improvements identified
handoff_prompts:
concept_to_design: Concept defined with target Godot nodes identified. Create design spec mapping mechanics to Godot's systems.
design_to_technical: Design ready with scene structure planned. Create Godot project setup and technical approach.
technical_to_stories: Godot architecture defined. Create stories with specific node types and signal connections.
stories_to_implementation: Stories specify Godot implementation. Begin building in editor with F6 testing.
prototype_to_evaluation: Prototype running in Godot. Check profiler metrics and evaluate for expansion.