免责声明:我在一家名为Particle Code的公司工作,该公司制作跨平台框架。在这个领域有很多公司,每周似乎都会出现新的公司。对你来说是好消息:你有很多选择。
这些框架采用不同的方法,许多框架的基本设计目的是解决不同的问题。有些专注于游戏,有些专注于应用程序。我会问以下问题:
你想写什么?企业应用程序、个人生产力应用程序、益智游戏、第一人称射击游戏?
你喜欢哪种开发环境?IDE还是普通文本编辑器?
你对编程语言有强烈的感觉吗?在我熟悉的框架中,你可以选择ActionScript、C++、C#、Java、Lua和Ruby。
我的公司更多地关注游戏领域,所以我没有太多使用像Titanium、PhoneGap和Sencha这样的JavaScript+CSS框架。但我可以告诉你一些面向游戏的框架。跨平台框架在游戏和富互联网应用程序领域可以发挥优势,因为这些应用程序往往更注重视觉上的独特性,而不是与本机用户界面融合。以下是一些值得关注的框架:
Unity www.unity3d.com 是一款3D游戏引擎。它与我曾经使用过的其他开发环境非常不同。您可以使用3D模型构建场景,并通过将脚本附加到对象来定义行为。您可以使用JavaScript、C#或Boo进行脚本编写。如果您想编写一个基于3D物理的游戏,该游戏可以在iOS、Android、Windows、OS X或游戏机上运行,则这可能是适合您的工具。您还可以使用3D资产编写2D游戏——其中一个很好的例子是独立游戏Max and the Magic Marker,它是一个使用Unity编写的2D物理侧卷游戏。如果您不了解它,我建议您去看看(特别是如果家里有孩子的话)。Max可用于PC、Wii、iOS和Windows Phone 7(尽管后者是一个移植版本,因为Unity不支持WinPhone)。Unity带有一些带有3D资产和纹理的示例游戏,这确实有助于快速掌握这个可能相当复杂的环境。
Corona www.anscamobile.com/corona 是一款使用Lua脚本语言的2D游戏引擎,支持iOS和Android。Corona的卖点是能够用很少的代码快速编写基于物理的游戏,iOS应用商店中基于Corona的游戏数量众多,这证明了它的成功。该环境非常简洁,这将吸引一些人。它带有模拟器和调试器。您可以添加所选的文本编辑器,然后就有了一个开发环境。基本SDK不包括任何UI组件,如按钮或列表框,但是订阅者可以使用CoronaUI附加组件。
Particle SDK www.particlecode.com 是一种稍微通用一些的跨平台解决方案,其背景是游戏领域。您可以使用Java或ActionScript编写,使用MVC应用程序模型。它包括一个基于Eclipse的IDE和一个所见即所得的UI编辑器。我们目前支持为Android、iOS、webOS和Windows Phone 7设备构建。您还可以输出Flash或HTML5以供Web使用。该框架最初是为在线多人社交游戏(例如扑克和双陆棋)开发的,适用于具有复杂逻辑的2D游戏和应用程序。该框架支持2D图形并包含2D物理引擎。
NB:
今天我们宣布,Particle Code已被Titanium跨平台框架的制造商Appcelerator收购。
...
自2012年1月1日起,[Particle Code]将不再正式支持[Particle SDK]平台。
来源
- Airplay SDKwww.madewithmarmalade.com是一个C ++框架,它可以让您在Visual Studio或Xcode中进行开发。它支持2D和3D图形。Airplay面向iOS、Android、Bada、Symbian、webOS和Windows Mobile 6。他们还有一个附加组件来构建PSP的AirPlay应用程序。我的C ++很生疏,所以我没有玩过它,但它看起来很酷。
就学习曲线而言,我会说Unity的学习曲线最陡峭(对我来说),Corona最简单,而Particle和Airplay则处于中间。
另一个有趣的点是框架如何处理不同的表单因素。Corona支持动态缩放,这对Flash开发人员来说很熟悉。这很容易使用,但意味着当从像iPhone这样的4:3屏幕转移到像新的qHD Android设备这样的16:9屏幕时,您会浪费屏幕空间。Particle SDK的UI编辑器可让您设计可伸缩的灵活布局,但也可以让您调整各个屏幕大小的布局。这需要更多时间,但可以让您使应用程序看起来为每个屏幕定制。
当然,适合您的取决于您个人的口味和工作风格以及您的目标,因此我建议下载几个这些工具并尝试一下。所有这些工具都可以免费尝试。
此外,如果我可以发布公共服务公告 - 大多数这些工具都在积极开发中。如果您找到了喜欢的框架,请务必发送反馈并让他们知道您喜欢什么,不喜欢什么以及您想要看到的功能。您真正有机会影响这些工具的下一个版本中的内容。