中EN
概念页

电子表格平衡技法

Spreadsheet Techniques for Game Balance

Schreiber 与 Romero《Game Balance》第三部分(第 26–37 章,p.639–738)是一套面向数值策划的电子表格教程,示例以 Google Sheets 为主,目标是从"从没听说过"到"熟练自如"。本页整理其中与表格本身的搭建和组织有关的部分(第 26–30、33、34、36 章):基本操作、公式填充与趋势线、相对/绝对引用、成本曲线表的布局与条件格式、单元格类型的配色约定、日期函数和图表,最后列出已经过时或说法有误的地方。随机与统计函数、穷举与蒙特卡洛、洗牌与掉落表、逐回合模拟和矩阵运算(第 31、32、35、37 章)内容较多,单独整理在 电子表格中的随机模拟与矩阵求解。

定位(p.639)

多数设计师爱用电子表格,不爱用的也离不开;即使是老手,也可能从这部分找到没听过的冷门功能。原书推荐 Excel、Numbers、OpenOffice Calc 或 Google 表格;截图多来自 Google 表格,因为它便于分布式团队共享,在业界很流行。第三部分没有讨论题,各章都以"支线"练习收尾。

基本操作中值得记住的几点(第 26–28 章,p.641–657)

  • 界面:单元格由列字母和行号定位,当前单元格所在行列的表头会高亮;内容同时显示在单元格和编辑栏中。Excel 与 Numbers 的编辑栏有取消(X)和确认(√)按钮,误点其他单元格把它写进公式时可以用 X 撤回;Google 表格没有这两个按钮。
  • 选择:Shift+方向键或拖动选矩形,点行/列表头选整行/列,左上角或 Ctrl+A 全选;选中多行后右键可以一次插入同样多的行。只想让部分列下移时,不能插入整行,要选中后剪切粘贴。
  • 插入/删除与清除:清除只清空内容,删除会让下方或右侧的单元格移位;插入、删除行列和剪切粘贴时,引用它们的公式会自动更新。
  • 公式与填充:以 = 开头,可引用其他单元格;用向下填充 (Ctrl+D)、向右填充 (Ctrl+R) 或拖动填充柄复制公式,引用会随位置相对变化(向上、向左填充只有菜单项没有快捷键)。复制一个单元格再粘贴到选中的多个单元格,也会逐个更新引用,可用于形状不规则的区域。只输入 1、2 两格再拖填充柄,软件会尝试延续简单的数列,复杂规律就会猜错。原书的贸易游戏例子:回报率每行 +50%,利润 = 买价 × 回报,卖价 = 买价 + 利润——线性的回报乘以三角形的买价,增长比两者都快(曲线类型见 数值关系与游戏曲线)。
  • 图表与趋势线:线性、多项式、指数、对数、幂、移动平均;可以显示公式(之后可用来外推)和 R2R^2(0 最差、1 精确通过每个点,没有统一的好坏线,0.988 算强拟合,0.42 应换一种形式)。
  • 支线 28.1:A 列 1–100,B 列三角数,再加 10 倍的线性列和每项 ×1.1 的指数列,把恒等、三角、线性、指数四条曲线画在一张图上比较长期形状。
  • 支线 29.1 用《EVE Online》中 Megacyte 的需求 y=500000−50xy=500000-50x 与供给 y=45xy=45x 练习画供需曲线(两线交于价格约 5263,本 wiki 计算;经济学背景见 游戏经济系统)。

绝对引用与可调参数(第 29 章,p.659–664)

经验曲线"升到 N 级需要 N(N−1)KN(N-1)K 经验"中,KK 放在单独的单元格里方便调。公式 =B5*(B5-1)*$C$2 中的 $ 让 C2 在填充时不变(绝对引用),B5 照常相对变化。原则:重复的工作交给电脑,手敲同一公式多次迟早会敲错一次。另外:

  • 用背景色区分可调参数和计算结果(没有行业标准,关键是一致);用单元格文字或批注说明复杂公式。Google 表格里"插入备注 (Note)"相当于其他软件的批注,单元格角上显示黑色三角;"评论 (Comment)"则带作者名和"解决"按钮、可多人串楼讨论,用于团队协作提问。
  • Ctrl+方向键跳到数据块边缘,Shift+Ctrl+方向键选中整块——所以相关数据应连续存放,不要为了留白插空行空列。

