一群執着於將GTA移植到Switch上的黑客

逆向工程GTA。

1

GTA大概是最廣為人知的遊戲系列之一,超過2.5億份的總銷量鮮有其他作品能夠匹敵,系列各作也登陸了幾乎所有能夠登陸的平台——除了Switch。

任天堂Switch自發售以來連續霸占遊戲主機的銷量榜榜首,全球已經售出約7000萬台主機,兼顧便攜的特性讓很多老遊戲在這里找到了第二春。

一群執着於將GTA移植到Switch上的黑客

而偏偏大熱的Switch平台上沒有任何一款GTA遊戲,這成為了不少GTA玩家的怨念。

尤其是GTA三部曲:GTA 3、《GTA:聖安地列斯》和《GTA:罪惡都市》等曾推出過手機移植版,玩家們無法理解,為什麼不把這些遊戲移植到有正經手柄按鍵的主機和掌機上,偏偏要用虛擬按鍵來玩主機遊戲。

一群執着於將GTA移植到Switch上的黑客

作為現代3D版GTA的開山之作,GTA 3這樣的作品也是復古遊戲中的經典,被很多復古愛好者喜愛,不少玩家都期盼能在Switch這樣的便攜平台上。

一群執着於將GTA移植到Switch上的黑客

而對此R星始終沒有表態,但《黑色洛城》卻登陸了Switch,這也側面證明了把GTA移植到Switch不是不能,只是不想。

2019年,澳大利亞的遊戲評級網站上毫無徵兆地出現了對GTA3的重新評級,這樣反常的舉動引起了人們的注意,有一些人認為這也許證明了GTA3重製版的存在。

一群執着於將GTA移植到Switch上的黑客

之後還有傳言說,R星准備重製所有的GTA三部曲,而重製版會登陸Switch。一時間各種傳言、情報、猜測滿天飛,搞得玩家們興奮不已。可傳言過後,一切都沒有發生,迄今為止,R星都並沒有放出任何GTA重製的信號。

不論是重製還是移植,想在Swtich上玩到GTA,好像只能寄望於民間技術組了。

2

這些年來,有不少人曾試圖重製GTA 3,比如2013年有人開啟了OpenRW項目,就曾嘗試將GTA 3移植到開源引擎OpenRW上,但項目進度緩慢,時至今日仍沒能完成。

一群執着於將GTA移植到Switch上的黑客

一群執着於將GTA移植到Switch上的黑客

還有一些人,曾想用Unity或Unreal這樣更現代的引擎去重製GTA3,不時就會蹦出一個概念預告片,但隨着時間的推移,這些項目也都不了了之了。

在眾多想攻克GTA的人中,網名aap的黑客是極少數堅持下來的。

aap從2016年開始試圖用逆向工程技術來獲得GTA3的源代碼。最開始這只是他業余的一種學習和研究,沒有什麼明確的目的。通過逆向工程出來的代碼他成功的還原了遊戲的地圖,還把遊戲中的碰撞與物理系統還原了出來,並將這些代碼導入到原版的遊戲中進行測試。

一群執着於將GTA移植到Switch上的黑客aap在GitHub的頭像

這時aap突然生出了一個新的念頭,用自己破譯出的源代碼一點點的代替原有遊戲中的程序,這樣進行下去,最後他得到的不就是一個完整的開源的GTA了嗎?

開源的GTA,有無限的可能,他可以為遊戲加入最新的技術,高幀數、光線追蹤、VR都不在話下,這樣的願景讓aap調整了自己的方向。

2018年春天,他正式將項目的目標修改為用逆向工程製作出一個完整的開源GTA 3,代號RE3。

一群執着於將GTA移植到Switch上的黑客

aap不知道這個項目什麼時候能真正的完成,但他還是充滿希望,因為即使才剛剛開始,但他的作品已經是市面上所有開源GTA項目中看上去最靠譜的一個了。

不過要編程出完整的遊戲,比單獨實現某個功能困難得多。

GTA3使用RenderWare 引擎製作,因此他首先需要讓RenderWare正常運行起來。他編寫了一個程序能夠重新啟用RenderWare大部分的功能,而且可以支持各種文件格式、各種運行平台。

一群執着於將GTA移植到Switch上的黑客

但問題才是剛剛開始,GTA3使用C++編寫,但逆向工程得到的代碼則是機器語言,為了讓這些代碼能夠再次被利用,他需要將這些機器語言再轉換成C++代碼。

雖然有一些反編譯軟件能夠幫他省下一些功夫,但將這些軟件輸出的代碼整理成可以閱讀的C++代碼依然相當費時費力,而且這個過程中還很容易給遊戲中引入新的bug。

有些地方的代碼讓他完全搞不清楚,每一個缺口都會讓遊戲最終無法正常的運行起來,這一度讓aap的工作陷入僵局。

3

在2018年,aap將項目暫停了一年,這期間他幸運地發現了一個重要突破口。

一般遊戲的開發代碼中都會有調試符號(Debug symbol),包含了變量、函數和源代碼行等信息。

