mcpField
D
design-game-design-fundamentals

design-game-design-fundamentals

github.com/fcsouza创意与媒体24100 次安装1 周前更新
代码仓库

关于 design-game-design-fundamentals

面向游戏设计师和开发者的通用游戏设计技能,涵盖核心循环、玩家动机、成长与系统设计,并结合理论框架、实践步骤、模板和代码示例。

主要功能

  1. 01核心循环与游玩时段循环设计
  2. 02MDA 与玩家动机框架
  3. 03成长与难度规划
  4. 04奖励、经济与平衡指导
  5. 05GDD 和动机工作表模板
  6. 06TypeScript 系统示例

适用场景

  1. 01拟定游戏核心循环
  2. 02规划玩家成长与难度曲线
  3. 03依据目标玩家体验审视游戏机制

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fcsouza/agent-skills --skill design-game-design-fundamentals

安装后在 Claude Code 中输入/design-game-design-fundamentals确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

boilerplate/
core-loop.ts
feedback-system.ts
templates/
gdd-template.md
player-motivation-worksheet.md

详细介绍

游戏设计基础

核心游戏设计理论——循环、反馈系统、玩家动机、MDA 框架。适用于所有游戏类型,不受游戏类型限制的基础。


目的

提供适用于任何游戏类型的通用设计基础。本技能涵盖支撑所有成功游戏设计的理论、框架和实用模式——从核心循环到玩家心理,再到进度节奏。


使用时机

触发词:游戏设计、核心循环、反馈系统、玩家动机、MDA 框架、游戏手感、进度设计、难度曲线、玩家心理、Bartle 类型、心流状态、奖励系统


前置条件

无——这是一项基础设计技能。


核心原则

  1. “游戏是一系列有趣的决策”——Sid Meier。每个时刻都应为玩家提供有意义的选择。
  2. 核心循环必须在 30 秒内展现乐趣——Miyamoto 原则。如果基本的行动—反馈循环不能立刻带来满足感,再多内容也无法挽救游戏。
  3. MDA:机制 -> 动态 -> 美学——Hunicke、LeBlanc、Zubek。设计师创造机制;玩家体验美学。动态由各元素的相互作用产生。
  4. 心流通道:挑战必须与技能水平相匹配——Csikszentmihalyi / Jenova Chen。难度过低会令人厌倦,过高则会令人焦虑。目标是找到两者之间的狭窄通道。
  5. 精通带来乐趣——Raph Koster,《游戏设计的乐趣理论》。玩家喜欢学习模式。一旦完全掌握某种模式,再无新知可学,乐趣便会消失。
  6. 优雅的系统:规则极简,复杂性涌现——Richard Garfield。最好的设计采用少量清晰规则,组合后便能产生丰富的可能性空间。
  7. 优先设计手感:先制作原型验证手感,再构建系统——Miyamoto。游玩时每一刻的触感和体验,比任何功能清单都重要。
  8. 奖励机制:变动比率 > 固定比率——行为心理学(B. F. Skinner)。与可预测的奖励相比,变动奖励能更持久地维持参与度。
  9. 玩家类型:成就者、探索者、社交者、杀手——Richard Bartle。不同玩家希望从同一款游戏中获得截然不同的体验。
  10. 克制也是一种设计工具——Fumito Ueda。删去的内容与添加的内容同样重要。精妙源于删减。

分步说明

阶段 1:概念与愿景
  1. 定义核心幻想。 玩家会感觉自己在做什么?关注的不是机制,而是体验。
  2. 确定目标玩家类型(Bartle 分类法)。哪 1–2 种类型是主要目标?围绕他们设计核心循环。
  3. 写一句话简介。 如果无法用一句话描述这款游戏,说明概念还不够聚焦。
  4. 定义 MDA 目标。 选择 2–3 种目标美学(感官、幻想、叙事、挑战、伙伴关系、探索、表达、投入)。所有机制都应服务于这些美学。
