為什麼GBA遊戲,像口袋妖怪的前幾代,占的空間那麼小?

如題,就我感覺兩首洗腦的BGM也不止那麼小啊……更別提那麼多口袋妖怪和地圖了。


gba遊戲體積小有幾方面原因,首先,呃,不知道題主有沒接觸過編程…越高級的語言做出來的東西越大,但開發效率越高,越低級的語言開發出來的東西以及就越小,執行效率也越高,但開發難度卻更大。

Xbox以前的遊戲機基本都是每種機器都是一套獨立的編程語言,而且基本都是很低級高效的語言,差不多都是彙編,BASIC這種級別的(今天的碼農們,精通c就已經很稀有了吧…)。而且圖形介面各種函數差不多都要每家拿到開發工具的公司自己寫…好處是,不會寫那麼多無用的代碼,早年一個RPG才256k就是這麼來的,現在用各種功能強大的高級語言來做那些看似小品的遊戲,人工成本可比當年低多了,估計熟練工一個月就能做完的那個年那個時代,多人半年甚至一年才能做出來的遊戲。但體積絕對做不到那麼小了。話說gba其實已經用可比fc,超任那些前輩高級不少的開發工具了,超任解析度可比gba高,但很多超任移植gba的遊戲,GBA版體積都比超任版大了不少。

再就是,現在的遊戲,體積的大頭已經不是代碼了…塞得最多的都是材質貼圖音樂這類東西,這類東西不同於純文本可以壓縮,圖片和音樂壓縮完了和沒壓縮的品質相差巨大,所以開發商很少會通過減少圖片音樂品質來降低遊戲體積。星際爭霸有個精簡版沒音效沒cg,保留基本功能,才40多m,還有當年fm05還是06,那麼大數據量的遊戲,最小的精簡版只有50多m。gba這個級別的機器,不論是解析度還是音樂播放…壓根就不需要存那麼好的圖片和音樂…這絕對能省下海量體積來…


最根本的原因是,如果遊戲體積做大了,卡帶的成本會上漲,所以出於商業考慮不得不做小。GBA那會半導體存儲器還是好貴啊,買個EZ128M的燒錄卡都要500元(一個不太合適的例子)。

接下來說順便說說是怎麼做到這麼小的。(嚴重跑題)

先說調色板(palette)。大家都知道在圖片解析度相同的情況下,圖片所用的顏色越少,那麼它佔用存儲空間的就越少。《口袋妖怪紅寶石》的標題畫面實際上是由幾個圖層的物件拼湊而成的,其中只有logo是256色,其他包括背後的巨獸以及飄渺的煙等等最多只有16色。這些圖像在儲存的時候被開發人員配上了相應的調色板,規定這張圖只可以用哪幾種顏色,然後每種顏色標上索引號,最後將圖片中像素點用到的顏色用索引號保存。那麼理論上16色圖片的每個像素最多用4位存儲(8位=1位元組)。
插一句,FC的單個活動塊(sprite,一般用來顯示玩家操縱的角色)最多只能用4色,其中1色還是固定不能改的,這也就是為什麼FC畫面顏色如此單調的原因——能顯示出彩色就已經很不容易了。

然後是素材復用,簡單的說就是同樣的圖塊(tile)在畫面上重複堆砌,或者更換調色板,把一個圖片里表現的事物當成另一種東西處理。前者例如遊戲里草地就是一個一個草的圖片拼接而成的,後者在惡魔城裡很常見,只會扔肋骨和顱骨的骷髏換換顏色之後加上別的技能就當成了別的怪——實際上FC《超級馬里奧兄弟》里的白雲和草地就是同一張圖片換了調色板後重複使用的,不知騙過了多少玩家,可見顏色的重要性。

從一個遊戲用到的美術資源角度來看,採用以上兩種方法就能省出極大的空間。

至於音樂音效,使用內部音源,可以想像成電腦上的midi音樂。只記錄樂譜,沒有波形信息,也會非常節省空間。


你可以看看當年n64和ps上一樣的生化危機 ps有幾G 而n64就幾十m貌似- -

任天堂的壓縮技術一直都是這樣


因為受限於技術,你可以去看一下遊戲機的硬體發展,如果沒記錯的話,初代的紅白機只有幾kb,幾mb。那麼小的內存儲存你讓他們怎麼吧遊戲做大?

而隨著技術的提高,儲存內存現在主流已經發展到了TB,GB的級別。所以為了給你玩家更好的體驗,高像素,高音質,3D特效等等,遊戲當然會越來越大!

再說那時的屏幕解析度……現在的AV渣畫質都相當於超清4K啊!

還有為了節省儲存而用的大量重複方塊布景布局,連遊戲角色都是方塊稍加修改的(像素遊戲!),所以才做到那麼小的!

至於BGM,仔細認真聽,你會發現大量的!大量的!大量的重複循環播放!


推薦閱讀:

獨立開發者們是這樣還擊特朗普「禁穆令」的

TAG:遊戲開發 | Unity遊戲引擎 | 角色扮演遊戲RPG | GameBoyAdvanceGBA | 精靈寶可夢Pokémon |