bmad-method 4.43.0 → 4.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/CONTRIBUTING.md +2 -9
  2. package/README.md +0 -82
  3. package/bmad-core/agents/bmad-master.md +6 -6
  4. package/bmad-core/tasks/validate-next-story.md +1 -1
  5. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +5 -5
  6. package/dist/agents/architect.txt +5 -5
  7. package/dist/agents/bmad-master.txt +11 -11
  8. package/dist/agents/dev.txt +1 -1
  9. package/dist/agents/po.txt +1 -1
  10. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +1 -1
  11. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +1 -1
  12. package/dist/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.txt +1513 -0
  13. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-analyst.txt +3190 -0
  14. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-architect.txt +4499 -0
  15. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-designer.txt +3925 -0
  16. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-developer.txt +666 -0
  17. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-pm.txt +2381 -0
  18. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-po.txt +1612 -0
  19. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-qa.txt +1745 -0
  20. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-sm.txt +1208 -0
  21. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.txt +958 -0
  22. package/dist/expansion-packs/bmad-godot-game-dev/teams/godot-game-team.txt +27721 -0
  23. package/dist/teams/team-all.txt +6 -6
  24. package/dist/teams/team-fullstack.txt +6 -6
  25. package/dist/teams/team-ide-minimal.txt +1 -1
  26. package/dist/teams/team-no-ui.txt +6 -6
  27. package/docs/GUIDING-PRINCIPLES.md +3 -3
  28. package/docs/flattener.md +91 -0
  29. package/docs/versions.md +1 -1
  30. package/docs/working-in-the-brownfield.md +15 -6
  31. package/expansion-packs/bmad-godot-game-dev/README.md +244 -0
  32. package/expansion-packs/bmad-godot-game-dev/agent-teams/godot-game-team.yaml +18 -0
  33. package/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.md +147 -0
  34. package/expansion-packs/bmad-godot-game-dev/agents/game-analyst.md +84 -0
  35. package/expansion-packs/bmad-godot-game-dev/agents/game-architect.md +146 -0
  36. package/expansion-packs/bmad-godot-game-dev/agents/game-designer.md +78 -0
  37. package/expansion-packs/bmad-godot-game-dev/agents/game-developer.md +124 -0
  38. package/expansion-packs/bmad-godot-game-dev/agents/game-pm.md +82 -0
  39. package/expansion-packs/bmad-godot-game-dev/agents/game-po.md +115 -0
  40. package/expansion-packs/bmad-godot-game-dev/agents/game-qa.md +160 -0
  41. package/expansion-packs/bmad-godot-game-dev/agents/game-sm.md +66 -0
  42. package/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.md +75 -0
  43. package/expansion-packs/bmad-godot-game-dev/checklists/game-architect-checklist.md +377 -0
  44. package/expansion-packs/bmad-godot-game-dev/checklists/game-change-checklist.md +250 -0
  45. package/expansion-packs/bmad-godot-game-dev/checklists/game-design-checklist.md +225 -0
  46. package/expansion-packs/bmad-godot-game-dev/checklists/game-po-checklist.md +448 -0
  47. package/expansion-packs/bmad-godot-game-dev/checklists/game-story-dod-checklist.md +202 -0
  48. package/expansion-packs/bmad-godot-game-dev/config.yaml +30 -0
  49. package/expansion-packs/bmad-godot-game-dev/data/bmad-kb.md +811 -0
  50. package/expansion-packs/bmad-godot-game-dev/data/brainstorming-techniques.md +36 -0
  51. package/expansion-packs/bmad-godot-game-dev/data/development-guidelines.md +893 -0
  52. package/expansion-packs/bmad-godot-game-dev/data/elicitation-methods.md +156 -0
  53. package/expansion-packs/bmad-godot-game-dev/data/technical-preferences.md +3 -0
  54. package/expansion-packs/bmad-godot-game-dev/tasks/advanced-elicitation.md +110 -0
  55. package/expansion-packs/bmad-godot-game-dev/tasks/apply-qa-fixes.md +224 -0
  56. package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-epic.md +162 -0
  57. package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-story.md +149 -0
  58. package/expansion-packs/bmad-godot-game-dev/tasks/correct-course-game.md +159 -0
  59. package/expansion-packs/bmad-godot-game-dev/tasks/create-deep-research-prompt.md +278 -0
  60. package/expansion-packs/bmad-godot-game-dev/tasks/create-doc.md +103 -0
  61. package/expansion-packs/bmad-godot-game-dev/tasks/create-game-story.md +202 -0
  62. package/expansion-packs/bmad-godot-game-dev/tasks/document-project.md +343 -0
  63. package/expansion-packs/bmad-godot-game-dev/tasks/execute-checklist.md +88 -0
  64. package/expansion-packs/bmad-godot-game-dev/tasks/facilitate-brainstorming-session.md +136 -0
  65. package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-epic.md +160 -0
  66. package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-story.md +147 -0
  67. package/expansion-packs/bmad-godot-game-dev/tasks/game-design-brainstorming.md +290 -0
  68. package/expansion-packs/bmad-godot-game-dev/tasks/game-risk-profile.md +368 -0
  69. package/expansion-packs/bmad-godot-game-dev/tasks/game-test-design.md +219 -0
  70. package/expansion-packs/bmad-godot-game-dev/tasks/generate-ai-frontend-prompt.md +51 -0
  71. package/expansion-packs/bmad-godot-game-dev/tasks/kb-mode-interaction.md +77 -0
  72. package/expansion-packs/bmad-godot-game-dev/tasks/review-game-story.md +364 -0
  73. package/expansion-packs/bmad-godot-game-dev/tasks/shard-doc.md +187 -0
  74. package/expansion-packs/bmad-godot-game-dev/tasks/validate-game-story.md +208 -0
  75. package/expansion-packs/bmad-godot-game-dev/templates/brainstorming-output-tmpl.yaml +156 -0
  76. package/expansion-packs/bmad-godot-game-dev/templates/brownfield-prd-tmpl.yaml +281 -0
  77. package/expansion-packs/bmad-godot-game-dev/templates/competitor-analysis-tmpl.yaml +306 -0
  78. package/expansion-packs/bmad-godot-game-dev/templates/game-architecture-tmpl.yaml +1111 -0
  79. package/expansion-packs/bmad-godot-game-dev/templates/game-brief-tmpl.yaml +356 -0
  80. package/expansion-packs/bmad-godot-game-dev/templates/game-design-doc-tmpl.yaml +724 -0
  81. package/expansion-packs/bmad-godot-game-dev/templates/game-prd-tmpl.yaml +209 -0
  82. package/expansion-packs/bmad-godot-game-dev/templates/game-qa-gate-tmpl.yaml +186 -0
  83. package/expansion-packs/bmad-godot-game-dev/templates/game-story-tmpl.yaml +406 -0
  84. package/expansion-packs/bmad-godot-game-dev/templates/game-ui-spec-tmpl.yaml +601 -0
  85. package/expansion-packs/bmad-godot-game-dev/templates/level-design-doc-tmpl.yaml +620 -0
  86. package/expansion-packs/bmad-godot-game-dev/templates/market-research-tmpl.yaml +418 -0
  87. package/expansion-packs/bmad-godot-game-dev/utils/bmad-doc-template.md +327 -0
  88. package/expansion-packs/bmad-godot-game-dev/utils/workflow-management.md +71 -0
  89. package/expansion-packs/bmad-godot-game-dev/workflows/game-dev-greenfield.yaml +245 -0
  90. package/expansion-packs/bmad-godot-game-dev/workflows/game-prototype.yaml +213 -0
  91. package/package.json +1 -1
  92. package/release_notes.md +14 -2
  93. package/tools/flattener/ignoreRules.js +2 -0
  94. package/tools/installer/bin/bmad.js +2 -1
  95. package/tools/installer/config/install.config.yaml +16 -7
  96. package/tools/installer/lib/ide-setup.js +192 -80
  97. package/tools/installer/package.json +1 -1
  98. package/tools/upgraders/v3-to-v4-upgrader.js +1 -0
  99. package/test.md +0 -1
  100. /package/{implement-fork-friendly-ci.sh → tools/implement-fork-friendly-ci.sh} +0 -0
