另一个幸存者——从入门到放弃
一. 前言
这游戏接触了三五天吧,从内容上来说是个很简单的游戏,然而好游戏就应该是这样的机制,简单易上手 + 上头。
鉴于社区里面攻略比较少,我想写一点给大家提供些思路。我的大部分东西都没有想的很细,很完善,在这里主要想给大家介绍这个游戏的几个阶段的玩法。
二.游戏阶段及玩法
1.学前
如果你还没有通关第一次,这是一个肉鸽选卡游戏,那么主要要讲的是怎么选卡。
1.1秒伤
在战斗界面,如图
这是这个游戏的核心,当你的秒伤大于推荐的时候,基本上意味着你能继续存活,反之大概率很快要死。注意这里秒伤在前推荐在后,5788是秒伤,5281是推荐。于是游戏就变成了如何选牌来让你的秒伤最大化。
1.2选牌原则
总共8种卡牌类型,经验和祈福可以算作成长类卡牌,其他的都是战力类卡牌。经验祈福提供的是后期能力,而战力卡牌构成了秒伤。
大致原则是,当你的秒伤远高于推荐的时候,选择经验和祈福,否则选秒伤牌。选牌时一般选择等级高的卡或者+2的卡,如果都差不多选择牌少的那个。如果秒伤比较吃紧可以去凑羁绊提战力。
这里要提到的是,攻击、攻速、暴击、增伤、弹射、群攻里面没有哪个比哪个好的说法,均衡的加点能最大化秒伤。经验和祈福相比,经验偏重前中期,祈福妥妥大后期,并且祈福是指数级增长的后期牌。
2.入门
基本上注意以上的点就能够通过第一关了。来到难度5以上,这个游戏就变成了一个养成游戏,你会发现随着难度的提升,基本上打不过。就需要利用星星进行加点,提供场外的天赋能力。
星星比较少,例如50一下的时候,可以选择点技能,收获、分身是比较好的,可以各加一级。
星星多起来的时候,不能都加在技能上,要匀一半给属性点,属性点加点要均衡,各一级。
关于技能的点法我不太清楚,各种的都有。看到论坛里常见的就是分身和进阶各6级,其余的收获和祝福点1级。群里榜一大佬难二都不会好像说平均加,收获和祝福可以多加一点。
这是我目前的点法,大家随意参考一下,关键点是要点属性,均衡点。
3.进阶
这游戏到了这里就变得非常肝了,你只能不停打,打又打不过,只能混点星星,星星高了才能推后面的关卡。另一方面它的选卡策略其实挺单一的,玩多了就没什么乐趣。它又不像放置游戏,它需要你不停的去战斗,关键战斗也不省心,游戏内置了自动模式和AI选卡模式,两个模式都挺蠢的,根本走不远,还得手动选卡。
3.1选卡逻辑量化
我想了想选卡逻辑其实不太难的,我在游戏里也找不到可以设置选卡逻辑的地方,于是干脆自己造一个
大致想法就是 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语言。
上手超级简单,我一个没接触过java的人10分钟就学会了。大家稍微看一下,很快就学会了。这个环节也是我乐趣最大的一个阶段,我写了我人生当中第一个游戏脚本。
4.高阶
经过阶段3,那么这个游戏已经是一个放置游戏了。那么乐趣就回归到如何更合理的选卡,这就成为一个数学建模游戏。以下是一些我的头脑风暴,还没有入手。主要是懒得动脑想公式,想用强化学习来做。
4.1数学模型构建
4.1.1目标函数
这个游戏的核心其实,怎么选卡使得秒伤最大,这个秒伤还不是当期的秒伤最大,还包括了未来至游戏结束内的秒伤最大,并且该秒伤要大于推荐秒伤。
可以在坐标轴内对秒伤和推荐秒伤画两条曲线,纵坐标是伤害,横坐标是时间
如图橙色是秒伤曲线,蓝色是推荐曲线。这样游戏的目标可以定义为这两条曲线间的面积最大化
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)的函数形式考虑用全连接网络就够了
输入选卡时三张卡的信息,已有的这堆数据,如下图
可能还需要技能加点数据和时间数据。
技能加点不好归一化,可以考虑借鉴transformer里面的embedding的做法,一种技能一个等级视作一个类别,然后建立一个查询table。但是也可以先不管加点,视作统一的加点来做这个模型。
加入时间数据是考虑到推荐秒伤可能在某些时间点暴涨
5.结语
人玩游戏,不是游戏玩人。希望大家保持学习,保持进步,生命珍贵,不要沉溺于肤浅的欲望之中。