【研机析理】改进卡牌游戏卡组设计提升趣味

简介

本文翻译自文章的主要内容:Evolving Card Sets Towards Balancing Dominion 

原文链接:http://julian.togelius.com/Mahlmann2012Evolving.pdf

原文作者:.Tobias Mahlmann, Julian Togelius and Georgios N. Yannakakis

我们的游戏玩家简直是一群刁民,张三觉得要这样才好玩,李四觉得那样才刺激,隔壁老王又认为他们说得都不对…总之,不同玩家对“有趣”的定义不同。我们没法同时满足不同要求,但在这篇文章里,我们会借助一款卡牌游戏,尝试找出尽量满足某一类玩家要求的游戏机制和规则,让这类玩家感到有趣好玩。

Dominion

这是一款在2008年发行的超好玩的桌面卡牌游戏,据说发售当日就卖光了。现在已有授权的线上版。剧情很简单:先帝不知是出了车祸还是失忆了还是发现皇后是自己亲妹妹,总之是将皇位传给了你。而你要带领你的国家争取更多的土地,同时也要防止对手的扩张。

la2.JPG
在线版

作为桌游,规则也不复杂。这个游戏一共有三种卡,分别是资源卡,行动卡,领土卡。

每己方回合从初始牌组抽五张牌。每个己方回合包括一次行动阶段和购买阶段。在行动阶段可以使用行动卡,发挥它的特殊效果。行动阶段后是购买阶段,可以使用货币卡购买桌面上预先放好的卡,包括行动卡组(中间两行共10种,每次游戏的可以选择不同的行动卡牌组),货币卡组(左侧固定3种)和领土卡组(左侧固定4种),购入后不能使用,而是放入“弃牌堆”。己方回合结束后,所有用过没用过的牌都放入“弃牌堆”。当牌组抽完后,将“弃牌堆”作为新牌组使用。

领土卡面积从小到大分为“”,“”和“”,将其面积作为分数。当所有“省份”领土卡被买完或其他至少三种卡被买完后,游戏结束,统计所有在手牌,弃牌堆,牌组的领土卡,拥有领土面积最大的玩家获胜。

不同玩家的不同要求

由于货币卡组和领土卡组都是固定的,所以我们重点研究的乃是行动卡组。不同的行动卡组,会让游戏玩法千差万别。那么肯定有些卡组相对于其它的来说,更能满足玩家的各种刁钻古怪的兴趣。

正如前面所提到的,我们的游戏不可能满足所有玩家,所以接下来我们假想出三种类型的玩家,设计三种满意度测量方式,尝试建立能满足特定种类的玩家的卡组。

基于分数差异的满意度

在玩这款游戏的时候,我们假设第一种玩家想要大获全胜,即以远超对手的分数胜利。第二种玩家觉得能险胜,即以小分数差取得胜利,才能嘲讽对手,才有味儿。

我们想要找满足这些要求的行动卡组。能分别达成这两个目标的卡组,应该包含哪些卡呢?张三大声嚷嚷要有这几张,李四理直气壮说要有那几张,面红耳赤争论了半天,最后才发现张三玩的是《昆特牌》,李四说的是《斗地主》。

空口无凭,实践才是检验真理的唯一标准。不过为了假装这个实验很厉害,我们特定准备了一些满意度公式。用来检验特定行动卡组的满意度。如果你还没有直面这个数学公式的勇气,那么请直接跳过吧。

ll1.JPG

其中h(i)是获胜者在一局中的分数,l(i)是失败者在一局中的分数。N为每种卡组所比赛的局数。在我们这个实验中N为1000。公式意思即两人之间的分数差,比上胜利者的分数,在每场游戏中的平均值。这个值介于[0,1],越高说明胜利者和失败者的分数差越大,更能让第一种玩家胜利后得瑟:“没办法,实力不允许吖”。

