游戏数值:概率/随机性 概述


3楼猫 发布时间:2025-02-08 13:33:18 作者:MeowMeowRanger Language

前言

一些游戏设计的数学基础,无 AI。但有自信这篇文章可能比真的AI写的还无聊哦~{・ω -*}
V哥3代青年才俊是真的帅!以及3代独有的背后收刀动作

V哥3代青年才俊是真的帅!以及3代独有的背后收刀动作

基础数学

  • 阶乘 Factorial: 3! = 3 x 2 x 1 常用于各种概率计算中
  • 排列Permutation: 常写作 nPr 代表 n个样本中取 r 个 有多少种排列,排列在乎顺序
  • 组合Combination: 常写作 nCr 代表 n个样本中取 r 个 有多少种组合,组合不在乎顺序
  • 条件概率Conditional Probability: P(A|B) 代表 已知B随机事件已经发生的情况下,A随机事件发生的概率
  • 期望 Expectation: 用于衡量随机事件的平均收益
  • 方差 Variance: 用于衡量随机事件的离散度 方差越大 随机事件的结果越离散,给人感觉越“随机”
  • 随机方程 Random Equation: 用于生成随机数/随机数列的特殊方程,具有[确定性 deterministic]的特质,即 如果输入同样的随机种子时,会生成固定的随机数。
  • 随机种子(简称“种子”): 随机方程开始生成随机数的必要初始条件,一般可以为任意数字。如 1 / 3.1415926 / 888888888 等
  • 热噪音 Thermal Noise : 指计算机电路中不可控的细小电压变化,在一些较新的芯片中可以被用来生成真随机数。
  • RNG (Random Number Generator) 随机数生成器: 热噪音 和 随机方程 都属于RNG的一种实现方式。
  • 信息熵 Shannon Entropy: 信息学/密码学概念 可以用来衡量任意一串数据带有的信息量,主要用来衡量数据更可能是随机噪音还是人工编写的信息,也用于 Frequency Analysis词频分析 用来破译密码。
基础版本的排列/组合/概率

基础版本的排列/组合/概率

做游戏设计时,设计一个随机事件 该事件单次的发生概率 反而是比较次要的。
  • 期望 = 玩家触发后的收益
  • 方差 ≈ 玩家实际感受到的概率(随机性)
  • 触发频率 ≈ 实际概率 + 时间成本
这3者都比一个单次触发概率重要的多。
滚5这把魔神武器 改成 2%概率造成50%最大血量伤害 都是不是这个味道

滚5这把魔神武器 改成 2%概率造成50%最大血量伤害 都是不是这个味道

计算机硬件实现:基于随机方程 vs 基于噪音/热噪音
现在主流游戏引擎还是在使用随机方程生成随机数,这样 1.可以使用固定随机种子 重现一些bug 更方便排bug 2.可以操控触发频率低事件的实际发生概率
现在主流的做法把这一刻的时间戳作为基数,做一些简单的修改后作为随机种子。被逆向/被利用的可能性也已经低到可以忽略不记了。
基于热噪音则是可以做到真正的不可预测。大部分现代CPU都是有这个功能的,但是不是所有的编程语言都做了对应的适配。有些研究认为热噪音虽然不可预测,但是产出的数列分布不够随机,可能还是需要通过传统的随机方程去除偏向性(debias)。
真随机 vs 伪随机
上述的随机方程热噪音其实都算是真随机分布,但是电子游戏特别电子竞技为了保证是一场技术之间的较量 而不是单纯一方运气好,会采用一种特殊的伪随机分布。
自Dota2 Wiki : 25%概率触发的事件 需要几次攻击才能触发(下方横轴)

自Dota2 Wiki : 25%概率触发的事件 需要几次攻击才能触发(下方横轴)

