最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【翻譯】解密《怒首領(lǐng)蜂》連擊分翻倍bug

2020-03-27 12:10 作者:ixix91  | 我要投稿

原文 http://electricunderground.io/the-secret-dodonpachi-scoring-glitch-revealed/

以及WTN的個(gè)人推@sof_wtn,感謝Blackisto,WTN的解析和分享

翻譯by?—— x91 & 遺忘之雪

前言:怒首領(lǐng)蜂初代的世界紀(jì)錄高分,這幾年發(fā)生了劇烈的變化。

原本TAS都只能做到7.5E左右,WTN在十多年前打出的的7.54億更是比TAS還高,因?yàn)榕涞陌婷嬉还惨簿瓦@么多分,基本也被認(rèn)為是極限了。

然而就在前年A-L的記錄分暴增了1.1E,B/C機(jī)體也暴增了接近1E,SHMUPS論壇的老外找到并撰文分析了導(dǎo)致這個(gè)情況出現(xiàn)的BUG。

關(guān)于正文,老外給出了一個(gè)參考視頻:

可能在審核中。請(qǐng)結(jié)合食用

正文:

直至數(shù)年前《怒首領(lǐng)蜂》日本國(guó)內(nèi)三機(jī)最高分(等同于世界紀(jì)錄)大幅度改寫,從來都沒有人仔細(xì)認(rèn)真地考慮過初代怒蜂里偶爾會(huì)出現(xiàn)的奇妙分?jǐn)?shù)上浮究竟為何。因?yàn)橐粌汕f的分?jǐn)?shù)波動(dòng)往往被疊加式的分?jǐn)?shù)算法掩蓋得很好,會(huì)被考慮成浮動(dòng)分?jǐn)?shù),絕大多數(shù)人沒有深入探究。

?而自以KTL-NAL為首的日本玩家在2015年真正發(fā)現(xiàn)其內(nèi)所含秘密過后,這個(gè)秘技在小范圍的日本怒蜂初代玩家里得到了分享,引爆了初代怒蜂最高分的爆發(fā)式提高。但是在這些屈指可數(shù)的人之外,鮮有人能搞明白這個(gè)“bug”到底是如何觸發(fā)的。

?這樣一個(gè)未解之謎讓日本以外的STG愛好者們感到如坐針氈,甚至最近還有人打算在網(wǎng)上開出懸賞,期望有哪位勇士敢于站出來揭開這個(gè)謎團(tuán)。實(shí)際上,根據(jù)國(guó)外論壇里討論的說法,在2018年時(shí),也已經(jīng)有西方玩家在攻略《怒首領(lǐng)蜂》期間碰到了分?jǐn)?shù)的莫名增加,只是他當(dāng)時(shí)也僅僅停留在了疑惑的階段。

?直到2020年3月,一個(gè)決定《怒首領(lǐng)蜂》是否能突破10億分大關(guān)的真相,終于開始浮出水面。


累積分

《首領(lǐng)蜂》系列的標(biāo)志性得分系統(tǒng),連擊,在1997年的這一作時(shí)還是基于一個(gè)非常簡(jiǎn)樸的計(jì)算公式:

擊破得分 = 當(dāng)前GP + 敵機(jī)基本分

GP,所謂Get Point,其實(shí)就是整個(gè)連擊過程中一點(diǎn)點(diǎn)累積起來的分?jǐn)?shù),如你所想,它是這么算:

下一Hit的GP分 = 當(dāng)前GP + 敵機(jī)基本分

在擊破一個(gè)敵機(jī)要使用這個(gè)算法算分時(shí),存在一個(gè)計(jì)算的先后順序,GP的計(jì)算先于分?jǐn)?shù)的計(jì)算。記住這一點(diǎn)對(duì)理解后面即將發(fā)生的事情非常重要(可能也一點(diǎn)關(guān)系都沒有)。

