为什么魂斗罗只有128KB却可以实现那么长的剧情?
个人觉得 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 不光需要的存储空间极小
而且可以做到无限精度,缺点是难以描述复杂事物,并且对算力要求高,而不是用了什么外星压缩法。
总结
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成立之初最早的一批解说,解说实力不说最强但也不差,经历了这么多年的风风雨雨,九…
-
为什么法师一直都走到一个中路的位置?
在王者荣耀当中,是拥有着一定的职业分类的,而且每一种职业的英雄,好像他们走的路线都是固定的,比如说射手走发育路,战士走对抗路,而法师走到一个中路的位置。可是小伙伴…