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