成本曲线表的布局(第 30 章,p.665–680)

  • 一行一个游戏对象、一列一个属性,列按类别分组(合并单元格做分组标题、边框分隔);最右边一列用公式把收益加权求和、减去成本和限制。若都换算到恒等曲线,0 表示平衡,正数在曲线之上(太强),负数在曲线之下(太弱),离 0 越远越失衡(方法见 成本曲线与支撑数学)。
  • 把复杂公式拆成多个简单列(至少分开成本小计和收益小计),便于理解和查错;计算列用不同底色,表示不应手填。
  • 冻结首行首列;条件格式把"收益减成本"列负数标红、正数标绿,或用以 0 为中点的三色色阶显示偏离程度;按该列排序(可加第二排序键),让过强和过弱的对象聚到两端。Google 表格中条件格式规则一旦命中就不再执行后面的规则,顺序很重要。
  • 合并单元格的值存放在左上角那一格,引用时只能引用它(例如合并 E2:H5 后引用 E2)。
  • 显示格式只改变外观:格式化为整数后输入 1.4 显示为 1,但参与计算仍是 1.4(乘 10 得 14),真实值在编辑栏可见。工具栏还有水平/垂直对齐、自动换行和文字旋转,表头列多时旋转文字能让表更紧凑。
  • Google 表格的条件格式不能叠加:原书脚注举例,若要"大于 10 斜体、5–15 加粗",能叠加的软件两条规则即可,Google 表格要拆成三条互不重叠的规则。
  • 网格还能当方格纸:支线 30.1 把列宽调成与行高相同,在 20×20 格里画填字游戏、迷宫或地牢;30.2 以每格 32×32 像素在 40×30 格里模拟 1280×960 的 UI 布局(背包界面、FPS 主界面 HUD、主菜单,或按现有游戏截图复刻)。支线 30.3 把第 8 章的成本曲线练习表按本章方法整理:合并单元格分组、冻结首列和前两行、设置数字格式、对"收益减成本"列做三档或渐变条件格式,再排序(别把表头排进去)。

组织与配色规范(第 33 章,p.701–711)

电子表格既是代码也是用户界面——不编译,直接给别人看,所以一致的格式相当于程序员的代码风格。

  • 多工作表:每个用途一张表(比把角色、武器、经验曲线散落在一张表的不同区域好找,也比拆成多个文件方便互相引用),引用写作 =Weapons!B5,名字含空格时加单引号 ='Leveling Curve'!A3;跨表引用同样有相对与绝对之分(=Weapons!$B$5 填充时不变)。Google 表格用 Ctrl+Shift+PgUp/PgDn 切换工作表。
  • 按单元格类型配色,并在所有表格中保持一致:
类型含义原书建议的样式
数据 (data)写死的名称、敌人数值—
输入 (inputs)供设计师调整的成本、属性亮黄色或粗边框,表示"可以改"
计算 (calculations)中间公式,拆成小步便于查错浅灰底深灰字,表示"别动、可忽略"
控制 (controls)决定走哪套公式的输入(如卡牌类型配合 IF)—
输出 (outputs)最终关心的结果加粗、专用颜色,或用条件格式按数值变色
  • 成本列和收益列用不同底色,同类收益用同一色系的不同深浅。
  • 数据验证:限制输入范围或做下拉列表;也可以给计算列加验证来排错(如概率必须在 0–1 之间)。
  • 长文本:自动换行、Alt+Enter 换行;命名区域让公式可读(=BaseDamage*Multiplier-TargetArmor),命名引用是绝对引用。
  • 支线 33.2"词云":用合并单元格、自动换行、逐字换行的竖排文字和各种字体练习文本格式。
  • 支线 33.1"人还是机器":穷举 10 次抛硬币的 1024 种结果并计算最长连串,再让朋友凭空写 10 次"随机"结果,与随机抽取的一行比较——最长连串更长的那行多半是真随机(人类的偏差见 概率直觉与认知偏差)。本 wiki 穷举:最长连串为 1–10 的序列数依次为 2、176、370、254、126、56、24、10、4、2,最长连串 ≥ 4 的概率约 46%。

