同人玩家開發全新紅白機遊戲Micro Mages,挑戰將遊戲容量壓縮至40KB

ADVERTISEMENT

刪去重複圖像省空間

與筆者在先前文章中介紹《超級馬力兄弟》的情況一樣,《Micro Mages》也利用了許多更改顏色、刪去重複圖像、鏡射的方式節省空間。

比如某頭目人物的不同表情、姿態總共有15種不同的圖案,不經處理就儲存這些圖案的話容量就會超過限制,於是作者就將人物的所有圖案細分成許多區塊,如此一來計就能將重複的圖像刪除,詳細請參考下列圖文說明。

舉例來說,這個頭目總共有15種不同的圖案。

如果將15種圖像直接存起來的話,空間根本不夠使用。

圖像被拆成3大塊後先處理頂部的4組圖像,最左邊這塊活動角色都相同所以只需保留1組。

其次依序處理其他可以省略的活動角色。

最左邊與最右邊的活動角色為對稱圖案,所以也可以省略。

中間這大組圖像用一樣的概念省略重複的部分。

底部大組圖還能透過對稱圖案進一步省略更多資料。

處理過後可以大幅降低圖像容量。

背景動用乾坤大挪移

至於遊戲的場景則由背景圖像資料拼合而成,如果直接使用8 x 8圖像拼滿整個畫面的話,占用的容量將高達960B,但若改以32 x 32的圖像則只需60B,所以作者便將4組8 x 8的背景圖像拼合成巨區塊,再用4組巨區塊拼出的巨巨區塊,最後用這些巨巨區塊拼出遊戲場景。

然而作者覺得60B的資料仍然太占空間,於是便將場景從中一刀劃開,把右半部刪掉,並將左半部鏡射過去,如此一來每個畫面至需30B空間。但這樣又會引發另一個問題,就是遊戲會因為場景單調而變得乏味。

於是作者將腦筋動到巨巨區塊的閒置空間上,每個的巨巨區塊容量為1Byte,但是其中只有7個Bit用於儲存,開頭的1個Bit是閒置的。而由8個巨巨區塊組成的橫行中有4個是鏡射產生,因此共有4個閒置Bit可以使用,作者利用這4個Bit來記錄巨巨區塊橫移資訊。

最後神奇的事發生了,當程式執行時,會先將左半部的場景繪製出來,然後鏡射成對稱的畫面,並搭配橫移資訊,將巨巨區塊的排列左右移動一下,就會變成完全不一樣的情況了。

如果用8 x 8、16 x 16、32 x 32的圖像拼湊遊戲場景的話,分別占用960B~60 B。

遊戲的場景部分則是透過組合方式,把4組8 x 8的點陣圖組合成16 x 16的巨區塊,並再次組合出32 x 32的巨巨區塊。

然而這樣下來,單一畫面中的場景還是占用60B,仍然太大。

用鏡射方式處理場景,會讓遊戲變得索然無味,所以還需要動些手腳,讓畫面從左半變成右半的樣子。

巨巨區塊的容量為1Byte,但實際使用7個Bit,開頭的1個Bit是閒置的。

鏡射後的場景中每橫行有4組閒置Bit,可以拿這些Bit寫入巨巨區塊橫移資訊。

把巨巨區塊橫移之後,遊戲場景就不再一成不變。

此外困難模式只要小改一下場景並套用不同色盤,只需消耗一點容量就能創造出更多變化。

從這些開發的技巧可以看出,《Micro Mages》真的是款很用心製作的遊戲,作者也提到表示希望大家能享受這款遊戲,就像他們很享受開發過程一樣,有興趣的讀者可以到募資網站,訂購數位或實體版的遊戲。

國寶大師 李文恩
作者

電腦王特約作者,專門負責硬派內容,從處理器、主機板到開發板、零組件,尖端科技都一手包辦,最近的研究計畫則包括Windows 98復活與AI圖像生成。

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則