另一個(gè)不能混淆的概念是,GP不等于連擊分。顯示在游戲UI面板上的連擊分是你整段連擊所獲得的分?jǐn)?shù)而非GP,累積的GP分并非顯式。


謎之?dāng)硻C(jī)

在游戲的第六關(guān),如果打的時(shí)候留心背景,會(huì)發(fā)現(xiàn)初代也是有“蜂巢地帶”的,它的呈現(xiàn)方式就如同六邊形的蜂格,只不過規(guī)模沒有大往生5面的那么巨大,從其中伸出來的不過就是小炮臺(tái)而已,不過它們?cè)诒粨羝坪髸?huì)不斷刷新。

但是在這些蜂巢開始刷炮臺(tái)之前,蜂巢的上方其實(shí)是有一個(gè)敵機(jī)的——只不過它實(shí)在太脆,在絕大多數(shù)正常流程下,玩家往往還沒有注意到它的存在就已經(jīng)把它干掉了。而正是這個(gè)謎之?dāng)硻C(jī),制造了《怒首領(lǐng)蜂》二十幾年來最大的分?jǐn)?shù)謎題。

和PC上更多偏向腳本定義和控制不同,街機(jī)游戲的敵機(jī)行動(dòng),數(shù)據(jù)和游戲系統(tǒng)都是硬編碼在它的ROM里的(就是碼農(nóng)們常說的寫死在代碼里),游戲邏輯要使用的內(nèi)存塊地址也是固定的,因?yàn)閮?nèi)存容量有限,所以為了節(jié)省使用,一個(gè)內(nèi)存塊往往會(huì)被一個(gè)計(jì)算函數(shù)在流程中反復(fù)使用。

?也許是CAVE的程序員在這個(gè)全6關(guān)僅于此處登場(chǎng)的敵機(jī)身上粗心了,這個(gè)奇怪的敵機(jī)并沒有寫死自己的基本分,它是個(gè)空值——一般情況下應(yīng)該不會(huì)觸發(fā)它參與分?jǐn)?shù)計(jì)算,然而……


雙重觸發(fā)

在《怒首領(lǐng)蜂》里,有兩種給GP增加10分的渠道,一種是6面出現(xiàn)的導(dǎo)彈車所發(fā)射的導(dǎo)彈,每發(fā)10分;另一種,則是持續(xù)的激光攻擊,每50幀加10分(和1hit。Boss戰(zhàn)的計(jì)算方式不同)。

如果在激光持續(xù)接觸,獲得10分加分的同時(shí)擊破這個(gè)謎之?dāng)硻C(jī),原本正常工作的分?jǐn)?shù)系統(tǒng)就出現(xiàn)了它意料之外的情況:

?從外在看,連擊幾乎是瞬間增加了2hit;

而實(shí)際的分?jǐn)?shù)計(jì)算函數(shù)里,卻發(fā)生了這樣的計(jì)算——

?可以看到,在激光hit增加的10分之外,謎之?dāng)硻C(jī)直接為GP翻了個(gè)倍!

編者注:

