移动游戏的编程和移植
来自多伦多的独立开发者阿莫斯·拉贝尔(Amos Laber)在他的博客中分享了关于移动游戏开发及其移植到不同平台的想法。
平台
首先,必须明确选择的平台,— 拉贝尔认为。— 对于初学者和独立开发者来说,资源通常有限,因此如果想要制作一款真正优质的游戏,最好从一开始就专注于单一平台的开发。如果游戏取得成功,之后总是可以将其移植到其他平台。
接下来就出现了另一个问题——选择哪个平台作为起点。对于开发休闲二维游戏的人来说,他们常常不只是面临两到三个移动平台的选择,而是更在于是否要为Facebook开发桌面游戏,还是为iOS开发移动项目。
实际上,这两种平台都能接触到庞大的受众,且都支持微交易和社交功能。事实上的主要区别在于每个平台上受欢迎的游戏类型。
不过,现在这种界限正在逐渐模糊,因此平台之间的差异逐渐变得单纯是技术上的。
移植
移植一款优秀的游戏可能是一件繁琐的工作,耗时甚巨。与通常使用跨平台引擎的AAA游戏不同,这些引擎允许为多个平台编写一套代码,休闲和移动游戏在移植时往往需要完全重写。这也是为何专注于某一版本并精雕细琢,然后再开始其他版本开发的原因。
经常发生这样的情况:一款在某个平台上流行的游戏,通常要在原始发布后六到十二个月后才能移植到其他平台。像《愤怒的小鸟》《我的水哪里去?》,根据最新数据,《神庙逃亡》也将如此。
在这些情况下,开发者在创建移植版时投入的成本可能与原版相当。同时,正如之前所提到的,还有时间的成本。
不过,在设计时如果能谨慎对待并进行详细规划,完全有可能以一款游戏的成本发布两个版本。这可以说是一种方法:最初要确保代码片段和资源可以轻松在不同平台间移植(模块化方法)。
然而,在这种情况下仍然存在许多问题。在编写源代码时,您必须立即考虑到所有所需的工具、系统、编程语言及所要运行游戏的硬件。这是非常复杂的。此外,总是存在开发可适用于所有平台的产品时,可能在任何一平台上都无法正常工作的风险。
当然,部分问题可通过使用如Unity 3D或Corona等适用于多个平台的工具来解决,但在这种情况下,开发者可能会牺牲开发的灵活性。有时,限制会非常严重。
因此,理想情况下,确实应该为每个平台单独开发一款游戏:使用其原生的工具和库。
建议
以下是开发游戏时应遵循的关键原则,如果您希望之后进行移植:
— 使用通用数据类型(例如,位图、精灵图等)
— 注意准备图形和游戏资源的良好工具
— 使用严格类型的面向对象编程语言和具有良好调试功能的开发环境
— 以验证良好的框架为基础
是的,使用Facebook Flash时,更推荐使用AS3作为框架,而使用Cocos2D时则使用Objective-C。