移动优化实用指南

本指南针对刚接触移动游戏开发、可能感觉阻力重重的开发人员。他们正在规划及原型设计新的移动游戏,或者改变现有工程,使其在移动设备上的运行更加流畅。对于任何针对老旧个人电脑和上网本制作移动游戏或浏览器游戏的开发人员,这也是非常有用的参考。

优化是一个广泛的话题,如何进行优化很大程度上取决于您的游戏。因此,本指南是供入门或参考的最佳读物,而不是保证运行产品运行流畅的分步指南。

并非所有移动设备都如出一辙

本指南中的信息假设硬件约为 Apple A4 芯片组同等级别,这在原始版 iPad、iPhone 3GS 以及第 3 代 iPod Touch 中使用。从 Android 的角度来说,这意味着 Nexus One,或者大部分运行 Android 2.3 Gingerbread 的 Android 手机。通常,这些设备在 2010 年之前发布。这些设备已经退出急缺应用程序的市场,因而属于更老、运行更慢的部分。但是,游戏应该支持这些设备,因为它们代表了很大一部分的市场。

当然,市场上还有更慢和更快的手机。移动设备的计算能力正以惊人的速度增长。新一代的移动 GPU 比之前的版本快 5 倍,这已经屡见不鲜。与 PC 行业相比,这确实是当之无愧的快速

如需 Apple 移动设备技术规格概览,请参阅硬件页面

如果想要为将来大受欢迎的移动设备进行开发,或专门为当前高端设备开发,那么,更多优化可以让您大获成功。请参阅未来移动设备

而非常低端的设备,如 iPhone 3G 和第一代和第二代 iPod touches 等均极其有限,在优化这些设备时必须更加谨慎。但是,还未升级设备的消费者是否会购买应用程序还存在很多问题。因此,除非您制作的是免费应用程序,否则支持这些旧设备可能并不会物有所值。

将优化作为设计考虑,而非最终步骤

英国计算机科学家 Michael A. Jackson 的程序优化法则经常为人们津津乐道:

“程序优化的第一条准则是:不要这样做。程序优化的第二条法则是(仅限专家!):千万不要这样做。”

他这样说的根据是,考虑到电脑的速度及电脑正在增加的速度,很有可能您只需编写程序,它就可以更快运行。除此之外,如果尝试过多的优化,可能使事情更加复杂。它可能造成限制,或者带来一大堆错误。

但是,如果您开发的是移动游戏,还需考虑一个因素:相对于我们习惯于使用的电脑,现在市场上的硬件非常有限,因此,创建不能在设备上运行的新程序所面临的风险抵消了一开始优化带来的过度复杂的风险。

在本指南自始至终,我们都致力于指出优化可以带来裨益的环境,以及优化略显多余的环境。

优化: 并非只针对程序员

设计师也必须了解平台的限制,以及用于规避这些限制的方法,这样,他们就可以提出颇有成效的创意选择,而无需从头重做。

设计运行更加流畅的游戏

这两页详细介绍游戏性能的总体趋势,也将说明如何最佳设计游戏以进行优化,或者如果已经完成制作,如何直观了解哪些方面需要优化。

尽早并经常进行性能分析

性能分析至关重要,因为它有助于识别哪些优化可以取得成效,让性能大大增加,哪些优化只是浪费时间。由于渲染通过独立芯片 (GPU) 处理,因此,它渲染一帧花费的时间并不是 CPU 花费的时间加上 GPU 花费的时间,相反,它比这二者的时间总和要长。这就意味着,如果 CPU 拖延时间,那么优化着色器完全不能增加帧速率;同样,如果 GPU 拖延时间,那么优化物理和脚本也将是徒劳无功。

通常,游戏不同部分和不同情况的执行也有所不同,因此,游戏的一个部分可能完全因为脚本导致 100 毫秒帧;而游戏的另一部分可能引起同样的减速,但其原因可能是正在渲染的对象。因此,如果需要优化游戏,最少应该了解所有这些瓶颈。

Unity 分析器(仅限专业版)

针对 iOS 或 Android 时,可使用 Unity 中的主分析器。请参阅分析器指南,了解使用方法的基本介绍。

内部分析器

内部分析器每 30 帧喷出文本。它有助于理解游戏的哪些方面正在减慢速度,是物理、脚本还是渲染;但是它不会提供 详细信息,例如,哪个脚本或渲染是罪魁祸首。

请参阅内部分析器页面,了解此功能运行原理及如何打开等详细信息。

分析器指示大部分用来渲染的时间

分析器指示大部分渲染以外的时间

目录

Page last updated: 2013-06-29