不过要是对于那些希望险胜的玩家呢?我们又设计了第二种测量满意度的函数:1-fs。意思即为失败者的分数,除以胜利者的分数。这个值介于[0,1],越高,说明两者分数越接近,越能让第二种玩家胜利后兴奋:“差一点就输了,真刺激!”。

基于决定性时刻的满意度

第三种玩家偏喜欢那些有各种不确定性,鹿死谁手要到最后一刻才能揭晓的游戏。要是胜负能早早决定的话,那还不如回家洗洗睡。

嗯,没办法,人类就是这样。例如龟兔赛跑,如果兔子不去睡觉,而是径直冲向终点的话,那么这个故事第三种玩家肯定不喜欢看,说不定还会特意准备一棒槌,在半路把兔子打晕,看它能不能在乌龟获胜之前醒过来。

我们还是想要找出满足这个要求的卡组。我们把张三李四的口用胶布封了起来,扔到小黑屋里,然后来继续分析。

优势变更:当游戏的主导权从一方变到另一方时。例如龟兔赛跑中,当乌龟越过真正睡觉兔子的那一刹那,优势就变更了。

决定性时刻:当某个行动能让对手彻底失去胜利机会的时候。当乌龟到达离终点线某个距离时,兔子就算立马起来,使出吃奶的力气奔跑,也没法取胜了。

为了测量决定性时刻f(d),我们又提出一个数学公式。

ll5.JPG

t1是最后一次优势变更的回合数,而T是总回合数。

满意度

优势变更和决定性时刻一起用来测量满意度的方法,已经在其它回合制策略游戏中被证明是很有效的了。在这里,我们使用下面这个公式作为第三种满意度测量方法。L为优势变更的次数。

ll6.JPG

据说一篇文章每增加一个数学公式就会损失一半的读者。那么对于这些八里挑一,敢于注视这些数学公式而幸存到这里的读者,真要好好鼓励一番。

电脑玩家设计

我们拜访了三位电脑君主,他们使用不同的战术,代表不同战术的人类玩家。我们唆使他们多多发动战争,好让我们统计数据。他们的黎民百姓疾苦,我们也管不了了。

第一位君主名叫 “Earl”,这位君主行动阶段时,首先选择能增强自己的卡,然后是增加额外行动点以及能影响对方的卡。然后再随机使用剩下的行动卡。游戏开始时会为每个卡设定一个购买优先级,购买阶段而依据优先级去购买。

第二位君主名叫“Drew”,这位君主行动阶段时,首先选择能增加额外行动点的卡,然后是能影响别的卡的效果的卡。然后再随机使用剩下的行动卡。游戏开始时会选定一些卡为“有价值的卡”,购买首先购买它们,如果没有的话就随机购买。

第三位君主名叫“F-N”,这位君主会根据当前游戏状态,以及手上的牌,双方的牌的效果,双方分数差以及很多因素综合考虑自己该怎样使用行动卡以及购买。但是由于计算机性能限制,只能计算出当前回合最好的战略,而不是这场游戏的整体战略。

本来还有第四位君主,他依据的是随机,啥事都靠随机。结果战绩惨不忍睹,我们只好给他路费,打发他回家了。不过这样证明了,在这款游戏中,靠随机是无法取胜的,必须要有技术。

对战结果

我们首先想确认这几位君主的水平确实不同,而不是意识到我们在操控他们后,逢场作戏,宣而不战。我们先进行了一次预实验,让两两之间进行了50000场游戏,每场的行动卡组都不相同。

ll3.JPG
表1

上图中,右边两列数左列表示前者的胜利场数,右列表示后者的胜利场数,平局算他们都胜利。不同的胜率表明他们确实使用了不同的战术,我们的傀儡操控确实有效。

不对,这种尔虞我诈的战场必须提高警惕。之前我们只是试探而已,万一他们也知道我们是试探而故意不暴露呢?在我们正式的三个实验中,我们又增加了很多预防措施。

