1. 主页 > 产品运营

经典街机《魂斗罗》:为啥只有128KB却可以实现那么长的剧情?

在当今时代,不少朋友经常感叹现代游戏或APP所需的巨大存储空间,通常不下于10GB起步。

这让我想起了我初中时玩的那款游戏——《魂斗罗》,它仅占128KB大小,为什么却呈现了丰富的故事情节呢?

想象一下,现代程序员A与上世纪80年代的游戏开发者B之间的对话会是怎样的:

A: “你是如何在只有128KB的空间里实现这么多画面、音乐和动画的?”

B: “128KB不够吗?为了增强表现力,实际上加了许多不重要的细节优化。”

A: “以你们的音乐为例,即便我将它转换为最低码率的MP3,也需要至少1MB。”

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

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

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

A:……

一、128KB的游戏容量

让我们深入探究一下128KB的游戏容量究竟意味着什么。

KB是计算机存储的单位,1KB等同于1024字节。

如今的游戏通常需要几GB的存储空间,也就是几千万KB。

这意味着,《魂斗罗》的容量只有现代游戏的千分之一。

《魂斗罗》是如何在如此小的空间内创造出一个完整的故事?这归功于当时的游戏开发技术与设计。

二、游戏开发技术

1980年代初期,游戏开发技术还在起步阶段。

开发者必须在有限的存储空间内创造出完整的游戏体验,因此采用了众多特殊技术来优化存储与性能。

压缩技术

《魂斗罗》的制作团队采用了如“运行长度编码”(RLE)等压缩技术,有效降低了游戏数据的存储需求。

RLE是基于重复数据串的压缩方法。

在游戏制作中,开发者对重复的数据(例如地形、敌人信息等)进行压缩,只保存一份,并通过RLE编码,以便于快速解压。

这让他们能在128KB的存储空间里提供一个完整的游戏体验。

汇编语言

开发者还使用汇编语言来编写游戏代码。

汇编语言是一种直接与硬件操作的低级计算机语言,其执行效率极高。

尽管编写起来较为复杂,但它让开发者能够精确控制游戏的运行,确保游戏在有限的存储空间下运行得更加流畅、稳定。

优化技术

开发者还运用了其他优化技术来减少存储需求和提高性能。

比如,他们将游戏数据存放在ROM芯片上,直接读取数据,减少了读写操作的需要。

同时,音效和音乐文件被压缩到非常小的体积,并通过简单的算法实现播放。

三、硬件层面的优化

在FC时代,游戏缺乏独立的“引擎层”,或者说引擎层即硬件层。

任天堂的主机是为游戏设计的,已经集成了瓦片、调色板、音乐、音效等基本功能,从而极大地节约了底层代码的需求。

程序员需要深入研究文档,在硬件架构下解决问题,比如显示图像、屏幕滚动等;同时熟悉硬件底层和汇编语言,以免浪费代码空间。

这样,代码就能被编写得更为紧凑、高效。

感谢您的阅读!

关注我,了解更多有趣的游戏内容!

图片来源于网络,如有侵权请联系删除

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 203304862@qq.com

本文链接:https://jinnalai.com/yunying/480186.html

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:9:30-18:30,节假日休息