如果使用伪随机分布,一个25%概率触发的攻击特效在第一次攻击时触发的概率更低了(图中7%)左右,但是在第3次 第4次攻击时触发的概率则要高上不少。这样实际结果会更接近 每4次攻击触发1次攻击特效。
伪随机 vs 真随机 还是个还在争论的议题,像 Dota2 PA的暴击也经历了 真随机->伪随机->固定攻击次数后必定触发 等多次改动。
做拆解 / 反推: 1.利用信息熵(又名 香农熵 Shannon Entropy)在不知道概率(假设所有可能结果概率相等)的情况下,反向去推测这一系列事件/样本 更可能是随机事件 还是 更可能是人为操控的事件。例如:一个公平的6面骰(D6)的信息熵(此时为最大信息熵)约为 2.85单位,一个做过手脚的骰子(如 50%概率投中1)的信息熵会只有2.1单位左右,小于最大信息熵。 2.利用 标准差(Standard Deviation) + 百分位数(Percentile)也可以在正态分布样本中去反推这个样本是否符合正态分布。例如:约 95%的数据应该集中在 平均数± 2个标准差的范围内。 *总之有一个足够大的样本集了就什么多好说。难点是怎么收集样本。

非理性的概率

现实生活中的人和经济学中“理性经济人”相差甚远 这个现象已经不新鲜了。心理学 金融行业 游戏行业 都重新“发现”过这个现象。
先列一些相关概念
  • 损失收益分析 Risk and Return Analysis / Pros & Cons 在做决策前,先把做这个决定带来的收益 损失 成本 等要素列出来,然后再权衡利弊。有助于避免逻辑谚误。
  • 利益相关者分析 Stakeholder Analysis 在做决策前,先把和这个决定决定相关的所有利益相关者 和 他们对应的利益列出来,然后再权衡利弊。有助于从多个角度思考问题。
  • 阿尔法 贝塔收益 Alpha return vs Beta return 阿尔法:超额收益 比市场价 市场平均收益高不少(可参考为一个标准差)以上的收益 贝塔收益:循规蹈矩情况下能拿到的平均收益
  • 逻辑谬误 Logical Fallacy 因为人脑的生理性本能 容易出现的逻辑错误
  • 决策模型 Decision Making Model 为了避免人脑出bug 总结出来的一些常见逻辑思维模型
  • 独立的批判性思考 Independent Critical Thinking 俗称“实事求是”,人类个人能达到的理想理性状态