@@ -0,0 +1,620 @@
1
+ template:
2
+ id: godot-level-design-doc-template-v3
3
+ name: Godot Level Design Document
4
+ version: 3.0
5
+ output:
6
+ format: markdown
7
+ filename: docs/godot-level-design-document.md
8
+ title: "{{game_title}} Godot Level Design Document"
9
+
10
+ workflow:
11
+ mode: interactive
12
+
13
+ sections:
14
+ - id: initial-setup
15
+ instruction: |
16
+ 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.
17
+
18
+ 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).
19
+
20
+ - id: introduction
21
+ title: Introduction
22
+ instruction: Establish the purpose and scope of level design for this game
23
+ content: |
24
+ 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.
25
+
26
+ This framework ensures consistency across all level scenes (.tscn) while leveraging Godot's node inheritance, scene instancing, and object pooling for optimal performance.
27
+ sections:
28
+ - id: change-log
29
+ title: Change Log
30
+ instruction: Track document versions and changes
31
+ type: table
32
+ template: |
33
+ | Date | Version | Description | Author |
34
+ | :--- | :------ | :---------- | :----- |
35
+
36
+ - id: level-design-philosophy
37
+ title: Level Design Philosophy
38
+ 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.
39
+ sections:
40
+ - id: design-principles
41
+ title: Design Principles
42
+ instruction: Define 3-5 core principles that guide all level design decisions
43
+ type: numbered-list
44
+ template: |
45
+ **{{principle_name}}** - {{description}}
46
+ - id: player-experience-goals
47
+ title: Player Experience Goals
48
+ instruction: Define what players should feel and learn in each level category
49
+ template: |
50
+ **Tutorial Levels:** {{experience_description}}
51
+ **Standard Levels:** {{experience_description}}
52
+ **Challenge Levels:** {{experience_description}}
53
+ **Boss Levels:** {{experience_description}}
54
+ - id: level-flow-framework
55
+ title: Level Flow Framework
56
+ instruction: Define the standard structure for level progression with performance targets
57
+ template: |
58
+ **Introduction Phase:** {{duration}} - {{purpose}} - Target: 60+ FPS
59
+ **Development Phase:** {{duration}} - {{purpose}} - Object pooling active
60
+ **Climax Phase:** {{duration}} - {{purpose}} - Peak performance critical
61
+ **Resolution Phase:** {{duration}} - {{purpose}} - Scene cleanup required
62
+
63
+ - id: level-categories
64
+ title: Level Categories
65
+ instruction: Define different types of levels based on the GDD requirements. Each category should be specific enough for implementation.
66
+ repeatable: true
67
+ sections:
68
+ - id: level-category
69
+ title: "{{category_name}} Levels"
70
+ template: |
71
+ **Purpose:** {{gameplay_purpose}}
72
+
73
+ **Target Duration:** {{min_time}} - {{max_time}} minutes
74
+
75
+ **Difficulty Range:** {{difficulty_scale}}
76
+
77
+ **Key Mechanics Featured:**
78
+
79
+ - {{mechanic_1}} - {{usage_description}}
80
+ - {{mechanic_2}} - {{usage_description}}
81
+
82
+ **Player Objectives:**
83
+
84
+ - Primary: {{primary_objective}}
85
+ - Secondary: {{secondary_objective}}
86
+ - Hidden: {{secret_objective}}
87
+
88
+ **Success Criteria:**
89
+
90
+ - {{completion_requirement_1}}
91
+ - {{completion_requirement_2}}
92
+
93
+ **Godot Technical Requirements:**
94
+
95
+ - Maximum nodes: {{node_limit}} active nodes
96
+ - Performance target: 60+ FPS mandatory (frame time <16.67ms)
97
+ - Memory budget: {{memory_limit}}MB scene memory
98
+ - Draw calls: <{{draw_call_limit}} for level geometry
99
+ - Object pools: Required for {{spawned_entities}}
100
+ - Language: {{GDScript|C#}} for level logic - {{reason}}
101
+
102
+ - id: level-progression-system
103
+ title: Level Progression System
104
+ instruction: Define how players move through levels and how difficulty scales
105
+ sections:
106
+ - id: world-structure
107
+ title: World Structure
108
+ instruction: Define the Godot scene organization and resource structure
109
+ template: |
110
+ **Scene Organization:** {{linear|hub_world|open_world}}
111
+
112
+ **Total Level Scenes:** {{number}} .tscn files
113
+
114
+ **World Scene Breakdown:**
115
+
116
+ - World 1: {{level_count}} scenes - res://levels/world1/ - {{difficulty_range}}
117
+ - World 2: {{level_count}} scenes - res://levels/world2/ - {{difficulty_range}}
118
+ - World 3: {{level_count}} scenes - res://levels/world3/ - {{difficulty_range}}
119
+
120
+ **Scene Loading:** < 3 seconds with loading screen if needed
121
+ **Scene Instancing:** Use PackedScene for repeated elements
122
+ - id: difficulty-progression
123
+ title: Difficulty Progression
124
+ instruction: Define how challenge increases across the game
125
+ sections:
126
+ - id: progression-curve
127
+ title: Progression Curve
128
+ type: code
129
+ language: text
130
+ template: |
131
+ Difficulty
132
+ ^ ___/```
133
+ | /
134
+ | / ___/```
135
+ | / /
136
+ | / /
137
+ |/ /
138
+ +-----------> Level Number
139
+ Tutorial Early Mid Late
140
+ - id: scaling-parameters
141
+ title: Scaling Parameters
142
+ type: bullet-list
143
+ template: |
144
+ - Enemy count: {{start_count}} → {{end_count}} (pooled)
145
+ - Enemy difficulty: {{start_diff}} → {{end_diff}}
146
+ - Level complexity: {{start_complex}} → {{end_complex}}
147
+ - Time pressure: {{start_time}} → {{end_time}}
148
+ - Performance impact: Must maintain 60+ FPS at peak
149
+ - id: unlock-requirements
150
+ title: Unlock Requirements
151
+ instruction: Define how players access new levels
152
+ template: |
153
+ **Progression Gates:**
154
+
155
+ - Linear progression: Complete previous level
156
+ - Star requirements: {{star_count}} stars to unlock
157
+ - Skill gates: Demonstrate {{skill_requirement}}
158
+ - Optional content: {{unlock_condition}}
159
+
160
+ - id: level-design-components
161
+ title: Level Design Components
162
+ instruction: Define the building blocks used to create levels
163
+ sections:
164
+ - id: environmental-elements
165
+ title: Environmental Elements
166
+ instruction: Define Godot nodes and resources for level components
167
+ template: |
168
+ **TileMap Layers:**
169
+
170
+ - Background: TileMap node - {{tile_size}}px tiles
171
+ - Collision: TileMap with physics layers
172
+ - Foreground: TileMap for overlays
173
+
174
+ **Interactive Nodes:**
175
+
176
+ - {{node_1}}: Area2D/3D - {{signals_emitted}}
177
+ - {{node_2}}: RigidBody2D/3D - {{physics_properties}}
178
+
179
+ **Hazard Nodes:**
180
+
181
+ - {{hazard_1}}: Area2D with damage signal
182
+ - {{hazard_2}}: AnimationPlayer for moving hazards
183
+
184
+ **Performance:** All interactive elements use object pooling
185
+ - id: collectibles-rewards
186
+ title: Collectibles and Rewards
187
+ instruction: Define all collectible items and their placement rules
188
+ template: |
189
+ **Collectible Types:**
190
+
191
+ - {{collectible_1}}: {{value_and_purpose}}
192
+ - {{collectible_2}}: {{value_and_purpose}}
193
+
194
+ **Placement Guidelines:**
195
+
196
+ - Mandatory collectibles: {{placement_rules}}
197
+ - Optional collectibles: {{placement_rules}}
198
+ - Secret collectibles: {{placement_rules}}
199
+
200
+ **Reward Distribution:**
201
+
202
+ - Easy to find: {{percentage}}%
203
+ - Moderate challenge: {{percentage}}%
204
+ - High skill required: {{percentage}}%
205
+ - id: enemy-placement-framework
206
+ title: Enemy Placement Framework
207
+ instruction: Define enemy node placement and pooling strategies
208
+ template: |
209
+ **Enemy Scene Types:**
210
+
211
+ - {{enemy_scene_1}}.tscn: {{node_type}} - {{ai_behavior}}
212
+ - {{enemy_scene_2}}.tscn: {{node_type}} - {{ai_behavior}}
213
+
214
+ **Godot Placement Methods:**
215
+
216
+ - Spawn Points: Position2D/3D markers in scene
217
+ - Dynamic Spawning: Object pool with max {{pool_size}}
218
+ - Wave System: Timer-based with performance monitoring
219
+
220
+ **Performance Scaling:**
221
+
222
+ - Max active enemies: {{max_count}} to maintain 60+ FPS
223
+ - LOD system: Disable AI beyond {{distance}} units
224
+ - Pooling strategy: Reuse instances, never instantiate in gameplay
225
+
226
+ - id: level-creation-guidelines
227
+ title: Level Creation Guidelines
228
+ instruction: Provide specific guidelines for creating individual levels
229
+ sections:
230
+ - id: level-layout-principles
231
+ title: Godot Level Layout Principles
232
+ template: |
233
+ **TileMap Design:**
234
+
235
+ - Tile size: {{tile_size}}x{{tile_size}} pixels
236
+ - Grid dimensions: {{grid_width}}x{{grid_height}} tiles
237
+ - Collision layers: {{collision_layer_count}}
238
+ - Autotiling: {{autotile_enabled}} for efficiency
239
+
240
+ **Node-Based Navigation:**
241
+
242
+ - Navigation2D/3D setup: {{nav_mesh_config}}
243
+ - Path2D for guided movement
244
+ - Area2D triggers for zone transitions
245
+ - Position2D markers for spawn points
246
+
247
+ **Performance Layout:**
248
+ - Chunk size for streaming: {{chunk_size}}
249
+ - Occlusion culling setup: {{occlusion_config}}
250
+ - Draw call optimization: Batch similar tiles
251
+ - id: pacing-and-flow
252
+ title: Pacing and Flow
253
+ instruction: Define how to control the rhythm and pace of gameplay within levels
254
+ template: |
255
+ **Action Sequences:**
256
+
257
+ - High intensity duration: {{max_duration}}
258
+ - Rest period requirement: {{min_rest_time}}
259
+ - Intensity variation: {{pacing_pattern}}
260
+
261
+ **Learning Sequences:**
262
+
263
+ - New mechanic introduction: {{teaching_method}}
264
+ - Practice opportunity: {{practice_duration}}
265
+ - Skill application: {{application_context}}
266
+ - id: challenge-design
267
+ title: Challenge Design
268
+ instruction: Define how to create appropriate challenges for each level type
269
+ template: |
270
+ **Challenge Types:**
271
+
272
+ - Execution challenges: {{skill_requirements}}
273
+ - Puzzle challenges: {{complexity_guidelines}}
274
+ - Time challenges: {{time_pressure_rules}}
275
+ - Resource challenges: {{resource_management}}
276
+
277
+ **Difficulty Calibration:**
278
+
279
+ - Skill check frequency: {{frequency_guidelines}}
280
+ - Failure recovery: {{retry_mechanics}}
281
+ - Hint system integration: {{help_system}}
282
+
283
+ - id: technical-implementation
284
+ title: Godot Technical Implementation
285
+ instruction: Define Godot-specific technical requirements for level scenes
286
+ sections:
287
+ - id: level-scene-structure
288
+ title: Level Scene Structure
289
+ instruction: Define Godot scene hierarchy and resource organization
290
+ template: |
291
+ **Scene File Format:**
292
+
293
+ - File type: .tscn (Godot scene)
294
+ - Naming: `level_{{world}}_{{number}}.tscn`
295
+ - Location: res://levels/{{world}}/
296
+ - Resource format: .tres for level data
297
+
298
+ **Scene Hierarchy:**
299
+ ```
300
+ Level (Node2D/Spatial)
301
+ ├── TileMap (background)
302
+ ├── TileMap (collision)
303
+ ├── TileMap (foreground)
304
+ ├── Entities (Node2D)
305
+ │ ├── Enemies (pooled)
306
+ │ └── Pickups (pooled)
307
+ ├── Triggers (Node2D)
308
+ └── LevelLogic (Node with script)
309
+ ```
310
+ sections:
311
+ - id: level-resource-data
312
+ title: Level Resource Data (.tres)
313
+ type: code
314
+ language: gdscript
315
+ template: |
316
+ # LevelData.gd - extends Resource
317
+ class_name LevelData
318
+ extends Resource
319
+
320
+ @export var level_id: String = "{{unique_identifier}}"
321
+ @export var world_id: String = "{{world_identifier}}"
322
+ @export var difficulty: float = {{difficulty_value}}
323
+ @export var target_time: float = {{completion_time_seconds}}
324
+ @export var target_fps: int = 60 # Mandatory
325
+
326
+ @export var objectives: Dictionary = {
327
+ "primary": "{{primary_objective}}",
328
+ "secondary": ["{{secondary_objectives}}"],
329
+ "hidden": ["{{secret_objectives}}"]
330
+ }
331
+
332
+ @export var performance_limits: Dictionary = {
333
+ "max_enemies": {{enemy_pool_size}},
334
+ "max_particles": {{particle_limit}},
335
+ "max_draw_calls": {{draw_call_limit}}
336
+ }
337
+
338
+ # Entity spawn data
339
+ @export var spawn_points: Array[Vector2] = []
340
+ @export var enemy_waves: Array[Resource] = []
341
+ - id: godot-asset-integration
342
+ title: Godot Asset Integration
343
+ instruction: Define how Godot resources and assets are organized
344
+ template: |
345
+ **TileSet Resource:**
346
+
347
+ - Resource path: res://tilesets/{{tileset_name}}.tres
348
+ - Tile size: {{tile_dimensions}}x{{tile_dimensions}}px
349
+ - Physics layers: {{collision_layers}}
350
+ - Autotile setup: {{autotile_config}}
351
+ - Custom data layers: {{custom_properties}}
352
+
353
+ **Audio Integration:**
354
+
355
+ - AudioStreamPlayer2D for positional audio
356
+ - Audio bus: "Level" for volume control
357
+ - Stream format: .ogg for music, .wav for SFX
358
+ - Preload critical sounds to avoid frame drops
359
+
360
+ **Texture Import Settings:**
361
+ - Filter: Nearest (for pixel art) or Linear
362
+ - Mipmaps: Disabled for 2D, Enabled for 3D
363
+ - Compression: Lossless for important visuals
364
+ - id: godot-performance-optimization
365
+ title: Godot Performance Optimization
366
+ instruction: Define Godot-specific optimization for 60+ FPS
367
+ template: |
368
+ **Node Limits (for 60+ FPS):**
369
+
370
+ - Maximum active nodes: {{node_limit}}
371
+ - Maximum physics bodies: {{physics_limit}}
372
+ - Maximum particles: {{particle_limit}} (use GPUParticles2D/3D)
373
+ - Maximum lights: {{light_limit}}
374
+
375
+ **Memory Management:**
376
+
377
+ - Scene memory budget: {{scene_memory}}MB
378
+ - Texture memory: {{texture_memory}}MB
379
+ - Object pooling: Mandatory for all spawned entities
380
+ - Scene loading: <3 seconds (show loading screen if longer)
381
+
382
+ **Godot Optimization Techniques:**
383
+
384
+ - VisibilityEnabler2D/3D for automatic culling
385
+ - LOD using visibility ranges
386
+ - Static body optimization for non-moving collision
387
+ - YSort for efficient 2D depth sorting
388
+ - Multimesh for repeated elements
389
+
390
+ **Language Strategy:**
391
+ - Level logic: GDScript with static typing
392
+ - Performance-critical systems: C# (no LINQ)
393
+
394
+ - id: godot-level-patterns
395
+ title: Godot Level Design Patterns
396
+ instruction: Document common Godot patterns for level implementation
397
+ sections:
398
+ - id: scene-inheritance
399
+ title: Scene Inheritance Pattern
400
+ template: |
401
+ **Base Level Scene:**
402
+ - res://levels/base_level.tscn
403
+ - Contains common nodes (UI, pause, music)
404
+ - Child scenes inherit and override
405
+
406
+ **Inherited Scenes:**
407
+ - Each level extends base_level.tscn
408
+ - Override specific properties
409
+ - Maintain 60+ FPS through shared resources
410
+ - id: tilemap-patterns
411
+ title: TileMap Best Practices
412
+ template: |
413
+ **Layer Organization:**
414
+ - Background: Decorative, no collision
415
+ - Collision: Physics bodies, one-way platforms
416
+ - Foreground: Overlay effects
417
+
418
+ **Autotiling Setup:**
419
+ - 3x3 minimal or 16-tile for complex terrain
420
+ - Custom data for gameplay properties
421
+ - Collision shapes optimized per tile
422
+ - id: spawning-patterns
423
+ title: Entity Spawning Patterns
424
+ template: |
425
+ **Object Pooling (Mandatory):**
426
+ ```gdscript
427
+ # Enemy pool manager
428
+ var enemy_pool: Array = []
429
+ var max_enemies: int = {{max_count}}
430
+
431
+ func _ready() -> void:
432
+ # Pre-instantiate enemies
433
+ for i in max_enemies:
434
+ var enemy = enemy_scene.instantiate()
435
+ enemy.set_process(false)
436
+ enemy_pool.append(enemy)
437
+ ```
438
+
439
+ **Spawn Points:**
440
+ - Use Position2D/3D markers
441
+ - Group spawn points for wave management
442
+ - Signal when spawn completes
443
+ - id: performance-patterns
444
+ title: Performance Optimization Patterns
445
+ template: |
446
+ **Visibility Management:**
447
+ - VisibilityEnabler2D for off-screen culling
448
+ - LOD groups for distance-based quality
449
+ - Disable process for inactive entities
450
+
451
+ **Memory Management:**
452
+ - Preload frequently used resources
453
+ - Queue_free() with object pool return
454
+ - Signal cleanup in _exit_tree()
455
+
456
+ **Draw Call Batching:**
457
+ - Use same material/shader where possible
458
+ - Batch static geometry
459
+ - Minimize transparent overdraw
460
+
461
+ - id: level-testing-framework
462
+ title: Level Testing Framework
463
+ instruction: Define how levels should be tested and validated
464
+ sections:
465
+ - id: automated-testing
466
+ title: Automated Testing
467
+ template: |
468
+ **Performance Testing (GUT/GoDotTest):**
469
+
470
+ - Frame rate validation: Must maintain 60+ FPS
471
+ - Frame time monitoring: <16.67ms average
472
+ - Memory leak detection: Check signal cleanup
473
+ - Object pool verification: Ensure recycling works
474
+ - Loading time: <3 seconds per scene
475
+
476
+ **Gameplay Testing (TDD Approach):**
477
+
478
+ - Write GUT tests for level completion paths
479
+ - Test all Area2D triggers fire correctly
480
+ - Verify collectible spawn points accessible
481
+ - Test enemy AI with performance monitoring
482
+ - Validate all signals connect/disconnect properly
483
+ - id: manual-testing-protocol
484
+ title: Manual Testing Protocol
485
+ sections:
486
+ - id: playtesting-checklist
487
+ title: Godot Playtesting Checklist
488
+ type: checklist
489
+ items:
490
+ - Level maintains 60+ FPS throughout gameplay
491
+ - TileMap collision works correctly
492
+ - All Area2D triggers activate properly
493
+ - Object pooling functions without hiccups
494
+ - Scene transitions take <3 seconds
495
+ - Input responsiveness <50ms (3 frames)
496
+ - No memory leaks from signals
497
+ - Navigation mesh pathfinding works
498
+ - id: player-experience-testing
499
+ title: Player Experience Testing
500
+ type: checklist
501
+ items:
502
+ - Tutorial levels teach effectively
503
+ - Challenge feels fair and rewarding
504
+ - Flow and pacing maintain engagement
505
+ - Audio and visual feedback support gameplay
506
+ - id: balance-validation
507
+ title: Balance Validation
508
+ template: |
509
+ **Godot Metrics Collection:**
510
+
511
+ - FPS consistency: >95% of time at 60+ FPS
512
+ - Completion rate: Target {{completion_percentage}}%
513
+ - Average completion time: {{target_time}} ± {{variance}}
514
+ - Object pool efficiency: >90% reuse rate
515
+ - Draw calls per level: <{{draw_call_target}}
516
+
517
+ **Performance-Based Iteration:**
518
+
519
+ - If FPS drops: Reduce active enemies/particles
520
+ - If loading slow: Optimize texture imports
521
+ - If memory high: Check for signal leaks
522
+ - Testing with Godot profiler mandatory
523
+
524
+ - id: content-creation-pipeline
525
+ title: Godot Level Creation Pipeline
526
+ instruction: Define the workflow for creating new Godot level scenes
527
+ sections:
528
+ - id: design-phase
529
+ title: Design Phase
530
+ template: |
531
+ **Concept Development:**
532
+
533
+ 1. Define level goals and performance targets (60+ FPS)
534
+ 2. Sketch TileMap layout and node placement
535
+ 3. Plan object pooling for spawned entities
536
+ 4. Choose language (GDScript vs C#) for level logic
537
+ 5. Estimate memory and draw call budget
538
+
539
+ **Godot Documentation Requirements:**
540
+
541
+ - Level scene hierarchy diagram
542
+ - TileSet resource requirements
543
+ - Signal flow documentation
544
+ - Performance budget allocation
545
+ - TDD test plan (GUT/GoDotTest)
546
+ - id: implementation-phase
547
+ title: Godot Implementation Phase
548
+ template: |
549
+ **Scene Creation (TDD Approach):**
550
+
551
+ 1. Write GUT tests for level mechanics (RED phase)
552
+ 2. Create level scene (.tscn) structure
553
+ 3. Build TileMap layers (collision, visual, background)
554
+ 4. Implement object pools for enemies/pickups
555
+ 5. Add Area2D triggers and signals (GREEN phase)
556
+ 6. Configure Navigation2D mesh
557
+ 7. Optimize with static typing (REFACTOR phase)
558
+
559
+ **Godot Quality Assurance:**
560
+
561
+ 1. Run GUT/GoDotTest suites
562
+ 2. Profile with Godot debugger (60+ FPS check)
563
+ 3. Verify object pooling efficiency
564
+ 4. Check memory usage and draw calls
565
+ 5. Test on minimum spec hardware
566
+ - id: integration-phase
567
+ title: Godot Integration Phase
568
+ template: |
569
+ **Scene Integration:**
570
+
571
+ 1. Add to level scene autoload manager
572
+ 2. Connect to game state signals
573
+ 3. Integrate with save system (user:// path)
574
+ 4. Link achievements via signal system
575
+ 5. Set up scene transitions (<3 seconds)
576
+
577
+ **Final Godot Validation:**
578
+
579
+ 1. Test scene in full game context
580
+ 2. Verify 60+ FPS with all systems active
581
+ 3. Export template testing (all platforms)
582
+ 4. Check InputMap works for all devices
583
+ 5. Validate object pools don't leak memory
584
+
585
+ - id: success-metrics
586
+ title: Godot Level Success Metrics
587
+ instruction: Define metrics for level design success with performance focus
588
+ sections:
589
+ - id: player-engagement
590
+ title: Player Engagement
591
+ type: bullet-list
592
+ template: |
593
+ - Level completion rate: {{target_rate}}%
594
+ - Replay rate: {{replay_target}}%
595
+ - Time spent per level: {{engagement_time}}
596
+ - Player satisfaction: {{satisfaction_target}}/10
597
+ - Input responsiveness: <50ms feedback
598
+ - id: godot-performance
599
+ title: Godot Technical Performance
600
+ type: bullet-list
601
+ template: |
602
+ - Frame rate: 60+ FPS maintained {{fps_consistency}}%
603
+ - Frame time: <16.67ms average
604
+ - Scene loading: <3 seconds {{load_compliance}}%
605
+ - Memory efficiency: {{memory_efficiency}}%
606
+ - Object pool reuse: >90% efficiency
607
+ - Draw calls: Within budget {{draw_compliance}}%
608
+ - Signal leaks: 0 tolerance
609
+ - Crash rate: <{{crash_threshold}}%
610
+ - id: design-quality
611
+ title: Design Quality
612
+ type: bullet-list
613
+ template: |
614
+ - Difficulty curve adherence: {{curve_accuracy}}
615
+ - Node architecture efficiency: {{node_score}}
616
+ - TileMap optimization: {{tilemap_score}}
617
+ - Signal flow clarity: {{signal_score}}
618
+ - TDD coverage: >80% (GUT/GoDotTest)
619
+ - Language strategy appropriateness: {{language_score}}
620
+ - Content accessibility: {{accessibility_rate}}%