game-design-theory
Comprehensive game design theory covering MDA framework, player psychology, balance principles, and progression systems. Master why games are fun.
Install
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-game-developer --skill game-design-theorySKILL.md
Game Design Theory
The MDA Framework
┌─────────────────────────────────────────────────────────────┐
│ MDA FRAMEWORK │
├─────────────────────────────────────────────────────────────┤
│ MECHANICS (Rules): │
│ → Player actions, constraints, state changes │
│ → Example: Jump has height limit, costs stamina │
│ ↓ │
│ DYNAMICS (Behavior): │
│ → Emergent gameplay from mechanic interactions │
│ → Example: Wall-jump combos, speedrun routes │
│ ↓ │
│ AESTHETICS (Experience): │
│ → Emotional responses: Fun, tension, achievement │
│ → Example: Flow state, satisfaction, immersion │
└─────────────────────────────────────────────────────────────┘
Core Game Loop
┌─────────────────────────────────────────────────────────────┐
│ ENGAGEMENT LOOP │
├─────────────────────────────────────────────────────────────┤
│ 1. INPUT → Player takes action │
│ 2. PROCESS → Game calculates results │
│ 3. FEEDBACK → Immediate visual/audio response │
│ 4. REWARD → Progress, points, unlocks │
│ 5. REPEAT → Loop invites next iteration │
│ │
│ Loop Quality Criteria: │
│ ✓ Fast feedback (< 100ms) │
│ ✓ Clear causation │
│ ✓ Rewarding outcomes │
│ ✓ Compelling repetition │
└─────────────────────────────────────────────────────────────┘
Flow Channel (Csikszentmihalyi)
Anxiety
↑
Hard │ ████
│ ██████ ← FLOW CHANNEL
Skill │ ████████ (Optimal Engagement)
Level │████████████
Easy │██████████████
└──────────────────→
Low Challenge High
TARGET: Match challenge to player skill
Player Psychology
Bartle's Player Types
| Type | Motivation | Design For |
|---|---|---|
| Achiever | Goals, progression | Achievements, levels |
| Explorer | Discovery, secrets | Hidden content, lore |
| Socializer | Community | Chat, guilds, co-op |
| Killer | Competition | PvP, leaderboards |
Motivation Drivers
SELF-DETERMINATION THEORY:
┌─────────────────────────────────────────────────────────────┐
│ AUTONOMY: Choice and control over actions │
│ COMPETENCE: Mastery and skill demonstration │
│ RELATEDNESS: Connection to characters/community │
└─────────────────────────────────────────────────────────────┘
Reward Systems
REWARD TYPES:
┌─────────────────────────────────────────────────────────────┐
│ INTRINSIC (Internal): │
│ • Achievement satisfaction │
│ • Creative expression │
│ • Curiosity fulfillment │
│ • Skill mastery │
├─────────────────────────────────────────────────────────────┤
│ EXTRINSIC (External): │
│ • Points, scores │
│ • Unlocks, cosmetics │
│ • Leaderboard position │
│ • Currency rewards │
└─────────────────────────────────────────────────────────────┘
REWARD SCHEDULING:
• Fixed Ratio: Every N actions (predictable)
• Variable Ratio: Random timing (engaging but ethical concerns)
• Fixed Interval: Every N seconds
• Milestone: At progression checkpoints
Balance Principles
| Aspect | Goal | Technique |
|---|---|---|
| Mechanical | All options viable | Counter-play, trade-offs |
| Economic | Meaningful scarcity | Sinks and faucets |
| Difficulty | Appropriate challenge | Dynamic scaling |
| Competitive | Fair play | Mirror balance, no dominance |
🔧 Troubleshooting
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Players find game boring │
├─────────────────────────────────────────────────────────────┤
│ ROOT CAUSES: │
│ • Challenge too easy (below flow channel) │
│ • No clear goals or progression │
│ • Feedback loop too slow │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Increase challenge curve │
│ → Add clear milestones and rewards │
│ → Speed up core loop, add variety │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Players frustrated / quitting │
├─────────────────────────────────────────────────────────────┤
│ ROOT CAUSES: │
│ • Difficulty spike (above flow channel) │
│ • Unclear mechanics or feedback │
│ • Unfair or random feeling deaths │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Smooth difficulty curve │
│ → Improve tutorial and feedback │
│ → Make deaths feel fair and educational │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Dominant strategy / no variety │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Add counter-play to dominant options │
│ → Buff underused alternatives │
│ → Create situational advantages │
└─────────────────────────────────────────────────────────────┘
Design Checklist
PRE-PRODUCTION:
□ Target audience defined
□ Core loop documented
□ Unique selling point clear
□ Reference games analyzed
PRODUCTION:
□ Mechanics serve aesthetics
□ Feedback loops verified
□ Balance spreadsheets maintained
□ Playtest schedule in place
POLISH:
□ First-time user experience tested
□ Difficulty curve validated
□ Reward timing optimized
□ Edge cases handled
Use this skill: When designing game systems, understanding player psychology, or balancing gameplay.
Related skills
godot-gdscript-patternswshobson16KMaster Godot 4 GDScript patterns including signals, scenes, state machines, and optimization. Use when building Godot games, implementing game systems, or learning GDScript best practices.game-enginegithub13KExpert skill for building web-based game engines and games using HTML5, Canvas, WebGL, and JavaScript. Use when asked to create games, build game engines, implement game physics, handle collision detection, set up game loops, manage sprites, add game controls, or work with 2D/3D rendering. Covers techniques for platformers, breakout-style games, maze games, tilemaps, audio, multiplayer via WebRTC, and publishing games.unity-ecs-patternswshobson11KMaster Unity ECS (Entity Component System) with DOTS, Jobs, and Burst for high-performance game development. Use when building data-oriented games, optimizing performance, or working with large entity counts.msw-defaultplayermsw-git7.9KMSW DefaultPlayer (character) management. Use the msw-general ModelBuilder to inspect/patch DefaultPlayer.model and Player.model, add/remove components, configure movement speed / jump force / HP / camera, and per-map-mode movement components. Use for DefaultPlayer model, player components, movement speed, jump force, HP, camera, physics. Keywords: player, DefaultPlayer, speed, jump, HP, camera, gravity, revive, respawn, character.