有了調試符號,測試人員可以便捷的對遊戲進行測試和調試,快速找到問題代碼的位置。當然也意味着黑客同樣可以更容易的找到需要的代碼並進行修改。因此不論是PlayStation還是其他廠商的都會要求開發者在正式版的遊戲中將調試符號刪除。

一群執着於將GTA移植到Switch上的黑客

但不知道什麼原因,PS2和安卓版的GTA3中保留了這些調試符號,變量和函數都被標記了名稱,這讓aap可以更容易的將源代碼拆分開來並轉化成C++語言。aap認為如果不是有這些調試符號,自己的項目很可能很早就完蛋了。

一群執着於將GTA移植到Switch上的黑客aap分析代碼時的截圖

2019年,aap再次重新回到這個項目上,發現了調試符號讓項目的開發一下順了起來,時年5月,他已經完成了15000行代碼,並將RE3項目正式發佈到了GitHub上。

一群執着於將GTA移植到Switch上的黑客

很快,人們注意到了RE3的喜人進展,更多的愛好者加入到了aap的隊伍中,此時又恰逢全球疫情爆發,很多人呆在家里無事可做——於是他們都把業余時間都花在了這個項目上,讓開發的速度突飛猛進。

到了2020年4月RE3已經可以獨立運行了,代碼數已經達到18萬行。有了RE 3的基礎,他們又用7個月的時間完成了《罪惡都市》的反向編程。

一群執着於將GTA移植到Switch上的黑客

得到開源的GTA只是第一步,開源的意義在於,接下來他們可以對這個遊戲進行改進,讓遊戲比原版更好。比如他們在遊戲中加入了檢查點,玩家在戰斗中失敗後,不需要再從任務的最開始重來。

更重要的是,他們可以把遊戲移植到那些沒能得到R星青睞的平台上。很快GTA 3和《GTA:罪惡都市》被移植到了任天堂Switch、Wii U和索尼PSV平台。雖然還是會有一些bug,但作為多數人已經相當令人滿意了,比如他們終於在Swtich上玩到了GTA3:

還有其他的組員受到了啟發,順便把《GTA:聖安地列斯》移植到了PSV上,這次不需要反向編程,而是使用了安卓版的遊戲,結果運行得相當穩定。

不少人感嘆,如果當年PSV上能有這些遊戲,沒准結局會不太一樣。

一群執着於將GTA移植到Switch上的黑客

aap的工作並沒有就此停止,如今他們又馬不停蹄地開始了對《GTA:自由城故事》的逆向工程。

4

說到這里很多人可能會奇怪,這麼折騰真不怕R星找上門來嗎?aap自己其實也怕得要死。

Take-Two一向對旗下遊戲的版權保護十分重視,尤其是那些嘗試重製或修改遊戲代碼的人。之前有不少民間的GTA重製項目,都在公佈後不久就被Take-Two叫停了,甚至相關的演示視頻都遭到下架。在GTA 5的PC版最開始推出的一段時間,Take-Two甚至還曾經對Mod進行過封禁。

一群執着於將GTA移植到Switch上的黑客

aap深知自己是在刀尖上舞蹈,此他也提前准備了一些防護措施。比如他聲明了自己在GitHub上傳的代碼僅能用於教育、紀錄和Mod的用途,且明確表示不鼓勵盜版和其他商業用途。同時,他表示要正常運行RE3還需要遊戲的PC原版文件才可以,因此理論上,使用RE3的玩家都需要先購買正版的遊戲本體。

「我們希望能盡可能的保持低調,儘量不被注意到」,aap表示。

然而這與現實有些矛盾,當初RE3成功移植到Switch的消息在玩家之中引發了不小的騷動,不少媒體和自媒體都跟進報導了這個消息,把aap和他的項目推到了聚光燈下。但Take-Two方面對此始終沒有反應,aap和他的團隊就把這看作是R星的一種默許。

一群執着於將GTA移植到Switch上的黑客

之前有其他的團隊用類似的逆向工程方法製作了開源版的《超級馬力歐64》,而這個項目至今仍活在GitHub上。每次看到這個項目,aap的心里就會安穩很多,畢竟連任天堂最強法務部都沒有插手,那麼達摩克利斯之劍應該還輪不到自己頭上。

一群執着於將GTA移植到Switch上的黑客

再說,這些遊戲已經有接近20年的歷史了,原版遊戲對Take-Two來說已經沒有什麼經濟價值了,而aap這些愛好者們也不從中獲利,也許發行商會因此網開一面?

可能正是不斷的用這些想法來安慰自己,aap一直對項目的前景還抱有希望。近期,他還接受了知名媒體Eurogamer的采訪,可就在 2月20日,Eurogamer將報導發佈後的第三天,RE3的GitHub頁面突然遭到封禁。

目前,這次封禁尚未得到任何解釋。

在采訪中,aap表示自己當前的終極目標是逆向工程出《GTA:罪惡都市傳奇》,因為這款遊戲沒有安卓移植版和調試符號,因此是個巨大的挑戰,「目前來看,那將是逆向工程GTA的巔峰。」

一群執着於將GTA移植到Switch上的黑客只是不知道會不會有那天了

來源:遊研社