来自:知乎,作者:红白机
链接:https://www.zhihu.com/question/50076174
个人觉得 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. 代码全是汇编写成,直接操作硬件,基本不存在浪费的指令。
说起梦幻西游的周末活动,其中包含4个常规周和一个特殊周(第5周),共计5种类型。其中最受欢迎的当属门派闯关莫属了,俗称18门派。今天就大家说一说,18门派活动需要注意的一些事项。这是本月18门派活动后... ...
今天《火影忍者》手游的突然更新,相信各位玩家也都看到了。重点是对疾风咒佐的加强,减小了CD,优化了技能与普攻的手感。而且为了能刺激玩家掏钱包,还把忍者的收集集加成由生命属性调整为攻击属性,并且增加一张... ...
《Apex英雄》官方正式宣布游戏中即将开启盛大晚宴街机活动 ...
在王者荣耀中,我们很多时候都避免不了和对面进行一对一的战斗,其中一对一最为激烈的就要属战士了,因为射手,刺客,法师在一定程度上都不如战士来的有趣。所以说现在对抗路变得更加有趣,经常看到两方的战士打得有... ...
去年9月5日,《阿尔法星》在备受期待之下终于发售,team17发行。在看到这家曾发行过《胡闹厨房》《波西亚时光》和《逃脱者》等众多佳作的发行商后,我心中的期待得到了一丝保障,但实际游戏品质如何还是要在... ...