价值并不等价:损失厌恶RiskAversion / 展望理论ProspectTheory
人类对于 价值 或者说是 资源的感知是分方向性的,而且对损失 情绪上的反应要更大。
假设有这么一个场景
一天走在街上,一个陌生人想你靠近 礼貌地问好后,询问你 “你愿意和我赌一次抛硬币吗?您赌对了 我给您50元,您赌错了您给我50元。”
此时大多数人是会拒绝的。(类似的实验做了很多次 跨越多个文化区域 有60%~80%人都拒绝了
选项1:拒绝 = 100%期望收益为0 选项2:接受赌约 = 50%概率收益为+50 / 50%概率为-50% / 总期望依然为 0
数学上来说两个选项是完全相同的 也应该有50%左右的选择[选项2],但是对于人来说不一样。所以更多人会拒绝。
用户的心理锚点 / Framing Effect 边框效应
人类对于收益和风险的认知还很容易被环境/上下文/说话方式 给影响。
一天走在街上,你发现你丢失了100元。 一个陌生人想你靠近 礼貌地问好后,询问你 陌生人:“你愿意和我赌一次抛硬币吗?您赌对了 这100元我原样奉还,您赌错了 我就笑纳这100元了。” 你:“那么我拒绝这场赌约呢?” 陌生人:“那么我只还给您50元”
一个比较理想化的奇怪情况,但是如果说是已经丢失了部分钱财,为了取回这部分钱财时 人们会更愿意冒风险(参考股民心理)。虽然这次两个选项的期望值也是一样的,但是比上场实验更多的人会选择接受赌约。
游戏设计中的物资囤积问题(Horading)
正因为人们对损失/风险更加敏感,游戏中哪怕物资的获取正好赶得上消耗,玩家也更习惯于囤积大量的物资来应对“可能”的超级大战。而不是选择在日常战斗中适时使用来让游戏体验更好。
可能的一些解决方案 1.让物品产出 > 1.3倍投入了的物品消耗:个人观察就游戏来说 20%~30%的额外收益足够让玩家选择克服50/50概率所带来的不安 去选择搏一把。 2.降低物品存储上限(捡到新的同类物品自动使用):最终幻想16使用的设计,本身数值压力不大的情况下,玩家为了避免[在不合适的时机自动使用掉贵重道具]的损失,反而会自己考虑让库存不要满。
在 游戏变现/Monetization 的应用
各类游戏的每日任务 每周任务 / SeaonPass 通行证 WarFrame 星际战甲的每日登入可能会拿到限时的充值折扣 无畏契约 Valorant 的黑市折扣
都是先“免费”给玩家一些(超额)收益(的假象),玩家为了获得这部分收益 也就很多时候会选择在自己没有真正需求的时候购买了。

基于时间成本的收益/成本计算

一个事件的成本实际上是基于时间/情绪成本等多方面的概率计算
如果有一个需要玩家主动挑战的可选挑战,例如怪物猎人的老山龙或者其他古龙任务来说。
3种成本 1.遇到这个机会的时间成本:只对特别想要挑战这个挑战的玩家来说是成本 = 等待老山龙出现 参加其他狩猎任务的时间 (可以通过合理规划任务 减低) 2.参与的直接成本:玩家可以选择参加或者不参加 = 参加老山龙任务的契约金 (可以视为 一旦选择参加就瞬间沉没)
3.玩家参与过程中的时间成本:玩家可以靠终止挑战来减少这部分成本 玩家实际尝试击退老山龙任务中消耗的药品 玩家自己操作的时间 (已付出的部分已经沉没 但玩家随时都可以做止损决定)
玩家自己感受到的成本 和 设计时考虑到的成本 往往差距很大。 就像工作没事也强制加班一样,只是获得了加班的金钱收益,失去的是用来自我提升/好好休息的机会成本。情绪成本/机会成本也是成本。
比较好的的补偿/收益不是 直接给玩家 +30%的价值原有东西,而是 原有的东西如数奉还 再搭一点其他等值30%的东西一起。追加 30%补偿 在玩家眼里 可能因为是不需要的部分 实际价值未必有 30%。
同时比如说[遇到这个机会的时间成本]较高的情况会让机会一些收益被高估。这也是为什么 FearOfMissingOut 星际战甲和无畏契约的策略很有效。

设计目的:加入随机元素是 需要/想要提供什么样的游戏体验?

人类不是喜欢随机性本身而是喜欢 1.逐步掌握和消除随机性 ( 中性的+对自己不利的) 2.随机性站着自己这边 自己在劣势的时候以小博大 突然翻盘
不同种类的随机设计元素
  1. 结果随机 各类RPG中常见的设计 诸如:暴击 / 命中 / 伤害浮动 等设计
  2. 问题场景随机 肉鸽游戏中常见的设计 诸如:场景中的敌人种类 / 数量
  3. 可选解决手段随机 诸如:肉鸽中的各类成长 / 传统牌类游戏 手中的卡牌 / CS中的Arm Race军备竞赛模式
  4. 纯表现 / 不显著改变收益期望的事件 诸如:暗黑破坏神的的奶牛关+宝藏哥布林 鬼泣的随机挑衅动作 *老滚5的处决 因为不像鬼泣那样可以随时取消 收益很不稳定 难分类
一些随机元素的设计目的
  • 延长游戏时间 为了体验服务 太过随机会出现完全无法克服的问题 = 拖时间
  • 提供更多变的游戏体验 前提你需要有那么多内容/ 乐趣 不会因为你增加了随机性就上去
  • 只是“建议”玩家尝试一些其他选项 鼓励玩家尝遍游戏所有内容
  • 缩小一些极端情况 缩小体验上下限差距 参考 Skill Based Match Making vs Random Match Making 团队竞技中随机性缩小了 游戏技术差距可能导致的完全一边倒情况

好的设计案例

  • 黑魂1:不死教区的黑骑士布怪 和 黑骑士装备掉落 | 巴德骑士装备
  • 口袋妖怪:概率遇到闪光神奇宝贝 / 红蓝宝石的幻之岛(Mirage Island)
  • 雨中冒险2:57叶草
  • 怪物猎人P2代:猫饭的结果也带有一定随机性,玩家可能出现利于采集/利于狩猎的不同技能 - 》需要去采集任务洗掉效果 (鼓励玩家进行狩猎生活 而不是一味清任务赶进度
  • 彩虹岛:在特定地图使用[挖掘]动作概率开启特殊副本 贝希摩斯肚子
  • 我的世界:唱片和生物头颅的获取方式 1.概率获取 2.引导怪物之间互相击杀 稳定获取
  • 生化危机4/5代:黄金鸡蛋
一些可以遵循的普遍性规律
  • 多人和单人要分开谈 所有人都很幸运 等于 没有人幸运
  • pve pvp 随机性设计要分开谈
  • 随机性搏上限 技巧+资源 保下限 是个不错的思路
  • 最好有多条路径都可以达到玩家想要的结果,有 随机但低成本的 和 稳定但是成本更好的 多种方式达到目的。
  • 好的操作 好的事件就该是正向的结果 随机性不应该使好的事件带来负面结果,或者说随机性也不应该让玩家直接从劣势中瞬间翻盘拿下胜利 最多让幸运的劣势玩家重新回到均势对抗状态。
  • 期望上给玩家带来负面收益的事件 无论什么游戏 慎重投放

非要有随机性吗?:TRPG -> CRPG->现代电子游戏的一点回顾

TRPG 桌面游戏 / 跑团 时代 是一个熟人爱好者为主的游戏形式,有很强的社交属性。且不同于象棋等标准1v1棋类那种参加双方都有一定关于输赢胜负的心理准备的情况,大家更多就是为了图个乐子 一起插科打诨消磨时间,利用【随机性】决定反而是最公平的。
真为了过力量判定,直接趴在地上做20~30个俯卧撑还计时 那也确实挺魔怔的。同时 高手vs高手 菜鸟vs菜鸟 的胜率也都是 50%,可以粉饰一些人与人之间的实力差距,熟人之间因为游戏争个你强我弱也伤感情。
同时因为游戏形式的限制,也不太能引入复杂的数学运算如累乘/指数
CRPG / 早期电子游戏 (2000年前后) 此时对于3D即时战斗的 图形技术 物理碰撞检测,都没有那么成熟。大部分游戏还是在2D到3D的过渡阶段。很少游戏能真正做出 玩家在阴影了敌人就看不见,书架上的烛台有些许微小的不对劲其实有暗门 这类设计。所以还留下了很多随机要素。暗黑系列 算是当时设计思路的经典。
这个时期开始引入一些 基于物理判定 或者 基于美术表现(画面/音效)的一些游戏机制。
3D电子游戏时代 电子游戏模拟现实的能力成熟后,比如敏捷/闪避/命中 机制,都可以被实时战斗中回避 Just回避 弹反等机制给模拟了,比起概率命中提供了玩家更有控制权的体验。
个人思考: 对于一个复杂即时战斗的3D游戏 有必要采用随机机制吗 ?比如只狼?比如星际争霸?比如战地风云/CS?不需要吧。
玩家自己的行为就是一个很大的随机因素了,不同玩家对于不同要素(强度 / 探索感 / 故事 / 风景)等很多要素的响应强度也不尽相同。只在晚上特定区域 龙之信条晚上按照固定路线巡逻的无头骑士 幽灵牛车 / 黑魂的结晶蜥蜴,这些不是随机 但是感觉随机,能带来探索惊喜的设计比起随机来说好得多。
同时如果有大量 1点 2点 的蹭伤(比如CS的手雷 燃烧弹),用来打破一些特别关键的 34 x 3=102 25x4=100 这种斩杀公式(又称 断点值 break point value)。整个数值系统偏向模拟连续 continuous 数值,而不是离散 discrete 数值。那么就更加没有必要引入随机概率事件了。
那战地3/4/1代来说 或者 CS来说,玩家根本没有办法预测自己这个距离 需要多少枪才能击杀对手。只能说是尽量压枪瞄准,没有功夫过度思考 破坏沉浸感。
但是单纯拼技术也带来很多问题,技术上一些微小的差距会在电子竞技中被放很大。 比如 星际争霸2 Serral 就因为他的有效Apm 很高,虫族虽然吃Apm 但是战术选择上在虚空之遗现在版本前中后期又是没有弱点,造就了 Serral 极其惊人的 70%+胜率。Serral 强吗?确实比其他职业选手操作上强上不少 他胜率应该大于 50%,但是应该在多少合适呢?70%的胜率 也意味比赛基本不用看了,最后大概率就是Serral赢。

美术表现相关

一堆战利品 / 金币突然炸出来是真的很有快感的一个设计。

雨中冒险 2 RiskOfRain2:高等级怪物掉落大额金币时,喷出的也不会是一大堆金币,而是多个大大的金块/金币袋子。既直观 又节省了渲染资源。

无主之地系列特色:击杀Boss后战利品真的会“满天”

龙之信条1代:根据怪物掉落的金币数量不同,会出现不同大小的金币袋子。

雨中冒险 2 RiskOfRain2:高等级怪物掉落大额金币时,喷出的也不会是一大堆金币,而是多个大大的金块/金币袋子。既直观 又节省了渲染资源。

无主之地系列特色:击杀Boss后战利品真的会“满天”

龙之信条1代:根据怪物掉落的金币数量不同,会出现不同大小的金币袋子。

雨中冒险 2 RiskOfRain2:高等级怪物掉落大额金币时,喷出的也不会是一大堆金币,而是多个大大的金块/金币袋子。既直观 又节省了渲染资源。

1 / 3

赌博成瘾 和 变现/付费 相关

赌博陷进去的成瘾者很多还是社会支持出现了问题,如果一个家庭幸福美满 人际关系和睦 事业有建树 且 对赌博背后的概率有一些基础了解的人是几乎不可能赌博成瘾的。要么是想证明自己 要么是想麻醉自己 要么想翻盘。。。。该死的麻绳总是专挑细处断啊。。。
弹子机(帕青哥) / 超休闲游戏 很多都是靠夸张的感官刺激去唤起过去美好的记忆 屏蔽当下的痛苦。卷的是美术/音效 和概率关系小很多了,日本也对于每小时可以走得弹子数量 / 赔率等做了很详细的规定。
热更新 Hot Fix + 大小月卡 + 概率抽卡 + 保底设计,这些本质还是说在游戏内容和品质一定的情况下 通过模糊定价 尽可能把游戏卖得更贵。和早年MMO的积累货币 概率强化 等设计是很相似的原理和目的。我个人觉得在这些上面做技术投资 风险较高,没做很多研究 还请大神补充。

结语

本来想用《上帝不会掷骰子》作为标题的,但是 Alea iacta est / 骰子已经被掷下!所以!
所行正义之人 理应无所畏惧 !
出处:Netflix 剧集《隐藏关 Secret Level》中战锤40K部分

出处:Netflix 剧集《隐藏关 Secret Level》中战锤40K部分

中二病犯了。。。别管我。。。吃好 睡好 保持好心情 其实人自然对于一些牛鬼蛇神抵抗力就高了 别内耗 好好生活。
引申阅读 / 参考资料:
  1. What Makes A Good Luck Mechanic? - By Design Doc
  2. The Two Types of Random in Game Design - By Game Maker's Toolkit
  3. The Delta of Randomness - Can You Balance for RNG? The Price of Randomness - Balancing RNG More Ways to Use Randomness - What is the Goal of RNG? - By Extra Credits
  4. Behavioral Economics - By Edward Cartwright
  5. The Game Rules of the Game - By Neil Strauss
  6. Edward Bernays 的一些著作
  7. 任意大学入门级别 统计学 / 概率论 教材
  8. Dota2 Wiki:Dota2中的伪随机 中文版本
  9. 血条进化史v2.0.0:数字与公式
  10. 明牌暗打:游戏中战术博弈相关的二三事
  11. 游戏数值设计:上限/体验边界的确立
  12. 决策模式
  13. 逻辑谚误

JACKPOT!


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