80年代游戲開發者的辛苦困境
現代大型游戲似乎都是開發者在推進硬件需求,等待硬件逐漸跟上腳步(PC);或是至少在硬件相對固定的環境下(主機),開發者受到的限制其實也沒有 那么地大。但在家用電腦游戲的早期,情況可完全不是這樣的 — 因為硬件上嚴重的限制,游戲開發者必需要用各種偏門的方法來達到顯示彩色的目的。
YouTube 上的一位 iBookGuy 仁兄就做了一則小視頻,解釋當時的開發者,為了讓電腦能顯示顏色,有多么地辛苦,像上面這張圖,就是在「每個 8×8 的方塊最多只能有兩種顏色」的限制下完成的,不能不說實在是很了不起呢!
視頻和簡短的解說在繼續閱讀里。
首先,要先了解的是硬件限制的由來。現代電腦大多數的時候,獨立顯卡都有自己的內存,但過去的電腦則是和現在內建顯示芯片的處理器一樣,是共用主內 存的。相對于現代電腦動輒幾 GB 的內存,早年的電腦***的大概有 64KB,而差一點的可能只有 16KB。對于一個分辨率 320×200 的屏幕來說,這就一共有 64,000 個像素,就算是黑白的,也需要 64Kb,或 8KB 的內存空間來存儲所有內容;然而換成 16 色(每個像素 4bit)的話,內存需求就會暴增到 32KB,一下子除了***端的電腦之外,其他電腦都跑不動了。
所以在連 16 色都不能輕易使用下,游戲開發者只能用一些小技巧來繞過色彩的限制。前面提過的「每個 8×8 的方塊只用兩種顏色」就是其中一種技巧,這樣會產生畫面色彩豐富的錯覺,但實際上內存只會占用到 9KB 而已。另一個技巧是用降低分辨率的方式來增加色彩,將分辨率降至 160×200 的話,就可以在每個 4×8 的方塊里填入四種色彩,但一樣只占用 9KB 的內存。第三種方法是將特定的方塊顏色組合存在一起,成為獨立的小圖檔(sprite),這樣主機存取的時候就不再是一個一個像素去定址,而是直接顯示小 圖檔。任天堂的游戲機就大量使用了這樣的技巧,(小)瑪莉歐本身就是就是有四個小圖檔拼合而成的。
我們目前看到的視頻是上集,iBookGuy 答應會再續集里再介紹更多前輩們用來繞過硬件限制的技巧呢。