我们使用遗传算法来尝试找出那些有趣的卡组。三个实验分别使用三个不同的满意度函数作为依据。

<First>为第一次实验的满意度,<Last>为经过30代后的最大满意度。为了预防误差,我们又增加三列数据,σ为标准平方差,而p为双边Student’s t-test。看不懂没关系,总之电脑君主一旦出现什么预料之外的偏差,都能被我们及时发现。嗯,它们永无翻身之日了!

在第三个实验尝试最大化第三种满意度函数的时候,为了防止能在最开始就能预测出结果,我们让这些君主自己打自己,即Drew vs. Drew之类的。

ll2.JPG

上图为表二。从表2来看,似乎第二种满意度最大,我们的游戏更能让第二种玩家感到满意。我们是不是该请第二种满意度函数吃顿饭呢?别急,接下来,我们会尝试找出,三种满意度最大的行动卡组中,应该包含哪些卡。

分析

我们的预实验证明了依靠特定战术取胜的方法不具备传导性。Drew和Eral平分秋色,Drew能碾压F-N,Eral却被F-N虐得死去活来。这些君主没法只靠一种战术就毫无悬念打败其他人,嗯,这下这些电脑君主或人类玩家可有的玩了,他们必定会陷入连年混战,乐此不疲。

接下来是三个正式实验。我们尝试找出我们能满足哪些特定玩家,并找出这些玩家会喜欢的卡牌。

 

ll4.JPG

上图为表3,不同满意度测量方式下,满意度最大的行动卡组每张卡的名称,以及满意度。

第一个实验中,我们尝试最大化fs,即最大化分数差异来增加满意度。实验效果不咋地。在表3的a中,我们仅找到了1张出现了3次的卡,以及3张出现了2次的卡,而对局满意度也都在0.6左右,即不太容易找到满足第一种玩家要求的卡。第一种玩家:怪我咯?

第二个实验中,我们尝试最大化(1-fs),即最小化分数差异来增加满意度。满意度非常接近1了(注:表中的满意度应该是四舍五入后为1.0)。看来第二种满意度确实最有前途,我们的游戏能让第二种玩家感到非常满意。

我们也很快就找到了我们寻找的那些卡片,在表3的b中,有2张卡出现了3次,5张卡出现了2次。这些行动卡,都是符合第二种玩家胃口的行动卡。假如你也是第二种玩家的话,那啥也别说了,赶紧买买买吧。

当然了,别忘了亲自体验游戏,推测看看这些卡牌的效果为什么能让第二种玩家高兴。

第三个实验中,我们尝试最大化 ,但得到了相当不稳定的结果。我们没能找到在三种对局中都出现的卡。并且对于这三种自己打自己的内战来说,满意度也非常不同。我们的游戏不太适合第三种玩家,他们虽不至于经历人生的大起大落,但也只好真的回家洗洗睡了。

 

总结

在这个实验里,我们测试了在这款游戏里,哪些行动卡组能让不同玩家满意。当我们设计卡牌游戏时,我们无法同时满足所有人的要求,但可以针对一类特定的玩家,依照上面的方法,改进卡组设计,尽可能让他们感到有趣。

但我们认为,这种方法在设计其它类型游戏时也很有用。我们可以把每张卡当成其它游戏里不同的机制或规则,然后尝试找到那些能让游戏更加有趣平衡的机制或规则。例如,超级马里奥兄弟中,主角有很多移动机制,可以奔跑,跳跃,跳墙,射击…我们可以找出那些能让特定类型玩家喜欢游戏机制和规则,再继续改进,从而牢牢吸引住他们。

参考

[1] Tobias Mahlmann, Julian Togelius and Georgios N. Yannakakis (2012). Evolving Card Sets Towards Balancing Dominion .WCCI 2012 IEEE World Congress on Computational Intelligence Evolving Card Sets Towards Balancing Dominion

贴个险胜电脑的,哈哈

pp.JPG

 

 

Leave a Reply