经典的捕鱼游戏程序原理.包含程序员揭秘(第二章节)

自从第一章节大家看了以后,强烈的建议本人写第二章节,关于捕鱼游戏的程序原理。其实本人打鱼游戏机。街机捕鱼,以及现在的网络捕鱼类别都有玩过,在这里提醒大家一句,虽然你了解了编程原理,但不代表你可以包赢,毕竟程序是可以控制改写的。所以娱乐就好。如果你是这样的心态,找到不自己输的原因,又想知道输的原因,建议你看完第二章节。

第二章:进阶设计(2021年连载)

1.Part11——————大框架基础(完善中……

2.Part12——————换皮的模式

3.prat13——————大型鱼设计

4.part14——————调控型模型

5.part15——————活动的融合

Part4:

刷鱼的路径——》鱼儿怎么游动:

关于路径:有2D和3D不同的实现方案,有预设类型的,有随机类型的;我们产品采用的是2D预设类型,直接画出固定的路径,通过批量生成的方式以及随机组合,来形成鱼在游戏中游动的路径。

优点:策划在配置路径时,可以明确知道这鱼的游动方向

缺点:数量少时,鱼都是一套路径,很容易就让玩家发现规律,而且配置起来很低效、可变化性少,需要新的路径时需要重新画。


例如,上述就是我们才Demo期间,前端做了一个路径生成工具,再自行编辑所出现的路径,生成文件后保存;每一个路径对应一个ID,后续在鱼儿游动时配置上去即可。

总之:

路径的实现方案有很多种,传统路径上述方式基本可以满足,但是像“捕鱼来了”里面的3D螺旋式鱼阵、就比较复杂了,这一块需要开发同学衡量一下自己的算法了。

-------------------------------------------

Part5

特殊的玩法:鱼的玩法内容设计

上面了解到了我们需要什么样的鱼,如何填充到游戏的场景中去,那么就可以欢乐的找美术同学要对应的鱼儿需求了,去百度、参考竞品、海洋知识百科里面收集大量鱼儿和美术同学商量需要多少只鱼,什么样的鱼,赋予这些鱼不同的生命值,填充到场景中,即完成一个【基础捕鱼游戏】了

那么光有基础的内容,只是开始了游戏设计的第一步,需要增加不同的玩法让玩家在打鱼过程中体验到不同的乐趣,那么接下来就介绍一些传统游戏中和我所设计过的“有趣”的鱼

1.传统鱼类型

不过多解释了,无特殊玩法,最基础的组成元素,玩家捕获获得一定金币返利

2.特殊鱼类型

捕鱼中常见的,炸弹鱼、冰冻鱼、闪电鱼、黑洞鱼……在这里记为A类

还有一些,大三元、大四喜、一触即发、连连看之类、鱼王的鱼,本质上就是击中一条,其余的鱼也会被捕获……在这里记为B类

以及更为复杂的、各种平台推出的兑换卡、兑换券、掉特殊道具的鱼……这里不做解释,讲完上述后,大家会自己明白如何去设计一些满足自己需求的“特殊鱼”

注:很多平台的捕鱼,通过打鱼掉“兑换券”,兑换券可以直接在游戏中兑换微信红包、话费、以及实物等等,这些已经有一些擦边球了,更有其平台,掉落数量直接与玩家的倍率挂钩,说白了,就是一种上下分的包装。
用户充值游戏货币——游戏货币“对价”变成了代币——代币直接变现,这个已经相对比较赤裸了,在设计游戏时,尽可能的避免此类功能吧
A类鱼思路:

1.此类鱼的表现形式相似,都是捕获特定的鱼后产生一些连锁反应,导致周围的鱼连带死亡;如果了解了之前我所说的,每一个鱼都是有生命值的模型,这个问题就很好解决了。

实现起来有2种方式:二次算法以及固定收益实现

二次算法:就是当玩家捕获“炸弹鱼”后,假设这个炸弹鱼应该返奖100分,那么只需要后台把这100分换算成“子弹”再去匹配对应的鱼,二次校验其它的鱼是否死亡,即可实现炸弹鱼被捕获后导致其它鱼死亡的基本逻辑了

固定收益实现:同理,一个炸弹鱼返奖100分,那么直接去匹配周围的鱼,凑齐100分直接死亡也可以实现(如果没办法精确匹配,也有一些其它方式来完善返奖率,我并没有采用该方案,所以不说了)

举个例子:

玩家炮台倍率为10,子弹伤害为1,炸弹鱼生命值为100,返奖为100;则玩家捕获炸弹鱼理应获得10*100=1000分的收益。但是我把这1000分化作二次运算的子弹伤害,去匹配周围其它鱼,把这1000分换算成100点伤害再随机至其他鱼身上,那么整体上就是一个二次平衡算法,玩家的期望收益没有变,从而实现炸弹鱼的整个基本循环逻辑了

(注:实际二次运算伤害为100,1000分是货币理应返奖的具体数字,100可以理解赢得分数换算为伤害的结果)

那么本质上就形成了,玩家伤害为1的子弹,在击中炸弹鱼后,变成了一个伤害为100的子弹,再去匹配其他可以获得分的鱼。炸弹鱼本身只是一个媒介,通过包装让用户觉得有意思。

所有A类鱼本质上相似,我采用的是平衡期望转换成二次运算来实现这种机制。如果你理解了这个思路,那么所有类似的鱼,都可以通过该方式实现。

(还有更多细分算法,在二次运算中运用,来保障玩家的体验,这里不过多解释,理解原理后这样的鱼设计起来就不会很复杂了,而且整体上没有打破“平衡体系”原则,不会造成某一条鱼的返奖率过高或者过低)

image


以上,按照该思路,炸弹鱼、冰冻鱼、黑洞鱼、闪电鱼等等一系列的本身不产生价值,通过属性来进行二次运算可以完整的渡过鱼的展示效果需求算法。

当然了,有更简单的,鱼死亡——》随机抽取一定数量的鱼死亡,分数回报期望控制在特殊鱼的回报率当中,也可以完成上述需求!

后续会在专栏其他篇幅中,添加一些我曾做过的特殊鱼玩法采用的计算方式。

这里就不多再叙述特殊鱼的玩法了,继续下一个类容。

-------------------------------------------

Part6

进阶的玩法:弹头、技能卡、技能等

1.技能卡

多半在游戏中是一种常规道具提供给玩家使用,通常捕鱼的道具卡有【瞄准】【急速】【召唤】【冰冻】;上述技能卡没有特别的数值设计以及复杂的逻辑

2.弹头

我在这里采用的弹头,把它定义成了一个“高伤害的子弹”,许多游戏的弹头本身就是一个“金币袋子”的包装……具体原因不多说了,做过捕鱼的大家心里都明白弹头的本质作用是什么。

所以,我在弹头保留弹头依旧可以炸死鱼的基础上做了一些调整,弹头在使用时的数值算法调整为:弹头自身有一个【倍率属性】以及一个【伤害属性】,不同的弹头所含有的属性不同

例如:一个青铜弹头的基础倍率是10倍,伤害点数为100点,那么在使用时,等于是一个用户发射了100个伤害为1的子弹,分布在屏幕中的鱼身上,如果有鱼死亡,则按照鱼本身的返奖率进行返奖。

假设死亡3只10分的鱼,则弹头的最终收益=10*10=100点,玩家在使用弹头后,获得的回报为100

平衡期望原则:上述的青铜弹头,基础倍率10,伤害100,则他的对价价值=10*100=1000;即一个青铜弹头可以衡量为1000个金币,则在产出青铜弹头时,需要把该道具作为一个1000金币的投放,纳入到游戏中的投放中;同时若打鱼掉落该道具,则也需要把该部分纳入到鱼的回报率总和中去

3.技能

少部分捕鱼游戏会推出“技能”的玩法,常见的有【炮台激光】、【蓄能发射】、【鱼叉弹射】等等

这种类型的数值算法,我采用的与弹头算法类似,当使用某一技能时,均换算为“伤害点数”,通过玩家当前的炮台倍率或者默认的设定倍率来衡量该技能的“对价价值”

例如:炮台激光,在使用时,向前方发射一束激光并命中区域内的鱼,激光是按照玩家的炮台倍率随机浮动的,伤害值默认为100点,则它每使用一次,需要消耗的“对价”价值为【玩家倍率】*100

这种浮动对价怎么去平衡它的使用次数呢?腾讯的捕鱼中就采用了能量转化次数的方式


按照腾讯中的算法,玩家的炮台倍率为500时,需要消耗500*10=5000的能量值;我们假设激光可以造成的总伤害为100点

则激光的期望值为:500*100=50000金币的对价价值

那么每点能量的期望为:50000/5000=10金币的对价价值

由此,我们可以得出,玩家每获得1点能量值,即等于产出了10金币的投放

于是:所有上述的功能模块均有一套标准的对价算法,我们可以更换许多包装形式来实现类似的方法

1-7的数据已经给大家分享完了,第三章节,将继续更新。希望大家认真的看看哦!~~~~~~~~~~~~~~