agentleFS
TheArchitectitTheArchitectit/awesome-cline-skills/skills/game-dev/SKILL.md

game-dev

Skill8 starsChanged 3 months agoApache-2.0View on GitHub

Game development workflows covering prototyping, mechanics design, balancing, testing, and iteration cycles. This skill should be used when building games, prototyping gameplay systems, designing mechanics, balancing difficulty curves, or implementing game loops and player feedback systems.

We split this skill into the rules it gives an agent

9 rules. 0 are common, 8 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every mechanic should answer:

    line 68
  2. Distinctive:

    Risk/reward: Every powerful option should have a meaningful cost.

    line 83
  3. Distinctive:

    Counter-play: Every strategy should have a viable counter.

    line 84
  4. Distinctive:

    Goal: Create the right difficulty curve and progression pacing.

    line 118
  5. Distinctive:

    Goal: Verify mechanics work correctly and the experience matches intent.

    line 168
  6. Distinctive:

    Document findings: before implementing changes

    line 211
  7. Distinctive:

    Only testing happy paths: Test edge cases — zero resources, max level, save corruption.

    line 251
  8. Distinctive:

    Keep a "kill list" of features you cut — they might work in a different context

    line 279
  9. Very specific:

    Progressive loading: Only metadata loads initially.

    line 288

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Game Development Workflows

This skill provides structured workflows for game development, from early prototyping through mechanics iteration, balancing, and testing. It covers core game dev patterns that apply across engines and genres.

Prerequisites

  • A game engine or framework (Unity, Godot, Unreal, or custom)
  • Basic understanding of game loops and real-time systems
  • Version control (git) for iterative development

When to Use This Skill

  • Prototyping a new game idea or mechanic
  • Designing and iterating on gameplay systems
  • Balancing difficulty, economy, or progression
  • Building player feedback and juice/polish systems
  • Structuring game projects for iterative development
  • Writing game-specific tests and validation

Core Workflows

1. Prototyping

Goal: Validate the core fun factor before investing in production.

Rapid Prototype Process

  1. Identify the core loop — What does the player do repeatedly?
  2. Strip to minimum — Remove everything that isn't the core mechanic
  3. Time-box to 48 hours — Prototypes that take longer are too complex
  4. Playtest immediately — If it's not fun in 5 minutes, redesign

Prototype Structure

prototype/
├── core_mechanic/      # The one thing the game is about
├── player_input/       # Minimal input handling
├── feedback/           # Visual/audio response to actions
└── win_lose/           # Success and failure states

Prototype Checklist

  • Player can perform the core action within 10 seconds
  • Core loop is clear: action → feedback → consequence → repeat
  • There is a clear success and failure state
  • The game communicates its rules without a tutorial
  • It's fun (or at least interesting) for 2+ minutes

Key Questions

  • What is the one verb the player uses most? (jump, shoot, build, negotiate)
  • What makes that verb interesting? (timing, strategy, creativity, reflexes)
  • What's the minimum needed to test if that verb is fun?

2. Mechanics Design

Goal: Build systems that create interesting decisions.

Mechanics Framework

Every mechanic should answer:

ElementQuestionExample
TriggerWhen can the player use it?When holding a weapon, during combat
ActionWhat does the player do?Press attack button
CostWhat does it consume?Stamina, ammo, cooldown time
EffectWhat happens in the game?Deal damage in a cone
FeedbackHow does the player know it worked?Screen shake, hit particles, sound
CounterHow can enemies/players respond?Block, dodge, interrupt

Designing for Depth

  • Orthogonal mechanics: Each mechanic should solve a different problem. Avoid overlap.
  • Emergent interactions: Mechanics should combine in unexpected ways.
  • Risk/reward: Every powerful option should have a meaningful cost.
  • Counter-play: Every strategy should have a viable counter.

Systems Architecture Pattern

// Component-based mechanic design
class Mechanic {
  constructor(config) {
    this.trigger = config.trigger;    // When it activates
    this.cost = config.cost;          // Resource cost
    this.effect = config.effect;      // Game state change
    this.feedback = config.feedback;  // Player-facing response
    this.cooldown = config.cooldown;  // Timing constraint
  }

  canActivate(playerState) {
    return this.trigger.isMet(playerState) 
      && this.cost.canPay(playerState)
      && this.cooldown.isReady();
  }

  activate(playerState, worldState) {
    if (!this.canActivate(playerState)) return false;
    this.cost.pay(playerState);
    this.effect.apply(playerState, worldState);
    this.feedback.play();
    this.cooldown.start();
    return true;
  }
}

3. Game Balancing

Goal: Create the right difficulty curve and progression pacing.

Balance Types

Balance TypeWhat It ControlsExample
DifficultyChallenge over timeEnemy health, AI aggression
EconomyResource flowGold income vs. item costs
ProgressionPlayer power growthXP curve, unlock schedule
PacingTension and reliefCombat density, rest areas
OptionsStrategic viabilityBuild diversity, weapon balance

Balancing Process

  1. Define target experience — "Player should feel challenged but never stuck"
  2. Instrument the game — Log every relevant metric
  3. Establish baselines — Average completion time, death count, resource levels
  4. Adjust one variable at a time — Never tune multiple things simultaneously
  5. Playtest with fresh players — You're immune to your own difficulty

Difficulty Curve Design

