![]()
完成一場(chǎng)屬于玩家的“特別行動(dòng)”。
過去兩周,《皇牌空戰(zhàn)》系列的粉絲迎來了兩件值得慶祝的事。
一件理所當(dāng)然:系列最新作《皇牌空戰(zhàn)8:希孚之翼》終于定檔10月2日發(fā)售;另一件則有些意外:一款八年前就停服的《皇牌空戰(zhàn)》PS3網(wǎng)游,被人給復(fù)活了。
![]()
2014年上線的《皇牌空戰(zhàn) 無(wú)限》是系列中的網(wǎng)游獨(dú)苗。作為一款免費(fèi)網(wǎng)游,它保留了《皇牌空戰(zhàn)》系列一貫的街機(jī)空戰(zhàn)玩法。但游戲的運(yùn)營(yíng)一直被當(dāng)年的玩家所詬病:游戲采取了“體力氪金”的商業(yè)化途徑,每天只免費(fèi)提供可供出擊三次的“燃油”。為了進(jìn)一步刺激消費(fèi),在每次出擊后,玩家還有機(jī)會(huì)解鎖收益更高的“緊急任務(wù)”,倘若玩家此時(shí)已將出擊數(shù)用盡,就只能氪金買油或是看著機(jī)會(huì)白白浪費(fèi)。
![]()
這套做法無(wú)疑不得人心,游戲的媒體和玩家評(píng)分都沒到60的及格線
最終游戲在2018年停服,玩家和運(yùn)營(yíng)方不再有直接的利益交集,可以更冷靜地審視游戲的玩法設(shè)計(jì),《皇牌空戰(zhàn) 無(wú)限》那些讓人惦記的點(diǎn)也就逐漸浮現(xiàn)了上來。
《皇牌空戰(zhàn)》系列的核心賣點(diǎn)從來都是單人模式的劇情體驗(yàn),長(zhǎng)年以來,多人玩法方面不是開發(fā)的重心,這就讓身為網(wǎng)游的《皇牌空戰(zhàn) 無(wú)限》十分特別。尤其是該作中成熟的多人合作玩法循環(huán),更是系列一向缺失的內(nèi)容。
玩家可以和朋友組隊(duì),以最多8人的隊(duì)伍挑戰(zhàn)各種關(guān)卡,在通關(guān)后還可以用獲取的資金和道具來購(gòu)入、強(qiáng)化飛機(jī)和武器。
在4年的運(yùn)營(yíng)中,該作不斷擴(kuò)充收錄的飛機(jī),在數(shù)量和廣度上都達(dá)到了系列之最。除去歷代經(jīng)典Boss機(jī),像是戰(zhàn)略轟炸機(jī)、二戰(zhàn)螺旋槳飛機(jī)等常規(guī)正作中少見的機(jī)種都可以在該作中駕駛。
![]()
未來科幻機(jī)和二戰(zhàn)電風(fēng)扇組隊(duì),或許比“安東星分房”還夸張
![]()
該作解鎖新飛機(jī)使用的科技樹系統(tǒng),也被系列后續(xù)正作吸收,成為了《皇牌空戰(zhàn)》系列正作的標(biāo)桿設(shè)計(jì)
1
所以很容易理解游戲真停服后,有玩家對(duì)其念念不忘,也有人曾嘗試將它復(fù)活。
這事兒通常不算太難,相關(guān)環(huán)境和工具越來越成熟。比如PS3模擬器RPCS3的制作團(tuán)隊(duì)就搭建了專為自家模擬器設(shè)計(jì)的PSN私服——RPCN,這讓很多依賴PSN服務(wù)的網(wǎng)游有了復(fù)活可能。同時(shí),一只名為PSORG的非盈利技術(shù)團(tuán)隊(duì),則在近幾年致力于解析PS3上老游戲通訊和加密協(xié)議,并配合RPCN將這些游戲的線上模式復(fù)活。
![]()
像是《PS Home》《GT賽車4》《捉鬼敢死隊(duì)》等游戲的多人玩法都重見天日
但《皇牌空戰(zhàn) 無(wú)限》的情況有些特殊,游戲并未使用PS3網(wǎng)游常見的Medius協(xié)議,而是用了萬(wàn)代自家的Wind API。這個(gè)協(xié)議在技術(shù)上有諸多不同,PSORG小組也不是很熟悉,一時(shí)間無(wú)從下手。
此外,游戲大量使用了索尼的“TSS”(Title Small Storage)技術(shù)。服務(wù)器通過下發(fā)TSS文件提供網(wǎng)絡(luò)配置、動(dòng)態(tài)變量等信息,可以用來配置諸如“油料翻倍”這樣的限時(shí)活動(dòng)。在很多關(guān)鍵節(jié)點(diǎn),游戲都會(huì)向服務(wù)器請(qǐng)求下發(fā)TSS文件。而關(guān)服后開發(fā)者更新了TSS文件,只給客戶端返回一個(gè)停運(yùn)提示。
![]()
大多數(shù)嘗試者都被這個(gè)界面擋住了
由于無(wú)法訪問服務(wù)器,游戲就會(huì)自動(dòng)返回標(biāo)題界面,即使進(jìn)行網(wǎng)絡(luò)抓包,也只能拿到一段加密數(shù)據(jù)。這無(wú)疑讓游戲復(fù)活的難度大幅提升,PSORG小組選擇先不死磕《皇牌空戰(zhàn) 無(wú)限》,轉(zhuǎn)向其他項(xiàng)目。
最終的轉(zhuǎn)機(jī),來自于一名普通玩家。
2
Optimus1200既不是RPCS3的成員,也與PSORG團(tuán)隊(duì)無(wú)關(guān),只是一位曾經(jīng)玩過《皇牌空戰(zhàn) 無(wú)限》的玩家。
他對(duì)這款游戲的態(tài)度有些復(fù)雜。作為自己玩過的第一部《皇牌空戰(zhàn)》,游戲里那種要靠氪體力才能持續(xù)出擊的設(shè)定,讓他當(dāng)年難以充分體驗(yàn)游戲。可即便如此,與朋友聯(lián)手迎戰(zhàn)巨型空中航母的經(jīng)歷,即使隔了十多年,依舊是難以忘懷的美好片段。
后來,PS4發(fā)售后,Optimus1200對(duì)《皇牌空戰(zhàn) 無(wú)限》的熱情逐漸冷卻,轉(zhuǎn)而投入了《輻射4》《蝙蝠俠 阿卡姆騎士》等其他作品的世界里。
直到近幾個(gè)月,Optimus1200開始進(jìn)行《皇牌空戰(zhàn)》社區(qū)中十分流行的“全系列回顧”挑戰(zhàn)。而當(dāng)他玩到《皇牌空戰(zhàn)5》時(shí),那首曾在《皇牌空戰(zhàn) 無(wú)限》中無(wú)數(shù)次播放的標(biāo)題音樂再次在耳邊響起。突如其來的感傷和懷念讓他萌生了“把PS3翻出來做點(diǎn)什么”的念頭。
![]()
如今的Optimus1200已經(jīng)和《皇牌空戰(zhàn) 無(wú)限》的商業(yè)化和解,在他來看,這款網(wǎng)游的“回血”客觀上支撐了Project Ace做出了AC7和AC8
雖然是首次嘗試逆向開發(fā)和匯編,Optimus1200對(duì)自己的能力和此次的技術(shù)難度卻表現(xiàn)得十分謙虛。他將《皇牌空戰(zhàn) 無(wú)限》的復(fù)活定義為“簡(jiǎn)單,但不輕松”。并直言自己的成功是建立在大量前人的鋪墊上的:比如名叫Vega的網(wǎng)友制作了詳盡的匯編語(yǔ)言教程,而眾多社區(qū)開發(fā)者則早已備好他此行所需的各類工具。
![]()
Vega的匯編教程最初用于模擬Wii上的游戲,因此被托管在《馬力歐賽車Wii》的一個(gè)社區(qū)網(wǎng)站上
最開始,Optimus1200嘗試用模擬器直接鏈接官方服務(wù)器,和其他先行者一樣,他很快也被擋在了標(biāo)題界面。
將游戲的二進(jìn)制文件反匯編成相對(duì)可讀的匯編代碼后,Optimus1200開始逐行審查,很快認(rèn)出了“HTTPS”這個(gè)字段,這無(wú)疑是個(gè)驚喜。只要將該字段改成“HTTP”,游戲發(fā)出的網(wǎng)絡(luò)請(qǐng)求就會(huì)全部變成明文,這意味著大家第一次有機(jī)會(huì)看懂客戶端與服務(wù)器之間“說了什么”。
接下來,Optimus1200開始分析抓取的日志。他選擇將日志中出現(xiàn)的網(wǎng)絡(luò)域名作為錨點(diǎn):這些字段足夠特殊,在匯編代碼中也方便定位。只要對(duì)比日志中各個(gè)域名的出現(xiàn)時(shí)間,他就可以厘清相關(guān)代碼的先后執(zhí)行順序,從而還原出游戲網(wǎng)絡(luò)交互背后的大致邏輯。
利用收集到的信息和對(duì)程序的分析,Optimus1200嘗試搭建了一個(gè)簡(jiǎn)單的服務(wù)器偽裝成官服返回指令,但依舊被一個(gè)錯(cuò)誤指令擋住了。然而這次失敗給了他新的靈感,通過反查錯(cuò)誤代碼,他找到了這段擋住大伙的“元兇”。
![]()
綠色部分是進(jìn)入游戲的主要代碼,途中會(huì)轉(zhuǎn)入紅色部分進(jìn)行網(wǎng)絡(luò)校驗(yàn),這部分也是大家一直卡住的關(guān)鍵
最終,靠著現(xiàn)場(chǎng)手搓一個(gè)自制補(bǔ)丁跳過校驗(yàn)流程,Optimus1200讓游戲繞開了那堵無(wú)形的墻,再度進(jìn)入了久別8年的主菜單。
3
Optimus1200將自己的成果發(fā)到網(wǎng)上后,包括PSORG小組在內(nèi)的眾多愛好者都被鼓舞了起來。大家聚在一起,利用Optimus1200創(chuàng)造出來的突破口尋找下一步的可能性。
很快,這個(gè)項(xiàng)目有了一個(gè)響亮的名字“永恒解放行動(dòng)”,簡(jiǎn)稱“OEL”(Operation Eternal Liberation),取自《皇牌空戰(zhàn) 無(wú)限》中出現(xiàn)的同名作戰(zhàn)。
![]()
后來架設(shè)了《皇牌空戰(zhàn) 無(wú)限》“國(guó)服”的中國(guó)網(wǎng)友“Windofxy-風(fēng)”,也是這時(shí)候參與到了OEL中。Windofxy在2017年通過手機(jī)上的PSP模擬器接觸到《皇牌空戰(zhàn) X》和《X2》,并被劇情和玩法吸引,之后陸續(xù)補(bǔ)完了系列多部作品。
和國(guó)內(nèi)大多數(shù)《皇牌空戰(zhàn)》玩家相似,他首次了解到《皇牌空戰(zhàn) 無(wú)限》時(shí),游戲早已停服。對(duì)于這一點(diǎn),Windofxy最初只是感到可惜,并未想過游戲能有復(fù)活的一天。
因此,在外網(wǎng)上看到OEL項(xiàng)目時(shí),他第一時(shí)間加入了團(tuán)隊(duì)的Discord頻道,看看能幫大家做點(diǎn)什么。
![]()
再次感慨一句我社社友臥虎藏龍
進(jìn)入“復(fù)活賽”第一階段的《皇牌空戰(zhàn) 無(wú)限》還只能當(dāng)個(gè)“技術(shù)demo”:在Optimus1200進(jìn)一步完善偽裝服務(wù)器后,大伙可以進(jìn)入游戲體驗(yàn)單人劇情。但這只是個(gè)離線版網(wǎng)游,無(wú)法保存任何玩家進(jìn)度。由于缺少關(guān)鍵的TSS文件,大伙也不能正常游玩多人模式:一旦游戲發(fā)出TSS文件請(qǐng)求,偽裝服務(wù)器就露餡了,游戲也會(huì)報(bào)錯(cuò)退出。
Windofxy之前曾有過給街機(jī)做魔改和漢化的經(jīng)驗(yàn),如今雖已退圈,但技術(shù)依然沒落下。他很快成為OEL團(tuán)隊(duì)中“CE組”的一員,通過修改內(nèi)存代碼,讓團(tuán)隊(duì)成員得以調(diào)取并游玩游戲內(nèi)眾多在線關(guān)卡,獲得更多數(shù)據(jù)。
![]()
通過卡bug或者修改代碼進(jìn)入多人關(guān)卡,這種技巧在不少老游戲上都能見到
不過他也提到,雖然團(tuán)隊(duì)內(nèi)部有“CE組”“逆向組”這樣的說法,但實(shí)際上并沒有形成一套規(guī)范化的管理結(jié)構(gòu)。每個(gè)人具體都干了什么,他也只知道一小部分:
如Killer0byte負(fù)責(zé)后續(xù)服務(wù)器和OEL啟動(dòng)器的開發(fā);PRORG成員Jumpsuit搞定了游戲存檔;曾做過《皇牌空戰(zhàn)6》模擬移植的Volcano Water參與了服務(wù)器開發(fā)。
這種景象,不禁讓人想起《皇牌空戰(zhàn)7》中的最終戰(zhàn):不同陣營(yíng)、互不相識(shí)的飛行員自發(fā)集結(jié)、迎戰(zhàn)軍械巨鳥。而現(xiàn)實(shí)中OEL團(tuán)隊(duì)的故事,正是這一幕的翻版,《皇牌空戰(zhàn)》系列的受眾,或許從骨子里就帶著點(diǎn)浪漫的中二勁。
![]()
劇情中的“軍械巨鳥”最初靠無(wú)敵的護(hù)盾擋下了攻擊,但還是沒能敵過主角一行的努力奮戰(zhàn)
靠著眾人拾柴,團(tuán)隊(duì)的進(jìn)展飛速。大伙很快發(fā)現(xiàn),服務(wù)器與游戲之間的通信協(xié)議有時(shí)簡(jiǎn)單得出乎意料。在很多場(chǎng)合,游戲發(fā)出的請(qǐng)求,服務(wù)器只需回復(fù)一個(gè)簡(jiǎn)單的“OK”就能跑通。
當(dāng)針對(duì)《皇牌空戰(zhàn) 無(wú)限》制作好了定制版的RPCS3模擬器和RPCN服務(wù)器后,就差關(guān)鍵的TSS文件了。這一步卻意外地順利:有一位成員直接獲取到了共計(jì)15個(gè)TSS文件,補(bǔ)上了最后一塊拼圖。
由于團(tuán)隊(duì)結(jié)構(gòu)松散,無(wú)論是Optimus1200還是Windofxy,都不清楚這個(gè)過程的具體來龍去脈。他們只知道有人從索尼的某個(gè)CDN服務(wù)器上找到了這些文件,并發(fā)給了項(xiàng)目組。除去 TSS 文件,那個(gè)服務(wù)器上還保存著游戲美版本體及其后續(xù)全部更新包。
不過,就算沒有這樣的意外之喜,團(tuán)隊(duì)也留了后手。Windofxy提到,他自己的群里就有一位老玩家,至今還保管著當(dāng)年的 PS3 主機(jī),如有必要,他們可以直接從這些實(shí)體收藏中提取所需文件。
在集齊了所有條件后,愛好者們搭建的偽裝服務(wù)器就變成了完整的私服。它通過模擬PSN的各項(xiàng)服務(wù),實(shí)現(xiàn)了玩家數(shù)據(jù)的保存和聯(lián)機(jī)匹配;而15個(gè)TSS文件不僅保障了游戲的基本運(yùn)行,也讓隨現(xiàn)實(shí)時(shí)間變化的周期活動(dòng)得以重現(xiàn)。團(tuán)隊(duì)還破解了原作飽受詬病的燃油機(jī)制,將復(fù)活版改為無(wú)限燃油,讓玩家從此不再受制于曾經(jīng)的商業(yè)模式,可以真正自由地翱翔在這片藍(lán)天之下。
![]()
PSORG團(tuán)隊(duì)甚至參考《皇牌空戰(zhàn)》官方的風(fēng)格,用游戲畫面給這個(gè)免費(fèi)的私服剪了一段宣傳視頻
從RPCN的網(wǎng)站上可以看到,《皇牌空戰(zhàn) 無(wú)限》社區(qū)服的玩家最多時(shí)達(dá)到了124人在線。這個(gè)數(shù)字看上去不多,卻是RPCN歷史上第二高,僅比第一名《鐵拳Tag Tournament 2》的記錄低了一人。網(wǎng)上也時(shí)不時(shí)能看到新玩家上傳視頻,分享自己在這個(gè)復(fù)活項(xiàng)目中收獲的喜悅。
對(duì)于Windofxy等人而言,這還遠(yuǎn)不是終點(diǎn)。他們開始為《皇牌空戰(zhàn) 無(wú)限》的漢化工作籌集人手,打算將這份努力,再往前推進(jìn)一步。
![]()
結(jié)語(yǔ)
從4月中旬啟動(dòng),到5月底“永恒解放行動(dòng)”圓滿成功,這一個(gè)半月的歷程,恰好對(duì)應(yīng)了Optimus1200那句“簡(jiǎn)單,卻并不輕松”。
巧合的是,不久后的索尼發(fā)布會(huì)上,沉寂已久的《皇牌空戰(zhàn) 8》也高調(diào)登場(chǎng),放出了更多宣傳內(nèi)容。
![]()
這次新作更是附帶了一個(gè)名為《皇牌空戰(zhàn) Online》的在線玩法,從詳盡的捏人界面、首次出現(xiàn)的社交大廳和旁白對(duì)于合作玩法的暗示等來看,官方這次在多人模式上的投入堪稱歷代之最。這讓那些《皇牌空戰(zhàn) 無(wú)限》的老玩家,以及那些為了游戲復(fù)活不斷奮戰(zhàn)的人,品出了幾分“隔空呼應(yīng)”。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.