数学建模在游戏算法设计中的应用:从公平性到玩家体验
数学建模在游戏算法设计中的应用:从公平性到玩家体验
从古代的传统桌面游戏如中国象棋、麻将,就已经展现出游戏的策略性和算法。随着经济和计算机技术的发展,已产生了多种桌面和电子游戏,而它们与数学建模息息相关。开发者在创作中思考探索游戏内容需要框架式的利用数据打造游戏规则,游戏玩家亦要在游戏规则规定下拟定玩法和策略。本文将根据部分具有数字建模较强关联性的传统、电子游戏种类,来阐述数学建模和游戏的相关性。
回合制游戏的数学建模
此类游戏又需细分成PVP(Player VS Player)和PVE(Player VS Environment)讨论,并在其中讨论其游戏是否受到强随机性的影响。
PVP(无随机)
在玩家和玩家的游戏中,游戏设计师在开发中除了游戏是否有趣外,最重视的是游戏是否公平。许多著名的传统回合制游戏都有下列特征:两个玩家轮流进行,游戏中没有随机性或者隐藏的信息,所有玩家都知道游戏的所有信息。
即便没有隐藏信息,回合制游戏在先手行动和后手行动中依然会有不公平的情况存在。
以经典单堆拈游戏' 在一堆n个棋子的棋堆中,两个玩家轮流取走最少1个、最多m个棋子。每次拿走的棋子数可以不同,哪个玩家拿走最后一个棋子为胜利。' 为例,便可以用数学建模得出胜负。我们设定一个参数k,设棋堆有n个棋子,每次最多拿m颗。使得k = (n-1) % (m+1)。游戏最佳策略遵循以下几个规则:
- 如果k等于0,无法保证必胜。
- 如果k不等于0,那么我们可以通过一定的策略保证最后一颗棋子被我们拿走。具体策略如下:
- 第一步,我们先取走k颗棋子,使得剩下的棋子数目变为n-k。
- 之后,我们每一步都取走对方上一步所取的棋子数目与m之差的棋子。也就是说,如果对方上一步取走的棋子数目为x,那么我们这一步就取走m-x颗棋子。
- 这样,无论对方怎么取棋子,我们都可以通过这个策略保证最后一颗棋子被我们拿走。
以上例子,说明了如果数学模型建立过于简单,有可能使先后手对游戏造成巨大影响。反面例子是围棋,围棋玩游戏规则简单,但是不同于拈游戏单纯在数值上的变化,围棋是在足够大的XY坐标轴上进行且每枚棋子权重会随棋局变化而变化。两个游戏不同之处还在于单堆拈游戏无论棋堆n的大小如何,都可以用上述规则进行判断先后手胜负,围棋数学模型和算法复杂,棋盘道数多少,决定了先后手对胜负影响的大小。亦可以用数学模型,以中腹和边域目效率相差不大为目标和依据,试计算围棋的道数的取值多少合适。
假设棋盘每边的边数为x道,x∈N+,古代棋盘道数x=11,现代棋盘道数x=19。为实战需要,围棋棋盘的道数不能太大,也不能太小,不妨假设11≤x≤23。对于一块含两个以上眼位的成活棋块,以其棋子数除以这些棋子所包含的目数得到的商值称为此棋块的'目效率',记为PE。将第四边上的八星连线,所围之地称为中腹,占有目数(x-80)2,记其目效率为PE4;将第3边连线,1-2边组成边域, 占有目数8x-16,记其目效率为PE3。由于对x的限制,三线外的边域及四线围成的中腹区域都已成为实空,对手无法再做活。这时,边和中腹区域的目效率分别为:
PE3 = (8x-16)/(4x-20) , PE4 = (x-80)2/(4x-28)。
中腹和边域目效率之差为
E(x) = PE4 – PE3 = (x-80)2/(4x-28) – (8x-16)/(4x-20)
基于E(x)为一单调增函数,且E(18)= -0.18881和E(19)= 0.09222,故0解应在开区间(18,19)之中,其有效解道数应取为正整数,由│E(19)│<│E(18)│,说明围棋棋盘道数x应为取为19,取19×19的围棋棋盘是最佳的,因而说明现在的围棋棋盘取19道有其一定的合理性。
PVP(含随机)
无论是拈游戏还是围棋,都是不存在随机性或者隐藏的信息的。但在其他传统游戏,如麻将,扑克牌中,随机性便也是游戏中的一环,也进而会产生人在游戏进行时对胜利或对某些游戏事件发生的期望值。
如扑克牌游戏中,因为组合可能性多,发牌抽中指定组合的概率对一般玩家而言十分模糊。即使得知了概率,这也依然是非常抽象的概念,玩家对初始手牌好坏的判断和期望值便会有所偏差,所谓'经常手气差'的人有可能便是玩家对起始手牌要求过高,错认为自己并未达到平均能获取好牌的概率。
抽取5张扑克牌,各牌型概率图(1)
抽取5张扑克牌,各牌型概率图(2)
在完全对称型的对抗游戏中加入随机因素,大部分依然可以保证公平,但非对称对抗游戏中,如电子游戏的黎明杀机或第五人格,桌面游戏扑克牌中的斗地主游戏便无法保证。斗地主游戏中若令玩家A持续当地主若干次记录胜率为Pv,再持续当若干次农民记录胜率为Pl,假设其对手强度和自身发挥稳定。Pv与Pl的概率并不会非常接近于50%。所以非对称类对抗游戏需要更加精妙的方法来平衡,维持胜率接近百分之五十。斗地主游戏是采取'初始叫地主的人随机分配'来解决这个问题。
公平的游戏对局中,擅长游戏的玩家在进行过大量的对局后理应胜率高于50%,即使是完全公平合理的游戏,随机性过高又或是表现形式有问题,也可能导致玩家对自身胜率进行错误的判断。以下将用逻辑探讨游戏机制导致的随机性和竞技性的关系。
可以假定玩家的发挥呈正态分布,比如投篮游戏投10颗球,每次游戏的,但分数会存在一定浮动。以此来建立数学模型,平均水平为μ,发挥稳定性为σ。
试用方程f(x)=(1/√(2πσ))*e^((−(x−μ)^2)/2σ^2)来进行对游戏胜率的模拟。
设玩家A在一个游戏的胜率为60%,如此理论上A每天玩10次游戏,平均赢6盘输4盘。这是一个很容易导致A对自己胜率判断错误,误认为自身胜率实际接近50%的情况。现再假设A和B玩100盘,只需A赢51盘便可判定A胜。
可以使用二项分布的概率公式P(X=k) = C(n, k) * p^k * (1-p)^(n-k)来计算。
其中,n表示总游戏局数等于100局;p表示单局胜率等于60%;k表示成功次数,也就是51到100之间的值。计算至少赢得51局的胜率,将计算51到100之间所有局数的胜率,并将它们相加得出最终的胜率。
P(A至少赢得51局) = P(51) + P(52) + ... + P(100) = Σ C(100, k) * (0.6)^k * (0.4)^(100-k) (从k=51到100的求和)
通过计算机以下代码,得出A赢51盘或51盘以上的概率。
玩家A至少赢得51局的胜率为: 0.9998808363,近乎接近100%。这样的高胜率在问题提出并计算得出结果前,是十分难以料到且反直觉的。可以以此佐证有时候游戏开发者即使提供了良好公平的回合制胜率数学建模,但玩家的体验和第一感觉可能截然不同。
结语
综上所述,数学建模在游戏算法设计中具有重要的应用价值。通过数学模型的建立和分析,可以帮助游戏开发者设计公平的游戏规则,保证游戏的公正性和可玩性。同时,数学建模还可以帮助玩家理解游戏规则,制定更有效的策略,提高游戏的竞技性和趣味性。然而,在建立数学模型时,需要考虑游戏类型的特点和随机性因素的影响,以确保模型的准确性和实用性。因此,数学建模与游戏算法设计的结合将是未来游戏开发的重要方向。
原文地址: https://www.cveoy.top/t/topic/o6zR 著作权归作者所有。请勿转载和采集!