Adding John Carmack agent (experimental) and more Godot implementation detail to game-architecture-tmpl.yaml
This commit is contained in:
parent
0dfa2d275c
commit
9ce630abdf
|
|
@ -5591,6 +5591,7 @@ workflow:
|
||||||
==================== END: .bmad-creative-writing/workflows/novel-greenfield-workflow.yaml ====================
|
==================== END: .bmad-creative-writing/workflows/novel-greenfield-workflow.yaml ====================
|
||||||
|
|
||||||
==================== START: .bmad-creative-writing/workflows/novel-serial-workflow.yaml ====================
|
==================== START: .bmad-creative-writing/workflows/novel-serial-workflow.yaml ====================
|
||||||
|
---
|
||||||
workflow:
|
workflow:
|
||||||
id: novel-serial-workflow
|
id: novel-serial-workflow
|
||||||
name: Iterative Release Novel Workflow
|
name: Iterative Release Novel Workflow
|
||||||
|
|
@ -5642,6 +5643,7 @@ workflow:
|
||||||
==================== END: .bmad-creative-writing/workflows/novel-serial-workflow.yaml ====================
|
==================== END: .bmad-creative-writing/workflows/novel-serial-workflow.yaml ====================
|
||||||
|
|
||||||
==================== START: .bmad-creative-writing/workflows/novel-snowflake-workflow.yaml ====================
|
==================== START: .bmad-creative-writing/workflows/novel-snowflake-workflow.yaml ====================
|
||||||
|
---
|
||||||
workflow:
|
workflow:
|
||||||
id: novel-snowflake-workflow
|
id: novel-snowflake-workflow
|
||||||
name: Snowflake Novel Workflow
|
name: Snowflake Novel Workflow
|
||||||
|
|
@ -5708,6 +5710,7 @@ workflow:
|
||||||
output: critic-review.md
|
output: critic-review.md
|
||||||
completion_criteria:
|
completion_criteria:
|
||||||
- critic-review.md exists
|
- critic-review.md exists
|
||||||
|
# end
|
||||||
==================== END: .bmad-creative-writing/workflows/novel-snowflake-workflow.yaml ====================
|
==================== END: .bmad-creative-writing/workflows/novel-snowflake-workflow.yaml ====================
|
||||||
|
|
||||||
==================== START: .bmad-creative-writing/workflows/novel-writing.yaml ====================
|
==================== START: .bmad-creative-writing/workflows/novel-writing.yaml ====================
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ agents:
|
||||||
- game-designer
|
- game-designer
|
||||||
- game-architect
|
- game-architect
|
||||||
- game-developer
|
- game-developer
|
||||||
|
- game-code-reviewer
|
||||||
- game-sm
|
- game-sm
|
||||||
workflows:
|
workflows:
|
||||||
- godot-game-dev-greenfield.md
|
- godot-game-dev-greenfield.md
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
# game-code-reviewer
|
||||||
|
|
||||||
|
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
|
||||||
|
|
||||||
|
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
|
||||||
|
|
||||||
|
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
IDE-FILE-RESOLUTION:
|
||||||
|
- FOR LATER USE ONLY - NOT FOR ACTIVATION, when executing commands that reference dependencies
|
||||||
|
- Dependencies map to {root}/{type}/{name}
|
||||||
|
- type=folder (tasks|templates|checklists|data|utils|etc...), name=file-name
|
||||||
|
- Example: review-code.md → {root}/tasks/review-code.md
|
||||||
|
- IMPORTANT: Only load these files when user requests specific command execution
|
||||||
|
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "review this"→*review, "check performance"→*performance-review), ALWAYS ask for clarification if no clear match.
|
||||||
|
activation-instructions:
|
||||||
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
||||||
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
||||||
|
- STEP 3: Greet user with your name/role and mention `*help` command
|
||||||
|
- DO NOT: Load any other agent files during activation
|
||||||
|
- ONLY load dependency files when user selects them for execution via command or request of a task
|
||||||
|
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
|
||||||
|
- CRITICAL WORKFLOW RULE: When executing tasks from dependencies, follow task instructions exactly as written - they are executable workflows, not reference material
|
||||||
|
- MANDATORY INTERACTION RULE: Tasks with elicit=true require user interaction using exact specified format - never skip elicitation for efficiency
|
||||||
|
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints
|
||||||
|
- When listing tasks/templates or presenting options during conversations, always show as numbered options list
|
||||||
|
- STAY IN CHARACTER! You are John Carmack - direct, uncompromising, performance-obsessed
|
||||||
|
- ALWAYS use ultrathink for deep technical analysis
|
||||||
|
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands
|
||||||
|
agent:
|
||||||
|
name: Carmack
|
||||||
|
id: game-code-reviewer
|
||||||
|
title: Code Performance Critic
|
||||||
|
icon: 🔥
|
||||||
|
whenToUse: Use for Godot game code reviews, performance analysis, architectural critiques, and uncompromising technical feedback
|
||||||
|
customization: null
|
||||||
|
persona:
|
||||||
|
role: John Carmack, legendary programmer known for Doom, Quake, and revolutionary graphics engines
|
||||||
|
style: Direct, uncompromising, performance-obsessed, no-nonsense technical feedback
|
||||||
|
identity: Review code with the uncompromising standards that created the foundations of modern gaming
|
||||||
|
focus: Performance implications, architectural decisions, algorithmic efficiency, and zero-tolerance for waste
|
||||||
|
core_principles:
|
||||||
|
- Performance First - Every cycle counts, every allocation matters
|
||||||
|
- Simplicity Over Cleverness - The simplest solution that works is the right solution
|
||||||
|
- No Wasted Abstractions - Abstractions must justify their existence with actual needs
|
||||||
|
- Direct Communication - No pleasantries, no padding, just facts
|
||||||
|
- Architecture Reality - Code should work with the platform, not against it
|
||||||
|
- Data Over Speculation - Profile, measure, prove - assumptions are worthless
|
||||||
|
- Zero Tolerance for Waste - Inefficiency is unacceptable, period
|
||||||
|
approach:
|
||||||
|
- Cut straight to what matters - no pleasantries, no padding
|
||||||
|
- If code is bad, say it's bad and explain exactly why
|
||||||
|
- If code is good, acknowledge it briefly and move on
|
||||||
|
- Always provide the specific fix or approach needed
|
||||||
|
- Focus on performance killers and architectural disasters first
|
||||||
|
review_priorities:
|
||||||
|
- Critical: Performance killers, architectural disasters, algorithm failures
|
||||||
|
- Important: Significant inefficiencies, maintenance nightmares, cache problems
|
||||||
|
- Minor: Style issues only if they impact readability of complex logic
|
||||||
|
example_responses:
|
||||||
|
- 'This O(n²) loop will destroy performance with any real dataset. Replace with a hash map lookup.'
|
||||||
|
- "You're allocating objects every frame. Pre-allocate or use object pooling."
|
||||||
|
- 'This abstraction adds complexity for no benefit. Delete it and use direct calls.'
|
||||||
|
- 'Good use of SIMD here. Move on.'
|
||||||
|
- 'Cache-unfriendly access pattern. Restructure for linear access.'
|
||||||
|
# All commands require * prefix when used (e.g., *help)
|
||||||
|
commands:
|
||||||
|
- help: Show numbered list of the following commands to allow selection
|
||||||
|
- review: Perform comprehensive code review of provided code or file
|
||||||
|
- performance-review: Focus specifically on performance implications and bottlenecks
|
||||||
|
- architecture-review: Evaluate architectural decisions and system design
|
||||||
|
- godot-review: Review Godot-specific code (GDScript/C#) for best practices
|
||||||
|
- profile-analysis: Analyze profiling data and identify optimization opportunities
|
||||||
|
- algorithm-review: Deep dive into algorithmic efficiency and complexity
|
||||||
|
- memory-review: Analyze memory allocation patterns and garbage collection impact
|
||||||
|
- quick-review: Rapid assessment focusing only on critical issues
|
||||||
|
- execute-checklist {checklist}: Run task execute-checklist (default->code-review-checklist)
|
||||||
|
- yolo: Toggle Yolo Mode - even more direct and unfiltered feedback
|
||||||
|
- exit: Say goodbye as Carmack, and then abandon inhabiting this persona
|
||||||
|
dependencies:
|
||||||
|
tasks:
|
||||||
|
- execute-checklist.md
|
||||||
|
```
|
||||||
|
|
@ -45,17 +45,17 @@ To identify the next logical game story based on project progress and epic defin
|
||||||
|
|
||||||
#### 3.2 Read Architecture Documents Based on Story Type
|
#### 3.2 Read Architecture Documents Based on Story Type
|
||||||
|
|
||||||
**For ALL Game Stories:** tech-stack.md, unity-project-structure.md, coding-standards.md, testing-resilience-architecture.md
|
**For ALL Game Stories:** tech-stack.md, godot-project-structure.md, coding-standards.md, testing-architecture.md
|
||||||
|
|
||||||
**For Gameplay/Mechanics Stories, additionally:** gameplay-systems-architecture.md, component-architecture-details.md, physics-config.md, input-system.md, state-machines.md, game-data-models.md
|
**For Gameplay/Mechanics Stories, additionally:** gameplay-systems-architecture.md, component-architecture-details.md, data-management.md
|
||||||
|
|
||||||
**For UI/UX Stories, additionally:** ui-architecture.md, ui-components.md, ui-state-management.md, scene-management.md
|
**For UI/UX Stories, additionally:** ui-system-2d.md, scene-standards.md
|
||||||
|
|
||||||
**For Backend/Services Stories, additionally:** game-data-models.md, data-persistence.md, save-system.md, analytics-integration.md, multiplayer-architecture.md
|
**For Backend/Services Stories, additionally:** data-management.md, analytics-integration.md, multiplayer-architecture.md
|
||||||
|
|
||||||
**For Graphics/Rendering Stories, additionally:** rendering-pipeline.md, shader-guidelines.md, sprite-management.md, particle-systems.md
|
**For Graphics/Rendering Stories, additionally:** shader-guidelines.md, sprite-management.md, particle-effects-2d.md
|
||||||
|
|
||||||
**For Audio Stories, additionally:** audio-architecture.md, audio-mixing.md, sound-banks.md
|
**For Audio Stories, additionally:** audio-system-2d.md
|
||||||
|
|
||||||
#### 3.3 Extract Story-Specific Technical Details
|
#### 3.3 Extract Story-Specific Technical Details
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -185,7 +185,7 @@ sections:
|
||||||
```gdscript
|
```gdscript
|
||||||
class_name PlayerProgress
|
class_name PlayerProgress
|
||||||
extends Resource
|
extends Resource
|
||||||
|
|
||||||
@export var {{progress_fields}}
|
@export var {{progress_fields}}
|
||||||
```
|
```
|
||||||
examples:
|
examples:
|
||||||
|
|
@ -245,7 +245,7 @@ sections:
|
||||||
|
|
||||||
**Level Flow Template:**
|
**Level Flow Template:**
|
||||||
|
|
||||||
- **Introduction:** {{intro_description}} - Area: {{unity_area_bounds}}
|
- **Introduction:** {{intro_description}} - Area: {{godot_area_bounds}}
|
||||||
- **Challenge:** {{main_challenge}} - Mechanics: {{active_components}}
|
- **Challenge:** {{main_challenge}} - Mechanics: {{active_components}}
|
||||||
- **Resolution:** {{completion_requirement}} - Trigger: {{completion_trigger}}
|
- **Resolution:** {{completion_requirement}} - Trigger: {{completion_trigger}}
|
||||||
|
|
||||||
|
|
@ -260,7 +260,7 @@ sections:
|
||||||
**World Structure:** {{linear|hub|open}}
|
**World Structure:** {{linear|hub|open}}
|
||||||
**Total Levels:** {{number}}
|
**Total Levels:** {{number}}
|
||||||
**Unlock Pattern:** {{progression_method}}
|
**Unlock Pattern:** {{progression_method}}
|
||||||
**Scene Management:** {{unity_scene_loading}}
|
**Scene Management:** {{godot_scene_loading}}
|
||||||
|
|
||||||
**Godot Scene Organization:**
|
**Godot Scene Organization:**
|
||||||
|
|
||||||
|
|
@ -275,9 +275,9 @@ sections:
|
||||||
instruction: Define Godot-specific technical requirements that will guide architecture and implementation decisions. Reference Godot documentation and best practices.
|
instruction: Define Godot-specific technical requirements that will guide architecture and implementation decisions. Reference Godot documentation and best practices.
|
||||||
elicit: true
|
elicit: true
|
||||||
choices:
|
choices:
|
||||||
render_pipeline: [ Forward+, Forward Mobile, Compatibility ]
|
render_pipeline: [Forward+, Forward Mobile, Compatibility]
|
||||||
scripting: [ GDScript, C#, Mixed ]
|
scripting: [GDScript, C#, Mixed]
|
||||||
physics: [ 2D Only, 3D Only, Hybrid ]
|
physics: [2D Only, 3D Only, Hybrid]
|
||||||
sections:
|
sections:
|
||||||
- id: godot-configuration
|
- id: godot-configuration
|
||||||
title: Godot Project Configuration
|
title: Godot Project Configuration
|
||||||
|
|
@ -288,83 +288,84 @@ sections:
|
||||||
**Physics:** {{2D Only|3D Only|Hybrid}}
|
**Physics:** {{2D Only|3D Only|Hybrid}}
|
||||||
**Scripting:** {{GDScript|C#|Mixed}}
|
**Scripting:** {{GDScript|C#|Mixed}}
|
||||||
**Target Platform:** {{Desktop|Mobile|Web|Console}}
|
**Target Platform:** {{Desktop|Mobile|Web|Console}}
|
||||||
|
|
||||||
**Required Packages:**
|
**Required Packages:**
|
||||||
|
|
||||||
- {{package_name}} {{version}} - {{purpose}}
|
- {{package_name}} {{version}} - {{purpose}}
|
||||||
|
|
||||||
**Project Settings:**
|
**Project Settings:**
|
||||||
|
|
||||||
- Color Space: {{Linear|Gamma}}
|
- Color Space: {{Linear|Gamma}}
|
||||||
- Quality Settings: {{quality_levels}}
|
- Quality Settings: {{quality_levels}}
|
||||||
- Physics Settings: {{physics_config}}
|
- Physics Settings: {{physics_config}}
|
||||||
examples:
|
examples:
|
||||||
- godot-plugin.example 1.0.0 - Asset loading and memory management
|
- godot-plugin.example 1.0.0 - Asset loading and memory management
|
||||||
- "Color Space: Linear, Quality: Mobile/Desktop presets, Gravity: -20" - id: performance-requirements
|
- "Color Space: Linear, Quality: Mobile/Desktop presets, Gravity: -20"
|
||||||
title: Performance Requirements
|
- id: performance-requirements
|
||||||
template: |
|
title: Performance Requirements
|
||||||
**Frame Rate:** {{fps_target}} FPS (minimum {{min_fps}} on low-end devices)
|
template: |
|
||||||
**Memory Usage:** <{{memory_limit}}MB heap, <{{texture_memory}}MB textures
|
**Frame Rate:** {{fps_target}} FPS (minimum {{min_fps}} on low-end devices)
|
||||||
**Load Times:** <{{load_time}}s initial, <{{level_load}}s between levels
|
**Memory Usage:** <{{memory_limit}}MB heap, <{{texture_memory}}MB textures
|
||||||
**Battery Usage:** Optimized for mobile devices - {{battery_target}} hours gameplay
|
**Load Times:** <{{load_time}}s initial, <{{level_load}}s between levels
|
||||||
|
**Battery Usage:** Optimized for mobile devices - {{battery_target}} hours gameplay
|
||||||
|
|
||||||
**Godot Profiler Targets:**
|
**Godot Profiler Targets:**
|
||||||
|
|
||||||
- CPU Frame Time: <{{cpu_time}}ms
|
- CPU Frame Time: <{{cpu_time}}ms
|
||||||
- GPU Frame Time: <{{gpu_time}}ms
|
- GPU Frame Time: <{{gpu_time}}ms
|
||||||
- GC Allocs: <{{gc_limit}}KB per frame
|
- GC Allocs: <{{gc_limit}}KB per frame
|
||||||
- Draw Calls: <{{draw_calls}} per frame
|
- Draw Calls: <{{draw_calls}} per frame
|
||||||
examples:
|
examples:
|
||||||
- "60 FPS (minimum 30), CPU: <16.67ms, GPU: <16.67ms, GC: <4KB, Draws: <50"
|
- "60 FPS (minimum 30), CPU: <16.67ms, GPU: <16.67ms, GC: <4KB, Draws: <50"
|
||||||
- id: platform-specific
|
- id: platform-specific
|
||||||
title: Platform Specific Requirements
|
title: Platform Specific Requirements
|
||||||
template: |
|
template: |
|
||||||
**Desktop:**
|
**Desktop:**
|
||||||
|
|
||||||
- Resolution: {{min_resolution}} - {{max_resolution}}
|
- Resolution: {{min_resolution}} - {{max_resolution}}
|
||||||
- Input: Keyboard, Mouse, Gamepad ({{gamepad_support}})
|
- Input: Keyboard, Mouse, Gamepad ({{gamepad_support}})
|
||||||
- Build Target: {{desktop_targets}}
|
- Build Target: {{desktop_targets}}
|
||||||
|
|
||||||
**Mobile:**
|
**Mobile:**
|
||||||
|
|
||||||
- Resolution: {{mobile_min}} - {{mobile_max}}
|
- Resolution: {{mobile_min}} - {{mobile_max}}
|
||||||
- Input: Touch, Accelerometer ({{sensor_support}})
|
- Input: Touch, Accelerometer ({{sensor_support}})
|
||||||
- OS: iOS {{ios_min}}+, Android {{android_min}}+ (API {{api_level}})
|
- OS: iOS {{ios_min}}+, Android {{android_min}}+ (API {{api_level}})
|
||||||
- Device Requirements: {{device_specs}}
|
- Device Requirements: {{device_specs}}
|
||||||
|
|
||||||
**Web (if applicable):**
|
**Web (if applicable):**
|
||||||
|
|
||||||
- WebGL Version: {{webgl_version}}
|
- WebGL Version: {{webgl_version}}
|
||||||
- Browser Support: {{browser_list}}
|
- Browser Support: {{browser_list}}
|
||||||
- Compression: {{compression_format}}
|
- Compression: {{compression_format}}
|
||||||
examples:
|
examples:
|
||||||
- "Resolution: 1280x720 - 4K, Gamepad: Xbox/PlayStation controllers via Input System"
|
- "Resolution: 1280x720 - 4K, Gamepad: Xbox/PlayStation controllers via Input System"
|
||||||
- id: asset-requirements
|
- id: asset-requirements
|
||||||
title: Asset Requirements
|
title: Asset Requirements
|
||||||
instruction: Define asset specifications for Godot import pipeline optimization
|
instruction: Define asset specifications for Godot import pipeline optimization
|
||||||
template: |
|
template: |
|
||||||
**2D Art Assets:**
|
**2D Art Assets:**
|
||||||
|
|
||||||
- Sprites: {{sprite_resolution}} at {{ppu}} PPU
|
- Sprites: {{sprite_resolution}} at {{ppu}} PPU
|
||||||
- Texture Format: {{texture_compression}}
|
- Texture Format: {{texture_compression}}
|
||||||
- Atlas Strategy: {{sprite_atlas_setup}}
|
- Atlas Strategy: {{sprite_atlas_setup}}
|
||||||
- Animation: {{animation_type}} at {{framerate}} FPS
|
- Animation: {{animation_type}} at {{framerate}} FPS
|
||||||
|
|
||||||
**Audio Assets:**
|
**Audio Assets:**
|
||||||
|
|
||||||
- Music: {{audio_format}} at {{sample_rate}} Hz
|
- Music: {{audio_format}} at {{sample_rate}} Hz
|
||||||
- SFX: {{sfx_format}} at {{sfx_sample_rate}} Hz
|
- SFX: {{sfx_format}} at {{sfx_sample_rate}} Hz
|
||||||
- Compression: {{audio_compression}}
|
- Compression: {{audio_compression}}
|
||||||
- 3D Audio: {{spatial_audio}}
|
- 3D Audio: {{spatial_audio}}
|
||||||
|
|
||||||
**UI Assets:**
|
**UI Assets:**
|
||||||
|
|
||||||
- Canvas Resolution: {{ui_resolution}}
|
- Canvas Resolution: {{ui_resolution}}
|
||||||
- UI Scale Mode: {{scale_mode}}
|
- UI Scale Mode: {{scale_mode}}
|
||||||
- Font: {{font_requirements}}
|
- Font: {{font_requirements}}
|
||||||
- Icon Sizes: {{icon_specifications}}
|
- Icon Sizes: {{icon_specifications}}
|
||||||
examples:
|
examples:
|
||||||
- "Sprites: 32x32 to 256x256 at 16 PPU, Format: RGBA32 for quality/RGBA16 for performance"
|
- "Sprites: 32x32 to 256x256 at 16 PPU, Format: RGBA32 for quality/RGBA16 for performance"
|
||||||
|
|
||||||
- id: technical-architecture-requirements
|
- id: technical-architecture-requirements
|
||||||
title: Technical Architecture Requirements
|
title: Technical Architecture Requirements
|
||||||
|
|
@ -378,7 +379,7 @@ sections:
|
||||||
- id: code-architecture
|
- id: code-architecture
|
||||||
title: Code Architecture Pattern
|
title: Code Architecture Pattern
|
||||||
template: |
|
template: |
|
||||||
**Architecture Pattern:** {{MVC|MVVM|ECS|Component-Based|Custom}}
|
**Architecture Pattern:** {{MVC|MVVM|Component-Based|Custom}}
|
||||||
|
|
||||||
**Core Systems Required:**
|
**Core Systems Required:**
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue