作为Android开发人员,要移植到iPhone时应牢记什么?


9

作为Android游戏开发人员,如果我想将游戏跨平台移植到iPhone,在开发游戏时应该牢记什么?关于移植到这两个移动平台的任何策略,技巧等?


您的大多数代码是用哪种语言编写的?Java的?C / C ++?
杰森·科扎克

Android(和我的应用程序)是用Java编写的。iPhone是目标C
布赖恩·丹尼

Answers:


12

用C / C ++编写它 -这是您最大的任务。两种平台都支持C和C ++,但是方式不同。在Android上,您将使用NDK。在iPhone上,它可以与Objective-C代码一起编译。

您需要花费一些时间围绕每个平台的C / C ++代码构建支架。您应该能够在这方面相当通用,因为它实际上只是将特定于操作系统的功能连接到您的游戏代码中。除非您只打算做一个跨平台项目,或者您不介意为每个所做的项目重新发明轮子,否则不要在这方面有所作为。

使用OpenGL ES-两个平台都支持OpenGL ES。利用它。这将最大限度地减少您需要重写的代码量。在每个平台上您仍然会有一些差异,但是总体上,大多数代码都可以在两个平台上工作。

避免使用特定于平台/语言的API-这应该不言而喻,但是在使用Java时,很容易被Java集合类所吸引。当然,如果您遵循上述第一条规则,那么您在Java中不会做太多事情。反之亦然-与iOS中的Foundation类一样好,如果要移植到另一个平台,请避免使用它们。

如您所见,跨平台运行有很多事情需要担心。如果您是小型独立开发者,那么甚至不值得花时间。您将必须评估您是否真的想开拓自己的足迹,以便针对多个平台。可能需要利用每个平台必须提供的功能才能拥有更快的开发周期。

祝好运!


1
您能否通过围绕c ++代码的脚手架详细说明您的意思。如果可能的话,您可以链接一个教程,显示它的含义,因为我不太了解您的意思。
Skeith '04

5

从Java> Objective-C开始,这将是一个非常痛苦的过程。

数据驱动
构建一个主要由数据驱动的游戏。我认为这是不言而喻的,但是这个方向减少了您必须完全重新实现的工作量。

高而密实的
东西要很小并且模块化。我之所以这样说是因为,如果您可以轻松地安装一个组件并实现它,进行测试和重复,那么移植起来会容易得多。

合同工作
正确玩纸牌,您可能会认识可以帮助您解决此问题的人。如果您是与iPhone开发人员最好的朋友,则可以向他/她购买一些博士。Pepper帮助您迁移代码。

使用多平台引擎
如果您已经有一个项目在运行中,那么它就没有多大意义了。但是,如果您将要进行一个项目,并且您绝对知道该项目将被移植到其他平台,那么可能有必要利用现有技术来帮助您将整个世界融合在一起。Unity3D将通过Unity 3.0获得Android支持。

转换/ shudder /工具
我最不推荐的建议是,您可以使用某种转换工具至少使您的模型从Java> C转换。但是...我不赞成。


3

如果您正在考虑移植到iPhone,并且您的游戏仍在开发中,那么如果尚未移植,请切换到C ++。当时间到来时,它将使您的代码更加可移植。


1

要将我的两分钱加到这个线程上-考虑像其他许多人在这里所说的那样,用跨平台语言编写游戏...但是考虑使用C#!它是一种受管理的强大语言,并提供了C ++不能提供的许多出色功能,这些功能无法协助游戏开发-并且存在一个名为MonoGame的强大库,类似于在各种平台上运行的XNA。从3.0版开始,在撰写本文时,可以编写完整的游戏并轻松移植到所有移动平台。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.