全新的繁體中文 WordPress 網站

電玩

為了壓縮遊戲容量,人們都祭出過哪些奇招?

《荒野大鏢客 救贖2》無疑是一部蘊含魔力的作品,在遊戲正式發售之前,與它相關的花邊消息就屢次讓人們發出感嘆。Rockstar 壓榨員工、受到眾媒申討的「加班醜聞」自不必說;因遊戲容量過大,改為「雙碟裝」的實體銷售策略,也讓人回憶起6~7張光碟打包販賣的 CD 時代。

在電子遊戲成為商業娛樂的40年間,傳播媒介一直是一道難以掙脫的枷鎖。從早期以 KB 為計量單位的卡帶算起,到刻錄 CD 的盛行,再到雙層 DVD 的誕生與數字平台的發展,時至如今,就連能夠空腹吃下 80GB 的藍光光碟,在承載持續膨脹的內容時也略顯乏力。

傳播媒介的選擇,以及它們的大小和數量,幾乎直接影響到遊戲的製作成本和宣傳效果。久經沙場的開發者們自然不會熟視無睹,每個世代他們都能為遊戲找到一些古怪的「瘦身方法」,而一場關於容量的戰爭,其實在很久之前就已經打響了。

位元組之間的博弈

你可能難以想像,那些有著完整動作和音樂,甚至包含劇情和文字敘述的 FC 作品,在數十 KB 的卡帶中也能完好運行。《超級馬里奧》初代的容量僅為 40KB,《勇者斗惡龍》初代也不過只有 64KB。直到1991年,FC 上才誕生了第一款容量達到 1MB 的遊戲。

耗容如此小的原因,與當初拮据的開發環境脫不開干係。

FC 卡帶的存儲部分,大致由兩塊主要晶片組成:一塊是 PRG,負責存儲程序;一塊是 CHR,用來容納遊戲中所有的圖形素材。而在一張標準的 40KB 卡帶中,開發者只能用 8KB 來處理所有活動塊和背景,放到現在簡直就是天方夜譚。

為了壓縮遊戲容量,人們都祭出過哪些奇招?

你大概已經理解那個年代程式設計師們錙銖必究的原因,幸運的是,從 FC 遊戲的低解析度和硬體的尋址邏輯中,他們還是找到了一種較為合理的處理方式。

FC 的解析度僅僅只有256×224,但即便現找一張同樣大小的 JPG 圖,它的容量也能達到 20KB。因此,FC 的畫面並不能當成一整張圖來看待,以大家最為熟悉的《超級馬里奧》為例,整個螢幕實際上由8×8像素的896個方塊組成,而每一個方塊所顯示的內容,其實都是從 CHR(圖形庫)里調用過來的。

為了壓縮遊戲容量,人們都祭出過哪些奇招?

這使得無論畫面如何變動,也不會產生更多容量需求,用來用去都是 CHR 裡面的 8KB 內容。由於 CHR 只能存得下256個方塊,玩家們最終看到的動作、敵人、場景,無非都是素材的重複堆疊和利用。比如《超級馬里奧》的代表角色「板栗仔」,它走路的「特效」就源於同一張圖片不斷的水平翻轉。

為了壓縮遊戲容量,人們都祭出過哪些奇招?

8bit 音樂也有著同樣的韻味,通過 MIDI(音樂數字接口),開發者僅在卡帶中記錄樂譜的音調、波形、音量等數據,再用這份數據告知主機應該如何演奏,相比錄製音樂要小上4~5個數量級。這也是你在 FC 遊戲中聽不到鼓聲、琵琶聲、人聲的原因,它們都被替換成了單一的曲調和脈衝信號。

這些方法不僅影響了第三、第四世代主機,還影響了街機遊戲的開發思路。以 CPS1 基板上的《圓桌騎士》為例,它的顏色就採取了「索引」的處理方式,主要從調色板中調取顏色,自己僅記錄索引值,每個像素只需用到半個位元組。作為對比,在 RGBA 的色彩格式下,1個像素就要占到4個位元組。

為了壓縮遊戲容量,人們都祭出過哪些奇招?

「通用方法」幫助開發者們度過了諸多難關,但為了往卡帶中塞入更多內容,有時還得去想一些旁門左道的方法。DQ 之堀井雄二就是使用「旁門左道」的好手,《勇者斗惡龍》中那些奇怪的咒術和怪物命名,與節省遊戲容量有著直接的關係。

