三消游戏的数值(一):单元活跃度

发表于2016-05-18
评论0 1k浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏策划行业精英群

361498939

三消游戏,就我所知,目前还没有一套成熟的数值模型(至少已公开的没有)。所以,相关的数值问题,就不太好处理,比如怎样确立每关的通关分数、怎样评估多少步里可以消除多少方块、怎样定量化消除某一特定方块的难度……这些问题,在理论上尚处于一个无法量化分析的状态。


  而实际中,要解决上述问题,往往是通过消耗大量人力资源来进行测试(或者是编写相关程序来让AI辅助测试)。那么,如果有一套可用的数值模型,能对上述问题给出答案,即使只是确立答案的一个范围,也能大大减少耗费在测试上面的人力成本。


  本文中,我打算对如何建立三消游戏的数值模型,提供一个思路。最重要的是提出一个概念:单元活跃度。


  在此之前,我想先谈谈,三消游戏的数值模型,为什么难做。


  Progression vs Emergency


  游戏设计中有两个重要概念,渐进式(progression)玩法和突发性(emergency)玩法。很多剧情为主的单机游戏和以养成为主的网络游戏,向玩家提供的主要是渐进式玩法,在此玩法中,设计者清楚玩家在各阶段的状态,能对玩家施以较强的控制,这种游戏的数值是比较好做的;而以突发性玩法为主的游戏,如棋牌游戏、沙盘游戏、体育游戏中,玩家拥有很高的自由度,设计者往往只能控制初始条件,而对游戏中突发的各种状况,设计者则很难加以控制。对突发性游戏的数值设定,往往是通过大量测试来调优。


  三消游戏也是以突发性玩法为主。设计者也很难控制玩家在三消游戏中的状态。但偏偏三消游戏的通关条件,又需要设计者对其设定合适的数字。客观上需要有一个数值模型的支撑。


  那么,这个数值模型应该如何建立呢?


  连通度


  这是网友“偶尔喝咖啡”在他的《三消游戏基本地形设计教程》中提出的概念。和我将谈到的“单元活跃度”并没有必然联系。不想看这部分的朋友可以直接跳到下一部分,没有影响。但因为这个“连通度”概念给了我一些启发,但它也存在一些问题,所以我这里简单讲讲。


  他提出的“连通度”是什么意思呢?以下图为例:



  上图中,蓝色表示有效区域,白色代表禁用,即一般关卡中被“挖去”的部分。


  连通度表示某单元格能被三消掉的方式数目。比如C1单元格,它唯一形成三消的方式是C1C2C3同色,故它的连通度为1;而对于C2单元格,它形成三消的方式有C1C2C3和C2C3C4两种。故它的连通度为2。可以看到,某单元格的连通度,其最大值为6,最小值为0。


  计算出有效区域里每个单元格的连通度后,加总求平均,其值即作为该关卡静态难度的评价指标。


  当关卡里不存在特殊地形时,这个平均连通度指标还是挺有用的。


  但一旦关卡里有特殊地形,例如开心消消乐中的冰块(冰块里的物体不能移动)、木板(物体不能穿过木板移动),此时平均连通度指标完全不能反应出这些特殊地形带来的难度变化。所以,我们需要寻找另外一个指标,来作为建立数值模型的基础。


  单元活跃度


  请看这幅图:




  英文字母代表一个个方块,我们考虑,当A方块与B方块交换时,有哪些方块可能发生消除?


  我们将横向或竖向的连续三个方块,称为一个三元体,当有消除发生时(不考虑特殊道具的情况),意味着至少有一个三元体是同色的


  当A与B交换时,会产生一些新的三元体,如果这些三元体中有同色的,则消除就发生了。那么,具体是产生哪些新的三元体呢?数一数即可知道,它们是ACD,AFJ,BEI。共3个。


  A还有一种移动方向,即A与E交换,此时形成的新的三元体有AIM,AFG,EBC。也是3个。


  所以,A方块的移动,总共可以形成6个新的三元体。


  我希望读者已经意识到了,A可能产生新的三元体的数目,反映了A引发消除的能力。我们将A所有可能形成的新三元体的数目,记为A的活跃度。


  上例中,A的活跃度为6。B的活跃度为10。而中部的F,J,G,K的活跃度是最高的,高达  (      )。(读者可自行计算)


  采用活跃度指标时,特殊地形和道具的影响也可以获得完美地刻画。比如,当某单元被冰块锁住时,其活跃度为0;而挡板阻碍单元格的移动,所以挡板旁边单元格的活跃度也会相应减少。


  有时为了降低关卡难度,设计者会在关卡刚开始时增加炸弹(移动该炸弹会炸掉一片菱形区域),同样的,炸弹的活跃度也是可以计算的(虽然比较麻烦),你只需要计算炸弹爆炸后会形成多少新的三元体。


  总之,对于某关卡的初始状态,单位活跃度可以予以接近完美地刻画。


  但是,对于本文开头所提到的“比如怎样确立每关的通关分数、怎样评估多少步里可以消除多少方块、怎样定量化消除某一特定方块的难度”,本文都还没有给予回答。我这里只能简单讲讲自己的思路。


  后续建模的思路


  当我们说给一个游戏建立数值模型时,是希望通过计算模型中的一些参数,就能得出该游戏的相关数值问题的解。这个解一般是一个范围,当然能越精确越好。


  我这篇文章的主要价值,就是提出“单元活跃度”这样一个重要参数。那除了“单元活跃度”以外,还应该有哪些参数呢?


  一、各颜色生成的概率


  二、给定的消除步数


  三、单元格之间的距离。这个参数主要用于计算消除某特定单元格的难度。如果某单元格附近的单元格活跃度越高,则该单元格被消除的可能性越大。那多大距离算附近呢?这里“单元格之间的距离”这个变量就必须被考虑进模型中。


  另外,如何刻画玩家的技术水平?我认为,可以用玩家对活跃度的创造能力来刻画。比如,“开心消消乐”玩得比较好的玩家,就知道初期应该设法把冰块或别的不利地形消除掉,以此增加全局的活跃度。


  锁在冰块里的单元,其初始活跃度为0,但其活跃度是会慢慢增加的,也就是说,这里其实是一个函数y=kn+b,y代表冰块的单元活跃度,n代表步数,系数k则可以反映玩家的技术水平。


  确立了这些参数最后建模时,同样需要一定量的经验数据。然后就可以利用这些数据来进行回归分析了。


  这篇文章就写到这里了。最后并没有给出相关模型的具体做法,只是写了个思路,算是留了个坑吧。


  说说我写这篇文章的原因:是因为我去面试时被问到相关的问题,事后我对自己当时的解答不太满意,所以思考了两天,然后写了这篇文章。


  如果以后我在实际工作中做了三消游戏的项目,获得了经验数据,我会来把这个模型的具体做法补充完整的。如果大家有什么意见和建议,也欢迎留言。


via:游资网


看了上面的文章 热爱游戏创作的你是不是已经开始热血沸腾了呢?是不是迫不及待的想加入游戏团队成为里面的一员呢?

福利来啦~赶快加入腾讯GAD交流群,人满封群!每天分享游戏开发内部干货、教学视频、福利活动、和有相同梦想的人在一起,更有腾讯游戏专家手把手教你做游戏!

腾讯GAD游戏策划交流群486822377Gad策划交流群

原文链接

著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

游戏学院公众号二维码
腾讯游戏学院
微信公众号

提供更专业的游戏知识学习平台