๐ŸŽฎ Game Development

Game Design Fundamentals

What is Game Design?

"Game design is the act of deciding what a game should be." โ€” Jesse Schell

The MDA Framework

Component Description Designer's Lens
Mechanics Rules, systems, algorithms "What the game is"
Dynamics Run-time behavior "What the game does"
Aesthetics Player experience "How the game feels"

Designer creates Mechanics โ†’ generates Dynamics โ†’ creates Aesthetics Player experiences Aesthetics โ†’ through Dynamics โ†’ from Mechanics

Core Aesthetics (8 Kinds of Fun)

Aesthetic Description Example
Sensation Sensory pleasure Guitar Hero, Rez
Fantasy Make-believe D&D, Skyrim
Narrative Story The Last of Us
Challenge Obstacle overcoming Dark Souls, Celeste
Fellowship Social framework MMOs, Among Us
Discovery Exploration Minecraft, No Man's Sky
Expression Self-expression Minecraft, Dreams
Submission Pastime Candy Crush, Solitaire

Core Loops

The fundamental cycle of player activity.

Micro Loop (Second-to-Second)

Input โ†’ Process โ†’ Feedback โ†’ State Change โ†’ Repeat

Meso Loop (Minute-to-Minute)

Encounter โ†’ Decision โ†’ Outcome โ†’ Reward โ†’ Progress

Macro Loop (Session-to-Session)

Session Goal โ†’ Play โ†’ Progress โ†’ Meta-progression โ†’ Retention

Loop Design Principles

Principle Application
Clear goal Player knows what to do
Immediate feedback Action โ†’ visible result
Scaling challenge Difficulty matches skill
Meaningful choices Decisions matter

Player Types (Bartle Types)

Type Motivation Design For
Achievers Points, completion Leaderboards, achievements
Explorers Discovery, secrets Hidden areas, lore
Socializers Interaction Chat, guilds, trading
Killers Dominance PvP, leaderboards

Design insight: Most players are hybrids. Design for multiple types.

Game Mechanics Categories

Category Examples Purpose
Progression XP, levels, unlocks Long-term goals
Economy Currency, resources, trading Strategic decisions
Combat Attacks, defense, abilities Conflict resolution
Social Chat, guilds, trading Community
Exploration Map reveal, secrets Curiosity
Puzzle Logic, pattern matching Cognitive challenge

Systems Design

Resource Economy

Sources โ†’ Pools โ†’ Sinks โ†’ Feedback
Element Examples
Sources Enemy drops, quest rewards, passive gen
Pools Gold, XP, materials, energy
Sinks Upgrades, repairs, cosmetics, taxes
Transformers Crafting, refining, trading

Balance rule: Source rate โ‰ˆ Sink rate over time

Progression Systems

Type Description Example
Linear Fixed path Mario levels
Branching Choices affect path Mass Effect
Open Free exploration Skyrim
Prestige Reset for bonuses Call of Duty

Difficulty & Flow

Flow Channel (Csรญkszentmihรกlyi)

Anxiety โ†‘
    โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚    โ”‚   FLOW      โ”‚ โ—„โ”€โ”€ Optimal experience
    โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
    โ”‚         Boredom โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’ Skill
         Challenge โ†’

Dynamic Difficulty Adjustment (DDA)

# Simple DDA
if player_wins_streak > 3:
    difficulty += 0.1
elif player_loses_streak > 2:
    difficulty -= 0.1
difficulty = max(0.5, min(2.0, difficulty))
// Simple DDA
if (player_wins_streak > 3) {
    difficulty += 0.1;
} else if (player_loses_streak > 2) {
    difficulty -= 0.1;
}
difficulty = std::clamp(difficulty, 0.5, 2.0);
// Simple DDA
if (playerWinsStreak > 3) {
    difficulty += 0.1;
} else if (playerLosesStreak > 2) {
    difficulty -= 0.1;
}
difficulty = Math.clamp(difficulty, 0.5, 2.0);
// Simple DDA
if (playerWinsStreak > 3) {
    difficulty += 0.1;
} else if (playerLosesStreak > 2) {
    difficulty -= 0.1;
}
difficulty = Math.Clamp(difficulty, 0.5, 2.0);

Game Feel (Juice)

"The tactile, kinesthetic sense of interaction."

Technique Effect
Screen shake Impact weight
Hit pause Hit confirmation
Particle effects Visual feedback
Sound design Audio confirmation
Coyote time Forgiving jumps
Input buffering Responsive controls

Level Design

Pacing

Intro โ†’ Tutorial โ†’ Ramp โ†’ Challenge โ†’ Twist โ†’ Climax โ†’ Resolution

Design Patterns

Pattern Description
Lock and key Gate progress with requirement
Loop Return to hub, new paths open
Branching Multiple paths to goal
Arena Confined combat space
Chase Moving threat

Balancing

The Triangle of Balance

        Power
          โ”‚
    Cost โ†โ”ผโ†’ Utility

Rock-Paper-Scissors Balance

Unit A beats B beats C beats A
Approach When to Use
Transitive Clear hierarchy (tier lists)
Intransitive RPS-style (counter-play)
Fruit Niche roles (specialized)

Testing & Iteration

Playtest Types

Type Stage Focus
Solo Early Core loop, controls
Friends Mid Fun, confusion
Strangers Late Accessibility, balance
Analytics Live Retention, churn, economy

Data-Driven Design

Metric What It Tells You
D1/D7/D30 retention Early/long-term engagement
Session length Engagement depth
Churn points Where players quit
Economy balance Inflation/deflation
Difficulty spikes Frustration points

Further Reading

  • The Art of Game Design โ€” Jesse Schell
  • Rules of Play โ€” Salen & Zimmerman
  • Game Mechanics: Advanced Game Design โ€” Joris Dormans
  • Level Up! โ€” Scott Rogers
  • Flow โ€” Mihaly Csikszentmihalyi