北京中科白癜风医院三级专科 http://www.paisufa.com/m/现在你如果想下载一首标准音质的歌至少需要占用3M的空间
但你知道当年红白机上的马里奥游戏有多大吗?答案是40K大约是1/首歌的大小
是不是有点吃惊,当年的马里奥32个关卡才占了这么大点空间?
今天我们就来聊一聊当年游戏开发者的抠门学
当年红白机空间有限,要想在这么一点空间中放下丰富多彩的游戏,这些抠门带师可是绞尽脑汁
首先介绍一个方法:TileMap
这是个类似调色板的东西,游戏开发者把游戏里会出现的素材提前准备好,然后运行游戏的时候把素材拼接起来就行,这一个个素材叫Tile,整个素材包叫做TileMap
这样一来,上面展示的那长长的第一关场景就不用提前搭建好再存储了,而是你在玩的时候重复利用提前准备好的东西。
如果仔细观察每个关卡的地图,你会发现其中很多元素都是重复的,FC版本的超级马里奥兄弟其实出现过的元素就这么多
虽然就这么多,但是设计师还是要尽量压缩存储空间,大家有没有发现其中很多元素都是对称的,所以只需要存储一半,像这个亚子
一些实在无法对称的元素该怎么办呢?切割开存储呗,就比如一个马里奥可以被分割成这个样子对称的部分依然可以存储一半
游戏中的云朵和草其实是一个元素,只是通过代码换了一个颜色
开发者通过诸如此类的奇淫巧技将图片素材占用的空间压缩到了极致,这样的话,图片存储就解决了,只需要在游戏运行的时候通过代码实时调用这些元素来组成游戏画面
然后就是音乐的问题,一款游戏深入人心的原因往往是他那魔性的音乐,音乐存储起来占用的空间一点都不比图片容易
我们现在存储的音乐都是录制好的所以会很大,音乐文件都是这个样子
但是在红白机中就那么大点空间,所以一般都是将音乐存储为乐谱的形式,这样的话占用空间就大大减少,乐谱的形式是这个样子
为了能够播放这些声音,老游戏机中有一块专用的音乐合成芯片,专门用来处理这些乐谱,实时播放音乐
插播一条冷知识:马里奥吃蘑菇变大的声音其实是通关音乐的快放
现在就只剩下代码了,代码无非就是一堆英文放在一起,所以占用的空间很小,写几万行代码可能还没有一个图片元素大,所以这方面不用担心
那个时候的开发者为了开发一块小而优的游戏基本都是将素材重复使用,游戏画面等内容都是实时生成,这样的话就不会占用很大的空间,比如这款96KB的3D射击游戏《毁灭杀手》
还有97年世界黑客编程大赛第一名的作品,这个仅为4KB的程序运行出来却是带音乐的3D场景
啊,跑题了跑题了,回到马里奥
不只是马里奥这款游戏,基本当时所有的FC游戏都是这个样子,为了压缩空间展现更多的内容,开发者都在抠门学上面努力着
正是有前辈们抠门的设计,我们才能在童年享受到丰富多彩的游戏,致敬老一辈开发者
到了现在,技术飞速发展,M这个单位都很少见了,我们现在玩的游戏动辄十几个G甚至上百G
在我看来,小时候几十KB游戏给我带来的乐趣完全不亚于现在几十G游戏,我就在想如果把当时的开发者放到现在会给我们带了什么有趣的游戏呢?
本期文章是在观看B站UP
差评君的视频后写的,如果有兴趣可以去看看他的视频哦预览时标签不可点收录于话题#个上一篇下一篇
转载请注明:http://www.rongweicar.com/ddqh/8553.html