name: 'step-03-starter' description: 'Discover and evaluate game engine and starter template options'
workflow_path: '{installed_path}'
thisStepFile: './step-03-starter.md' nextStepFile: './step-04-decisions.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md'
engineMcps: '{workflow_path}/engine-mcps.yaml'
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
Progress: Step 3 of 9 - Next: Architectural Decisions
Discover and evaluate game engine options and starter templates based on project requirements. Modern engines/starters make many architectural decisions automatically.
{communication_language}stepsCompleted: [1, 2, 3] before loading next stepBased on project context, determine engine needs:
"Let's determine the right engine/framework for {{game_name}}.
Your Requirements:
Engine Considerations:
| Requirement | Implications |
|---|---|
| 2D vs 3D | {{2d_or_3d}} |
| Performance | {{performance_needs}} |
| Networking | {{networking_needs}} |
| Platform Export | {{platform_targets}} |
What engine or framework are you considering, or would you like recommendations?"
If user has an engine in mind:
Search the web to verify:
If user wants recommendations:
Based on requirements, search for appropriate options:
| Game Type | Recommended Options |
|---|---|
| 2D Indie | Godot, Unity 2D, Phaser |
| 3D Indie | Godot, Unity, Unreal |
| Web Game | Phaser, PixiJS, Three.js |
| Mobile | Unity, Godot, Flutter Flame |
| VR/AR | Unity, Unreal |
| Social/Platform | Roblox Studio |
Search web: "{{recommended_engine}} game engine {{current_year}} version features"
Present findings to user:
"Based on your requirements, here are the engine options:
Option 1: {{engine_1}}
Option 2: {{engine_2}}
Option 3: {{engine_3}}
Which engine would you like to use for {{game_name}}?"
After user selects engine:
"Engine Selected: {{selected_engine}} v{{version}}
Decisions Provided by Engine:
| Category | Decision | Provided By |
|---|---|---|
| Rendering | {{rendering_approach}} | Engine |
| Physics | {{physics_system}} | Engine |
| Audio | {{audio_system}} | Engine |
| Input | {{input_system}} | Engine |
| Scene Management | {{scene_approach}} | Engine |
| Build System | {{build_approach}} | Engine |
Remaining Decisions: These architectural decisions still need to be made: {{list_of_remaining_decisions}}
Does this look correct?"
Search for project templates:
Search web: "{{engine}} starter template {{game_type}} {{current_year}}"
If templates found:
"I found some starter templates for {{engine}}:
{{template_1}}:
{{command}}{{template_2}}:
{{command}}Would you like to use a starter template, or start from scratch?"
Load MCP knowledge base: {engineMcps}
Look up MCPs for the selected engine ({{selected_engine}}):
Search web: "{{selected_engine}} MCP server Model Context Protocol {{current_year}}"
Verify the repos listed in the knowledge base are still active and maintained. The MCP ecosystem moves fast - confirm star counts, recent commits, and compatibility with the user's engine version before recommending.
If multiple MCPs exist for the engine, present the default recommendation first (per recommendation_rules.multiple_options in the knowledge base), then mention alternatives. Include:
Present based on skill level:
For expert users:
"Available MCPs for {{selected_engine}}:
| MCP | Repo | Install | Requirements |
|---|---|---|---|
| {{mcp_name}} | {{repo}} | {{install_type}} | {{requirements}} |
Key capabilities: {{capability_summary}}
Include MCP setup in your architecture? [y/n]"
For beginner users:
"AI Development Tools
There's a way to give your AI assistant direct access to {{selected_engine}} - called MCP (Model Context Protocol) servers. Think of it like giving your AI a window into the game editor.
For {{selected_engine}}, I'd recommend {{mcp_name}} which lets the AI: {{friendly_capability_list}}
This means the AI can inspect your scenes and assets directly instead of relying on descriptions. It's optional but highly recommended for AI-assisted development.
Include MCP setup in your architecture? [y/n]"
Also recommend Context7 (upstash/context7): Lets the AI look up current {{selected_engine}} documentation instead of relying on training data. Works with any engine.
If user accepts MCPs:
Record selected MCPs for inclusion in Development Environment section:
If user declines:
"No problem - you can always add MCPs later. Let's continue with the architecture."
Based on the conversation, prepare the content:
## Engine & Framework
### Selected Engine
**{{engine_name}}** v{{version}}
**Rationale:** {{why_selected}}
### Project Initialization
{{if_starter_template}}
```bash
{{initialization_command}}
```
{{/if_starter_template}}
| Component | Solution | Notes |
|---|
{{engine_provided_table}}
The following decisions must be made explicitly:
{{remaining_decisions_list}}
### 8. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Engine & Framework section.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 7]
**Validation Check:**
- Is the engine version current?
- Are the engine-provided decisions accurate?
- Have we identified all remaining decisions?
**Select an Option:**
[A] Advanced Elicitation - Explore alternative engines
[P] Party Mode - Get perspectives on engine choice
[C] Continue - Save this and move to Architectural Decisions (Step 4 of 9)"
### 9. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [engine content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Engine requirements clearly identified
- Current versions verified via web search
- Engine-provided decisions documented
- Remaining decisions identified
- Starter template evaluated if applicable
- Game engine MCPs presented and user preference recorded
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3]
### SYSTEM FAILURE:
- Using hardcoded versions without verification
- Not documenting engine-provided decisions
- Proceeding without user engine selection
- Not presenting A/P/C menu after selection
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.