魂斗罗容量,魂斗罗为什么这么难
来自:知乎,作者:红白机红白机红白机
链接:https://www.zhihu.com/question/50076174
我个人觉得fc最神奇的游戏要属超级马里奥了,32关,每一关都不一样,各种隐藏元素,好像代码区才10 K多,数据区10 K多,拆解之后我还是不敢相信这东西能用一个童年……现在helloworld的二进制可能比这个大很多。
首先,128k不小。
不是主要消耗空之间存储的程序
当然,对于128k,也要考虑程序大小。
由于fc是8位机,FC使用CISC处理器,一条指令可以完成很多事情。
所以程序的规模只有现代64位RISC处理器的十几到几百倍。
资源是大的(包括图片、音乐、地图、数据、检查点数据等。)
拍摄图像和音乐。
压缩前图像的内存消耗空与像素深度和大小有关。
FC上图像的像素深度只是2位的索引,但现在广泛使用的真彩色是24位,包含alpha需要32位。
这里要差12到16倍。
图像大小差距巨大。
FC是一个常见的角色,也就是只有十几个像素宽和高。
比起现在往往几千像素宽几千像素高的图像资源,差了几万到几百万倍。
所以图像资源消耗的存储空至少相差5 ~ 7个数量级。
音乐词
FC使用8位midi音乐。
现在PCM音乐被广泛使用。
形象的类比
就像矢量图像和位图的区别一样。
简而言之,PCM音乐的大小与采样深度、采样通道数量和长度有关。
Midi只和乐谱的复杂程度有关。
所以FC对空的要求比现代游戏至少差了5 ~ 7个数量级。
如果把128k放大10w倍到1000w倍,就不会觉得小了。
也有人提到一些64k的3d节目什么的。
这完全不同。
FC计划之所以小,只是因为所需的资源已经很小了。
而那种64k的3d程序是由于采用了过程化的生成方法。
简单来说就是用数学来描述。
而不是通过记录结果的样本。
过程化生成不仅需要最小的存储空间空
而且还能达到无限的精度。
缺点是很难描述复杂的东西。
并且需要高计算能力。
而不是使用某种外星压缩方法
总结:
1.游戏重用了很多瓦片,瓦片也使用调色板索引,好像每个像素只占2位。2.程序员精心优化各种数据结构,每一位存储都不浪费。3.声音只存储声道的调制参数序列,如果可以重用,可以重用。4.代码都是编译写的,直接操作硬件,基本没有浪费指令。