Answers:
用C / C ++编写它 -这是您最大的任务。两种平台都支持C和C ++,但是方式不同。在Android上,您将使用NDK。在iPhone上,它可以与Objective-C代码一起编译。
您需要花费一些时间围绕每个平台的C / C ++代码构建支架。您应该能够在这方面相当通用,因为它实际上只是将特定于操作系统的功能连接到您的游戏代码中。除非您只打算做一个跨平台项目,或者您不介意为每个所做的项目重新发明轮子,否则不要在这方面有所作为。
使用OpenGL ES-两个平台都支持OpenGL ES。利用它。这将最大限度地减少您需要重写的代码量。在每个平台上您仍然会有一些差异,但是总体上,大多数代码都可以在两个平台上工作。
避免使用特定于平台/语言的API-这应该不言而喻,但是在使用Java时,很容易被Java集合类所吸引。当然,如果您遵循上述第一条规则,那么您在Java中不会做太多事情。反之亦然-与iOS中的Foundation类一样好,如果要移植到另一个平台,请避免使用它们。
如您所见,跨平台运行有很多事情需要担心。如果您是小型独立开发者,那么甚至不值得花时间。您将必须评估您是否真的想开拓自己的足迹,以便针对多个平台。可能需要利用每个平台必须提供的功能才能拥有更快的开发周期。
祝好运!
从Java> Objective-C开始,这将是一个非常痛苦的过程。
数据驱动
构建一个主要由数据驱动的游戏。我认为这是不言而喻的,但是这个方向减少了您必须完全重新实现的工作量。
高而密实的
东西要很小并且模块化。我之所以这样说是因为,如果您可以轻松地安装一个组件并实现它,进行测试和重复,那么移植起来会容易得多。
合同工作
正确玩纸牌,您可能会认识可以帮助您解决此问题的人。如果您是与iPhone开发人员最好的朋友,则可以向他/她购买一些博士。Pepper帮助您迁移代码。
使用多平台引擎
如果您已经有一个项目在运行中,那么它就没有多大意义了。但是,如果您将要进行一个项目,并且您绝对知道该项目将被移植到其他平台,那么可能有必要利用现有技术来帮助您将整个世界融合在一起。Unity3D将通过Unity 3.0获得Android支持。
转换/ shudder /工具
我最不推荐的建议是,您可以使用某种转换工具至少使您的模型从Java> C转换。但是...我不赞成。
如果您正在考虑移植到iPhone,并且您的游戏仍在开发中,那么如果尚未移植,请切换到C ++。当时间到来时,它将使您的代码更加可移植。