日期与时间(第 34 章,p.713–716)

  • 日期可以加减:=IF(G7<TODAY(),"OVERDUE","") 标出逾期任务;另有 WEEKNUM、MONTH、YEAR、NOW、HOUR/MINUTE/SECOND,以及 COUNTBLANK、COUNTA、ISBLANK 统计完成情况。支线 34.2 用 NOW() 在表格里做一个每秒 +1 经验、三角升级曲线的放置游戏。
  • TIMEVALUE 返回一天中已过去的比例,乘 86400 得秒数;日期时间直接加小数也行(=NOW()+0.25 是 6 小时后)。TODAY()/NOW() 和 RAND() 一样只在重算时更新,Google 表格可在设置里改为每分钟或每小时重算。
  • 支线 34.1 做任务清单:完成的留空、过期显示 OVERDUE、否则显示剩余天数,顶部统计未完成与逾期数。支线 34.2 的进阶挑战用 Google 表格的"插入 > 绘图"做按钮并配脚本,每点一下 +1 经验;终极挑战加入可购买的加速道具。
  • 逐回合模拟(迭代计算、逐行展开)见 电子表格中的随机模拟与矩阵求解。

粘贴与图表(第 36 章,p.723–730)

  • 选择性粘贴—仅粘贴值:把 RAND() 的某次结果"冻结"下来(如给跑团角色掷一次属性就固定);转置粘贴:行列互换,3×4 变 4×3,公式一并保留;也可以只粘贴格式;格式刷:选一个无格式的空单元格、点格式刷、点左上角全选,三下就能清空整张表的格式。
  • 图表一定要有标题和坐标轴标签(图表脱离表格时也能看懂);坐标轴范围要手动检查(数据在 0–1 时默认可能画到 1.2);可以在图表编辑器里修改或新增数据系列。
  • 散点图画无序的 (x,y)(x,y) 点;折线图按顺序连点,看随 x 变化的趋势(如 DAU 随时间、平均时长随等级);要用一行/列当 x 轴标签,数据未排序时会连成一团乱线,先排序或勾选"聚合";柱形图(Google 表格称 column chart)便于逐点比较多组数据。
  • 可以加误差线(如标准误差):两点的误差线重叠通常说明差异不显著,误差线长说明数据不可靠。
  • SPARKLINE(数据, {"charttype","line"}) 在单元格内画迷你图,选项写在花括号里、多个选项用分号分隔,适合每行一张小图(如 MMO 几十个区域的人数随时间变化,或成本曲线上各对象的强度)。支线 36.1 用十行数据,把 5 的倍数、前十个三角数(1 到 55)、1.511.5^1–1.5101.5^{10} 和 RANDBETWEEN(1,50) 四列画在同一张图并各配一个迷你图,再把随机列"仅粘贴值"固定下来。

原书已过时或需注意的地方

与随机函数、模拟和矩阵运算相关的更正见 电子表格中的随机模拟与矩阵求解。

