《超级马里奥兄弟》有32关,为什么只有64KB?
虽然《超级马里奥兄弟》有32关,但它只占用了64KB的空间,这在很多朋友听来是不可思议的。但其实我们知道游戏是由场景、音效、动作组成的。马里奥的很多图形都是重复的,占用的字节很少,只是代码重复而已,不占空间。《超级马里奥》的配乐也占了很小的空间,所以32关的《超级马里奥兄弟》其实下载只需要64KB。
其实有一个工具是应该介绍给你的,那就是磁贴地图。这个工具可能大多数人都不熟悉,但对于游戏开发者来说却是一件简单的事情。游戏中所有的图片、文字、音频等素材都称为Tile,将这些素材全部放入一个文件包中,命名为Tile Map。简单来说,所有的资料都不占空间,所以文件包不占空间。
虽然超级马里奥有那么多长的关卡,但是我们可以发现他的每一个场景都有很多相似之处。所以我们不用一个一个的搭建这些场景,直接用TileMap把事先准备好的东西拉出来就行了。放眼所有的检查站,出现的无非是栅栏、云朵、草原、烟囱和一些小炸弹。
但是从图片中不难看出,云和草的形状很多都是一样的,只是颜色有点不同,只需要用代码来实现,所以这些图片素材并不占空间。我们来看看马里奥里的音频文件。马里奥的游戏音频事先存储了音乐合成芯片,但是处理这些乐谱,实时合成音乐,并不是现成的音乐,所以马里奥的内存会很小。其实不仅仅是超级马里奥,魂斗罗也是同样的做法,尽量减少内存占用。