現代大型遊戲似乎都是開發者在推進硬體需求,等待硬體逐漸跟上腳步(PC);或是至少在硬體相對固定的環境下(主機),開發者受到的限制其實也沒有那麼地大。但在家用電腦遊戲的早期,情況可完全不是這樣的 -- 因為硬體上嚴重的限制,遊戲開發者必需要用各種偏門的方法來達到顯示彩色的目的。YouTube 上的一位 iBookGuy 仁兄就做了一則小影片,解釋當時的開發者,為了讓電腦能顯示顏色,有多麼地辛苦,像上面這張圖,就是在「每個 8x8 的方塊最多只能有兩種顏色」的限制下完成的,不能不說實在是很了不起呢!

影片和簡短的解說在繼續閱讀裡。


首先,要先了解的是硬體限制的由來。現代電腦大多數的時候,獨立顯示卡都有自己的記憶體,但過去的電腦則是和現在內建顯示晶片的處理器一樣,是共用主記憶體的。相對於現代電腦動輒幾 GB 的記憶體,早年的電腦最好的大概有 64KB,而差一點的可能只有 16KB。對於一個解析度 320x200 的螢幕來說,這就一共有 64,000 個畫素,就算是黑白的,也需要 64Kb,或 8KB 的記憶體空間來儲存所有內容;然而換成 16 色(每個畫素 4bit)的話,記憶體需求就會暴增到 32KB,一下子除了最高階的電腦之外,其他電腦都跑不動了。

所以在連 16 色都不能輕易使用下,遊戲開發者只能用一些小技巧來繞過色彩的限制。前面提過的「每個 8x8 的方塊只用兩種顏色」就是其中一種技巧,這樣會產生畫面色彩豐富的錯覺,但實際上記憶體只會佔用到 9KB 而已。另一個技巧是用降低解析度的方式來增加色彩,將解析度降至 160x200 的話,就可以在每個 4x8 的方塊裡填入四種色彩,但一樣只佔用 9KB 的記憶體。第三種方法是將特定的方塊顏色組合存在一起,成為獨立的小圖檔(sprite),這樣主機存取的時候就不再是一個一個畫素去定址,而是直接顯示小圖檔。任天堂的遊戲機就大量使用了這樣的技巧,(小)瑪莉歐本身就是就是有四個小圖檔拼合而成的。

我們目前看到的影片是上集,iBookGuy 答應會再續集裡再介紹更多前輩們用來繞過硬體限制的技巧呢。