|
GameRes游资网发布 文 / 奕成
捕鱼达人或是捕鱼类游戏,鱼的死亡概率是怎么定的呢?在几年前我在街机上面玩过捕鱼达人这样的游戏,后来自己做的游戏引擎需要一个Demo。我就山寨了一个捕鱼达人,先放些截图。
下面是我设计的主要思路,与原版的游戏应该会有出入。
我来谈一下我设计的主要思路
设计之初,我想过要给鱼一些生命值。所谓生命值就是打中一下扣N点的血。
后来我认为,这样的处理方式不靠谱也不符合预期。
原因有三:
一:玩家有可能一炮就中大鲨鱼,大鲨鱼的血量必定是最高的,血量的设计不科学。
二:如果加入了血量,那么只要玩家有耐心,肯投入,必定会中鱼。
三:如果扣完血还不中,说所谓系统的控制。那么这样和没有血量的鱼没有区别(因为血量扣到0了还看系统脸色等于没血量)
于是我移除了血量的设计,这样的设计就纯看脸 23333333
捕鱼达人的鱼被不被打中在设计中应该要注意如下几点:
一:有没有必中的概率;
二:碰撞检测的难度;
三:游戏的平衡;
一般游戏设计是纯随机,但是一款商业游戏或者游戏机室的游戏不应该纯随机(原因你懂的)
那么既然没有纯随机,就会有一个收支比(付出与收益的比值)
我采用了两个变量保存收支比,m_nTotalPay与m_nTotalGain;
每一炮打出去的时候,我会计算一个权值:
fPayGainPower = m_nTotalPay / (float)m_nTotalGain;
得出收支比;这样的收支比设计者可以定期清空(因为游戏机室不一定一直都是同一个玩家,我个人没有清空)
之后我们可以针对收支比进行一个计算,当收支比小于0.5的时候,也就是说玩家收入是支出的一倍,那么我会把倍率调整到0;
if (fPayGainPower <= 0.5)
m_SystemPower = 0.0;
其余的值可以从0.0-1.5不等,具体逻辑游戏设计师可以自己定义。
数值的话你具体可以自己设置一下,如果联网游戏,那么服务器也可以主动设置这个值。
当用户赚得多,系统权值低,用户赚得少,权值高。如果用户赔到底裤都没有了,权值最高。
PS:当用户的钱快花完了也可以相应调高权值,激励玩家充值。
这个值会赋值到炮弹,炮弹打出去之后会对鱼进行一个碰撞检测。具体的碰撞检测会根据游戏设计师的设计逻辑会有所改变。
例如下面矩形就是一条鲨鱼的碰撞盒。
只要网碰中了红色的区域,就会进行捕获的一个随机。
捕获的随机是,不同的鱼类有不同的权值,炮弹有不同的权值,1级炮弹和7级炮弹也不一样。
下面是鱼的权值(随机后结果超出这个值即可抓获)
下面是炮弹的权值
一级 0.1
二级 0.2
三级 0.3
四级 0.4
五级 0.5
六级 0.6
七级 0.7
捕获的权值nCatchPower 是
100的一个随机数 * 大炮的权值 * 系统给定的权值
nCatchPower = (rand() % 100 + 1) * fCanonPower * m_SystemPower;
最后判断CatchPower和鱼的权值,当Catch数值高,鱼就被捕获,进入结算流程。
这样游戏可以一直进(keng)行(qian)下去让玩家快(ku)乐(bi)地玩耍拉。
这是我的设计方法,希望抛砖引玉!
声明:游资网登载此文仅代表作者观点,不代表本站立场。
|
|