design-game-design-fundamentals

Use when designing core game loops, feedback systems, player motivation models, MDA framework analysis, progression curves, difficulty tuning, reward schedules, or any genre-agnostic game design theory.

6 stars

Best use case

design-game-design-fundamentals is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when designing core game loops, feedback systems, player motivation models, MDA framework analysis, progression curves, difficulty tuning, reward schedules, or any genre-agnostic game design theory.

Teams using design-game-design-fundamentals should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/game-design-fundamentals/SKILL.md --create-dirs "https://raw.githubusercontent.com/fcsouza/agent-skills/main/plugins/game-dev/design/game-design-fundamentals/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/game-design-fundamentals/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How design-game-design-fundamentals Compares

Feature / Agentdesign-game-design-fundamentalsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when designing core game loops, feedback systems, player motivation models, MDA framework analysis, progression curves, difficulty tuning, reward schedules, or any genre-agnostic game design theory.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Game Design Fundamentals

Core game design theory — loops, feedback systems, player motivation, MDA framework. Genre-agnostic foundation for all game types.

---

## Purpose

Provide a universal design foundation applicable to any game genre. This skill covers the theory, frameworks, and practical patterns that underpin all successful game designs — from core loops to player psychology to progression pacing.

---

## When to Use

Trigger: game design, core loop, feedback system, player motivation, MDA framework, game feel, progression design, difficulty curve, player psychology, Bartle types, flow state, reward system

---

## Prerequisites

None — this is a foundational design skill.

---

## Core Principles

1. **"A game is a series of interesting decisions"** — Sid Meier. Every moment should present the player with a meaningful choice.
2. **Core loop must be fun in 30 seconds** — Miyamoto principle. If the fundamental action-feedback cycle is not satisfying immediately, no amount of content will save it.
3. **MDA: Mechanics -> Dynamics -> Aesthetics** — Hunicke, LeBlanc, Zubek. Designers create mechanics; players experience aesthetics. Dynamics emerge from the interplay.
4. **Flow channel: challenge must scale with skill** — Csikszentmihalyi / Jenova Chen. Too easy breeds boredom; too hard breeds anxiety. The target is the narrow channel between.
5. **Mastery creates fun** — Raph Koster, *A Theory of Fun for Game Design*. Players enjoy learning patterns. Once a pattern is fully mastered with nothing new to learn, fun ceases.
6. **Elegant systems: minimal rules, emergent complexity** — Richard Garfield. The best designs use few, clear rules that combine to produce deep possibility spaces.
7. **Feel-first design: prototype the feel before building the system** — Miyamoto. The tactile, moment-to-moment sensation of play is more important than any feature list.
8. **Reward schedules: variable ratio > fixed ratio** — Behavioral psychology (B.F. Skinner). Variable rewards sustain engagement far longer than predictable ones.
9. **Player types: Achievers, Explorers, Socializers, Killers** — Richard Bartle. Different players seek fundamentally different experiences from the same game.
10. **Restraint is a design tool** — Fumito Ueda. What you remove is as important as what you add. Elegance comes from subtraction.

---

## Step-by-Step Instructions

### Phase 1: Concept & Vision

1. **Define the core fantasy.** What does the player *feel* like they are doing? Not the mechanic — the experience.
2. **Identify your target player types** (Bartle taxonomy). Which 1-2 types are primary? Design the core loop for them.
3. **Write a one-sentence pitch.** If you cannot describe the game in one sentence, the concept is not focused enough.
4. **Define the MDA target.** Choose 2-3 target aesthetics (Sensation, Fantasy, Narrative, Challenge, Fellowship, Discovery, Expression, Submission). All mechanics should serve these aesthetics.

### Phase 2: Core Loop Design

5. **Design the 30-second loop.** Action -> Feedback -> Reward -> Decision -> Action. Prototype this first.
6. **Layer the session loop.** Goal -> [core loops] -> Progress -> New goal. This gives direction to repeated core loops.
7. **Layer the long-term loop.** Community -> Competition/Cooperation -> Status -> Community. This drives cross-session retention.
8. **Validate nesting.** Each loop should feed into the next. The core loop generates resources for the session loop; the session loop generates progress for the long-term loop.

### Phase 3: Systems Design

9. **Define mechanics.** For each mechanic: name, rules, inputs, outputs, and how it *feels*.
10. **Map mechanic interactions.** Which mechanics amplify each other? Which create trade-offs? Emergent complexity comes from interactions.
11. **Design the progression curve.** Early game (rapid unlocks, teaching), mid game (meaningful choices, branching), late game (mastery, optimization), endgame (social, competitive, infinite scaling).
12. **Design the difficulty curve.** Map challenge vs. skill over time. Ensure the player stays in the flow channel.
13. **Design the reward schedule.** Mix fixed rewards (predictable milestones) with variable rewards (random drops, surprise bonuses).

### Phase 4: Economy & Balance

14. **Define resources.** What are the faucets (sources) and sinks (drains)? Every resource needs both.
15. **Define growth curves.** Linear, polynomial, or exponential? Match the curve to the intended pacing.
16. **Playtest the first 30 minutes.** Is the core loop satisfying? Are unlocks paced well? Is the player making interesting decisions?