FC 上之所以沒有太多 RPG 遊戲,其中一個原因就是該類作品的文本容量過大。堀井雄二在項目設計階段想到了這個問題,他先是針對咒術和怪物自由命名,然後將所有用到的假名進行統計,最終選出了最為常用的18個片假和2個平假字符。如果之前擬定好的咒術和怪物名稱不包含在內,則對其重新命名。

儘管堀井在接受採訪時聲稱這些名字都是胡鄒,但它們背後卻有一套不成文的邏輯,從中也能看出老一輩製作人的才華。

以遊戲中的雷擊系咒語為例,從弱到強分別是萊汀(ライデイン)、基加汀(ギガデイン)和米那汀(ミナデイン)。即使你沒有學過日文,應該也能輕易看出萊汀(ライデイン)取自英文「Lightning」,基加汀的「基加」(ギガ)等同於 Giga,形容數量很大。而米那汀的「米那」(ミナ)則代表「大家一起」,都是形容程度的詞。

勇者斗惡龍的咒語在表意上有些發散,比如火球術「美拉」(メラ),參考自日文中的擬聲詞 めらめら(可以讀成美拉美拉),用來表現火焰熊熊燃燒的狀態。而以「加詞」來表現程度的設計思路,可能參考自當年在日本很火的 DND 遊戲《巫術》。靠著20個字符和奇思妙想,堀井的咒語體系現在看起來也頗具韻味。

為了壓縮遊戲容量,人們都祭出過哪些奇招?

為了向前輩們致敬,如今仍有人甘願去面對嚴苛的開發環境。Morphcat Games 就打算將旗下作品《Micro Mages》塞到 40KB 的卡帶中,在此基礎上它們還決定做出26個小型關卡。

在 FC 發售了十年之後,開發者們才跳出了最初的苦難。受益於磁碟機和 CD-ROM 的應用,業內陸續出現了使用整張圖片、整段音樂的作品,開發語言也逐漸從彙編轉化為 C,似乎一切都在向著更好的方向發展。

下一頁:壓縮奇才與內容解放

卡帶與光碟的兩面

進入第五世代後,人們最為耳熟能詳的故事可能就是索尼和 PS1 的崛起了,這與傳播媒介同樣有著千絲萬縷的聯繫。CD-ROM 可謂是 PS1 的一大殺器,憑藉著這套系統,索尼開始大批量的使用 CD 這種容量大、成本低、產出快的存儲介質。700MB 的可用空間,也使得遊戲開發商可以輕易在其中加入人聲、動畫和影片。

執迷於卡帶的 N64 很快就落於下風,受到技術限制,當時卡帶的容量大多為 8~16MB,最大的 N64 遊戲也不過 64MB。但即便如此,遊戲總還是得做啊!於是,任天堂那一套近乎科幻的壓縮技術再一次亮相人前。

作為啟發遊戲操作的標杆作品,《超級馬里奧64》控制容量的手段同樣值得參考。豐富的遊戲元素,多達十幾個世界的大地圖,硬是被老任塞到了 8MB 的卡帶中。如果將《俠盜獵車手5》拿過來對比,兩者的體積差了5000多倍。

《超級馬里奧64》最重要的壓縮技巧在於「少用貼圖」。貼圖是一種強化建模材質的處理方式,將物件區分成金屬、木頭通常都是它的功勞。作為參考,《殺戮空間2》的硬碟需求大致為 20GB,其中環境網格和貼圖就占到了 17.4GB,可以說是絕對的大頭。

不難發現,《超級馬里奧64》中的草地、沙地、樹木,甚至主角本身,都是直接在 3D 建模上抹一層色完事。偶爾見到的石堆和城堡,大概是為數不多用了貼圖的地方,同時期的 PS1 遊戲可是高出了幾個檔次。

為了壓縮遊戲容量,人們都祭出過哪些奇招?

當時也有從 PS1 移植到 N64 的作品,比如《生化危機2》。為了把耗容兩張 CD 的遊戲縮小成 64MB,負責移植工作的 Angel Studios(RAGE 引擎開發小組)採取了暴力的有損壓縮,主要表現在視頻和動畫上。PS1 採用了 MJPEG 視頻格式,這種格式會基於 JPEG 圖片生成運動圖像,可以單獨對某一幀進行壓縮,所以壓縮倍數能夠達到80倍。

除此視頻之外,背景、貼圖在高壓之後也有很明顯的退化。層次更少的顏色導致畫面變淺,背景的精細程度明顯降低,動態模糊時的顆粒感也更為嚴重。但即使如此,Angel Studios 的技術力卻不容小覷,它們在如此嚴苛的條件下,仍然較為完整的保證了《生化危機2》的體驗。

內容未完結,請點擊「第2頁」繼續瀏覽。