iOS开发者-我是如何把手游包体降到11MB

【Gamelook专稿,转载请注明出处】

Gamelook报道/虽然智能机和平板设备的性能在不断提高,但大多数的安卓用户依然使用着比较低赔的设备。对于手游开发者们来说,在不降低游戏质量的基础上控制包体大小成为了比较头疼的问题之一,最近,一位名叫Peter Kibble的独立开发者在博客中分享了自己的经验,希望可以给同行们带来一些帮助,以下是完整的博文内容:

我做手游和平板应用已经很多年了,而且也经常看到业内的同行们重复着同样的错误,这也让我确定自己是非常普通的开发者。这篇博客中,我将会通过我们的新游戏《Ravioli》来讨论如何解决资源膨胀的问题。

《Ravioli》是一款视觉解谜游戏,它使用了144个独特的基本图形,在15个不同难度的关卡中创造了225个解谜。由于玩法完全是视觉化的,所以游戏资源必须达到非常高的质量,游戏渲染也要做到非常快。

我知道这篇博客的读者们很多都有多核CPU,海量内存,4G网络,甚至都带着充电宝,可以搞定大多数的游戏运行。而我们做《Ravioli》的目标是要让它在低端智能机上也可以很流畅地运行,而且最终我们也做到了。为什么要这么做呢?因为大多数人使用的都是低端智能机,如果《Ravioli》可以在这些设备上运行流畅的话,那么到了高端设备就更不用提了。

我们做的一件事就是把游戏资源做到尽可能紧凑和有效率,同时不降低质量和灵活度。通过这种做法,我们做到了,225个解谜的资源大概压缩到了30kb,不压缩的大小为150kb。其他的核心图形资源,包括icon和标志等大小只有44kb(压缩后)/240kb(压缩前),游戏的启动界面大小为25kb。除了启动界面之外,所有的图形资源都存放在我们的专用数据库里。

这是可行的,因为《Ravioli》使用了我们自研的定制化2D着色器和二进制矢量资源格式,这意味着我们在所有平台拥有整个图形资源链。通常的选择,其一是依赖大量的预渲染PNG图片,这会导致资源空间占用很大,而且会带来很多的资源管理问题;另一个方法就是当应用启动的时候,把SVG资源渲染成PNG,这通常来说是一个比较不错的技术。使用PNG图片对我们来说是行不通的,标准的SVG渲染也实现不了《Ravioli》所需要的微操作。而且,这两种方法都会导致我们的Mac/OSX游戏编辑器几乎难以使用,或许还会意味着这款游戏永远都没有办法正常运行。

音频资源更容易处理,我们采用了64kbps的标准,因为在《Ravioli》当中的音频不是背景音乐就是转换效果,如果质量比这个再低的话,就会太明显了。这种方法让音频包体非常小,不过,由于音频占了10%的包体大小,所以图形资源仍然受到了一些限制。

那么,我们这么做带来了哪些好处呢?

我们的游戏包体非常小,在iOS平台大概是11MB,游戏的下载和安装都非常快,这在低带宽的情况下是非常有优势的。《Ravioli》的内存占用很低,几乎不明显,游戏的保存和恢复都非常快。
游戏资源的渲染都是根据各种设备和分辨率设置的最佳方案,图片大小也是最优化的。图形资源数据库让研发和调整都变得非常有效而且可靠。所以《Ravioli》的实际游戏表现很好,下载起来简单稳定,安装起来很快,而且在各种设备上运行起来也不错。

以上就是我们解决游戏包体问题的方法,目前《Ravioli》已经推出了iOS测试,感兴趣的读者可以在TestFlight注册尝试。

本文英文作者Peter Kibble

发表评论

您的电子邮箱地址不会被公开。