Files
BMAD-METHOD/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md
PinkyD 5d81c75f4d Feature/expansionpack 2d unity game dev (#332)
* Added 1.0 files

* Converted agents, and templates to new format. Updated filenames to include extensions like in unity-2d-game-team.yaml, Updated some wordage in workflow, config, and increased minor version number

* Forgot to remove unused startup section in game-sm since it's moved to activation-instructions, now fixed.

* Updated verbosity for development workflow in development-guidenlines.md

* built the web-dist files for the expansion pack

* Synched with main repo and rebuilt dist

* Added enforcement of game-design-checklist to designer persona

* Updated with new changes to phaser epack that seem relevant to discussion we had on discord for summarizing documentation updates

* updated dist build for our epack
2025-07-18 19:14:12 -05:00

9.3 KiB

Game Development BMad Knowledge Base

Overview

This game development expansion of BMad-Method specializes in creating 2D games using Unity and C#. It extends the core BMad framework with game-specific agents, workflows, and best practices for professional game development.

Game Development Focus

  • Target Engine: Unity 2022 LTS or newer with C# 10+
  • Platform Strategy: Cross-platform (PC, Console, Mobile) with a focus on 2D
  • Development Approach: Agile story-driven development
  • Performance Target: Stable frame rate on target devices
  • Architecture: Component-based architecture using Unity's best practices

Core Game Development Philosophy

Player-First Development

You are developing games as a "Player Experience CEO" - thinking like a game director with unlimited creative resources and a singular vision for player enjoyment. Your AI agents are your specialized game development team:

  • Direct: Provide clear game design vision and player experience goals
  • Refine: Iterate on gameplay mechanics until they're compelling
  • Oversee: Maintain creative alignment across all development disciplines
  • Playfocus: Every decision serves the player experience

Game Development Principles

  1. PLAYER_EXPERIENCE_FIRST: Every mechanic must serve player engagement and fun
  2. ITERATIVE_DESIGN: Prototype, test, refine - games are discovered through iteration
  3. TECHNICAL_EXCELLENCE: Stable performance and cross-platform compatibility are non-negotiable
  4. STORY_DRIVEN_DEV: Game features are implemented through detailed development stories
  5. BALANCE_THROUGH_DATA: Use metrics and playtesting to validate game balance
  6. DOCUMENT_EVERYTHING: Clear specifications enable proper game implementation
  7. START_SMALL_ITERATE_FAST: Core mechanics first, then expand and polish
  8. EMBRACE_CREATIVE_CHAOS: Games evolve - adapt design based on what's fun

Game Development Workflow

Phase 1: Game Concept and Design

  1. Game Designer: Start with brainstorming and concept development

    • Use *brainstorm to explore game concepts and mechanics
    • Create Game Brief using game-brief-tmpl
    • Develop core game pillars and player experience goals
  2. Game Designer: Create comprehensive Game Design Document

    • Use game-design-doc-tmpl to create detailed GDD
    • Define all game mechanics, progression, and balance
    • Specify technical requirements and platform targets
  3. Game Designer: Develop Level Design Framework

    • Create level-design-doc-tmpl for content guidelines
    • Define level types, difficulty progression, and content structure
    • Establish performance and technical constraints for levels

Phase 2: Technical Architecture

  1. Solution Architect (or Game Designer): Create Technical Architecture
    • Use game-architecture-tmpl to design technical implementation
    • Define Unity systems, performance optimization, and C# code structure
    • Align technical architecture with game design requirements

Phase 3: Story-Driven Development

  1. Game Scrum Master: Break down design into development stories

    • Use create-game-story task to create detailed implementation stories
    • Each story should be immediately actionable by game developers
    • Apply game-story-dod-checklist to ensure story quality
  2. Game Developer: Implement game features story by story

    • Follow C# best practices and Unity's component-based architecture
    • Maintain stable frame rate on target devices
    • Use Unity Test Framework for game logic components
  3. Iterative Refinement: Continuous playtesting and improvement

    • Test core mechanics early and often in the Unity Editor
    • Validate game balance through metrics and player feedback
    • Iterate on design based on implementation discoveries

Game-Specific Development Guidelines

Unity + C# Standards

Project Structure:

UnityProject/
├── Assets/
│   ├── Scenes/          # Game scenes (Boot, Menu, Game, etc.)
│   ├── Scripts/         # C# scripts
│   │   ├── Editor/      # Editor-specific scripts
│   │   └── Runtime/     # Runtime scripts
│   ├── Prefabs/         # Reusable game objects
│   ├── Art/             # Art assets (sprites, models, etc.)
│   ├── Audio/           # Audio assets
│   ├── Data/            # ScriptableObjects and other data
│   └── Tests/           # Unity Test Framework tests
│       ├── EditMode/
│       └── PlayMode/
├── Packages/            # Package Manager manifest
└── ProjectSettings/     # Unity project settings

Performance Requirements:

  • Maintain stable frame rate on target devices
  • Memory usage under specified limits per level
  • Loading times under 3 seconds for levels
  • Smooth animation and responsive controls

Code Quality:

  • C# best practices compliance
  • Component-based architecture (SOLID principles)
  • Efficient use of the MonoBehaviour lifecycle
  • Error handling and graceful degradation

Game Development Story Structure

Story Requirements:

  • Clear reference to Game Design Document section
  • Specific acceptance criteria for game functionality
  • Technical implementation details for Unity and C#
  • Performance requirements and optimization considerations
  • Testing requirements including gameplay validation

Story Categories:

  • Core Mechanics: Fundamental gameplay systems
  • Level Content: Individual levels and content implementation
  • UI/UX: User interface and player experience features
  • Performance: Optimization and technical improvements
  • Polish: Visual effects, audio, and game feel enhancements

Quality Assurance for Games

Testing Approach:

  • Unit tests for C# logic (EditMode tests)
  • Integration tests for game systems (PlayMode tests)
  • Performance benchmarking and profiling with Unity Profiler
  • Gameplay testing and balance validation
  • Cross-platform compatibility testing

Performance Monitoring:

  • Frame rate consistency tracking
  • Memory usage monitoring
  • Asset loading performance
  • Input responsiveness validation
  • Battery usage optimization (mobile)

Game Development Team Roles

Game Designer (Alex)

  • Primary Focus: Game mechanics, player experience, design documentation
  • Key Outputs: Game Brief, Game Design Document, Level Design Framework
  • Specialties: Brainstorming, game balance, player psychology, creative direction

Game Developer (Maya)

  • Primary Focus: Unity implementation, C# excellence, performance
  • Key Outputs: Working game features, optimized code, technical architecture
  • Specialties: C#/Unity, performance optimization, cross-platform development

Game Scrum Master (Jordan)

  • Primary Focus: Story creation, development planning, agile process
  • Key Outputs: Detailed implementation stories, sprint planning, quality assurance
  • Specialties: Story breakdown, developer handoffs, process optimization

Platform-Specific Considerations

Cross-Platform Development

  • Abstract input using the new Input System
  • Use platform-dependent compilation for specific logic
  • Test on all target platforms regularly
  • Optimize for different screen resolutions and aspect ratios

Mobile Optimization

  • Touch gesture support and responsive controls
  • Battery usage optimization
  • Performance scaling for different device capabilities
  • App store compliance and packaging

Performance Targets

  • PC/Console: 60+ FPS at target resolution
  • Mobile: 60 FPS on mid-range devices, 30 FPS minimum on low-end
  • Loading: Initial load under 5 seconds, scene transitions under 2 seconds
  • Memory: Within platform-specific memory budgets

Success Metrics for Game Development

Technical Metrics

  • Frame rate consistency (>90% of time at target FPS)
  • Memory usage within budgets
  • Loading time targets met
  • Zero critical bugs in core gameplay systems

Player Experience Metrics

  • Tutorial completion rate >80%
  • Level completion rates appropriate for difficulty curve
  • Average session length meets design targets
  • Player retention and engagement metrics

Development Process Metrics

  • Story completion within estimated timeframes
  • Code quality metrics (test coverage, code analysis)
  • Documentation completeness and accuracy
  • Team velocity and delivery consistency

Common Unity Development Patterns

Scene Management

  • Use a loading scene for asynchronous loading of game scenes
  • Use additive scene loading for large levels or streaming
  • Manage scenes with a dedicated SceneManager class

Game State Management

  • Use ScriptableObjects to store shared game state
  • Implement a finite state machine (FSM) for complex behaviors
  • Use a GameManager singleton for global state management

Input Handling

  • Use the new Input System for robust, cross-platform input
  • Create Action Maps for different input contexts (e.g., menu, gameplay)
  • Use PlayerInput component for easy player input handling

Performance Optimization

  • Object pooling for frequently instantiated objects (e.g., bullets, enemies)
  • Use the Unity Profiler to identify performance bottlenecks
  • Optimize physics settings and collision detection
  • Use LOD (Level of Detail) for complex models

This knowledge base provides the foundation for effective game development using the BMad-Method framework with specialized focus on 2D game creation using Unity and C#.