Difficulty
    │        ╭──────╮
    │       ╱       ╲     ← Boss spikes
    │     ╱╱         ╲╱╱
    │   ╱╱              ╲╱╱   ← Gradual ramp
    │ ╱╱                    ╲
    │╱                       ╲
    └──────────────────────────▶ Time/Progression
    ▲                        ▲
    Learn mechanics      Mastery test

Balancing Spreadsheet Structure

Item/EnemyHPDamageSpeedCostDPSValueNotes
Slime102Slow—2LowTutorial enemy
Goblin255Med—5MedFirst real threat
Dragon50040Fast—40BossEnd-of-act challenge

Key ratios to track:

  • Time-to-kill vs. time-to-die (player should win by a comfortable margin in normal encounters)
  • Resource income vs. expenditure per encounter
  • Damage output of each build relative to content difficulty

4. Game Testing

Goal: Verify mechanics work correctly and the experience matches intent.

Testing Layers

LayerScopeFrequency
UnitIndividual mechanics, damage calc, inventoryEvery change
IntegrationMechanic interactions, save/load, progressionDaily
BalanceDifficulty, economy, pacingWeekly
PlaytestFull experience, new player onboardingPer milestone

Test Patterns for Games

# Damage calculation test
def test_damage_with_armor():
    player = Player(attack=50)
    enemy = Enemy(armor=20, hp=100)
    
    damage = calculate_damage(player.attack, enemy.armor)
    enemy.take_damage(damage)
    
    assert damage == 30  # 50 - 20
    assert enemy.hp == 70

# Economy balance test  
def test_economy_over_10_levels():
    income_per_level = [100, 120, 150, 180, 220, 270, 330, 400, 480, 580]
    expenses_per_level = [80, 100, 130, 160, 200, 250, 310, 380, 460, 560]
    
    total_gold = 0
    for i in range(10):
        total_gold += income_per_level[i] - expenses_per_level[i]
        assert total_gold >= 0, f"Player goes broke at level {i+1}"
        assert total_gold <= 500, f"Player too rich at level {i+1}"

Playtest Protocol

  1. Brief the tester minimally — "Figure out how to play" tests onboarding
  2. Observe without helping — Note where they struggle, not how to fix it yet
  3. Track key metrics: Time to first success, death locations, confusion points
  4. Debrief after: What was confusing? What was fun? What would you change?
  5. Document findings before implementing changes

5. Player Feedback and Juice

Goal: Make every action feel satisfying and every event readable.

Feedback Hierarchy

PriorityTypePurposeExample
1CriticalPlayer must not miss thisHealth low, objective updated, death
2ImportantPlayer should notice thisDamage dealt, item collected, level up
3EnhancingMakes things feel betterScreen shake, particles, sound variants
4AmbientWorld feels aliveFootstep sounds, idle animations, weather

Juice Checklist Per Mechanic

  • Visual feedback on action (flash, particle, trail)
  • Audio feedback on action (hit sound, whoosh, chord)
  • Camera response (shake, zoom, pan)
  • Haptic feedback (if applicable)
  • Numerical feedback (damage numbers, +XP popup)
  • State change indicated (color shift, icon update)

Error Handling

Common Prototyping Pitfalls

  • Scope creep: Cut features ruthlessly. If it's not core, it's not prototype.
  • Premature polish: Gray boxes and placeholder sounds are fine. Fun first, pretty later.
  • No failure state: A prototype where you can't lose isn't testing the right thing.

Common Balancing Pitfalls

  • Over-tuning numbers before testing systems: Get systems right first, then tune.
  • Balancing for yourself: You've played it 100 times. You are not the player.
  • Flat difficulty: Players learn. Difficulty must escalate to match growing mastery.

Common Testing Pitfalls

  • Only testing happy paths: Test edge cases — zero resources, max level, save corruption.
  • Testing on powerful hardware: Profile on target minimum spec.
  • Skipping playtests: Developer testing catches bugs. Playtesting catches bad design.

Project Structure

game-project/
├── src/
│   ├── core/           # Game loop, state machine, manager singletons
│   ├── mechanics/      # Individual gameplay mechanics
│   ├── entities/       # Player, enemies, items, obstacles
│   ├── systems/        # AI, physics, economy, progression
│   ├── feedback/       # VFX, SFX, camera, haptics
│   └── data/           # Balance tables, level data, configs
├── tests/
│   ├── unit/           # Mechanic and system tests
│   ├── integration/    # Cross-system interaction tests
│   └── balance/        # Data-driven balance validation
└── docs/
    ├── gdd/            # Game design document sections
    ├── balance/        # Spreadsheets, analysis
    └── playtest/       # Observation notes, findings

Tips

  • Prototype the riskiest mechanic first — the thing you're least sure will be fun
  • Keep a "kill list" of features you cut — they might work in a different context
  • Session length matters: design knowing whether players play for 5 minutes or 5 hours
  • Replayability comes from meaningful variation, not just randomization
  • The best tutorials teach by doing, not by showing text

Cline Workflow Notes

  1. Install location: Copy this skill directory to .cline/skills/game-dev/ (project-level) or ~/.cline/skills/game-dev/ (global)
  2. Activation: Cline will suggest this skill when you're building games, prototyping gameplay, or designing game mechanics
  3. Progressive loading: Only metadata loads initially; full game dev patterns activate via use_skill when game work begins

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.