为什么魂斗罗只有128KB却可以实现那么长的剧情?

更新时间:2020-07-04 11:47

个人觉得 fc 最神奇的游戏还属超级玛丽,32 个关卡,每关都不同,各种隐藏要素,好像代码区才 10 多 k,数据区 10 多 k。

反汇编看完还是不敢相信这点东西能玩一个童年… 现在 helloworld 的二进制都可能比这大多了。

首先 128k 并不小,主要消耗存储空间的不是程序。当然对于 128k 来说程序大小自然也要考虑,鉴于 fc 是八位机而且 FC 采用的是 CISC 处理器,一条指令就能完成很多事情,所以程序的大小也就现代 64 位 RISC 处理器的十几到几百分之一。

资源才是大户(包括图像、音乐、地图数据、关卡数据等等)。就拿图像和音乐来说,图像在没有压缩之前 消耗存储空间和像素深度和大小有关。FC 上的图像,像素深度就 2bit 的索引而已 ,现在广泛使用的真彩色是 24bit,包含 alpha 的需要 32bit,这里就差了 12 倍到 16 倍。

图像大小更是差距巨大,FC 普遍一个角色也就是宽高十几个像素而已,与现在动辄宽高几千像素图像资源相比差了数万倍到数百万倍,所以图像资源消耗的存储空间至少差了 5~7 个数量级。

音乐的话,FC 采用的是 8 位 midi 音乐,而现在普遍用的是 PCM 音乐。类比到图像中,就像矢量图像和位图的区别。

总之 PCM 音乐的大小和采样深度、采样率、通道数以及长度有关,midi 仅仅和谱子的复杂度有关,所以 FC 实际上对空间的要求和现代游戏相比至少差了 5~7 个数量级。你把 128k 放大 10w 倍到 1000w 倍,你就不觉得小了。

对于什么 64k 3d 程序什么的,这完全是两码事,FC 程序小只是因为需求的资源本来就很小而已,而那种 64k 3d 程序是因为采用 Procedural generation 方法,简单的说就是通过数学来描述,而不是通过记录结果的采样,Procedural generation 不光需要的存储空间极小

而且可以做到无限精度,缺点是难以描述复杂事物,并且对算力要求高,而不是用了什么外星压缩法。

为什么魂斗罗只有128KB却可以实现那么长的剧情?

总结

1. 游戏大量复用图块,图块还使用调色板索引,好像每个像素才占用 2bit。2. 程序员精心优化各种数据结构,每一 bit 存储都不浪费。3. 声音只存储发声通道的调制参数序列,能复用就复用。4. 代码全是汇编写成,直接操作硬件,基本不存在浪费的指令。

相关阅读

  • 暴雪为什么要发布守望先锋2?

    守望先锋2016年发售,发售就成了当年的爆款好评声络绎不绝!国服发售突破100万销量!这款售价199的游戏!还能在国服卖出超过100万套销量,实力不容小觑。 当年守望可谓是国内火,国外…

  • 几乎只有ADC才会选择的装备!

    魔宗,这是一件加攻击力和蓝量的属性的装备。先来看看属性: 2400的价格,增加35点攻击力和250点法力值。然后就是这个唯一被动:增加2%最大法力值的攻击力。正是因为这个被动,魔…

  • 为什么尤里阵营没有小狗这个兵种?

    玩过红警2的朋友们都知道,在游戏中,狗的作用是非常强大的,它可以快速的秒杀小兵单位,基本上可以做到一口一个,也可以起到辨识间谍的作用,最重要的是狗的移速也是非常快的…

  • 曾经的《旅行青蛙》为什么在今天很少有

    旅行青蛙,是一款由HIT-POINT研发的一款放置类型手游,并且支持双平台运行。2018年5月开始内测,并且也是在2018年之后,开始红火了起来,对于一款在当时,有着比较治愈的画风和佛系…

  • 4个理由告诉你为什么PS4依然值得购买

    虽然 PS5 即将在今年年底发售,但这是否就意味着本世代的 PS4 就不值得购买呢?接下来,我们就来看看,PS4 依然值得购买的 4 个理由。 实惠的价格 随着 PlayStation 5 的发布,预计 PS4 将…

  • 为什么游戏手柄普遍都要比鼠标来得贵?

    如果单从平均价格来说的话,这确实是一个客观事实,我们打开随便一个网购平台搜索鼠标会跳出大量9.9包邮的产品,但搜索手柄的话,我们刨去那些什么所谓的吃鸡神器,基本上绝大…

  • 九哥越来越成熟,解说的越来越好,那么

    KPL春季总决赛刚刚落下帷幕,KPL的知名解说诗人李九并没有参与总决赛的解说,解说李九作为KPL成立之初最早的一批解说,解说实力不说最强但也不差,经历了这么多年的风风雨雨,九…

  • 为什么法师一直都走到一个中路的位置?

    在王者荣耀当中,是拥有着一定的职业分类的,而且每一种职业的英雄,好像他们走的路线都是固定的,比如说射手走发育路,战士走对抗路,而法师走到一个中路的位置。可是小伙伴…

攻略心得