另一个幸存者——从入门到放弃

精华更新时间2023/5/304.7 万浏览综合
一. 前言
这游戏接触了三五天吧,从内容上来说是个很简单的游戏,然而好游戏就应该是这样的机制,简单易上手 + 上头。
鉴于社区里面攻略比较少,我想写一点给大家提供些思路。我的大部分东西都没有想的很细,很完善,在这里主要想给大家介绍这个游戏的几个阶段的玩法。
二.游戏阶段及玩法
1.学前
如果你还没有通关第一次,这是一个肉鸽选卡游戏,那么主要要讲的是怎么选卡。
1.1秒伤
在战斗界面,如图
TapTap
这是这个游戏的核心,当你的秒伤大于推荐的时候,基本上意味着你能继续存活,反之大概率很快要死。注意这里秒伤在前推荐在后,5788是秒伤,5281是推荐。于是游戏就变成了如何选牌来让你的秒伤最大化。
1.2选牌原则
总共8种卡牌类型,经验和祈福可以算作成长类卡牌,其他的都是战力类卡牌。经验祈福提供的是后期能力,而战力卡牌构成了秒伤。
大致原则是,当你的秒伤远高于推荐的时候,选择经验和祈福,否则选秒伤牌。选牌时一般选择等级高的卡或者+2的卡,如果都差不多选择牌少的那个。如果秒伤比较吃紧可以去凑羁绊提战力。
这里要提到的是,攻击、攻速、暴击、增伤、弹射、群攻里面没有哪个比哪个好的说法,均衡的加点能最大化秒伤。经验和祈福相比,经验偏重前中期,祈福妥妥大后期,并且祈福是指数级增长的后期牌。
2.入门
基本上注意以上的点就能够通过第一关了。来到难度5以上,这个游戏就变成了一个养成游戏,你会发现随着难度的提升,基本上打不过。就需要利用星星进行加点,提供场外的天赋能力。
星星比较少,例如50一下的时候,可以选择点技能,收获、分身是比较好的,可以各加一级。
星星多起来的时候,不能都加在技能上,要匀一半给属性点,属性点加点要均衡,各一级。
关于技能的点法我不太清楚,各种的都有。看到论坛里常见的就是分身和进阶各6级,其余的收获和祝福点1级。群里榜一大佬难二都不会好像说平均加,收获和祝福可以多加一点。
TapTap
TapTap
这是我目前的点法,大家随意参考一下,关键点是要点属性,均衡点。
3.进阶
这游戏到了这里就变得非常肝了,你只能不停打,打又打不过,只能混点星星,星星高了才能推后面的关卡。另一方面它的选卡策略其实挺单一的,玩多了就没什么乐趣。它又不像放置游戏,它需要你不停的去战斗,关键战斗也不省心,游戏内置了自动模式和AI选卡模式,两个模式都挺蠢的,根本走不远,还得手动选卡。
3.1选卡逻辑量化
我想了想选卡逻辑其实不太难的,我在游戏里也找不到可以设置选卡逻辑的地方,于是干脆自己造一个
TapTap
大致想法就是 1.学前 里所说的选卡逻辑,并量化出来了,计算卡牌价值的伪代码如下
step1 卡牌价值 = 卡牌等级 + 基础价值bias
step2 如果是两张卡,卡牌价值 = 卡牌价值 x 2
step3 如果是祝福卡,卡牌价值 = 卡牌价值 x 1.2
step4 如果是两张卡, 卡牌价值 = 卡牌价值 + 1
step5 如果选卡之后羁绊会升级,卡牌价值 = 卡牌价值 + 5
step6 如果卡牌类型是祈福, 卡牌价值 = 卡牌价值 + 祈福补偿
step7 如果卡牌类型是经验, 卡牌价值 = 卡牌价值 + 经验补偿
其中,祈福和经验补偿这样来设计,秒伤推荐比>=2的时候,祈福补偿=1000,这样其他秒伤牌就不会被选到;同理,当秒伤推荐比小于某个值比如1的时候,让祈福补偿为-1000,这样祈福牌就不会被选到。
其中,基础价值bias是为了平衡双卡算法的,step4 +1的想法是因为双卡有一个增加羁绊的好处。
计算完每一张卡的价值后,选择价值最大的那张卡。
3.2测试猫
有了核心的选卡逻辑,后面就是用程序来自动化,我用到的工具是 测试猫,需要电脑连接安卓手机,JavaScript语言。
官网下载链接:https://testcat.flyingcat.top/
文档及教程:https://testcat.flyingcat.top/docs/
上手超级简单,我一个没接触过java的人10分钟就学会了。大家稍微看一下,很快就学会了。这个环节也是我乐趣最大的一个阶段,我写了我人生当中第一个游戏脚本。
4.高阶
经过阶段3,那么这个游戏已经是一个放置游戏了。那么乐趣就回归到如何更合理的选卡,这就成为一个数学建模游戏。以下是一些我的头脑风暴,还没有入手。主要是懒得动脑想公式,想用强化学习来做。
4.1数学模型构建
4.1.1目标函数
这个游戏的核心其实,怎么选卡使得秒伤最大,这个秒伤还不是当期的秒伤最大,还包括了未来至游戏结束内的秒伤最大,并且该秒伤要大于推荐秒伤。
可以在坐标轴内对秒伤和推荐秒伤画两条曲线,纵坐标是伤害,横坐标是时间
TapTap
如图橙色是秒伤曲线,蓝色是推荐曲线。这样游戏的目标可以定义为这两条曲线间的面积最大化
max loss = 求和 Dy(t, pi) - Ds(t)
其中Dy(t, pi)为t时刻,采取选卡策略pi下的秒伤, Ds(t)为t时刻的推荐秒伤
有约束条件s.t. Dy(t, pi) >= Ds(t),即保证在过程中保证秒伤不低于推荐
4.1.2网络及输入输出
Dy(t, pi)的函数形式考虑用全连接网络就够了
输入选卡时三张卡的信息,已有的这堆数据,如下图
TapTap
可能还需要技能加点数据和时间数据。
技能加点不好归一化,可以考虑借鉴transformer里面的embedding的做法,一种技能一个等级视作一个类别,然后建立一个查询table。但是也可以先不管加点,视作统一的加点来做这个模型。
加入时间数据是考虑到推荐秒伤可能在某些时间点暴涨
5.结语
人玩游戏,不是游戏玩人。希望大家保持学习,保持进步,生命珍贵,不要沉溺于肤浅的欲望之中。
评论42
只看作者
最热
TapTap
写下你的想法...
Laurant华
关于1.2的选牌部分我有一些其他看法,在此提出并(试图)探讨(楼主可能不一定作回复,但是我放在这里给看到的人做一个参考)
选牌原则并不是哪个牌等级高选哪个,而应该是哪个牌收益大选哪个,其中经验和祈福不能直观量化收益,在此仅探讨其余伤害卡的收益
(说实话其实一般来说就按着哪个牌等级高选哪个来最省事,但是都用上程序自动化了那算法就有必要说道说道了)
一个浅显但极端的例子:比如已有50攻击,0%群攻,给出两张牌:二级攻击+2攻击,一级群攻+10%群攻,按照楼主1.2的逻辑可能就是选攻击了,但是攻击卡的提升是4%,而群攻的提升是10%,这也正是包括楼主在内的所有攻略作者都会提到的边际收益问题。
据个人在wf中的经验,大致算法可能是:dps=攻击*(1+群攻加成)*(1+弹射加成)*暴击期望*暴伤*(1+增伤加成)*攻速
其中暴击期望按满暴算即可,也就是1,而暴伤是溢出暴击转化,转化率不明,需要进一步计算,溢出的群攻与弹射转化的额外伤害暂不明是哪个区间
通过进一步完善公式(不管是哪位毅力大佬测出转化率与额外伤害区间以及可能存在的误差修正,或是直接找作者要)即可量化当前情况下各牌将带来的具体收益
顺带一提几个属性在收益差不多的情况下有优先度的,还是一个浅显而极端的例子:
所有怪都只有1滴血,100攻击而攻速是1的dps是100,但会被堆死,1攻击但攻速是100的dps还是100,但是不会被怪堆死。
(可能的)最高优先度属性:攻速,我看属性介绍里没说这玩意有上限,那就应该是都能堆
第1.5高优先度的属性:群攻与弹射,他们可以变相增加攻速,但是这两个属性是有上限的,超出就会变成额外伤害
这里本来是准备写t0和t0.5的,但是想想可能会有误导效果就不写了,属性没有高下之分,只有在收益差不多的情况下优先谁的区分)
剩下的在目前版本都是纯粹的伤害堆积,就没什么区分了
手机用户50659861
嗯,你说的对,我那段代码是很早之前随便写的,抛砖引玉的作用,真要严谨的做,就像我后面提到的强化学习,用机器学习来做。但是这个游戏现在的机制根本没必要,星星多了伤害碾压,尽量多选经验祈福多升几级就是了。至于你提到的现象,确实少的卡选了提升作用大,你看我代码后面有两行加的就是这个,羁绊少的加了补偿,但也是不怎么严谨。反正总体来说属性平均,就这个思路
手机用户50659861
而且嘛,这套量化的方法单纯的出于代码好写,你自己写过就会明白。识图有反应时间和失败的概率,越简单的做法越鲁棒。逻辑部分用加惩罚项的方式而不是大量的if语句也精简了写法
花心天下第一
[嗒啦啦4_好耶]一个割草机。消磨时间的,整出来一堆挂b。
persevere.
大佬就是大佬…玩游戏的总结让人印象超模…
苏大侠
……什么游戏科研人员[嗒啦啦4_好耶]
绿豆汤001
绿豆汤001
哇!感谢大佬!
手机用户50659861
作者大佬游戏做的好呀,其他几款游戏也很棒,实属顶流开发者
骨川小夫
TapTap
推荐还没追上秒伤就被围死了 醉了
燕归来
我也是,有时候甚至是超50%都能被贴脸,这数值确实看不懂。
王
玩一下午第一关过不去
嘿嘿嘿
这游戏第一属性是经验,开局之后保证自己不死,然后尽量把经验羁绊堆高,后面秒伤高一倍不是问题😁
丷宵崎奏丷
不懂就问 祈福的效果是啥 我看文字说明是新卡效果增加 那后期选不就没意义了吗
手机用户50659861
嗯,按逻辑讲,如果后面只升几次级了,选祈福效用就不大了
丷宵崎奏丷
就是说前期选后期作用大是这样吗
bot
你搁着写论文呢
繁·晨
她甚至还做了解析[嗒啦啦4_比心]
211
132
42