發佈日期: 發佈留言

惊!儿时游戏【魂斗罗】,内存居然只有128KB?

说到如今的游戏,很多玩家朋友们都会抱怨内存太大了,基本都是10G起步,每次更新也巨慢,有些配置低的手机一玩游戏就发烫,网页版游戏也是,电脑配置低了,玩起来卡的要死。

这不仅让我想起了我小学时玩过的一款游戏【魂斗罗】,一查之下,他竟然只有128KB的内存?震惊我全家的程度啊,为什么它只有128KB却能实现这么长的情节?

海外游戏充值

于是,我试着模拟了一下重返20世纪80年代,并跟当年的游戏开发者来了一段友好交流:

A:为什么你能用128KB实现这么多的画面、音乐、动画?

B:128KB还不够吗?事实上128已经相当奢侈,为了表现力还增加了许多不重要的细节。

A:就说你的音乐吧,这种音乐,我压到最低码率的mp3,也要至少1MB。

B:你是怎么压的?一首背景音乐怎么能超过1KB。

A:那你用了多少显存实现全屏卷轴呢?

B:总共只有2KB显存,多了也放不下啊。

A:……

一、128KB游戏容量

首先,让我们来看看128KB游戏容量意味着什么。KB是计算机存储容量的单位,1KB相当于1024字节。现代游戏通常有几个GB容量,即数千万个KB。换句话说,灵魂斗罗的游戏容量只有现代游戏容量的几万分之一。

那么,《魂斗罗》如何在这么小的容量下实现这么长的情节呢?这与游戏开发技术和游戏设计密切相关。

二、游戏开发技术

20世纪80年代初,游戏开发技术仍处于起步阶段,开发者需要在非常有限的存储容量下实现完整的游戏体验。因此,他们需要使用一些特殊的技术来优化游戏的存储空间和性能。

1.压缩技术

压缩技术是游戏开发者在128KB存储容量下实现完整游戏体验的关键。在《魂斗罗》中,开发者使用了一种名为“操作长度代码”的代码(Run-LengthEncoding,RLE的压缩技术可以减少游戏数据的存储空间。

操作长度编码是一种基于重复字符串的压缩技术。在游戏中,开发人员压缩一些重复的数据(如地图数据、敌人数据等。)只保留其中一个,然后使用RLE技术编码这些重复的数据,以便在游戏运行过程中快速解压缩。

通过操作长度编码技术,开发人员成功地将游戏数据的存储空间压缩到最小值,从而在128KB的存储容量下实现完整的游戏体验。

2.汇编语言

除了压缩技术,开发人员还使用汇编语言编写游戏代码。汇编语言是一种低级计算机语言,直接操作计算机的底层硬件,执行效率很高,但也很难编写。

当时,高级编程语言的使用并不流行,游戏开发者需要手写汇编语言代码来控制游戏的运行,以实现最优化的游戏性能。虽然编写汇编语言代码非常困难,但开发者可以精细控制游戏的运行,使游戏在有限的存储容量下运行得更快、更稳定。

3.优化技术

除了压缩技术和汇编语言外,开发人员还使用了其他一些优化技术来减少游戏的存储空间,提高游戏性能。例如,他们将游戏数据存储在ROM芯片中,可以直接读取数据,而不需要额外的读写操作。此外,开发人员还将游戏中的音效和音乐压缩到最小文件大小,并使用一些简单的算法来播放音效和音乐。

利用这些优化技术,开发者成功地将《魂斗罗》的游戏容量控制在128KB以内,从而实现了如此完整的游戏体验。

FC时代的游戏,没有所谓的“引擎层”,或者引擎层就是“硬件层”。任天堂的主机完全是为游戏设计的,瓦片、调色板、音乐、音效等基本功能已经提前考虑,节省了大量的底层代码。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *