在开始游戏之前,我对魂类游戏的认识来Mr.Quin、黑桐谷歌、王老菊的游戏视频。可以说我是一个魂类游戏新手玩家。这里我选择了2022年初发行的《艾尔登法环》作为第一款魂类游戏进行体验。
浆果推荐我们玩一把魂类游戏,来感受一下“在未知世界中谨慎探索”和“获取经验所付出的代价”。而我想在随时可能死亡的魂类世界里,体验学习建模的过程。 细化到目标:“在没有攻略的情况下,尽可能击杀一名BOSS”,即“在《艾尔登法环》里用无用之人独自击败大树守卫”。
在魂类游戏中,虽然我们会不可避免地通过死亡换取经验,但我们通过游戏修改器,跳过部分死亡,加速经验获取。一般我会用到“无敌模式”和“无限生命”。
若我们把游戏过程录制下来,当我们回顾录像时,我们同样可以从录像中获取到经验。 我们可以选择下述软件进行录制:
相关例子需要你在游戏中通过实践来获取,换句话说需要你在游戏中亲自打大树守卫。 我所给出的描述可以帮助你更好地建构和调整模型,但无法直接在你脑中建构一个模型。 与“看书不能学会游泳,学会开车,学会做菜”同理。
「」用于标记模型的输入空间和输出空间。具体参考07-13 YJango直播回放。 由于个人水平有限,存在错误的地方请见谅指出。
如果你不能游玩《艾尔登法环》,或者对游戏部分不感兴趣,建议直接跳转到后记部分。
如果觉得排版看得比较难受,可以去看看飞书版本。
开始新游戏,创建一个无用之人存档。跳过一系列剧情后,最终角色在一个地牢中醒来。此时角色附近有一个洞窟,跳进去开始新手教程。 借此熟悉以下机制:视角,翻滚,蓄力攻击,硬直。
默认状态下没有准星,「你的攻击」会朝着「视角中心打去」。 当你对准敌人「按下Q键」,视角将「进入锁定状态」,你的视角将锁定敌人,并在敌人身上显示准星。 如果敌人附近有动物,你的鼠标朝动物所在方向移动,你的视角也会切换到动物身上。 「再次按下Q键」将会「退出锁定状态」。
假如在游戏画面中,羊在大树守卫的左边,当你鼠标向左移动后,你的视角将会锁定到羊身上。此时你需要按下Q键取消锁定,并祈祷大树守卫此时不会偷你ASS。
「按住W/A/S/D + SPACE」,可以朝任意方向「翻滚」。 在翻滚的同时,角色会短暂地进入无敌状态,不会受到攻击伤害。
「按住SHIFT + 左键」,可以对目标进行「蓄力攻击」。 按住左键时长越久,蓄力时间也越久,对目标造成的伤害也越大。
进行蓄力攻击时,不蓄力并立即释放攻击,这种攻击被称为重击。
进行蓄力攻击时,蓄满力会立即释放攻击,这种攻击被称为超重击。
「角色被击中或者连击」时进入的一个「不能被操作不能反击不能出招的状态」。
前摇指在发出技能到技能生效之前的一小段动作。 通常敌人在技能前摇时,会进入硬直状态。
后摇指在技能生效之后到技能结束的一小段动作。 通常敌人在技能后摇时,会进入硬直状态。
当大树守卫要对你使用即死重击时,会先勒马抬戟(前摇),重击,后缓慢收戟(后摇)。 当大树守卫进入前摇状态或者后摇状态,你可以选择躲避或者攻击。
当敌人被蓄力攻击、跳跃攻击时,敌人的韧性条就会明显减少。 当敌人的「韧性条清空」时,就会「进入巨大硬直状态」。
从地牢中出来后,我看到大树守卫从山坡上缓缓下去。我开启“无限生命”后,兴匆匆跑到大树守卫面前,大树守卫也兴匆匆冲过来给了我一戟。“YOU DIED”。
通过十几次死亡后,我最终观察到:
大树守卫在我的右前方,他勒马,朝我冲锋,蓄力顺劈,继续冲锋,调转马头
大树守卫突然调转马头,他勒马,蓄力回旋劈
大树守卫在我的右前方,他勒马,蓄力斜戳
大树守卫在我的右方,他勒马,蓄力横劈
大树守卫在我的右边,他勒马,蓄力顺劈 「上述攻击」都会对我造成「即死效果」,即使我“无限生命”,也会因此死亡。
对这些例子进行归纳总结,生成一个新概念: 大树守卫「勒马」,对我进行「蓄力攻击」,对我造成「即死效果」。这类攻击称为“即死重击”。
通过不断地走位,最终发现大树守卫的技能选择与距离有关。
为了方便描述我与大树守卫之间的距离,我将马的体长作为单位,单位符号为MA。
大树守卫与我之间距离等于一匹马的体长,那么我用1MA来指代;
大树守卫与我之间距离等于两匹马的体长,那么我用2MA来指代;
大树守卫与我之间距离等于一匹马加半匹马的体长,那么我用1.5MA来指代。
开启“无敌模式”后,通过移动和翻滚调整距离,得出:
大树守卫在我的右前方,距离≥2MA
大树守卫突然调转马头,距离≈1MA
大树守卫在我的右前方,距离≤1MA
大树守卫在我的右方,距离≤1MA
大树守卫在我的右边,距离<0.5MA 大树守卫很可能会使用「即死攻击」。
大树守卫在我的右前方,距离≥2MA。 他勒马,朝我冲锋,蓄力顺劈,继续冲锋,调转马头。 若我被击中,我死亡。
大树守卫突然调转马头,距离≈1MA。 他勒马,蓄力回旋劈。 若我被击中,我死亡。
大树守卫在我的右前方,距离≤1MA。 他勒马,蓄力一戳。 若我被击中,我死亡。
树守卫在我的右方,距离≤1MA。 他勒马,蓄力横劈。 若我被击中,我死亡。
大树守卫在我的右边,距离<0.5MA。 他勒马,蓄力顺劈。 若我被击中,我死亡。
当我们贴近大树守卫的右侧后,除去即死重击,若「大树守卫的攻击」,让我「损失大部分血量但不会致死」,这类攻击称为“轻击”;
大树守卫会通过一次又一次的轻击来杀死我,这类攻击称为“连续轻击”。
大树守卫除了会连续轻击,还会在轻击之后,接一个即死重击。这类攻击称为“轻重击”。 若我吃了一次轻击,起身时未能翻滚,则我会再吃一次即死重击。
我在大树守卫的右前边,距离≤0.5MA。 马侧击我,若我被击中,我剩下50%血量。
我在大树守卫的右前边,距离≤0.5MA。 他斜戳我,若我被击中,我剩下25%血量。
我在大树守卫的右边,距离≤0.5MA。 他横劈我,若我被击中,我剩下25%血量。
我在大树守卫的右边,距离<0.5MA。 他顺劈我,若我被击中,我剩下5%血量。
我在大树守卫的右边,距离<0.5MA。 他从前往后,很慢地挥劈我,若我被击中,我剩下5%血量。
我在大树守卫的右边,距离<0.5MA。 他从后往前,慢慢地挥劈我,若我被击中,我剩下5%血量。
大树守卫在我的右前方,距离在1.5MA - 2MA以内。 马会向它前方跳跃,落地之后,大树守卫会给我一次横劈。 若我被击中,我剩下5%血量。
马受到攻击后,可能会勒马。 如果我刚好在马的正下方,马会践踏下来。 若我被击中,我剩下5%血量。
树守卫在我的右方,距离≈1MA。 他贴近我,然后马身朝外微微倾斜,大树守卫回旋劈。 若我被击中,我只有20%血量。
我在山坡下的草地和大树守卫进行决斗。活动范围为不规则的椭圆,边缘的树木,石壁,动物都有可能引发败北。所以需要通过走位和翻滚确保活动在椭圆以内。
面对大树守卫的攻击,我们需要以翻滚为主,走位为副。 尽可能地避免自己受到伤害。受到轻击伤害后,要避免受到二次伤害。 只要还活着,就还有打败大树守卫的希望。
大树守卫「使用即使重击」时,都会「勒马」,然后「进入长时间前摇状态」。 此时我需要好好观察大树守卫的挥戟动作,我死了好几次。 当我捕捉到「戟即将击中我的那一刻」,立即「翻滚」,刚好躲开即死攻击。
「大树守卫轻击」时,通常我需要在短暂的前摇时间里,观察到「大树守卫的起手动作」。 前摇即将结束的那一刻,我需要立即翻滚,刚好躲避轻击。 马侧击前摇时间短,可能需要十次以上练习才能把握好它的前摇; 前后挥劈前摇时间长,只要把握好动作,就能轻松躲避掉。
需要我在掌握躲避轻击的基础上,根据大树守卫的「连续轻击节奏」,通过「连续翻滚」躲开攻击。 即大树守卫每「轻击一次」,我就「翻滚躲开一次」。
需要我在掌握躲避轻击,躲避即死重击的基础上,躲避轻击的翻滚与躲避重击的翻滚衔接上。
在马跳起的时候,我需要注意大树守卫的挥戟动作,我可能会多次死亡。 当我捕捉到「戟即将击中我的那一刻」,立即「翻滚」,刚好跳跃攻击。
马践踏的前摇时间里,我可以向马头方向「翻滚两次」「躲开攻击」; 或者等「前摇即将结束的那一刻」,「朝马的左侧翻滚」过去。
回旋劈基本上和前后挥劈一样,只要把握好动作,就能轻松躲避掉。
经过上百次尝试和死亡后,我观察到大树骑士有以下特点。
大树守卫左手持盾,右手持戟。 第一阶段的大树骑士不会使用盾牌,此时在他的左侧是安全的。 当「我位于大树守卫的左侧」时,「他会停止当前的攻击」,朝远处跑去并调整攻击姿势。
大树守卫的右侧可以拆分成三个部分,大腿,大腿左侧,大腿右侧。 当我在大腿左侧或大腿右侧,并和大腿贴贴时,横劈、重横劈无法击中我,其他轻击、重击可能会击中我。在大腿右侧,不翻滚则马侧击必定击中我。
如果「我在马头前」,「大树守卫会立即转向,使用马侧击和重横劈」。 所以大树守卫的前方不安全。
如果我在马屁股后,大树守卫的顺劈、后挥劈可能会击中我。 当我位于大树守卫的后方时,他会停止当前的攻击,朝远处跑去并调整攻击姿势。
综上所述,对于第一阶段的大树守卫,在他的左侧攻击是安全的,在马屁股以及屁股右侧攻击是比较安全的。
经过上百次尝试和死亡后,我筛选出在第一阶段两个可以打出超重击招式,以及一个可以打出大树守卫的巨大硬直状态的招式。
大树守卫冲锋时,会有长时间的前摇和后摇。 在大树守卫「用戟即将击中我的那一刻」,按住S+D + SPACE向后右方向翻滚,再走一两步,此时就能「靠近他」。 此时大树守卫「尚未脱离后摇状态」,我可以给他「一次超重击」。 他的「后摇状态结束」,观察好招式,通过走位和翻滚「拉开距离」。
大树守卫「贴近我并使用回旋劈」时,我可以按住W+D + SPACE向前右方向翻滚。 此时我会从马头前方翻滚过去,刚好在大树守卫的左侧停下来,我可以给他「一次超重击」。 大树守卫会迅速地跑开,重新调整攻击姿态。
大树守卫「跳跃攻击」时,可以按住W+D + SPACE向前右方向翻滚。 如果我翻滚的时机抓得不错,一般我会「翻滚到大树守卫的大腿右侧」。 此时大树守卫对我「连续轻击」,前两次轻击靠「翻滚」来贴紧大树守卫; 第三招,如果大树守卫「是重横劈」,那么我走位到他的大腿左侧,然后「连续两次超重击」,最后在找机会打出「一次攻击」,让大树守卫陷入「巨大硬直状态」。此时我会先「恢复一半精力」,然后打出「一次超重击」。 第三招,如果大树守卫「不是重横劈」,想办法「脱离大树守卫的攻击范围」,从而「重置大树守卫的攻击姿势」。
贴身到大树守卫的右侧打输出不是一件轻松的事情,我必须要面对和无视大树守卫连续轻击和轻重击,为了筛选和调整模型,我死了两百多次。
当我靠着“无限生命”在躲避和攻击中不亦乐乎时,大树守卫跳上了高空,只见盾牌朝我砸来,然后“YOU DIE”。后面靠着几次死亡,确认大树守卫血量≤60%,就会进入第二阶段。 开启“无敌状态”后,打到第二阶段后,关闭“无敌状态”并开启“无限生命”,观察到五种招式,都是即死招式。
我在大树守卫的左边,距离≤1MA。 他勒马,他举盾,他的盾朝我冲过来。 若我被击中,我死亡。
我在大树守卫的左边,距离≤1MA。 他勒马,他呈现“大”字,他的巨盾朝地面砸下来。 若我被击中,我死亡; 若我被冲击波击中,我剩下20%血量。
我在大树守卫的左边或前边,距离≤2MA。 他勒马,他举盾,马跳起来,他的盾朝我冲过来。 若我被击中,我死亡。
我在大树守卫的左边或前边,距离≤1.5MA。 他马跳起来,他的巨盾朝地面砸下来。 若我被击中,我死亡。
我在大树守卫的左边,距离≤0.5MA。 他的盾向前转动,然后朝侧面突击。 若我被击中,我死亡。
第二阶段最大的变化是大树守卫使用盾牌了,大树守卫的左侧不再安全。 由于都是即死攻击,盾牌的前摇和后摇比较长,既可以选择躲开,亦或者选择攻击。
大树守卫勒马举盾的时候,我仔细听马声。 马声结束后,我立即翻滚,通常能躲掉攻击。
原地盾砸是一个AOE技能。 大树守卫呈现大字型时,可以连续翻滚三次,退出AOE范围。 或者停顿一下,再翻滚,躲掉AOE技能。
如果是距离≤0.5MA,需要我仔细听马声。 马声结束后,稍微停顿一下,我立即翻滚,通常能躲掉攻击。 如果是距离>0.5MA,需要我观察盾牌。 盾牌出现白色冲击特效时,我立即翻滚,通常能躲掉攻击。
我稍微后退一下,方便观察空中的大树守卫。 将大树守卫看成一颗点,他的运动轨迹开口朝下的抛物线, 当他经过抛物线最高点后,稍微停顿一下,我立即翻滚,通常能躲掉攻击。
通常翻滚就可以躲掉攻击。 只遇到过四五次,无法确保有效性。
除去少见的侧盾攻击,其他四种盾牌招式都有长时间的后摇。当你「躲避掉盾牌攻击」后,你有足够的时间打出「一次超重击」。注意不要贪刀。因为盾牌招式是可以组合的,最多两次。 如果你能抓住两次盾牌攻击的后摇,打出两次超重击,再找机会补上一次攻击,就可以使大树守卫进入巨大硬直状态。
我的目标:在《艾尔登法环》里用无用之人独自击败大树守卫。 转换成问题:如何「用无用之人」独自「击败大树守卫」?
对于一个新手玩家来说,这个问题我无法回答。 因为我搜索不到对应模型,我没有掌握需要用到的模型,大树守卫对我来说,是未知的。
将一个大的问题,拆分成数个小问题的方法,称为分而治之。 它能够将原本需要指数级知识量的问题,变成用线性级知识量就可以解决。
我观察到大树守卫的攻击类型是固定。 我将问题转换:无用之人如何不被大树守卫的招式击中?如何持续击中大树守卫?
我对大树守卫的每种招式建立了模型,并对招式进行了命名。 我将第一个问题进行了拆分,第二个问题进行了转换:
1、无用之人如何躲开大树守卫即死重击?有机会击中大树守卫吗?
无用之人如何躲开大树守卫冲锋?有机会击中大树守卫吗?
无用之人如何躲开大树守卫重回旋劈?有机会击中大树守卫吗?
……
2、无用之人如何躲开
大树守卫连续轻击
?有机会击中
大树守卫吗?
无用之人如何躲开
大树守卫马侧击
?有机会击中
大树守卫吗?
无用之人如何躲开
大树守卫斜戳
?有机会击中
大树守卫吗?
……
3、无用之人如何躲开
大树守卫其他攻击
?有机会击中
大树守卫吗?
无用之人如何躲开
大树守卫马侧击
?有机会击中
大树守卫吗?
无用之人如何躲开
大树守卫斜戳
?有机会击中
大树守卫吗?
……
我继续对大树守卫的每种招式进行尝试,最终筛选出既能躲避又能输出的招式
。
我将问题进行了重新分类:
1、无用之人如何躲开
大树守卫下列攻击
无用之人如何躲开
大树守卫重回旋劈
?
无用之人如何躲开
大树守卫重斜戳
?
……
无用之人如何躲开
大树守卫马侧击
?
无用之人如何躲开
大树守卫斜戳
?
……
无用之人如何躲开
大树守卫践踏
?
2、无用之人如何利用
大树守卫下列攻击
,击中
大树守卫?
无用之人如何躲开
大树守卫冲锋
,超重击
大树守卫?
无用之人如何躲开
大树守卫回旋劈
,超重击
大树守卫?
3、无用之人如何利用
大树守卫跳跃攻击
,翻滚到大树守卫大腿右侧;尝试打出
大树守卫的巨大硬直状态
?
我将大树守卫打进第二阶段,此时大树守卫使用盾牌。
我不得不观察大树守卫的第二阶段招式,建构对应的模型,并将新问题整合进问题集合中。
1、大树守卫进入第二阶段的条件?
2、无用之人如何躲开
大树守卫下列攻击
无用之人如何躲开
大树守卫重回旋劈
?
无用之人如何躲开
大树守卫重斜戳
?
……
无用之人如何躲开
大树守卫马侧击
?
无用之人如何躲开
大树守卫斜戳
?
……
无用之人如何躲开
大树守卫践踏
?
3、无用之人如何利用
大树守卫下列攻击
,击中
大树守卫?
无用之人如何躲开
大树守卫冲锋
,超重击
大树守卫?
无用之人如何躲开
大树守卫回旋劈
,超重击
大树守卫?
无用之人如何躲开
大树守卫原地盾击
,超重击
大树守卫?
无用之人如何躲开
大树守卫原地盾砸
,超重击
大树守卫?
无用之人如何躲开
大树守卫跳跃盾击
,超重击
大树守卫?
无用之人如何躲开
大树守卫跳跃盾砸
,超重击
大树守卫?
4、无用之人如何利用大树守卫跳跃攻击
,翻滚到大树守卫大腿右侧;尝试打出
大树守卫的巨大硬直状态
?
“如果能做到观测的话,那就可以干涉。如果能做到干涉,就可以做到去控制。”
大树守卫对我来说,是未知的。 我不知道他的戟会不会戳人,他的盾牌会不会砸人,他会不会使用法术。 我必须与大树守卫进行互动,观察他的反应与行为,即使我会因此而死亡。
当我和大树守卫打成一片时,我首先需要做的不是攻击,而躲避和观察。 我需要「观察大树守卫的马」,「观察大树守卫的戟」,「观察大树守卫的动作」。并对伴随而来的攻击,「笨拙地走位」,「笨拙地翻滚」。 死亡是无法避免的,但重要的是收集导致死亡的经验。当类似的场景,类似的招式,类似的死亡被「观察得足够多时」,我就会尝试从这些例子中「归纳出模型」。
在大量例子的基础上,我开始注意到大树守卫招式的相关信息:
XX招式的发动条件
XX招式的前摇、攻击、后摇的时间
XX招式能否翻滚躲避过去
XX招式能否有机会打输出
…… 将这些「信息」进行压缩,提炼出一个通用的「规律」,就得到了一个「模型」。
虽然我通过大量例子,建构出许多的模型,但这些模型通常是过拟合甚至是欠拟合。为此需要不断地「调整验证模型」,来「提升模型泛化能力」。
欠拟合模型:大树守卫要重斜戳
,立即翻滚。
结果:翻滚结束后,大树守卫刚好戳中我,我死亡。
调整模型1:大树守卫要重斜戳
,心里计时到5后,立即翻滚。
结果:还没有计时结束,大树守卫戳中我,我死亡。
过拟合模型:大树守卫要重斜戳
,心里计时到3后,立即翻滚。
结果:大树守卫没有戳中我,我存活。
过拟合模型:大树守卫要重回旋劈
,心里计时到3后,立即翻滚。
结果:翻滚结束后,大树守卫刚好劈中我,我死亡。
调整模型2:大树守卫要重斜戳
,先观察大树守卫挥戟动作,后决定何时翻滚。
结果:在大树守卫即将劈中我那一刻翻滚,大树守卫没有劈中我,我存活。
……
通用模型:大树守卫要用即死攻击
,先观察大树守卫挥戟动作,后决定何时翻滚。
结果:在大树守卫即将击中我那一刻翻滚,大树守卫没有击中我,我存活。
为了将可以躲避的招式和可以攻击的招式,变成既能躲避又能输出的招式,为此我需要调整模型; 我需要稍微调整「模型的参数」,生成一个「新模型」,并验证新模型输入输出。
原始模型1:大树骑士冲锋,他的戟即将挥下来,向前
翻滚。
结果:躲过攻击,大树守卫处于后摇状态,离大树守卫太远。
原始模型2:当大树守卫陷入硬直长时间硬直状态时,超重击
大树守卫。
结果:大树守卫受到超重击伤害。
调整模型1:大树骑士冲锋,他的戟即将挥下来,向左
翻滚。
结果:躲过攻击,大树守卫处于后摇状态,离大树守卫太远。
调整模型2:大树骑士冲锋,他的戟即将挥下来,向右
翻滚。
结果:躲过攻击,大树守卫处于后摇状态,离大树守卫有些近。
调整模型3:大树骑士冲锋,他的戟即将挥下来,向后
翻滚。
结果:躲过攻击,大树守卫处于后摇状态,离大树守卫比较近。
调整模型4:大树骑士冲锋,他的戟即将挥下来,向右后侧
翻滚。
结果:躲过攻击,大树守卫处于后摇状态,离大树守卫很近。
调整模型5:大树骑士冲锋,他的戟即将挥下来,向右后侧
翻滚,超重击
大树守卫。
结果:躲过攻击,大树守卫受到超重击伤害。
充足良好的「睡眠」确保大脑有足够的时间「调整神经结构」,进而「储存已掌握的模型」。与此同时,重复频率低的信息和规律性低的模型会被大脑所遗忘。
第二天起来,当我再次挑战大树守卫,我发现我忘掉了昨天大量练习的细节内容,但我对已掌握的知识更加熟悉,更加灵活,更有效率。原本会让我脑袋发胀的知识,如今我回顾起来十分轻松。 而且在挑战中,我还不断地产生新的思路,新的想法,它们成为我调整模型所需的素材。