原书说法现状 / 更正
Google 表格中用 Ctrl+R 强制重算(第 31、32、34 章),而第 28 章又说 Ctrl+R 是"向右填充",第 37 章还称两者是"同一个快捷键"Google 表格的 Ctrl+R 是向右填充,没有强制重算的快捷键;可以编辑任意单元格触发重算,或在"文件 > 设置 > 计算"里设置按分钟/小时重算。Excel 是 F9
Google 表格不能(直接)在单元格里放复选框现在可以通过"插入 > 复选框"添加(Google 文档编辑器帮助"使用复选框")
CONCAT 可接任意多个参数,示例 =CONCAT(J1," of ",K1)Google 表格的 CONCAT 只接受两个参数,三个以上要用 CONCATENATE 或 &;Excel 2019 起的 CONCAT 可接多个参数
第 28 章用 (n2−n)/2(n^2-n)/2 生成"前一百个三角数"该式得到 0、1、3、6……,即第 n−1n-1 个三角数;从 1 开始的三角数是 n(n+1)/2n(n+1)/2(第 36 章支线写的 1 到 55 就是这一种)
按住 Shift 点击可以选中不相邻的多个单元格,再次 Shift+点击取消(第 27 章)Shift+点击是把选区扩展成矩形;选不相邻的单元格要按住 Ctrl(Mac 为 Cmd)点击(Microsoft 支持文档"在工作表上选择单元格内容";Google 表格同理)
指数趋势线拟合 y=axy=a^x 形式的曲线(第 28 章)表格软件的指数趋势线是 y=AeBxy=Ae^{Bx},有两个参数(Microsoft 支持文档"趋势线选项"中 Exponential 的公式为 y=cebxy=ce^{bx})
Google 表格没有缩放命令,只能用浏览器缩放(第 33 章脚注)现在工具栏有"100%"缩放下拉框,也可在"查看 > 缩放"中设置 50%–200%(Google 文档编辑器帮助"缩放或更改文档视图")
TIMEVALUE() 以日期时间为参数,0 是午夜、1 是晚上 11:59(第 34 章)Google 表格与 Excel 的 TIMEVALUE 参数都是时间字符串(如 "14:15"),返回值在 [0,1)[0,1),23:59:59 约为 0.99999(Google 文档编辑器帮助 TIMEVALUE);要取 NOW() 当天已过的比例可用 =MOD(NOW(),1)
WEEKNUM() 返回 1–53(第 34 章)默认的"含 1 月 1 日的那周为第 1 周、周日起算"规则下,从周六开始的闰年最后一天会落到第 54 周,如 2000-12-31、2028-12-31(本 wiki 按该定义计算)
支线 33.1 脚注的连串公式 IF(B1=A1,K+1,1)应为 IF(B1=A1,K1+1,1),少了行号

(菜单路径以 2026 年的 Google 表格与 Microsoft 365 为准,界面可能继续变化。)

  1. Game_Balance_-_Ian_Schreiber_Brenda_Romero.pdf
  2. Ian Schreiber & Brenda Romero《Game Balance》第 1 版(CRC Press, 2022, ISBN 978-1-4987-9957-7)第三部分 Spreadsheets,第 26–37 章(印刷页 p.639–738)

相关页面

