游戏学导论.png

今天的分享来自华中科技大学熊硕老师的《游戏学导论》课程。其中,关于游戏数值一些基础概念、原则、常用公式、以及一些实践经验,给予了我很大的启发。在这里,我并不打算做思维导图或者类似大纲总结,仅节选部分简单有趣或对我很有帮助的片段。

完整课程建议大家移步B站学习:【华中科技大学】《游戏学导论》熊硕
2024-01-02T16:09:39.png

熊硕:华中科技大学新闻与信息传播学院 硕士生导师、讲师;教育部大数据与国家传播战略实验室副研究员。


数值是什么

游戏过程中的各种问题,可以找到一种定量的方法,让我们的游戏过程的设计更加丰富,对平衡性的把握更加准确。而数值策划,就是利用各种数学工具和方法,创造一系列可以表达游戏意图的数据模型以控制游戏节奏。

基本能力:数学基础、缜密思维、对数字及其敏锐、直接和经验、工具、耐心。
数学基础:四则运算,幂函数、正态分布、微积分、概率论。

战斗力

战士vs野猪

战士:血量 hx=100,每秒伤害 dptx=20
野猪:血量 hy=90,每秒伤害 dpty=10
战斗结果:hx/dpty - hy/dptx > 0,则战士赢野猪
不等式可以变换为 hx dptx - hy dpty > 0

将 hx * dptx 记为 FCx,即战斗力(Fighting Capacity),可以用来衡量单位的战斗能力。
则战斗过程就是一个FC相减的过程,不仅可以用来判定胜负,还可以计算胜者剩余的战斗力。

使用战斗力做简单职业平衡

  • 战士:生命1000,输出30,攻击间隔3秒,FC=10000
  • 刺客:生命500,输出20,攻击间隔1秒,FC=10000

多战斗单位战斗过程

一方X0个单位,一方有Y0个单位(X0 > Y0),杀伤力为p(单位时间内输出伤害与单位生命的比值)

建立微分方程

dx/dt = -py
dy/dt = -px

两式相乘可得 xdx/dt = ydy/dt

积分0-t,得到结论:X0平方-Y0平方 = xt平方 - yt平方

兰彻斯特平方定律:在任何时候,双方人数平方的差距不变。如果单个单位战斗力为FC,则对于n个单位,其战斗力与FC*n平方成正比。

案例:

  • 足球场上被红牌罚一人带来的实力对比变化
  • RTS/MOBA中微操和战术的作用,局部以多打少

基于攻-防的战斗方式

伤害 = 攻方攻击力 - 受击方防御力

则 FCx = hx (attx - defy) fx,FCy = hy (atty - defx) fy

案例:利用数值形成循环相克

  • 单位A:hp = 1000, att = 50, def = 0, f = 1
  • 单位B:hp = 1000, att = 100, def = 20, f = 0.25
  • 单位C:hp = 1000, att = 25, def = 0, f = 3

数字敏感

  • 星际争霸:狂热者vs跳虫,由于存在伤害溢出,狂热者优先升1级攻击,输出效率不是提高12.5%而是提高50%。
  • 三国杀:额外摸牌的武将血量应该<4或摸牌应付出代价,且有1血=2牌收益。
  • 三国杀:周瑜英姿多摸一张牌 vs 甄姬洛神判定为黑则保留,谁的数学期望高?
  • 剧本杀:6人本比5人本,游戏时长和信息量不是增加20%,而是增加40%。

原则

  1. 数值需要在数学逻辑上是体系化(可以用公式描述),否则会造成系统崩溃和无限螺旋迭代。
  2. 数据需要在规则和公式体系内解释和操作,避免数据系统落雪迭代崩坏(策划vs运营)。
  3. 刚需元素尽可能采用线性模型,减少平衡性设置难度;非刚需元素可以采用非线性规则,性价比曲线采用幂函数,即越高级的东西性价比越低(但是提供额外附加值)。
  4. 谨慎使用小数据和乘法公式,容易变成数据崩坏的大风暴。
  5. 涉及概率问题,编程模拟比单纯用数据攻击计算效率高很多。

游戏洗练度理论

Game Refinement Theory,将游戏进程模拟成物理活动以描述其在大脑内的活动过程。用于宏观把控游戏节奏设置与可玩性评估。

游戏复杂度 = B的D次方,B是可能移动的平均数(博弈策略集),D是平均游戏长度。

洗练值 R(Refinement Value),成熟游戏(象棋围棋足球篮球)的R在固定范围 0.073 - 0.078。