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

拿手游戏坊 2024-01-03 18:07:01

在当今时代,不少朋友经常感叹现代游戏或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时代,游戏缺乏独立的“引擎层”,或者说引擎层即硬件层。

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

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

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

感谢您的阅读!

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

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

15 阅读:4762
评论列表
  • 2024-01-05 10:18

    以前是用心做游戏,现在是用薪玩游戏

    要地不要人 回复:
    直接法可konami就完了
  • 2024-01-06 00:49

    不是现在优化不了,而是现在没人做优化。看看手机上越来越大的APP就知道了。

    綄镁箹锭o 回复:
    现在考虑太多了不是以前那种
    斩风 回复:
    主要是硬件发展快,优化也是要费脑细胞的,也不会带来多少收益,所以没必要像以前一样绞尽脑汁的去优化
  • 无心 13
    2024-01-21 14:46

    单机和网络,有可比性……,原来的像素和现在的像素可比……,几个人的数据和几十万人的数据能同日而语……。

  • 2024-01-05 14:54

    其实现在很多游戏只要出品商能真的用心去优化压缩,能做到体积小运行流畅画质也行的

  • 2024-01-06 00:54

    魂斗罗和超级玛丽两款游戏是电子游戏的祖宗

    ꧁☬༺魅༻☬꧂ 回复:
    坦克大战表示不服!
    如来十力 回复:
    应该说是最多人玩的游戏
  • 2024-01-09 11:15

    无限重复,只换背景,也就是说你一直在玩同一关,只是改变了背景图。游戏当然小了

  • 2024-01-05 18:02

    上上下下左右左右BA+start=30条命?

    小胖他爸 回复:
    对于只吃加速,一条命无限循环的我没有用[笑着哭]
    持 叹 回复:
    不是疯狂借命么[笑着哭][笑着哭][笑着哭]
  • 2024-01-06 03:26

    以前做游戏是在游戏性上绞尽脑汁,现在做游戏是在策划充值上面绞尽脑汁。

  • 2024-01-07 07:51

    以前游戏才多少内存用的少,优化容易。现在以g起步,优化工作量比以前是一个天一个地。

    用户66xxx22 回复:
    这些都是堆起来的,没人做
  • 2024-01-27 01:30

    128KB的是FC的美版魂斗罗,不是街机,它根本没有剧情,有剧情的是256KB的日版,标题就错的一塌糊涂

  • 2024-01-07 06:37

    KB,GB,相差百万,而不是一千。

  • 2024-01-07 01:38

    你要是玩过4k的3d游戏,就知道了

  • 2024-01-06 11:06

    汇编,牛。游戏机本身集成了一些资源,是个办法。

  • 2024-01-19 16:28

    现在的游戏看似华丽,实际也是华丽[呲牙笑]

  • 2024-01-23 17:32

    现在都是数毛毛 没什么游戏性可言

  • 2024-01-08 17:52

    这是fc版街机1代是300多k好吗[得瑟]街机2代1m多

  • 2024-01-05 20:19

    现有些游戏为了版权加入加密无用数据程序码,有些游戏根本没有动动就几十个吉

  • 你们猜,battle city的35关地图多大?35K。

  • Alex 1
    2024-01-05 21:11

    过去游戏内容少开发时间短,大部分时间在优化和修改bug.如今游戏开发时间长 成本增加,没足够时间优化和修改了。

  • 2024-01-06 01:25

    优化那是什么。给你补丁自己下去[得瑟]

  • 2024-01-09 11:57

    以前的程序员和现在的码农一个水平?[笑着哭]

  • 2024-01-09 10:34

    光是那几张图片也不止128 kb了吧

  • 2024-01-22 10:32

    我只吃加速,无限循环死不了的,还有谁[笑着哭]

  • 2024-01-06 11:40

    剧情交代 树叶会动 有下雪 …… 256KB 日版

  • 2024-01-17 15:47

    一代经典