阶段 2:核心循环设计
  1. 设计 30 秒循环。 行动 -> 反馈 -> 奖励 -> 决策 -> 行动。首先制作这个循环的原型。
  2. 构建游玩时段循环。 目标 -> [核心循环] -> 进度 -> 新目标。为重复运行的核心循环提供方向。
  3. 构建长期循环。 社群 -> 竞争/合作 -> 地位 -> 社群。推动玩家跨时段留存。
  4. 验证循环嵌套。 每个循环都应为下一个循环提供支持。核心循环为游玩时段循环生成资源;游玩时段循环为长期循环积累进度。
阶段 3:系统设计
  1. 定义机制。 对每种机制,明确其名称、规则、输入、输出,以及它带来的感受。
  2. 梳理机制之间的互动。 哪些机制会相互增强?哪些会形成取舍?互动会带来涌现的复杂性。
  3. 设计成长曲线。 前期(快速解锁、引导教学)、中期(有意义的选择、分支)、后期(精通、优化)、终局(社交、竞争、无限成长)。
  4. 设计难度曲线。 梳理挑战与技能随时间的变化。确保玩家始终处于心流通道中。
  5. 设计奖励节奏。 混合固定奖励(可预测的里程碑)与可变奖励(随机掉落、惊喜奖励)。
阶段 4:经济与平衡
  1. 定义资源。 资源的入口(来源)和出口(消耗)分别是什么?每种资源都需要两者。
  2. 定义成长曲线。 采用线性、多项式还是指数曲线?让曲线符合预期的节奏。
  3. 试玩前 30 分钟。 核心循环是否令人满意?解锁节奏是否合适?玩家是否在做有趣的选择?
阶段 5:文档
  1. 编写游戏设计文档(GDD)。 使用 templates/gdd-template.md。
  2. 完成玩家动机工作表。 使用 templates/player-motivation-worksheet.md。
  3. 对照核心原则进行审查。 每种机制是否都服务于目标审美?核心循环能否在 30 秒内带来乐趣?是否存在心流通道?

代码示例

核心循环架构

使用 boilerplate/core-loop.ts,构建一个与游戏类型无关的系统管理器,并配置更新频率和有序的系统执行。

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();
反馈与奖励系统

使用 boilerplate/feedback-system.ts,实现事件驱动的反馈、奖励触发、连胜追踪和成就进度。

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 },
});
难度缩放
const getDifficultyMultiplier = (
  playerSuccessRate: number,
  targetSuccessRate = 0.65,
): number => {
  const deviation = playerSuccessRate - targetSuccessRate;
  return 1 + deviation * 0.3;
};
成长曲线
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;
成本缩放
const scaledCost = (baseCost: number, multiplier: number, owned: number): number =>
  baseCost * multiplier ** owned;

交叉引用

需求技能
经济平衡、资源流动、通胀控制game-economy-design
关卡/世界设计、空间布局、节奏level-design
任务/使命结构、叙事弧线quest-mission-design
技能树、天赋树、能力解锁图skill-progression-trees
游戏 UI/UX 模式、HUD 设计、菜单ui-ux-game
后端架构、网络、状态同步game-backend-architecture
视觉资产、程序化生成game-asset-gen
音效设计、音乐、音频反馈elevenlabs-sound-music
放置/增量类游戏专属模式idle-game-design

陷阱与反模式

设计陷阱
  1. 未经循环验证就不断添加功能。 添加无法融入核心循环的机制会稀释体验。每项功能都必须服务于循环。
  2. 先设计系统,后打磨手感。 在每时每刻的操作体验尚未到位前,就构建复杂的互联系统。先打磨手感,再设计系统。
  3. 难度曲线平坦。 挑战没有随时间提升。玩家很快就能掌握游戏,然后离开。
  4. 惩罚失败,而非奖励学习。 严厉的失败惩罚会让玩家不敢尝试。玩家应能放心尝试新策略。
  5. 奖励通胀。 过快给予过多奖励,会让所有奖励贬值。稀缺才能赋予奖励意义。
  6. 忽视单次游玩时长。 不考虑玩家每次实际游玩多久,会导致成长节奏显得过慢或过快。
  7. 只关注一种玩家类型。 只为一种 Bartle 类型设计,会疏远大多数潜在玩家。
  8. 将教程设计成独立体验。 教程与实际玩法脱节。最好的教程就是带有护栏的游戏玩法。
