game-tools-workflows

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Game Development Tools & Workflows

游戏开发工具与工作流

Development Tool Stack

开发工具栈

┌─────────────────────────────────────────────────────────────┐
│                    GAME DEV TOOL STACK                       │
├─────────────────────────────────────────────────────────────┤
│  ENGINE: Unity / Unreal / Godot                             │
│                                                              │
│  IDE: Visual Studio / Rider / VS Code                       │
│                                                              │
│  VERSION CONTROL:                                            │
│  Git + LFS (indie) / Perforce (large teams)                │
│                                                              │
│  ART TOOLS:                                                  │
│  Blender / Maya / Substance Painter / Photoshop            │
│                                                              │
│  AUDIO:                                                      │
│  Wwise / FMOD / Reaper / Audacity                          │
│                                                              │
│  PROJECT MANAGEMENT:                                         │
│  Jira / Notion / Trello / Linear                            │
│                                                              │
│  COMMUNICATION:                                              │
│  Slack / Discord / Teams                                    │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│                    GAME DEV TOOL STACK                       │
├─────────────────────────────────────────────────────────────┤
│  ENGINE: Unity / Unreal / Godot                             │
│                                                              │
│  IDE: Visual Studio / Rider / VS Code                       │
│                                                              │
│  VERSION CONTROL:                                            │
│  Git + LFS (独立团队) / Perforce (大型团队)                │
│                                                              │
│  ART TOOLS:                                                  │
│  Blender / Maya / Substance Painter / Photoshop            │
│                                                              │
│  AUDIO:                                                      │
│  Wwise / FMOD / Reaper / Audacity                          │
│                                                              │
│  PROJECT MANAGEMENT:                                         │
│  Jira / Notion / Trello / Linear                            │
│                                                              │
│  COMMUNICATION:                                              │
│  Slack / Discord / Teams                                    │
└─────────────────────────────────────────────────────────────┘

Git Workflow for Games

游戏开发Git工作流