游戏策划成本曲线与支撑数学Cost Curves & Supporting Math成本曲线 (Cost Curve,亦称 Cost/Power Curve、Power Curve) 描述一个对象"花了什么"(资源成本、缺点、限制、稀有度)与"得到什么"(收益)之间的数学关系;支撑数学 (Supporting Math) 则把每一项属性、能力、限制都换算成锚点单位。两者就位后,新对象可以直接算价、旧对象可以直接判定在曲线之上 (above the curve) 还是之下。Schreiber 与 Romero 给出 PvP 与 PvE 的建曲线方法、新游戏的起步做法、从已发售游戏(以《万智牌》为例)反推成本曲线的步骤,以及六条通用准则(第 8 章,p.157–191)。游戏策划数值关系与游戏曲线Numeric Relationships & Game Curves游戏中的数字只有相对于其他数字才有意义:250 点伤害对 25,000 HP 的怪是杯水车薪。Schreiber 与 Romero 把数值关系分为取舍关系 (Tradeoff) 与进程关系 (Progression),并用"曲线 (Curve)"——一种资源随另一种资源增加而变化的图——描述它们;常见形状有恒等、线性、指数、对数、三角数与定制曲线,F2P 游戏还会刻意使用成本混淆曲线(第 2 章 p.36–38,第 4 章 p.63–78)。游戏策划独立随机与骰子概率Independent Randomness & Dice ProbabilitySchreiber 与 Romero 第 17 章(第二部分"平衡的数学"首章)讲独立随机:骰子记法与等价随机器、概率/赔率/机会三个词的区别、用计数求概率、乘法与加法法则、取反、期望值、排列、大数定律,并用 Kill the Elf、50d6 赛马、Pig 与 TCG 稀有度四个案例说明短期波动与"稀有"陷阱(p.431–454)。游戏策划相依随机与抽牌概率Dependent Randomness & Card DrawsSchreiber 与 Romero 第 18 章讲相依随机:以不放回抽牌为典型,已知一个结果会改变后续事件的概率。内容包括"揭示信息才改变概率"、两张牌成对、组合与排列公式、扑克牌型计数、《万智牌》洗牌计数,以及蒙提霍尔问题(含节目中的真实规则与一般化)和假阳性悖论(p.455–475)。游戏数学描述统计与显著性检验Descriptive Statistics & Significance Testing概率是"已知随机过程、预测结果",统计则反过来——"已知结果数据、反推随机过程的性质"。Schreiber 与 Romero 第 24 章(p.583–602)给出设计师分析试玩与运营数据最常用的工具:均值、中位数与标准差的对照解读,离群值的处理,统计显著性与 Z 检验,相关系数,以及安斯库姆四重奏、样本量、样本偏差、埋点 bug、相关≠因果等常见错误。本页还补充了原书对 p 值的解释与主流统计学观点的分歧。游戏数学马尔可夫链与状态机概率Markov Chains & State-Machine Probability当一个随机过程可能无限进行下去(如"每次 80% 再加 1 点伤害")时,无法枚举所有结果;把它画成以概率转移的状态机,写成转移矩阵,再用列向量反复左乘矩阵(马尔可夫链 (Markov Chain)),就能得到任意回合后的状态分布、稳态、游戏时长的中位数/均值/众数;反向则可用递归把复杂局面化归为已知的简单局面。本页按 Schreiber 与 Romero 第 22 章整理(p.525–556),并核对了书中数字。游戏策划收益矩阵与非传递机制求解Payoff Matrices & Solving Intransitive Mechanics非传递机制没有成本曲线可用,它的"解"是各选项的使用比例。Schreiber 与 Romero 第 25 章(p.603–638)用收益表 → 剔除被占优选项 → 找最优反应循环 → 列方程(同一玩家所有可行选项收益相等,概率之和为 1)→ 化三角矩阵求解的流程,求解了带成本、不完全胜负、非对称、五选项、四选项、Game of Malkav 与三人版的石头剪刀布。本页按原书整理,并用线性规划复核:其中 Game of Malkav 与三人版的结果有误,正确值见文中"原书问题"。游戏策划游戏经济系统Game Economic Systems经济系统 (Economic System) 处理资源如何产生、玩家如何通过生产/获取/交易控制资源、以及资源如何被消耗。Schreiber 与 Romero 区分固定、玩家动态、F2P、声望、真实货币五种经济,用供给与需求、边际、替代品与互补品、市场价格解释玩家行为,并系统讨论通货膨胀(供给侧、需求侧)的成因与对策、开放与封闭经济的平衡方法(第 6 章,p.101–132)。游戏策划电子表格中的随机模拟与矩阵求解Spreadsheet Simulation & Matrix Solving《Game Balance》第三部分里与"算概率、做模拟"有关的四章:第 31 章随机、统计与条件函数及"穷举还是蒙特卡洛",第 32 章洗牌与加权掉落表,第 35 章用迭代计算或逐行展开做逐回合模拟,第 37 章在表格里跑马尔可夫链、解收益矩阵和用规划求解。表格的布局、格式与组织规范见 电子表格平衡技法;本页对照原书逐段核对,并标出已过时或有误的说法。游戏策划概率直觉与认知偏差Probability Intuition & Cognitive BiasesSchreiber 与 Romero 第 20 章讨论真实概率在人类心理中如何走样:期望值不等于效用(赔率、频率、金额门槛都影响意愿),一系列认知偏差与谬误让玩家把公平的随机感知为不公平;设计上的应对有三类——利用偏差(作者明确视为"黑暗面")、按偏差修改概率(并讨论其伦理)、以及诚实地公开随机结果与改进界面(p.491–508)。

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原