-
1 # 極客學習社
-
2 # AGamer
這個問題還是非常有難度的,FC遊戲對容量的控制是非常精確的,通常一款遊戲也就幾十KB大小,遊戲中的“圖形”自然不是以“圖片”的方式製作的。下面就來講解一下原理,希望大家不會被繞暈。
畫面分割
卡通塊與圖形字型檔
調色盤
音樂與音效畫面分割組成FC遊戲中畫面的最小單位是卡通塊,FC遊戲的畫面是用一個個卡通塊(cell)拼出來的。每個網格就是一個cell,每個cell為8X8的點陣,與一個字元同樣大小。
《超級馬里奧兄弟》中,馬里奧在吃紅蘑菇之前為即由4個cell組成,當吃了紅蘑菇之後身體長大一倍,變為由16個cell組成。
一個問號圖形也是由4個cell組合拼成的(磚也是),通常將4個cell組成一個元素成為block。
卡通塊與圖形字型檔cell有一個圖形字型檔稱為CHR,這個庫的大小是16X16的,一次最多可定義256個cell,序號依次為0-255。遊戲中的所有cell都是從CHR庫中調用出來的,因此遊戲中的所有畫面的cell其實都是重複使用的,圖片容量就被限定在這16X16=256的CHR之中。
調色盤調色盤是用來給卡通塊上色的,FC一共可以用53種顏色,調色盤從這53種顏色裡選取3種顏色,“透明”也算一種顏色(此時顯示背景的底色),一共4種顏色。這4種顏色用來給方塊上色。這就意味著每個方塊只能有4種色彩。
用《惡魔城》的背景舉例,將其分割為32x30 = 960 個cell,2x2 = 4個cell組成一個block
CHR沒有顏色或位置,以圖塊的形式定義
cell的定義操作極其簡單,系統規定一個cell由連續的四個記憶體單元定義,第一個記憶體單元指定cell顯示的Y座標、第二個為cell在CHR字型檔中的序號、第三個為cell的顯示狀態(配色組合、左右翻轉、上下顛倒以及顯示於那個卡通頁面),第四個為cell顯示的X座標。程式設計中可任意指定定義卡通的記憶體頁面。
調色盤被分成幾部分,但是透過在不同區域之間共享顏色可以巧妙地隱藏這一事實。大門中間的紅色與周圍的牆壁融為一體,黑色背景模糊了城堡和大門之間的界限。
迴圈音樂為了節約容量,很多FC遊戲都會使用迴圈音樂。有一些遊戲為了保證更好的音樂和音效,還會單獨使用音樂音效增強元器件,在卡帶的硬體層面做處理。
2個方波(主旋律),1個三角波(低音),1個噪音波(高音),1個PCM(語音)
運動中的角色FC紅白機會將運動中的角色儲存於顯示卡的特定內建儲存區域,這樣我們看到的角色會以一個整體的結構進行移動,就像上面提到的小馬里奧是4個cell拼成的一個整體。角色的顯示是覆蓋背景的,無論背景如何設定,在角色覆蓋到上層時會被設定成角色的顏色。
滾屏FC之前的遊戲,在滾屏操作時幾乎要覆寫整個畫面,價效比非常低。FC內部PPU可以預先儲存超過顯示部分的內容,玩家在觸發滾屏操作後,可以移動遊戲鏡頭。
FC顯示畫面與聲音原理非常複雜,大家就簡單瞭解一下吧,任天堂的黑科技太多了
-
3 # 樂東影音
兩個方面:
影象方面,畫素低,色深位數低,資料量小。
聲音方面,是midi音樂,遊戲檔案內僅儲存midi資料,播放時靠硬體轉換為聲音輸出。
所以資料量小。
-
4 # geo丹
其實光論遊戲的內容的話,內容其實並不佔多少空間的,最簡單的一個例子就是小說,你看看一些網路小說動不動就幾十萬的字,但是txt格式總共佔空間也就那樣,甚至還沒你一張圖片佔空間大呢。
所以你拿nes格式的小遊戲和現代的普通遊戲一比就知道了,其中現代遊戲的畫面清晰度還有各種功能,比如說聯網交友功能、充值功能等,你就能明顯發現,完全不是一個世界的產物呀!!!
並且也受限於當時的機器裝置效能,所以雖然當時的nes遊戲比較小,但是內容多。
-
5 # 8090遊戲迷
NES是美版的叫法,日版叫FC,也就是紅白機,我們小時候玩的小霸王遊戲機,遊戲的大小一般在幾十K到幾百K,容量雖然小可內容卻很豐富,豐富其實主要說的是玩法,實際內容的話,可能如今的遊戲隨便一副靜止畫面都比整個遊戲大的多,原因如下幾點。
一款遊戲的組成不管是任何遊戲,一定是由幾個方面組成的,一是畫面,二是音樂,三是玩法,玩法是由程式設計程式碼實現的,都是文字,其實是整個遊戲最不佔用容量的地方,最佔用容量的可能是畫面,也可能是音樂,有的遊戲會有各種過場動畫,這種東西也很佔容量,一般是加密過的影片格式,有的遊戲音樂佔用了一大半容量,我玩過一款遊戲,一共800m左右,音樂就佔了600m。
NES遊戲容量小的原因紅白機的遊戲只有幾十K,玩法首先還是挺豐富的,但是畫面上就比較簡單了,髮色數有限,圖形也簡單,解析度也低,這都是不佔用容量的原因,複雜的畫面紅白機也處理不了,而音樂上,紅白機的遊戲音樂都用的是MIDI電子音樂,是各種電子樂器合成出來的聲音,聽起來雖然動聽,可佔用空間非常小,非常適合以前的遊戲使用,實際上音色是比較虛的,後來的都用的類似MP3那種格式了,還原度非常的高,而玩法上,可能佔用的空間是最少的了。
如今的遊戲就比以前的遊戲好玩嗎?遊戲首先是用來玩的,再好看的遊戲畫面如果沒有好玩的玩法支撐的話,那也不會是一部好的作品,老遊戲為什麼可以成為經典,就是贏在玩法和內容上面,你見過哪款遊戲是因為畫面成為經典的嘛?畫面總會過時的,當年第一次看到最終幻想8時候的激動,你現在再去看看那個畫面試試,更早的就更不用說,紅白機的吞食天地,重灌機兵,都是經典的遊戲,可容量也只是幾百K而已。
-
6 # 藍鳥啃蘋果
其實最好的例子就是 生化危機2 PS1是雙CD的大約1.3GB,而n64版本的只有不到64MB,而且由於n64的黑科技3D建模竟然比PS1更好,也沒有多邊形遮蓋的bug;
主要是:
1、740MB的動畫被壓縮到極致
2、遊戲的主程式程式程式碼實際上才2.1MB
3、支援高和絃的Midi
4、MPEG1的音影片壓縮技術的引入
5、ROM的高效能讀取能力,秒殺CD的速度
回覆列表
nes是8位機FC的遊戲格式,小的只有幾十K超過512K的都算是大的了。比如忍者神龜3,星之卡比夢之泉,忍者貓,幽遊白書,七龍珠超武鬥傳,忍者龍劍傳2和3,特就指令,快傑洋槍,雪人兄弟。都是經典的紅白機遊戲。
而大家現在最關心的是當年的遊戲關卡這麼多,還有音樂,影片,人物,但是有戲的大小怎麼就幾十K呢?現在的遊戲動不動就個幾個G。當年的遊戲開發者是怎麼做到,讓遊戲這麼小的呢?
其實最主要的原因是當年的儲存技術條件比較有限,一個作業系統只能用兩張1.4M的軟盤來記錄,於是大家都很珍惜儲存資源。你看到的遊戲畫面,看似是一張圖,但其實他都是用一個個畫素點描繪出來的,並不是圖片,而是一段段的文字,告訴處理器,什麼位置的點是什麼顏色。就這樣用一個個畫素點描繪了圖畫,在顯示器上我們就看到各種各樣馬賽克一般的畫素畫。
而音樂使用的是音節,一般也都用機器碼來實現的,很少在遊戲中加入真正的音訊,即使有也是midi格式的檔案,檔案也很小,沒有什麼太多的音色。而且遊戲中大部分的音樂都是迴圈性質的,可能5-6個音節就能支援整個遊戲的BGM。
一段用C語言控制發出聲音的程式
#include<windows.h>
main()
{
Beep(494, 200);
Beep(523, 300);
Beep(578, 400);
Beep(659, 500);
Beep(698, 600);
Beep(784, 700);
Beep(880, 800);
Beep(932, 900);
Beep(1046, 1000);
Beep(1175, 1100);
Beep(1381, 1200);
Beep(1480, 1300);
Beep(1661, 1400);
}
現在大家大致知道了FC遊戲的實現方法,我們知道整個遊戲可能都是用文字寫出來的了,而一本TXT格式的小說,上百萬字也就幾百K,中文字元佔用的位元組還比英文多,對半砍也就幾十K了。
所以當年能做出幾十K的遊戲就好理解了