/* 以下僅為個(gè)人分析的推測(cè)

簡(jiǎn)單點(diǎn)說,《怒首領(lǐng)蜂》的GP計(jì)算用兩塊內(nèi)存地址用來儲(chǔ)存分?jǐn)?shù),一塊儲(chǔ)存著當(dāng)前的GP值;一塊輸入側(cè)在需要計(jì)算時(shí)寫入基本分值。

在需要進(jìn)行分?jǐn)?shù)計(jì)算時(shí),系統(tǒng)會(huì)首先判斷屬于哪種加分,如果是激光Hit加分,基本分值這塊直接寫10,如果是擊破的敵機(jī),那就把敵機(jī)對(duì)應(yīng)的基本分作為參數(shù)傳進(jìn)去;

接下來對(duì)這塊內(nèi)存進(jìn)行加法操作,把當(dāng)前的GP值加上去,得出新的GP值;

最后把這個(gè)內(nèi)存塊的數(shù)據(jù)再寫回,覆蓋掉當(dāng)前GP值里的數(shù)據(jù)。

相信只要是寫過點(diǎn)代碼的人就能依靠強(qiáng)迫癥簡(jiǎn)單找出我上面說的流程里少了啥,沒錯(cuò),內(nèi)存歸零,ZeroMemory。

當(dāng)然,要相信CAVE的程序員絕對(duì)不會(huì)犯這種低級(jí)錯(cuò)誤,他們當(dāng)然會(huì)在算分函數(shù)里加上一次針對(duì)基本分內(nèi)存清零的操作。但是,假如在極短的時(shí)間里,算分函數(shù)產(chǎn)生了兩次調(diào)用,那么基本分內(nèi)存塊就沒有被清零,還留著上一次計(jì)算的GP值數(shù)據(jù)的風(fēng)險(xiǎn)。

這個(gè)時(shí)候再來個(gè)沒有寫基本分的敵機(jī),就完了蛋——由于傳進(jìn)來的基本分是空值,導(dǎo)致基本分內(nèi)存沒有被正確覆寫(至于這個(gè)過程到底使用什么運(yùn)算什么的,我不是學(xué)這個(gè)專業(yè)的,自學(xué)的東西也都忘光了,大家自行腦補(bǔ)吧),計(jì)算的結(jié)果就變成了:

當(dāng)前GP值 + 基本分內(nèi)存里儲(chǔ)存的當(dāng)前GP值 = 當(dāng)前GP值 x 2……

推測(cè)結(jié)束 */


精確計(jì)算(SOF-WTN原推翻譯)

海外社區(qū)公開了怒首領(lǐng)蜂bug相關(guān)的情報(bào),借此機(jī)會(huì)我也將我們?nèi)耍╓TN.NAL.TAC)保有的情報(bào)一并公開出來。

和海外記載的東西基本一致。

Bug發(fā)生的場(chǎng)所和條件

場(chǎng)所:6面復(fù)活炮臺(tái)上的蓋子

條件:拿到激光hit的同一幀打爆蓋子(2hit增加)※沒有做嚴(yán)格驗(yàn)證

Bug成功時(shí)發(fā)生的現(xiàn)象

連擊基礎(chǔ)分變成兩倍(連擊分替換了蓋子的基本分)

GPS計(jì)算例

打到蓋子上時(shí)的連擊基礎(chǔ)分 拿到激光hit時(shí)的基礎(chǔ)分 打爆蓋子時(shí)的基礎(chǔ)分

【通常時(shí)】20000-20010-20020

【bug時(shí)】20000-20010-40020?

根據(jù)這些內(nèi)容,假定bug時(shí)的基礎(chǔ)分/連擊數(shù)是21500分/120hit,6面結(jié)束一共850連,那么就可以增加21500x(850-120)=1569.5萬分。進(jìn)一步地,由于這樣的地方有4個(gè),分?jǐn)?shù)系統(tǒng)的平衡性遭到了致命的破壞。

Bug成功的情況和獲得分?jǐn)?shù)的關(guān)系(見下表)

①成功一回時(shí)

第1個(gè) 約1500萬

第2-4個(gè) 約2500萬

②成功兩回時(shí)

第1/2個(gè) 約5000萬(1/3和1/4的情況基本相同)

第2/3個(gè) 約8000萬(2/4的情況基本相同)

③成功三回時(shí)

第1-3個(gè) 約1.2億

第1、3、4個(gè) 約1.6億

第2-4個(gè) 約1.8億

④成功四回時(shí)

約2.6億

算分法見下圖,請(qǐng)點(diǎn)大圖查看

這只是一周增加的分?jǐn)?shù),二周也是一樣。也就是說,在bug使用到極致的情況下,默認(rèn)設(shè)置可以輕松地爆分。

