为什么有32个关卡的超级马里奥兄弟只要64KB?( 二 )







为什么有32个关卡的超级马里奥兄弟只要64KB?
文章图片
与之相比 ,
贴图和音效这些美术素材是当时开发者要头疼的玩意儿 。


先说说贴图吧 , 在计算机里任何东西本质上都是一堆信息 , 一张图要包含每个像素的颜色信息 + 像素所在的位置信息 。


比如说我前一张拿来说明 1000 个字符占地 4KB 大小的示意图 , 它本身其实占用了 44 KB。
为什么有32个关卡的超级马里奥兄弟只要64KB?
文章图片


虽然 FC 时代的主流游戏素材存储格式上和现在有所差别 , 但大致是这么个意思 。


那张 44 KB 的图尺寸是 788 * 388 , 而 FC 经典游戏《 超级马里奥兄弟 》第一关地图所有场景尺寸加起来起码得是那张图尺寸的 N 倍 。
为什么有32个关卡的超级马里奥兄弟只要64KB?
文章图片



而且它还有 8 个场景 , 每个场景又有 4 小关 。

可《 超级马里奥兄弟 》的大小只有 64 KB , 比魂斗罗还小 。



为什么有32个关卡的超级马里奥兄弟只要64KB?
文章图片
这时候得介绍个方法:
Tile Map。



这是个类似调色板的东西 , 游戏开发者把游戏里会出现的素材提前准备好 , 然后运行游戏的时候把素材拼接起来就行 , 这一个个素材叫 Tile, 整个素材包叫做 Tile Map。


这样一来 , 上面展示的那长长的第一关场景就不用提前搭建好再存储了 , 而是你在玩的时候重复利用提前准备好的东西 。

FC 版本的《 超级马里奥兄弟 》看似有这么多关卡 , 其实出现过的东西就这么多
【为什么有32个关卡的超级马里奥兄弟只要64KB?】为什么有32个关卡的超级马里奥兄弟只要64KB?
文章图片



其实这一点只要大家仔细观察就能发现 , 当时的老游戏重复素材特别多 , 例如一开始提到的《 魂斗罗 》也不例外 。
为什么有32个关卡的超级马里奥兄弟只要64KB?
文章图片



在红白机时代的游戏 , 只要素材读取好了 , 运行的时候用
代码告诉计算机这块素材应该出现在哪个位置就行了 。


代码占地儿小啊 , 写起来不心疼!


也就是说 , 你小时候在电视里浴血奋战的地方其实是 「 赶工 」赶出来的 , 只不过这个赶工运算量并不大 , 当时游戏帧率要求也不高 , 所以完全不影响体验 。

为什么有32个关卡的超级马里奥兄弟只要64KB?


推荐阅读