GIT BRANCHING STRATEGY:
┌─────────────────────────────────────────────────────────────┐
│                                                              │
│  main ─────●─────────●─────────●─────────● (releases)      │
│             ↑         ↑         ↑         ↑                 │
│  develop ──●──●──●───●──●──●───●──●──●───● (integration)   │
│             ↑  ↑      ↑  ↑                                  │
│  feature/X─●──●      ●──●                                   │
│                                                              │
│  BRANCH TYPES:                                               │
│  main:       Production releases only                       │
│  develop:    Integration branch, daily builds               │
│  feature/*:  New features, short-lived                      │
│  fix/*:      Bug fixes                                      │
│  release/*:  Release preparation                            │
└─────────────────────────────────────────────────────────────┘

GIT LFS CONFIGURATION:
┌─────────────────────────────────────────────────────────────┐
│  .gitattributes:                                             │
│  *.psd filter=lfs diff=lfs merge=lfs -text                 │
│  *.fbx filter=lfs diff=lfs merge=lfs -text                 │
│  *.wav filter=lfs diff=lfs merge=lfs -text                 │
│  *.mp3 filter=lfs diff=lfs merge=lfs -text                 │
│  *.png filter=lfs diff=lfs merge=lfs -text                 │
│  *.tga filter=lfs diff=lfs merge=lfs -text                 │
│  *.zip filter=lfs diff=lfs merge=lfs -text                 │
└─────────────────────────────────────────────────────────────┘
GIT BRANCHING STRATEGY:
┌─────────────────────────────────────────────────────────────┐
│                                                              │
│  main ─────●─────────●─────────●─────────● (发布版本)      │
│             ↑         ↑         ↑         ↑                 │
│  develop ──●──●──●───●──●──●───●──●──●───● (集成分支)   │
│             ↑  ↑      ↑  ↑                                  │
│  feature/X─●──●      ●──●                                   │
│                                                              │
│  BRANCH TYPES:                                               │
│  main:       仅用于生产环境发布                       │
│  develop:    集成分支,每日构建               │
│  feature/*:  新功能分支,短期存在                      │
│  fix/*:      Bug修复分支                                      │
│  release/*:  发布准备分支                            │
└─────────────────────────────────────────────────────────────┘

GIT LFS CONFIGURATION:
┌─────────────────────────────────────────────────────────────┐
│  .gitattributes:                                             │
│  *.psd filter=lfs diff=lfs merge=lfs -text                 │
│  *.fbx filter=lfs diff=lfs merge=lfs -text                 │
│  *.wav filter=lfs diff=lfs merge=lfs -text                 │
│  *.mp3 filter=lfs diff=lfs merge=lfs -text                 │
│  *.png filter=lfs diff=lfs merge=lfs -text                 │
│  *.tga filter=lfs diff=lfs merge=lfs -text                 │
│  *.zip filter=lfs diff=lfs merge=lfs -text                 │
└─────────────────────────────────────────────────────────────┘

Commit Convention

提交规范

COMMIT MESSAGE FORMAT:
┌─────────────────────────────────────────────────────────────┐
│  PREFIX: Description (max 50 chars)                         │
│                                                              │
│  PREFIXES:                                                   │
│  feat:     New feature                                      │
│  fix:      Bug fix                                          │
│  art:      Art/visual changes                               │
│  audio:    Sound/music changes                              │
│  level:    Level design changes                             │
│  refactor: Code restructuring                               │
│  perf:     Performance improvements                         │
│  test:     Test additions/changes                           │
│  ci:       CI/CD changes                                    │
│  docs:     Documentation                                    │
│                                                              │
│  EXAMPLES:                                                   │
│  feat: Add double jump ability                              │
│  fix: Resolve player falling through floor                  │
│  art: Update hero character textures                        │
│  perf: Optimize enemy spawning system                       │
└─────────────────────────────────────────────────────────────┘
COMMIT MESSAGE FORMAT:
┌─────────────────────────────────────────────────────────────┐
│  前缀: 描述 (最多50字符)                         │
│                                                              │
│  前缀列表:                                                   │
│  feat:     新增功能                                      │
│  fix:      Bug修复                                          │
│  art:      美术/视觉资源变更                               │
│  audio:    音效/音乐变更                              │
│  level:    关卡设计变更                             │
│  refactor: 代码重构                               │
│  perf:     性能优化                         │
│  test:     测试用例新增/变更                           │
│  ci:       CI/CD流程变更                                    │
│  docs:     文档更新                                    │
│                                                              │
│  示例:                                                   │
│  feat: 添加二段跳能力                              │
│  fix: 修复玩家穿模问题                  │
│  art: 更新主角角色纹理                        │
│  perf: 优化敌人生成系统                       │
└─────────────────────────────────────────────────────────────┘

Build Automation

构建自动化

python
undefined
python
undefined

✅ Production-Ready: Build Script

✅ 生产就绪: 构建脚本

import subprocess import os from datetime import datetime
class GameBuilder: def init(self, project_path: str, unity_path: str): self.project_path = project_path self.unity_path = unity_path self.build_number = self._get_build_number()
def build(self, platform: str, config: str = "Release"):
    build_path = f"Builds/{platform}/{self.build_number}"

    args = [
        self.unity_path,
        "-quit",
        "-batchmode",
        "-projectPath", self.project_path,
        "-executeMethod", "BuildScript.Build",
        f"-buildTarget", platform,
        f"-buildPath", build_path,
        f"-buildConfig", config,
        "-logFile", f"Logs/build_{platform}.log"
    ]

    result = subprocess.run(args, capture_output=True)

    if result.returncode != 0:
        raise Exception(f"Build failed: {result.stderr}")

    return build_path

def _get_build_number(self) -> str:
    return datetime.now().strftime("%Y%m%d.%H%M")
undefined
import subprocess import os from datetime import datetime
class GameBuilder: def init(self, project_path: str, unity_path: str): self.project_path = project_path self.unity_path = unity_path self.build_number = self._get_build_number()
def build(self, platform: str, config: str = "Release"):
    build_path = f"Builds/{platform}/{self.build_number}"

    args = [
        self.unity_path,
        "-quit",
        "-batchmode",
        "-projectPath", self.project_path,
        "-executeMethod", "BuildScript.Build",
        f"-buildTarget", platform,
        f"-buildPath", build_path,
        f"-buildConfig", config,
        "-logFile", f"Logs/build_{platform}.log"
    ]

    result = subprocess.run(args, capture_output=True)

    if result.returncode != 0:
        raise Exception(f"Build failed: {result.stderr}")

    return build_path

def _get_build_number(self) -> str:
    return datetime.now().strftime("%Y%m%d.%H%M")
undefined

Team Workflow

团队工作流

AGILE SPRINT WORKFLOW:
┌─────────────────────────────────────────────────────────────┐
│  DAY 1: Sprint Planning                                      │
│  • Review backlog                                           │
│  • Commit to sprint goals                                   │
│  • Break into tasks                                         │
├─────────────────────────────────────────────────────────────┤
│  DAILY: Standup (15 min)                                    │
│  • What did you do?                                         │
│  • What will you do?                                        │
│  • Any blockers?                                            │
├─────────────────────────────────────────────────────────────┤
│  CONTINUOUS: Development                                    │
│  • Work on tasks                                            │
│  • Daily builds/tests                                       │
│  • Code reviews                                             │
├─────────────────────────────────────────────────────────────┤
│  PLAYTEST: Mid-sprint                                       │
│  • Team plays current build                                 │
│  • Gather feedback                                          │
│  • Adjust priorities                                        │
├─────────────────────────────────────────────────────────────┤
│  END: Sprint Review + Retro                                 │
│  • Demo completed work                                      │
│  • What went well/poorly?                                   │
│  • Improvements for next sprint                             │
└─────────────────────────────────────────────────────────────┘
敏捷迭代工作流:
┌─────────────────────────────────────────────────────────────┐
│  第1天: 迭代规划                                      │
│  • 梳理产品待办列表                                           │
│  • 确认迭代目标                                   │
│  • 拆解为具体任务                                         │
├─────────────────────────────────────────────────────────────┤
│  每日: 站会 (15分钟)                                    │
│  • 昨日完成工作?                                         │
│  • 今日计划工作?                                        │
│  • 有无阻塞问题?                                            │
├─────────────────────────────────────────────────────────────┤
│  持续: 开发阶段                                    │
│  • 处理任务                                            │
│  • 每日构建/测试                                       │
│  • 代码评审                                             │
├─────────────────────────────────────────────────────────────┤
│  中期: 内部试玩                                       │
│  • 团队体验当前版本                                 │
│  • 收集反馈                                          │
│  • 调整优先级                                        │
├─────────────────────────────────────────────────────────────┤
│  末期: 迭代评审+回顾                                 │
│  • 演示完成的工作                                      │
│  • 哪些做得好/不好?                                   │
│  • 制定下一轮迭代改进措施                             │
└─────────────────────────────────────────────────────────────┘

🔧 Troubleshooting

🔧 故障排查

┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Merge conflicts in scene files                     │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS:                                                   │
│ → Use prefabs instead of scene objects                      │
│ → Smart merge tools (Unity Smart Merge)                     │
│ → Coordinate who works on which scenes                      │
│ → Use scene additivity                                      │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Repository growing too large                       │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS:                                                   │
│ → Configure Git LFS properly                                │
│ → Clean up old branches                                     │
│ → Don't commit generated files (Library/)                   │
│ → Use .gitignore templates for game engines                │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Builds breaking frequently                         │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS:                                                   │
│ → Add CI build on every PR                                  │
│ → Implement smoke tests                                     │
│ → Require passing builds before merge                       │
│ → Add pre-commit hooks for validation                       │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 问题: 场景文件合并冲突                     │
├─────────────────────────────────────────────────────────────┤
│ 解决方案:                                                   │
│ → 使用预制件替代场景对象                      │
│ → 智能合并工具 (Unity Smart Merge)                     │
│ → 协调分工,明确谁负责哪些场景                      │
│ → 使用场景加载叠加性                                      │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ 问题: 仓库体积过大                       │
├─────────────────────────────────────────────────────────────┤
│ 解决方案:                                                   │
│ → 正确配置Git LFS                                │
│ → 清理旧分支                                     │
│ → 不要提交生成文件 (Library/)                   │
│ → 使用游戏引擎专属.gitignore模板                │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ 问题: 构建频繁失败                         │
├─────────────────────────────────────────────────────────────┤
│ 解决方案:                                                   │
│ → 为每个PR添加CI构建检查                                  │
│ → 实现冒烟测试                                     │
│ → 要求构建通过后才能合并                       │
│ → 添加提交前钩子做验证                       │
└─────────────────────────────────────────────────────────────┘

Essential .gitignore

必备.gitignore

gitignore
undefined
gitignore
undefined

Unity

Unity

Library/ Temp/ Obj/ Build/ *.csproj *.unityproj *.sln
Library/ Temp/ Obj/ Build/ *.csproj *.unityproj *.sln

Unreal

Unreal

Intermediate/ Saved/ DerivedDataCache/ *.sln
Intermediate/ Saved/ DerivedDataCache/ *.sln

Common

Common

*.log *.tmp .DS_Store Thumbs.db

---

**Use this skill**: When setting up pipelines, managing assets, or automating builds.
*.log *.tmp .DS_Store Thumbs.db

---

**使用本技能场景**:搭建管线、管理资源或自动化构建时。