### Phase 5: Documentation

17. **Write the Game Design Document (GDD).** Use `templates/gdd-template.md`.
18. **Complete the Player Motivation Worksheet.** Use `templates/player-motivation-worksheet.md`.
19. **Review against core principles.** Does every mechanic serve the target aesthetics? Is the core loop fun in 30 seconds? Is there a flow channel?

---

## Code Examples

### Core Loop Architecture

Use `boilerplate/core-loop.ts` for a genre-agnostic system manager with configurable tick rate and ordered system execution.

```typescript
import { SystemManager } from './boilerplate/core-loop';

const manager = new SystemManager({ tickRate: 60 });
manager.register('input', new InputSystem());
manager.register('simulation', new SimulationSystem());
manager.register('feedback', new FeedbackSystem());
manager.start();
```

### Feedback & Reward System

Use `boilerplate/feedback-system.ts` for event-driven feedback, reward triggers, streak tracking, and achievement progress.

```typescript
import { GameEventBus, RewardSystem, StreakTracker } from './boilerplate/feedback-system';

const bus = new GameEventBus();
const rewards = new RewardSystem(bus);
const streaks = new StreakTracker(bus);

rewards.register({
  id: 'first-milestone',
  condition: (event) => event.type === 'milestone_reached' && event.data.level >= 10,
  reward: { type: 'resource', id: 'premium_currency', amount: 50 },
});
```

### Difficulty Scaling

```typescript
const getDifficultyMultiplier = (
  playerSuccessRate: number,
  targetSuccessRate = 0.65,
): number => {
  const deviation = playerSuccessRate - targetSuccessRate;
  return 1 + deviation * 0.3;
};
```

### Growth Curves

```typescript
const linearGrowth = (base: number, level: number, increment: number): number =>
  base + level * increment;

const polynomialGrowth = (base: number, level: number, exponent: number): number =>
  base * level ** exponent;

const exponentialGrowth = (base: number, level: number, multiplier: number): number =>
  base * multiplier ** level;
```

### Cost Scaling

```typescript
const scaledCost = (baseCost: number, multiplier: number, owned: number): number =>
  baseCost * multiplier ** owned;
```

---

## Cross-References

| Need | Skill |
|------|-------|
| Economy balancing, resource flow, inflation control | `game-economy-design` |
| Level/world design, spatial layouts, pacing | `level-design` |
| Quest/mission structure, narrative arcs | `quest-mission-design` |
| Skill trees, talent trees, ability unlock graphs | `skill-progression-trees` |
| Game UI/UX patterns, HUD design, menus | `ui-ux-game` |
| Backend architecture, networking, state sync | `game-backend-architecture` |
| Visual assets, procedural generation | `game-asset-gen` |
| Sound design, music, audio feedback | `elevenlabs-sound-music` |
| Idle/incremental-specific patterns | `idle-game-design` |

---

## Pitfalls & Anti-Patterns

### Design Pitfalls

1. **Feature creep without loop validation.** Adding mechanics that do not feed into the core loop dilutes the experience. Every feature must serve the loop.
2. **Designing systems before feel.** Building complex interconnected systems before the moment-to-moment action feels good. Feel first, systems second.
3. **Flat difficulty curve.** No increase in challenge over time. Players master the game quickly and leave.
4. **Punishing failure instead of rewarding learning.** Harsh penalties for failure discourage experimentation. Players should feel safe to try new strategies.
5. **Reward inflation.** Giving too many rewards too fast devalues them all. Scarcity creates meaning.
6. **Ignoring session design.** Not considering how long players actually play per session leads to progression that feels too slow or too fast.
7. **Single player-type focus.** Designing exclusively for one Bartle type alienates the majority of potential players.
8. **Tutorial as separate experience.** Tutorials that feel disconnected from actual gameplay. The best tutorial *is* the gameplay with guardrails.

### Technical Anti-Patterns

1. **Hardcoded values.** Game balance constants embedded in logic instead of data-driven configuration.
2. **Tightly coupled systems.** Systems that directly reference each other instead of communicating through events.
3. **No serialization strategy.** Building game state without considering save/load from the start.
4. **Floating-point accumulation.** Using raw floating-point math for resource totals leads to precision drift over time.

---

## Designer Philosophy

### On Simplicity

> "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." — Antoine de Saint-Exupery

This applies directly to game design. The most enduring games have simple rules and deep emergent behavior. Before adding a mechanic, ask: can an existing mechanic be extended instead?

### On Player Agency

The player must always feel that their decisions matter. If the optimal path is always obvious, there is no decision — only execution. If the outcome is always random, there is no agency — only luck. The sweet spot is informed decisions with uncertain but skill-influenced outcomes.

### On Iteration

No design survives first contact with players. Plan for iteration:
- Prototype the core loop first (paper or digital).
- Playtest early with the simplest possible version.
- Measure what players *do*, not what they *say*.
- Tune numbers last — fix the feel first.

### On Respect

