游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?( 三 )


怎么混淆呢?
比如把变量和函数用单字母代替、删除代码之间的空格、将多行代码挤到一行等等 。
游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?
文章图片
大家有没有注意到它的混淆方式中包含了 “ 缩减中间变量和函数 ”,“ 去掉空格 ”  。。
巧了 。。
这就意外地让混淆后的代码相比之前缩小了 25% 左右 。
所以,这个主要用来保护源代码的工具也被大家用来缩减代码体积 。。
除此之外,还有人建议编写代码时尽量少用一些层级目录( 少用一些分类文件夹 ) 。
虽然这样编写时会比较乱,但至少在游戏文件最终打包的时候,压缩率会高一点 。
这个世超特意还做了测试验证了一下:
把 3 个文件直接放在一个文件夹内,压缩得到 A.zip 。
把同样的 3 个文件分别放到 3 个小文件夹内,然后把这 3 个小文件夹放到一个大文件夹内,再压缩得到 B.zip 。
经过对比发现,虽然文件一模一样,但是 A.zip 确实小了几百个字节 。。
游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?
文章图片
不仅是压缩上抠细节,这些选手还会对压缩包再压缩 。
用什么软件都有讲究,比如有人就建议使用 advzip,因为它相对其他的压缩软件能多缩小 1kb  。。
看到这些开发者个个跟抠门学大师一样的操作,其实世超也能理解他们 。
毕竟你要把一个游戏做得既有趣,又得控制在 13kb 以内,真就好比用电锯剪鼻毛,每一步都得小心翼翼 。。
但恰恰在这些压力下,开发者会绞尽脑汁去优化自己的代码,去挖掘自己的脑洞 。。
所以反而意外的让他们做出了这些比较好玩的,有创意的游戏 。
这也让我想到了另外一个例子:《 超级马里奥 》 。
【游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?】你可能从未想过,这个多达 32 个关卡的过关游戏,它只有 40kb 。
我们曾经出过一期视频告诉大家是怎么做到的,这里再稍微讲讲 。
和上面讲到 13kb 游戏素材重复利用一样,马里奥也是有一套素材包 。
我们只需要在需要用到素材的时候,把他拖放过去 。
游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?
文章图片
当然了,这些素材包也要能省就省 。
比如游戏里的草垛,其实就是白云的上半部分换个颜色罢了 。
游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?
文章图片
再比如马里奥一整套的动作,是由 21 张图像( 准确说法为 Sprite  )组成的 。
游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?
文章图片
但 21 张图片占用空间太多,所以开发者把每张马里奥图片都切成了 4 份,去掉相同的部分 。
游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?
文章图片
这样剩下的素材依然可以通过组合,来完整马里奥所有的动作 。
如果你仔细观察,就会发现花朵和星星都是对称的 。
其实游戏开发者只存储了半只花和星星,只是在显示它们的时候,把它们复制了一下再放出来罢了 。
游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?
文章图片
你看,虽然限制非常严苛,但这并不妨碍开发者们做出影响了几代人的《 超级马里奥 》 。
这样的例子还不少 。
比如早期因为机器性能问题,根本做不出 3D 游戏,那怎么表现出 3D 效果呢 。
在上世纪 80 年代就有开发者想出利用平行投影,通过倾斜视角来展示游戏画面,从而产生立体效果 。
1982 年世嘉出品的《 Zaxxon 》▼??
游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?
文章图片
这类游戏也被称为等距游戏,这种方式也被各种 RPG 和战略类游戏所采用 。
还有开发者想到利用视差滚动的效果,让 2D 画面更有立体感 。
游戏|一群大佬猛肝30天 最后就做出个13kb的游戏?


推荐阅读