home / skills / pluginagentmarketplace / custom-plugin-game-developer / game-tools-workflows

game-tools-workflows skill

/skills/game-tools-workflows

This skill streamlines game development workflows by integrating asset pipelines, version control, build automation, and team processes for efficient

npx playbooks add skill pluginagentmarketplace/custom-plugin-game-developer --skill game-tools-workflows

Review the files below or copy the command above to add this skill to your agents.

Files (4)
SKILL.md
13.5 KB
---
name: game-tools-workflows
version: "2.0.0"
description: |
  Game development tools, asset pipelines, version control, build systems,
  and team development workflows for efficient production.
sasmp_version: "1.3.0"
bonded_agent: 06-tools-pipeline
bond_type: PRIMARY_BOND

parameters:
  - name: workflow
    type: string
    required: false
    validation:
      enum: [git, build, asset_pipeline, team_process]
  - name: team_size
    type: string
    required: false
    validation:
      enum: [solo, small, medium, large]

retry_policy:
  enabled: true
  max_attempts: 3
  backoff: exponential

observability:
  log_events: [start, complete, error]
  metrics: [commit_frequency, build_success_rate, integration_time]
---

# 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                                    │
└─────────────────────────────────────────────────────────────┘
```

## Git Workflow for Games

```
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                 │
└─────────────────────────────────────────────────────────────┘
```

## 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                       │
└─────────────────────────────────────────────────────────────┘
```

## Build Automation

```python
# ✅ 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")
```

## 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                             │
└─────────────────────────────────────────────────────────────┘
```

## 🔧 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                       │
└─────────────────────────────────────────────────────────────┘
```

## Essential .gitignore

```gitignore
# Unity
Library/
Temp/
Obj/
Build/
*.csproj
*.unityproj
*.sln

# Unreal
Intermediate/
Saved/
DerivedDataCache/
*.sln

# Common
*.log
*.tmp
.DS_Store
Thumbs.db
```

---

**Use this skill**: When setting up pipelines, managing assets, or automating builds.

Overview

This skill provides practical guidance and ready patterns for game development tools, asset pipelines, version control, build automation, and team workflows. It focuses on engine-specific recommendations (Unity, Unreal, Godot) and common tooling choices to speed up production. The content helps teams standardize branching, commits, builds, and sprint processes for reliable delivery.

How this skill works

The skill inspects typical game dev stacks and recommends concrete configurations: Git + LFS or Perforce for large repos, IDE and art/audio tool choices, and .gitattributes/.gitignore best practices. It outlines a branching strategy (main/develop/feature), commit prefixes, and a production-ready build script pattern you can adapt. It also captures sprint workflows, playtest cadence, and common troubleshooting steps for merges, repo size, and flaky builds.

When to use it

  • Setting up a new game project repository and CI/CD pipeline
  • Standardizing team workflows across engines or studios
  • Configuring Git LFS, large binary handling, and .gitattributes
  • Automating daily builds, release builds, and build numbering
  • Reducing merge conflicts for scenes and large assets

Best practices

  • Use Git LFS for art/audio assets; choose Perforce for very large teams
  • Keep main reserved for production releases and use develop for integration
  • Adopt short-lived feature branches with clear commit prefixes (feat/fix/art/etc.)
  • Add CI on every PR, require passing builds, and include smoke tests
  • Avoid committing generated engine folders (Library/, Intermediate/) and use .gitignore

Example use cases

  • Implementing a Unity build server that creates timestamped builds per platform
  • Setting up .gitattributes to ensure PSD/FBX/WAV go to LFS and avoid bloated Git history
  • Creating a sprint routine with mid-sprint playtests to validate gameplay changes
  • Resolving scene merge conflicts by using prefabs and Unity Smart Merge
  • Adding pre-commit validation hooks to prevent committing large generated files

FAQ

When should I use Perforce over Git LFS?

Use Perforce when your team is large and asset concurrency is high; Git LFS is simpler for indie teams and smaller studios.

How do I reduce frequent build breaks?

Add CI on every PR, require passing builds before merge, implement smoke tests, and use pre-commit hooks to validate changes.