数值之美,from 熊硕《游戏学导论》


3楼猫 发布时间:2024-01-03 14:33:59 作者:花村老林 Language

今天的分享来自华中科技大学熊硕老师的《游戏学导论》课程。其中,关于游戏数值一些基础概念、原则、常用公式、以及一些实践经验,给予了我很大的启发。在这里,我并不打算做思维导图或者类似大纲总结,仅节选部分简单有趣或对我很有帮助的片段。
完整课程建议大家移步B站学习:【华中科技大学】《游戏学导论》熊硕
熊硕:华中科技大学新闻与信息传播学院 硕士生导师、讲师;教育部大数据与国家传播战略实验室副研究员。

数值是什么

游戏过程中的各种问题,可以找到一种定量的方法,让我们的游戏过程的设计更加丰富,对平衡性的把握更加准确。而数值策划,就是利用各种数学工具和方法,创造一系列可以表达游戏意图的数据模型以控制游戏节奏。
基本能力:数学基础、缜密思维、对数字及其敏锐、直接和经验、工具、耐心。 数学基础:四则运算,幂函数、正态分布、微积分、概率论。

战斗力

战士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
两式相乘可得 x*dx/dt = y*dy/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。

© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com