bmad-method 4.30.1 → 4.30.3
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.
- package/CHANGELOG.md +14 -0
- package/README.md +1 -1
- package/bmad-core/core-config.yaml +0 -1
- package/bmad-core/data/bmad-kb.md +1 -1
- package/dist/agents/analyst.txt +1 -1
- package/dist/agents/bmad-master.txt +1 -1
- package/dist/agents/bmad-orchestrator.txt +1 -1
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +2409 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +1480 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +826 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +10690 -0
- package/dist/teams/team-all.txt +1 -1
- package/dist/teams/team-fullstack.txt +1 -1
- package/dist/teams/team-ide-minimal.txt +1 -1
- package/dist/teams/team-no-ui.txt +1 -1
- package/docs/bmad-workflow-guide.md +2 -2
- package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +2 -2
- package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +13 -0
- package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +72 -0
- package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +78 -0
- package/expansion-packs/{bmad-creator-tools/agents/bmad-the-creator.md → bmad-2d-unity-game-dev/agents/game-sm.md} +26 -28
- package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +201 -0
- package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +160 -0
- package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +6 -0
- package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +251 -0
- package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +590 -0
- package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +111 -0
- package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +217 -0
- package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +308 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +545 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +356 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +343 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +256 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +484 -0
- package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +183 -0
- package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +175 -0
- package/expansion-packs/bmad-infrastructure-devops/config.yaml +2 -2
- package/package.json +4 -8
- package/tools/bump-all-versions.js +8 -9
- package/tools/bump-expansion-version.js +40 -35
- package/tools/installer/bin/bmad.js +8 -21
- package/tools/installer/lib/file-manager.js +76 -44
- package/tools/installer/lib/ide-base-setup.js +227 -0
- package/tools/installer/lib/ide-setup.js +14 -60
- package/tools/installer/lib/installer.js +99 -121
- package/tools/installer/lib/memory-profiler.js +224 -0
- package/tools/installer/lib/module-manager.js +110 -0
- package/tools/installer/lib/resource-locator.js +310 -0
- package/tools/installer/package.json +1 -1
- package/tools/semantic-release-sync-installer.js +20 -21
- package/dist/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.txt +0 -2008
- package/expansion-packs/bmad-creator-tools/README.md +0 -8
- package/expansion-packs/bmad-creator-tools/config.yaml +0 -6
- package/expansion-packs/bmad-creator-tools/tasks/create-agent.md +0 -200
- package/expansion-packs/bmad-creator-tools/tasks/generate-expansion-pack.md +0 -1020
- package/expansion-packs/bmad-creator-tools/templates/agent-teams-tmpl.yaml +0 -178
- package/expansion-packs/bmad-creator-tools/templates/agent-tmpl.yaml +0 -154
- package/expansion-packs/bmad-creator-tools/templates/expansion-pack-plan-tmpl.yaml +0 -120
- package/tools/bump-core-version.js +0 -57
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
template:
|
|
2
|
+
id: game-architecture-template-v2
|
|
3
|
+
name: Game Architecture Document
|
|
4
|
+
version: 2.0
|
|
5
|
+
output:
|
|
6
|
+
format: markdown
|
|
7
|
+
filename: "docs/{{game_name}}-game-architecture.md"
|
|
8
|
+
title: "{{game_title}} Game Architecture Document"
|
|
9
|
+
|
|
10
|
+
workflow:
|
|
11
|
+
mode: interactive
|
|
12
|
+
|
|
13
|
+
sections:
|
|
14
|
+
- id: initial-setup
|
|
15
|
+
instruction: |
|
|
16
|
+
This template creates a comprehensive game architecture document specifically for Unity + C# projects. This should provide the technical foundation for all game development stories and epics.
|
|
17
|
+
|
|
18
|
+
If available, review any provided documents: Game Design Document (GDD), Technical Preferences. This architecture should support all game mechanics defined in the GDD.
|
|
19
|
+
|
|
20
|
+
- id: introduction
|
|
21
|
+
title: Introduction
|
|
22
|
+
instruction: Establish the document's purpose and scope for game development
|
|
23
|
+
content: |
|
|
24
|
+
This document outlines the complete technical architecture for {{Game Title}}, a 2D game built with Unity and C#. It serves as the technical foundation for AI-driven game development, ensuring consistency and scalability across all game systems.
|
|
25
|
+
|
|
26
|
+
This architecture is designed to support the gameplay mechanics defined in the Game Design Document while maintaining stable performance and cross-platform compatibility.
|
|
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: technical-overview
|
|
37
|
+
title: Technical Overview
|
|
38
|
+
instruction: Present all subsections together, then apply `tasks#advanced-elicitation` protocol to the complete section.
|
|
39
|
+
sections:
|
|
40
|
+
- id: architecture-summary
|
|
41
|
+
title: Architecture Summary
|
|
42
|
+
instruction: |
|
|
43
|
+
Provide a comprehensive overview covering:
|
|
44
|
+
|
|
45
|
+
- Game engine choice and configuration
|
|
46
|
+
- Project structure and organization
|
|
47
|
+
- Key systems and their interactions
|
|
48
|
+
- Performance and optimization strategy
|
|
49
|
+
- How this architecture achieves GDD requirements
|
|
50
|
+
- id: platform-targets
|
|
51
|
+
title: Platform Targets
|
|
52
|
+
instruction: Based on GDD requirements, confirm platform support
|
|
53
|
+
template: |
|
|
54
|
+
**Primary Platform:** {{primary_platform}}
|
|
55
|
+
**Secondary Platforms:** {{secondary_platforms}}
|
|
56
|
+
**Minimum Requirements:** {{min_specs}}
|
|
57
|
+
**Target Performance:** Stable frame rate on {{target_device}}
|
|
58
|
+
- id: technology-stack
|
|
59
|
+
title: Technology Stack
|
|
60
|
+
template: |
|
|
61
|
+
**Core Engine:** Unity 2022 LTS or newer
|
|
62
|
+
**Language:** C# 10+
|
|
63
|
+
**Build Tool:** Unity Build Pipeline
|
|
64
|
+
**Package Manager:** Unity Package Manager
|
|
65
|
+
**Testing:** Unity Test Framework (NUnit)
|
|
66
|
+
**Deployment:** {{deployment_platform}}
|
|
67
|
+
|
|
68
|
+
- id: project-structure
|
|
69
|
+
title: Project Structure
|
|
70
|
+
instruction: Define the complete project organization that developers will follow
|
|
71
|
+
sections:
|
|
72
|
+
- id: repository-organization
|
|
73
|
+
title: Repository Organization
|
|
74
|
+
instruction: Design a clear folder structure for game development
|
|
75
|
+
type: code
|
|
76
|
+
language: text
|
|
77
|
+
template: |
|
|
78
|
+
{{game_name}}/
|
|
79
|
+
├── Assets/
|
|
80
|
+
│ ├── Scenes/ # Game scenes
|
|
81
|
+
│ ├── Scripts/ # C# scripts
|
|
82
|
+
│ ├── Prefabs/ # Reusable game objects
|
|
83
|
+
│ ├── Art/ # Art assets
|
|
84
|
+
│ ├── Audio/ # Audio assets
|
|
85
|
+
│ ├── Data/ # ScriptableObjects and other data
|
|
86
|
+
│ └── Tests/ # Unity Test Framework tests
|
|
87
|
+
├── Packages/ # Package Manager manifest
|
|
88
|
+
└── ProjectSettings/ # Unity project settings
|
|
89
|
+
- id: module-organization
|
|
90
|
+
title: Module Organization
|
|
91
|
+
instruction: Define how TypeScript modules should be organized
|
|
92
|
+
sections:
|
|
93
|
+
- id: scene-structure
|
|
94
|
+
title: Scene Structure
|
|
95
|
+
type: bullet-list
|
|
96
|
+
template: |
|
|
97
|
+
- Each scene in separate file
|
|
98
|
+
- Scene-specific logic contained in scripts within the scene
|
|
99
|
+
- Use a loading scene for asynchronous loading
|
|
100
|
+
- id: game-object-pattern
|
|
101
|
+
title: Game Object Pattern
|
|
102
|
+
type: bullet-list
|
|
103
|
+
template: |
|
|
104
|
+
- Component-based architecture using MonoBehaviours
|
|
105
|
+
- Reusable game objects as prefabs
|
|
106
|
+
- Data-driven design with ScriptableObjects
|
|
107
|
+
- id: system-architecture
|
|
108
|
+
title: System Architecture
|
|
109
|
+
type: bullet-list
|
|
110
|
+
template: |
|
|
111
|
+
- Singleton managers for global systems (e.g., GameManager, AudioManager)
|
|
112
|
+
- Event-driven communication using UnityEvents or C# events
|
|
113
|
+
- Clear separation of concerns between components
|
|
114
|
+
|
|
115
|
+
- id: core-game-systems
|
|
116
|
+
title: Core Game Systems
|
|
117
|
+
instruction: Detail each major system that needs to be implemented. Each system should be specific enough for developers to create implementation stories.
|
|
118
|
+
sections:
|
|
119
|
+
- id: scene-management
|
|
120
|
+
title: Scene Management System
|
|
121
|
+
template: |
|
|
122
|
+
**Purpose:** Handle game flow and scene transitions
|
|
123
|
+
|
|
124
|
+
**Key Components:**
|
|
125
|
+
|
|
126
|
+
- Asynchronous scene loading and unloading
|
|
127
|
+
- Data passing between scenes using a persistent manager or ScriptableObject
|
|
128
|
+
- Loading screens with progress bars
|
|
129
|
+
|
|
130
|
+
**Implementation Requirements:**
|
|
131
|
+
|
|
132
|
+
- A `SceneLoader` class to manage all scene transitions
|
|
133
|
+
- A loading scene to handle asynchronous loading
|
|
134
|
+
- A `GameManager` to persist between scenes and hold necessary data
|
|
135
|
+
|
|
136
|
+
**Files to Create:**
|
|
137
|
+
|
|
138
|
+
- `Assets/Scripts/Core/SceneLoader.cs`
|
|
139
|
+
- `Assets/Scenes/Loading.unity`
|
|
140
|
+
- id: game-state-management
|
|
141
|
+
title: Game State Management
|
|
142
|
+
template: |
|
|
143
|
+
**Purpose:** Track player progress and game status
|
|
144
|
+
|
|
145
|
+
**State Categories:**
|
|
146
|
+
|
|
147
|
+
- Player progress (levels, unlocks)
|
|
148
|
+
- Game settings (audio, controls)
|
|
149
|
+
- Session data (current level, score)
|
|
150
|
+
- Persistent data (achievements, statistics)
|
|
151
|
+
|
|
152
|
+
**Implementation Requirements:**
|
|
153
|
+
|
|
154
|
+
- A `SaveManager` class to handle saving and loading data to a file
|
|
155
|
+
- Use of `ScriptableObject`s to hold game state data
|
|
156
|
+
- State validation and error recovery
|
|
157
|
+
|
|
158
|
+
**Files to Create:**
|
|
159
|
+
|
|
160
|
+
- `Assets/Scripts/Core/SaveManager.cs`
|
|
161
|
+
- `Assets/Data/ScriptableObjects/GameState.cs`
|
|
162
|
+
- id: asset-management
|
|
163
|
+
title: Asset Management System
|
|
164
|
+
template: |
|
|
165
|
+
**Purpose:** Efficient loading and management of game assets
|
|
166
|
+
|
|
167
|
+
**Asset Categories:**
|
|
168
|
+
|
|
169
|
+
- Sprites and textures
|
|
170
|
+
- Audio clips and music
|
|
171
|
+
- Prefabs and scene files
|
|
172
|
+
- ScriptableObjects
|
|
173
|
+
|
|
174
|
+
**Implementation Requirements:**
|
|
175
|
+
|
|
176
|
+
- Use of Addressables for dynamic asset loading
|
|
177
|
+
- Asset bundles for platform-specific assets
|
|
178
|
+
- Memory management for large assets
|
|
179
|
+
|
|
180
|
+
**Files to Create:**
|
|
181
|
+
|
|
182
|
+
- `Assets/Scripts/Core/AssetManager.cs` (if needed for complex scenarios)
|
|
183
|
+
- id: input-management
|
|
184
|
+
title: Input Management System
|
|
185
|
+
template: |
|
|
186
|
+
**Purpose:** Handle all player input across platforms
|
|
187
|
+
|
|
188
|
+
**Input Types:**
|
|
189
|
+
|
|
190
|
+
- Keyboard controls
|
|
191
|
+
- Mouse/pointer interaction
|
|
192
|
+
- Touch gestures (mobile)
|
|
193
|
+
- Gamepad support
|
|
194
|
+
|
|
195
|
+
**Implementation Requirements:**
|
|
196
|
+
|
|
197
|
+
- Use the new Unity Input System
|
|
198
|
+
- Create Action Maps for different input contexts
|
|
199
|
+
- Use the `PlayerInput` component for easy player input handling
|
|
200
|
+
|
|
201
|
+
**Files to Create:**
|
|
202
|
+
|
|
203
|
+
- `Assets/Settings/InputActions.inputactions`
|
|
204
|
+
- id: game-mechanics-systems
|
|
205
|
+
title: Game Mechanics Systems
|
|
206
|
+
instruction: For each major mechanic defined in the GDD, create a system specification
|
|
207
|
+
repeatable: true
|
|
208
|
+
sections:
|
|
209
|
+
- id: mechanic-system
|
|
210
|
+
title: "{{mechanic_name}} System"
|
|
211
|
+
template: |
|
|
212
|
+
**Purpose:** {{system_purpose}}
|
|
213
|
+
|
|
214
|
+
**Core Functionality:**
|
|
215
|
+
|
|
216
|
+
- {{feature_1}}
|
|
217
|
+
- {{feature_2}}
|
|
218
|
+
- {{feature_3}}
|
|
219
|
+
|
|
220
|
+
**Dependencies:** {{required_systems}}
|
|
221
|
+
|
|
222
|
+
**Performance Considerations:** {{optimization_notes}}
|
|
223
|
+
|
|
224
|
+
**Files to Create:**
|
|
225
|
+
|
|
226
|
+
- `Assets/Scripts/Mechanics/{{SystemName}}.cs`
|
|
227
|
+
- `Assets/Prefabs/{{RelatedObject}}.prefab`
|
|
228
|
+
- id: physics-collision
|
|
229
|
+
title: Physics & Collision System
|
|
230
|
+
template: |
|
|
231
|
+
**Physics Engine:** Unity 2D Physics
|
|
232
|
+
|
|
233
|
+
**Collision Categories:**
|
|
234
|
+
|
|
235
|
+
- Player collision
|
|
236
|
+
- Enemy interactions
|
|
237
|
+
- Environmental objects
|
|
238
|
+
- Collectibles and items
|
|
239
|
+
|
|
240
|
+
**Implementation Requirements:**
|
|
241
|
+
|
|
242
|
+
- Use the Layer Collision Matrix to optimize collision detection
|
|
243
|
+
- Use `Rigidbody2D` for physics-based movement
|
|
244
|
+
- Use `Collider2D` components for collision shapes
|
|
245
|
+
|
|
246
|
+
**Files to Create:**
|
|
247
|
+
|
|
248
|
+
- (No new files, but configure `ProjectSettings/DynamicsManager.asset`)
|
|
249
|
+
- id: audio-system
|
|
250
|
+
title: Audio System
|
|
251
|
+
template: |
|
|
252
|
+
**Audio Requirements:**
|
|
253
|
+
|
|
254
|
+
- Background music with looping
|
|
255
|
+
- Sound effects for actions
|
|
256
|
+
- Audio settings and volume control
|
|
257
|
+
- Mobile audio optimization
|
|
258
|
+
|
|
259
|
+
**Implementation Features:**
|
|
260
|
+
|
|
261
|
+
- An `AudioManager` singleton to play sounds and music
|
|
262
|
+
- Use of `AudioMixer` to control volume levels
|
|
263
|
+
- Object pooling for frequently played sound effects
|
|
264
|
+
|
|
265
|
+
**Files to Create:**
|
|
266
|
+
|
|
267
|
+
- `Assets/Scripts/Core/AudioManager.cs`
|
|
268
|
+
- id: ui-system
|
|
269
|
+
title: UI System
|
|
270
|
+
template: |
|
|
271
|
+
**UI Components:**
|
|
272
|
+
|
|
273
|
+
- HUD elements (score, health, etc.)
|
|
274
|
+
- Menu navigation
|
|
275
|
+
- Modal dialogs
|
|
276
|
+
- Settings screens
|
|
277
|
+
|
|
278
|
+
**Implementation Requirements:**
|
|
279
|
+
|
|
280
|
+
- Use UI Toolkit or UGUI for building user interfaces
|
|
281
|
+
- Create a `UIManager` to manage UI elements
|
|
282
|
+
- Use events to update UI from game logic
|
|
283
|
+
|
|
284
|
+
**Files to Create:**
|
|
285
|
+
|
|
286
|
+
- `Assets/Scripts/UI/UIManager.cs`
|
|
287
|
+
- `Assets/UI/` (folder for UI assets and prefabs)
|
|
288
|
+
|
|
289
|
+
- id: performance-architecture
|
|
290
|
+
title: Performance Architecture
|
|
291
|
+
instruction: Define performance requirements and optimization strategies
|
|
292
|
+
sections:
|
|
293
|
+
- id: performance-targets
|
|
294
|
+
title: Performance Targets
|
|
295
|
+
template: |
|
|
296
|
+
**Frame Rate:** Stable frame rate, 60+ FPS on target platforms
|
|
297
|
+
**Memory Usage:** <{{memory_limit}}MB total
|
|
298
|
+
**Load Times:** <{{initial_load}}s initial, <{{level_load}}s per level
|
|
299
|
+
**Battery Optimization:** Reduced updates when not visible
|
|
300
|
+
- id: optimization-strategies
|
|
301
|
+
title: Optimization Strategies
|
|
302
|
+
sections:
|
|
303
|
+
- id: object-pooling
|
|
304
|
+
title: Object Pooling
|
|
305
|
+
type: bullet-list
|
|
306
|
+
template: |
|
|
307
|
+
- Bullets and projectiles
|
|
308
|
+
- Particle effects
|
|
309
|
+
- Enemy objects
|
|
310
|
+
- UI elements
|
|
311
|
+
- id: asset-optimization
|
|
312
|
+
title: Asset Optimization
|
|
313
|
+
type: bullet-list
|
|
314
|
+
template: |
|
|
315
|
+
- Sprite atlases
|
|
316
|
+
- Audio compression
|
|
317
|
+
- Mipmaps for textures
|
|
318
|
+
- id: rendering-optimization
|
|
319
|
+
title: Rendering Optimization
|
|
320
|
+
type: bullet-list
|
|
321
|
+
template: |
|
|
322
|
+
- Use the 2D Renderer
|
|
323
|
+
- Batching for sprites
|
|
324
|
+
- Culling off-screen objects
|
|
325
|
+
- id: optimization-files
|
|
326
|
+
title: Files to Create
|
|
327
|
+
type: bullet-list
|
|
328
|
+
template: |
|
|
329
|
+
- `Assets/Scripts/Core/ObjectPool.cs`
|
|
330
|
+
|
|
331
|
+
- id: game-configuration
|
|
332
|
+
title: Game Configuration
|
|
333
|
+
instruction: Define all configurable aspects of the game
|
|
334
|
+
sections:
|
|
335
|
+
- id: game-balance-configuration
|
|
336
|
+
title: Game Balance Configuration
|
|
337
|
+
instruction: Based on GDD, define configurable game parameters using ScriptableObjects
|
|
338
|
+
type: code
|
|
339
|
+
language: c#
|
|
340
|
+
template: |
|
|
341
|
+
// Assets/Scripts/Data/GameBalance.cs
|
|
342
|
+
using UnityEngine;
|
|
343
|
+
|
|
344
|
+
[CreateAssetMenu(fileName = "GameBalance", menuName = "Game/Game Balance")]
|
|
345
|
+
public class GameBalance : ScriptableObject
|
|
346
|
+
{
|
|
347
|
+
public PlayerStats playerStats;
|
|
348
|
+
public EnemyStats enemyStats;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
[System.Serializable]
|
|
352
|
+
public class PlayerStats
|
|
353
|
+
{
|
|
354
|
+
public float speed;
|
|
355
|
+
public int maxHealth;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
[System.Serializable]
|
|
359
|
+
public class EnemyStats
|
|
360
|
+
{
|
|
361
|
+
public float speed;
|
|
362
|
+
public int maxHealth;
|
|
363
|
+
public int damage;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
- id: development-guidelines
|
|
367
|
+
title: Development Guidelines
|
|
368
|
+
instruction: Provide coding standards specific to game development
|
|
369
|
+
sections:
|
|
370
|
+
- id: c#-standards
|
|
371
|
+
title: C# Standards
|
|
372
|
+
sections:
|
|
373
|
+
- id: code-style
|
|
374
|
+
title: Code Style
|
|
375
|
+
type: bullet-list
|
|
376
|
+
template: |
|
|
377
|
+
- Follow .NET coding conventions
|
|
378
|
+
- Use namespaces to organize code
|
|
379
|
+
- Write clean, readable, and maintainable code
|
|
380
|
+
- id: unity-best-practices
|
|
381
|
+
title: Unity Best Practices
|
|
382
|
+
sections:
|
|
383
|
+
- id: general-best-practices
|
|
384
|
+
title: General Best Practices
|
|
385
|
+
type: bullet-list
|
|
386
|
+
template: |
|
|
387
|
+
- Use the `[SerializeField]` attribute to expose private fields in the Inspector
|
|
388
|
+
- Avoid using `GameObject.Find()` in `Update()`
|
|
389
|
+
- Cache component references in `Awake()` or `Start()`
|
|
390
|
+
- id: component-design
|
|
391
|
+
title: Component Design
|
|
392
|
+
type: bullet-list
|
|
393
|
+
template: |
|
|
394
|
+
- Follow the Single Responsibility Principle
|
|
395
|
+
- Use events for communication between components
|
|
396
|
+
- Use ScriptableObjects for data
|
|
397
|
+
- id: scene-management-practices
|
|
398
|
+
title: Scene Management
|
|
399
|
+
type: bullet-list
|
|
400
|
+
template: |
|
|
401
|
+
- Use a loading scene for asynchronous loading
|
|
402
|
+
- Keep scenes small and focused
|
|
403
|
+
- id: testing-strategy
|
|
404
|
+
title: Testing Strategy
|
|
405
|
+
sections:
|
|
406
|
+
- id: unit-testing
|
|
407
|
+
title: Unit Testing
|
|
408
|
+
type: bullet-list
|
|
409
|
+
template: |
|
|
410
|
+
- Use the Unity Test Framework (Edit Mode tests)
|
|
411
|
+
- Test C# logic in isolation
|
|
412
|
+
- id: integration-testing
|
|
413
|
+
title: Integration Testing
|
|
414
|
+
type: bullet-list
|
|
415
|
+
template: |
|
|
416
|
+
- Use the Unity Test Framework (Play Mode tests)
|
|
417
|
+
- Test the interaction between components and systems
|
|
418
|
+
- id: test-files
|
|
419
|
+
title: Files to Create
|
|
420
|
+
type: bullet-list
|
|
421
|
+
template: |
|
|
422
|
+
- `Assets/Tests/EditMode/`
|
|
423
|
+
- `Assets/Tests/PlayMode/`
|
|
424
|
+
|
|
425
|
+
- id: deployment-architecture
|
|
426
|
+
title: Deployment Architecture
|
|
427
|
+
instruction: Define how the game will be built and deployed
|
|
428
|
+
sections:
|
|
429
|
+
- id: build-process
|
|
430
|
+
title: Build Process
|
|
431
|
+
sections:
|
|
432
|
+
- id: development-build
|
|
433
|
+
title: Development Build
|
|
434
|
+
type: bullet-list
|
|
435
|
+
template: |
|
|
436
|
+
- Enable "Development Build" in Build Settings
|
|
437
|
+
- Use the Profiler to analyze performance
|
|
438
|
+
- id: production-build
|
|
439
|
+
title: Production Build
|
|
440
|
+
type: bullet-list
|
|
441
|
+
template: |
|
|
442
|
+
- Disable "Development Build"
|
|
443
|
+
- Use IL2CPP for better performance
|
|
444
|
+
- Configure platform-specific settings
|
|
445
|
+
- id: deployment-strategy
|
|
446
|
+
title: Deployment Strategy
|
|
447
|
+
sections:
|
|
448
|
+
- id: platform-deployment
|
|
449
|
+
title: Platform Deployment
|
|
450
|
+
type: bullet-list
|
|
451
|
+
template: |
|
|
452
|
+
- Configure player settings for each target platform
|
|
453
|
+
- Use Unity Cloud Build for automated builds
|
|
454
|
+
- Follow platform-specific guidelines for submission
|
|
455
|
+
|
|
456
|
+
- id: implementation-roadmap
|
|
457
|
+
title: Implementation Roadmap
|
|
458
|
+
instruction: Break down the architecture implementation into phases that align with the GDD development phases
|
|
459
|
+
sections:
|
|
460
|
+
- id: phase-1-foundation
|
|
461
|
+
title: "Phase 1: Foundation ({{duration}})"
|
|
462
|
+
sections:
|
|
463
|
+
- id: phase-1-core
|
|
464
|
+
title: Core Systems
|
|
465
|
+
type: bullet-list
|
|
466
|
+
template: |
|
|
467
|
+
- Project setup and configuration
|
|
468
|
+
- Basic scene management
|
|
469
|
+
- Asset loading pipeline
|
|
470
|
+
- Input handling framework
|
|
471
|
+
- id: phase-1-epics
|
|
472
|
+
title: Story Epics
|
|
473
|
+
type: bullet-list
|
|
474
|
+
template: |
|
|
475
|
+
- "Engine Setup and Configuration"
|
|
476
|
+
- "Basic Scene Management System"
|
|
477
|
+
- "Asset Loading Foundation"
|
|
478
|
+
- id: phase-2-game-systems
|
|
479
|
+
title: "Phase 2: Game Systems ({{duration}})"
|
|
480
|
+
sections:
|
|
481
|
+
- id: phase-2-gameplay
|
|
482
|
+
title: Gameplay Systems
|
|
483
|
+
type: bullet-list
|
|
484
|
+
template: |
|
|
485
|
+
- {{primary_mechanic}} implementation
|
|
486
|
+
- Physics and collision system
|
|
487
|
+
- Game state management
|
|
488
|
+
- UI framework
|
|
489
|
+
- id: phase-2-epics
|
|
490
|
+
title: Story Epics
|
|
491
|
+
type: bullet-list
|
|
492
|
+
template: |
|
|
493
|
+
- "{{primary_mechanic}} System Implementation"
|
|
494
|
+
- "Physics and Collision Framework"
|
|
495
|
+
- "Game State Management System"
|
|
496
|
+
- id: phase-3-content-polish
|
|
497
|
+
title: "Phase 3: Content & Polish ({{duration}})"
|
|
498
|
+
sections:
|
|
499
|
+
- id: phase-3-content
|
|
500
|
+
title: Content Systems
|
|
501
|
+
type: bullet-list
|
|
502
|
+
template: |
|
|
503
|
+
- Level loading and management
|
|
504
|
+
- Audio system integration
|
|
505
|
+
- Performance optimization
|
|
506
|
+
- Final polish and testing
|
|
507
|
+
- id: phase-3-epics
|
|
508
|
+
title: Story Epics
|
|
509
|
+
type: bullet-list
|
|
510
|
+
template: |
|
|
511
|
+
- "Level Management System"
|
|
512
|
+
- "Audio Integration and Optimization"
|
|
513
|
+
- "Performance Optimization and Testing"
|
|
514
|
+
|
|
515
|
+
- id: risk-assessment
|
|
516
|
+
title: Risk Assessment
|
|
517
|
+
instruction: Identify potential technical risks and mitigation strategies
|
|
518
|
+
type: table
|
|
519
|
+
template: |
|
|
520
|
+
| Risk | Probability | Impact | Mitigation Strategy |
|
|
521
|
+
| ---------------------------- | ----------- | ---------- | ------------------- |
|
|
522
|
+
| Performance issues on mobile | {{prob}} | {{impact}} | {{mitigation}} |
|
|
523
|
+
| Asset loading bottlenecks | {{prob}} | {{impact}} | {{mitigation}} |
|
|
524
|
+
| Cross-platform compatibility | {{prob}} | {{impact}} | {{mitigation}} |
|
|
525
|
+
|
|
526
|
+
- id: success-criteria
|
|
527
|
+
title: Success Criteria
|
|
528
|
+
instruction: Define measurable technical success criteria
|
|
529
|
+
sections:
|
|
530
|
+
- id: technical-metrics
|
|
531
|
+
title: Technical Metrics
|
|
532
|
+
type: bullet-list
|
|
533
|
+
template: |
|
|
534
|
+
- All systems implemented per specification
|
|
535
|
+
- Performance targets met consistently
|
|
536
|
+
- Zero critical bugs in core systems
|
|
537
|
+
- Successful deployment across target platforms
|
|
538
|
+
- id: code-quality
|
|
539
|
+
title: Code Quality
|
|
540
|
+
type: bullet-list
|
|
541
|
+
template: |
|
|
542
|
+
- 90%+ test coverage on game logic
|
|
543
|
+
- Zero C# compiler errors or warnings
|
|
544
|
+
- Consistent adherence to coding standards
|
|
545
|
+
- Comprehensive documentation coverage
|