技术反模式
  1. 硬编码值。 将游戏平衡常量嵌入逻辑中,而不是通过数据驱动的配置管理。
  2. 系统紧密耦合。 系统直接相互引用,而不是通过事件进行通信。
  3. 没有序列化策略。 构建游戏状态时,没有从一开始就考虑存档和读档。
  4. 浮点数累积。 使用原始浮点运算计算资源总量,会导致精度随时间逐渐偏移。

设计师理念

关于简洁

“完美并非无以增添,而是无可删减。” — Antoine de Saint-Exupery

这句话直接适用于游戏设计。最经久不衰的游戏都有简单的规则和深刻的涌现行为。添加机制之前,先问问自己:能否扩展现有机制来实现?

关于玩家自主权

玩家必须始终感到自己的决定举足轻重。如果最优路径总是一目了然,那就没有决策可言,只有执行。如果结果总是随机的,那就没有自主权可言,只有运气。理想的状态是:玩家做出有依据的决定,而结果虽不确定,却会受到技巧的影响。

关于迭代

任何设计在首次面对玩家时都难免需要调整。做好迭代准备:

  • 先对核心循环进行原型设计(纸面或数字形式)。
  • 尽早使用尽可能简单的版本进行试玩。
  • 衡量玩家做了什么,而不是他们说了什么。
  • 最后再调整数值——先改善体验。
关于尊重

尊重玩家的时间、智慧和自主权。不要用人为设置的门槛浪费他们的时间。不要用过多的引导侮辱他们的智慧。不要用强制路线剥夺他们的自主权。玩家选择花时间体验你的游戏,请珍视这一选择。


来源

书籍
  • Koster, Raph. A Theory of Fun for Game Design (2004)。核心论点:乐趣是掌握模式的过程。
  • Schell, Jesse. The Art of Game Design: A Book of Lenses (2008)。提供 100 多种分析设计决策的视角。
  • Hunicke, LeBlanc, Zubek. MDA: A Formal Approach to Game Design and Game Research (2004)。分析机制、动态和美学的基础框架。
  • Csikszentmihalyi, Mihaly. Flow: The Psychology of Optimal Experience (1990)。关于投入感以及心流通道的心理学研究。
  • Bartle, Richard. Designing Virtual Worlds (2003)。玩家类型分类法与多人游戏设计。
  • Salen & Zimmerman. Rules of Play: Game Design Fundamentals (2003)。对游戏设计理论的全面学术论述。
  • Fullerton, Tracy. Game Design Workshop (2008)。实用的设计方法和试玩流程。
论文与演讲
  • Chen, Jenova. Flow in Games (2006)。将 Csikszentmihalyi 的心流理论应用于互动娱乐。
  • Garfield, Richard. Luck in Games (GDC 2012)。探讨随机性和技巧在游戏设计中的作用。
  • Ueda, Fumito. Design by Subtraction (GDC 2012)。通过移除功能来强化核心体验。
  • Meier, Sid. Interesting Decisions (GDC 2012)。探讨游戏中怎样的决策才有趣。
  • Blow, Jonathan. Designing to Reveal the Nature of the Universe (2011)。探讨游戏机制中的意义。
在线资源
  • GDC Vault (gdcvault.com) — 汇集了数千场业内人士的游戏设计演讲。
  • Gamasutra / Game Developer (gamedeveloper.com) — 行业文章与复盘分析。
  • Lost Garden (lostgarden.home.blog) — Daniel Cook 关于游戏设计理论的文章。

评论

支持 Markdown