Respect the player's time, intelligence, and autonomy. Do not waste their time with artificial gates. Do not insult their intelligence with excessive hand-holding. Do not remove their autonomy with forced paths. The player chose to spend time with your game — honor that choice.

---

## Sources

### Books

- Koster, Raph. *A Theory of Fun for Game Design* (2004). Core thesis: fun is the process of mastering patterns.
- Schell, Jesse. *The Art of Game Design: A Book of Lenses* (2008). 100+ lenses for analyzing design decisions.
- Hunicke, LeBlanc, Zubek. *MDA: A Formal Approach to Game Design and Game Research* (2004). The foundational framework for analyzing mechanics, dynamics, and aesthetics.
- Csikszentmihalyi, Mihaly. *Flow: The Psychology of Optimal Experience* (1990). The psychology of engagement and the flow channel.
- Bartle, Richard. *Designing Virtual Worlds* (2003). Player type taxonomy and multiplayer design.
- Salen & Zimmerman. *Rules of Play: Game Design Fundamentals* (2003). Comprehensive academic treatment of game design theory.
- Fullerton, Tracy. *Game Design Workshop* (2008). Practical design methodology and playtesting.

### Papers & Talks

- Chen, Jenova. *Flow in Games* (2006). Application of Csikszentmihalyi's flow to interactive entertainment.
- Garfield, Richard. *Luck in Games* (GDC 2012). On the role of randomness and skill in game design.
- Ueda, Fumito. *Design by Subtraction* (GDC 2012). Removing features to strengthen the core experience.
- Meier, Sid. *Interesting Decisions* (GDC 2012). What makes a decision interesting in games.
- Blow, Jonathan. *Designing to Reveal the Nature of the Universe* (2011). On meaning in game mechanics.

### Online Resources

- GDC Vault (gdcvault.com) — Thousands of game design talks from industry professionals.
- Gamasutra / Game Developer (gamedeveloper.com) — Industry articles and postmortems.
- Lost Garden (lostgarden.home.blog) — Daniel Cook's essays on game design theory.

Related Skills

game-lore

6
from fcsouza/agent-skills

Adds or updates a single world lore entry (faction, location, NPC, or event) — validates against existing lore for consistency, applies the right template, and updates docs/world-lore.md. Extract the entry type (faction/location/npc/event) and name from the user's message.

game-expand

6
from fcsouza/agent-skills

Adds a new feature to an existing MVP plan — scoped architect interview, scope validation against original plan, and integration into the build sequence. Extract the feature name or description from the user's message. Requires docs/mvp-first-draft.md — run game-architect first.

game-build

6
from fcsouza/agent-skills

Builds a game component from the MVP plan — production TypeScript + Vitest tests + mock dependencies + build registry tracking. Extract the component name from the user's message (or "status" to check progress). Requires docs/mvp-first-draft.md — run game-architect first.

game-balance

6
from fcsouza/agent-skills

Analyzes a game system against design principles — economy health metrics, difficulty curve, reward schedules, and progression cost curves. Flags imbalances with severity levels. Use after creating an MVP plan with game-architect. Extract the analysis scope (economy/difficulty/progression/rewards/all) from the user's message.

game-architect

6
from fcsouza/agent-skills

Comprehensive game MVP interviewer and planner. Interviews you in progressive groups, researches genre conventions and reference games, then produces an actionable MVP First Draft with starter project files. Use when starting a new game project from scratch.

narrative-story-structure-game

6
from fcsouza/agent-skills

Use when designing interactive narratives, branching storylines, player agency systems, non-linear story structures, or act frameworks for games. Triggers: branching narrative, player agency, story arc, interactive story, dialogue.

narrative-character-design-narrative

6
from fcsouza/agent-skills

Use when creating game characters, NPCs, character arcs, dialogue systems, archetypes, or character bibles. Triggers: character, NPC, dialogue, archetype, character bible, motivation arc.

infrastructure-monitoring-game-ops

6
from fcsouza/agent-skills

Use when implementing game monitoring, structured logging, player telemetry, alerting rules, or performance budgets. Triggers: monitoring, logging, telemetry, alerts, observability, metrics.

infrastructure-claude-code-game-workflow

6
from fcsouza/agent-skills

Use when starting a game project, choosing which skill to read, or navigating the game-dev skill ecosystem. Entry point for AI agents working on game development. Triggers: workflow, which skill, how to start, game project setup.

infrastructure-ci-cd-game

6
from fcsouza/agent-skills

Use when setting up CI/CD pipelines, GitHub Actions workflows, deployment automation, migration safety, or staging environments for game projects. Triggers: CI/CD, GitHub Actions, deployment, pipeline, staging.

engineering-stripe-game-payments

6
from fcsouza/agent-skills

Use when implementing game payments, in-app purchases, subscriptions, Stripe webhooks, or monetization flows. Triggers: payments, IAP, subscription, Stripe, checkout, webhooks, monetization.

engineering-redis-game-patterns

6
from fcsouza/agent-skills

Use when implementing Redis patterns for games — caching, leaderboards, pub/sub messaging, session storage, rate limiting, or ephemeral game state. Triggers: Redis, cache, leaderboard, pub/sub, rate limit, session.