这个问题不是针对电子游戏而是针对一般游戏。昨天我去了一个棋盘游戏交易会,问自己是否有一种计算游戏公平性的方法。当然,其中一些需要很大的运气,但是有可能计算出某些角色是否过强。特别是在角色扮演游戏和交易纸牌游戏中。例如,考虑到可用卡的数量惊人,“魔术:聚会”的创建者如何确保没有“一张牌能击败所有人”?
这个问题不是针对电子游戏而是针对一般游戏。昨天我去了一个棋盘游戏交易会,问自己是否有一种计算游戏公平性的方法。当然,其中一些需要很大的运气,但是有可能计算出某些角色是否过强。特别是在角色扮演游戏和交易纸牌游戏中。例如,考虑到可用卡的数量惊人,“魔术:聚会”的创建者如何确保没有“一张牌能击败所有人”?
Answers:
是的,从理论上讲是可能的-这是博弈论中涉及该主题的重要部分。
但是,它很少实用,甚至在大多数情况下也只用于不涉及随机化器的游戏(国际象棋,黑白棋,围棋等)。组合爆炸可确保为《魔力聚集》等更复杂的游戏提供此类证明所需的理论时间很容易比当前宇宙时代长几个数量级。
最后,对于任何非平凡的游戏,您可能都不得不放弃证明游戏平衡或公平的概念,而应结合常识,设计者的直觉,游戏系统的重用性以及整个测试过程。
简短的答案:任何具有有限(即使未定义)可用动作数的游戏,都有有限数量的可能游戏。理论上,任何具有有限“游戏树复杂度”的游戏都可以对所有可能的游戏进行分析,以确定每个玩家将赢得的游戏数量是否相等。
简而言之:如果玩家1赢得了一场游戏所有可能进行的比赛的一半,则该游戏处于平衡状态。如果不是这样,则游戏偏向一个或另一个玩家。
但是,这个简单的规则在实践中可能是不可行的。例如,围棋的游戏树复杂性约为10 ^ 170种可能的游戏,比已知宇宙中存在的原子数还多。人们认为不可能编译出详尽的游戏树。但是,玩过和录制的游戏库却有数百万个,这表明该游戏具有“先发优势”(通常通过向White给予1.5分的“ komi”来减轻这种优势)。
相比之下,即使给定了整体较大的游戏树复杂度,所有M,N,K个游戏(M宽度,N高度的网格板,其中的对象是供玩家通过放置而从未创建K行)移动/移除它们)已解决,因为存在捷径;可以将游戏树的整个“分支”标识为总是导致一个或另一个玩家丢失。其余分支遵循可以识别的模式。井字游戏是最明显的例子。除了只有300,000种可能的游戏外,只有16个其中一个或另一个玩家没有采取任何行动,这显然会使另一名玩家在下一步行动中获胜。因此,当您考虑玩家实际上可能制作的游戏时,游戏树开始时会变小,然后变小。
在具有运气元素的游戏中,游戏树的复杂性会超出每个玩家可用的决策数量。由于游戏不再像象棋,跳棋,围棋,奥赛罗等那样使用“完美信息”进行游戏,因此,在当时已经完美地掌握了已知信息的玩家仍然有可能输给游戏随机元素。这些游戏没有“解决方案”;但是,通常仍然有一个有限的博弈树,因此从理论上讲博弈还可以进行详尽的分析。通常这仍然不可行;取而代之的是,概率分析涉及概率的游戏,以识别“最佳下注”策略,并且如果这些策略显示出对使用它们的玩家的偏爱,而与其他任何玩家所使用的策略(包括同一策略)无关,
通常,以下规则适用:如果游戏的设计固有地导致以下一项或多项不平等,则游戏存在偏差:
现在,游戏的设计可能会引入一种不平等,但会尝试弥补另一种不平等。或者,游戏的设计可以允许可能产生偏差的区域中的随机性,这意味着一个游戏可能有偏差,而另一游戏则更公平(带有随机起始板的游戏可能会表现出这种偏差)。在这些情况下,只有对长期实力大致相等的球员之间的博弈进行实证分析,才能证明存在任何偏见。
有关棋盘游戏偏见的更多讨论,请访问http://www.geekdo.com的论坛;关于游戏中存在明显偏见的讨论,以及如何避免游戏开发中普遍存在的偏见。
我猜没有一个预制的数学公式来评估游戏的公平性,因为每个游戏是如此不同和复杂。
您无法真正比较不同的游戏参数并得出某种程度的角色能力得分(除非您的游戏非常简单),因为它们都会以不同的方式影响您的游戏玩法并取决于它们的实现方式(例如,您如何评估力量与活力之间的关系?如何为角色的特殊攻击提供数值?)
您必须测试您的游戏。很多。自己玩游戏,让其他人玩,并将战斗/游戏结果存储在文件中,以便进行统计并评估某些角色获胜的频率,在何种情况下等。然后,确保您采用某种方式来检查重播或分析游戏玩法,以了解为何此类角色过强,并相应地应用更改。
确实,除了测试,您别无选择。这就是存在beta的原因之一(例如,将Starcraft2作为Beta,使Blizzard有机会根据游戏结果平衡这3场比赛)。
总结一下,玩游戏,然后让其他人玩(开始测试版是一种选择)。通过重播或自动分析了解为什么游戏不平衡,并更改需要相应更改的内容。这是您追求公平的唯一方法。
为了证明游戏是平衡的还是公平的,您必须首先定义平衡或公平的含义。这些是含糊不清的术语,可以包含一系列内容,例如,游戏“平衡”通常是指:
等等。
总的来说,我喜欢用数学方法证明这样的事情,但是要通过逻辑或测试证明任何事情,您首先需要明确定义。如果您能够正确理解游戏规则,则可以轻松地通过数学测试平衡的某些方面。如果不简单地进行经验检验,其他人就很难判断。主要问题是大多数游戏设计人员并没有真正理解他们的游戏机制,因为他们通常最终会将游戏规则合并到周围的模拟中,而后者很难准确建模。
从理论上讲,这是可能的,但是对于大多数游戏而言,这是极其困难的,因此被认为是不可能的。
一种方法:将游戏转换为正常形式。正常形式的游戏是针对每个玩家和功能的策略集,该策略说明对于给定的选择组合,当有多好的结果。可以将随机因素建模为另一个参与者。
然后,我们可以寻找主导/主导策略(永远要做的事情,永远不要做的事情)。如果游戏不包含主导策略,则至少可以使它有趣。
然后我们看一下每个玩家可以为自己提供的保证。对于每个“我的”选择,请查看可能的最差结果,并选择具有最佳结果的选择。
如果玩家之间的差异很大,那么游戏中就会有些烂。
还有其他事情要看(主要的混合策略(选择每个选项时要有一些概率),纳什均衡(一旦所有参与者都知道其他人会做的组合,则每个人的局部性最佳)。
但是第一步对于大多数游戏而言是如此极其复杂,因此通常没有那么有用。但是,如果您可以将复杂的细节抽象化/将策略替换为可识别的策略集(例如初始构建顺序),并从实际玩过的游戏中获得一些统计上的近似结果,则可以使用它,并且可以告诉您有关游戏中问题的信息。我想像这样的暴风雪与SC有关。
游戏的另一种形式是玩家轮流知道其他人所做的一切(棋)的游戏。在这里,您可以尝试通过搜索游戏的状态树来搜索主导策略(通常是巨大的,因此再次使用起来太复杂了)。而且很多游戏都没有知识,这使事情变得非常复杂。
另一种方法是,查看游戏中的内容并尝试进行比较。
另一种方法:对于团队战斗(尤其是参与者人数众多),您可以尝试使用力量模拟(我从没使用过,并且需要很高的数学(微分方程式)和将游戏转换为适当模型的艰苦工作)。
因此,我的结论是,可以做很多事情来平衡游戏的子系统,并且当游戏结束(在Beta测试期间)时,可以通过分析结果来完成很多事情,但是除非一切都相同,否则几乎不可能证明游戏是平衡的。
PS:您可以通过将一个属性替换为多个属性(可以一起用来计算初始属性),并使所有内容更加随机,从而掩盖相同性,因此玩家不会看到相同性(
当心这样做时容易犯错误(例如快速的小进攻与大的慢速进攻),因为d6 -18掷18球的结果为0-90,d10-10掷10球的结果为0-90 d91-1掷1的结果给出0-90的结果,但是它们都有不同的分布。
PS2:一个聪明的人说,实际的平衡并不重要,持久的平衡才是重要的。
从计算角度的理论,这听起来像回答这是不可能的,一般。询问有关程序属性的问题,莱斯定理可能适用。我的假设是,游戏指的是用图灵完成语言(如c ++)编写的程序。我还假设要计算或证明游戏是否公平,意味着存在一个c ++程序,该程序读取c ++程序(游戏程序),并在有限的时间内终止所有可能的输入,只有两个输出是公平的或不公平。
快速搜索显示可能有确定性但不确定的游戏,请参见此处的幻灯片7和《国际游戏理论杂志》:一些不确定的确定游戏:
“使用算法的计算机可以玩游戏,甚至可以学习玩游戏。但是,算法固有的有限性对机器的游戏能力施加了限制。M。Rabin在1957年通过构造两人制输赢游戏说明了这种限制。具有可决定的规则,但没有可计算的获胜策略。”
人脑显然比计算机更“强大”,因为我们可以获取和应用过去的知识,有时通过发现程序中的无限循环似乎与诸如停止问题之类的结果相矛盾。但是我们如何做到这一点尚不为人所知,因此无法在算法中准确无误地编写。
“公平”的含义是模糊的,让我解释一下:
考虑游戏“剪刀石头布”(http://en.wikipedia.org/wiki/Rock-paper-scissors):根据您的说法,我认为这是公平的(根据我自己)。
现在,让我们考虑一下游戏:剪刀石头布-井在岩石和纸上击败,井在纸上输掉。不平衡吧?这口水井似乎压倒了一切:打了两把武器,却输了一个。
但是有人可以说它根本不会压倒一切:因为如果您知道您的对手因为打了两把武器而更有可能使用这口水井,那么您可以通过更频繁地捡纸来行动。
因此,对于潜在的性能过强问题有一个答案:只需经常选择纸张即可。但是随后您知道对手可能知道这一点,并且可能会经常使用纸张,因此您认为应该更频繁地使用剪刀。等等,并不是真正的强大,只是具有不同规则的另一款游戏。
我建议阅读有关博弈论的文章,特别是有关信息不完善的游戏(http://en.wikipedia.org/wiki/Game_theory)。