由于成功條件極其嚴(yán)苛,實(shí)機(jī)&默認(rèn)設(shè)置下嘗試爆分我個(gè)人覺得不太現(xiàn)實(shí)。話雖如此,“有夢(mèng)想誰都了不起”這么想的人借此次情報(bào)公開的機(jī)會(huì)以高分為目標(biāo)怎么樣呢?


10億之光?

由于這個(gè)雙重觸發(fā)的窗口非常短,所以要在緊湊的流程里完美復(fù)現(xiàn)其實(shí)是有一定難度的,更何況還要把連擊給保住,因?yàn)橐坏┻B擊斷掉,GP就被清空了。

不過,理論上來說,四個(gè)蜂巢就等于四次GP翻倍,可不要小看了。根據(jù)復(fù)現(xiàn)該bug的玩家Blackisto的推算,4次GP翻倍可以帶來超過2億6的額外加分,3次GP翻倍也有1.2億左右——如果以SOF-WTN在2015年半年里的個(gè)人成績(jī)成長(zhǎng)作為參照,從2015年3月的7.54億到8月的8.62億,將近1.1億的分?jǐn)?shù)差可以推斷他應(yīng)該在全流程里觸發(fā)了3次雙倍GP bug。

然而只是理論的發(fā)現(xiàn)并不代表接下來的發(fā)展就會(huì)順風(fēng)順?biāo)?,先不說本身的執(zhí)行窗口短,三架自機(jī)的激光傷害不同,切換時(shí)間不同,都會(huì)導(dǎo)致激光接觸時(shí)間和bug敵機(jī)的版頂無敵時(shí)間重合難以控制,也是一個(gè)需要大量練習(xí)來掌握和鞏固的技巧。

相對(duì)于現(xiàn)在越來越少的高分STG玩家,可能TAS人群反而會(huì)更對(duì)這個(gè)bug感興趣。個(gè)人覺得,也許這也是日本玩家們第一時(shí)間不選擇面向外界人群公開該bug的原因……道不同不相為謀,以他們的想法,還是認(rèn)為讓這個(gè)技巧能幫助到熱愛《怒首領(lǐng)蜂》,而且正在苦于無法進(jìn)一步提高自己成績(jī)的玩家,就足夠了。其他人知道了,也頂多是多了個(gè)茶余飯后的談資而已,并無太大意義。


結(jié)語

?91:我該說的上面都說完了,我沒有按照原文的結(jié)構(gòu)完全照搬,覺得那樣實(shí)在太累了,而且在這個(gè)短視頻橫行的后4G時(shí)代,字太多其實(shí)大家也不愛看……總之,還是要感謝發(fā)現(xiàn)這個(gè)bug的機(jī)理并把它公諸于世的西方玩家們,讓我們這些有些興趣的吃瓜群眾也能理解它到底是如何產(chǎn)生的。當(dāng)然,如果國(guó)內(nèi)真的有人以此作為自己解鎖10億分大門的鑰匙,那我們?cè)俑吲d也不為過。

參考來源:

?Electric Undergound - http://electricunderground.io/the-secret-dodonpachi-scoring-glitch-revealed/

推- @SOF-WTN

?感謝Blackisto,WTN的解析和分享


【翻譯】解密《怒首領(lǐng)蜂》連擊分翻倍bug的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
乌拉特中旗| 拉萨市| 获嘉县| 永济市| 延安市| 朝阳市| 阿拉善盟| 泗水县| 高雄县| 中牟县| 县级市| 尼木县| 黄石市| 阿巴嘎旗| 武安市| 黄梅县| 游戏| 惠东县| 汝城县| 通山县| 通渭县| 大悟县| 商丘市| 应城市| 历史| 色达县| 富宁县| 鄂伦春自治旗| 兴义市| 陈巴尔虎旗| 隆林| 松江区| 习水县| 石棉县| 连江县| 黎川县| 瑞丽市| 扎鲁特旗| 蒲江县| 三门峡市| 师宗县|