多平台2D游戏引擎

7
我正在创建一款二维游戏,希望能够在多个平台上运行(如Windows、Mac、iOS和Android等),所以我需要使用开源引擎。主要目标是实现最大的代码可移植性(可能通过脚本来实现)。
如果可以,我更喜欢使用C#语言,但如果必须的话,使用其他语言也不是非常困难。
我已经考虑过MonoGame和Flash,它们都声称具有跨平台和开源的特性。
鉴于我的需求,这两者哪一个更好呢?或者是否有其他游戏引擎/库更适合?

1
如果你想在iOS和Android上使用Mono/MonoGame,你必须获取Xamarin.iOS和Xamarin.Android,它们都不是开源的。 - Kai Hartmann
有没有使用Objective-C/Java的变通方法来加载它? 或者选择另一个引擎会更好? - Liam Flaherty
1
Garage Games的'Torque'可能适合您的需求...您可以使用他们类似于C语言的脚本语言进行编码,并发布到几乎所有相关平台。 - user2454182
4个回答

7
我建议使用Unity3D。它是一个3D平台。但是如果你只使用2维,那就没问题了。在Unity3D中,你可以用C#、Javascript或Boo编写游戏。

Unity是免费的,并且可以导出到Windows Phone、Windows 8应用程序、Windows、Mac、Linux、Android、Blackberry、iOs、Xbox360、Wii和PS3,但是对于最后三个,您需要从Microsoft / Sony / Nintendo获得开发者许可证。但这种可能性是存在的。

更新

以前您需要为ios和android插件付费。现在它们是免费的:

今天,我们在这条漫长的道路上又迈出了一步:从现在开始, 独立的Unity开发人员将能够完全免费地将其游戏部署到 Android和iOS平台。更新Unity, 您将找到Android和iOS构建选项(以前是基本附加组件) 准备好并等待您使用。

来源:http://blogs.unity3d.com/

与此同时,其他平台的支持已经推出(包括Windows Phone、WinRT和BlackBerry)。这些都是免费的。如果您想要专业功能,则需要购买专业许可证。但大多数您需要的东西都在免费版本中。要进行比较,请查看this page

3
Unity不是开源的。 - Liam Flaherty
1
如果我问一下,为什么需要开源呢? - SynerCoder
有两个主要原因。 1)法律问题。我基本上是业余爱好者,无法支付几百美元来支持这些平台。 2)如果我想修改引擎的某个部分(或添加自己的设计师),我需要访问源代码。 - Liam Flaherty
法律问题?您不需要支付任何费用来支持这些平台,它们可以直接使用,除了Xbox360、Playstation和Wii,但是对于这些平台,您需要开发者许可证。其余的都可以直接使用。如果您愿意,还可以制作自己的物理引擎。 - SynerCoder
2
正确,就像你说的,过去需要付费...现在不用了,它们变成免费的了。 - SynerCoder
显示剩余2条评论

3
以下引擎允许您重复使用几乎所有代码,您需要更改的仅是分辨率和从桌面到移动端或反之的触摸输入/控件。建议您查看这些引擎,它们均为开源:
  • libgdx - 该框架使用Java编写,几乎与XNA一样快速, 但比MonoGame更快。 "使用相同的代码基础在Windows、Mac、Linux、Android、iOS和HTML5上发布游戏" - 出自其官网,任何可以运行Java的设备都可以运行你的游戏。拥有庞大的社区,你需要帮助时提问并获得答案不会成为问题。
  • Qt-Project - Qt是一个跨平台应用程序和UI框架,为使用C++或QML(类似于CSS和JavaScript语言)的开发人员提供支持。从Qt 5.1开始,你应该可以构建适用于Android和iOS的应用程序,满足你对所有平台的需求。 拥有庞大的社区。
  • Moai - 该框架使用Lua编写,可以部署到你所需的所有平台。唯一的缺点是社区规模较小,文档有点过时,但在IRC和论坛上的人通常会帮助你,但答案并不总是立即得到回复。你还需要构建自己的主机来构建所需平台的应用程序,但据我上次检查,所有平台都有公共主机可用。

libgdx似乎非常适合您。性能非常出色,社区庞大,并且可以让您在所有平台上重复使用相同的代码,仅举几例。唯一的缺点是它不使用C#。当然,您应该自己研究一下,看看它们是否符合您的要求。祝您在努力实现目标时一切顺利。


我以前从未见过这些引擎,谢谢你!它们似乎非常适合我的需求。 - Liam Flaherty
针对cocos2d,可以看看跨平台的cocos2d-x,这样就不必更改语言,它使用C++编写,而libgdx则使用xamarin作为ios的开发工具,但这不是本地环境,会牺牲一些性能和其他内容,并且需要许可证,学生价格为79美元,独立开发者为299美元。 http://libgdx.badlogicgames.com/features.html @liam,可以查看上面的链接。 - Onur A.
最后,我强烈认为你最好选择那种最符合你自然感觉的方式。一定要试用不同的引擎几天,因为你将在之后的数月中使用它来创建游戏。它们都是很好的解决方案。查找使用这些引擎的游戏示例代码,并找到你喜欢和更喜欢编码的东西,这也有助于你更好地坚持下去。 - Hate Names
1
我听说过 Codename One,它可以在 iOS 上运行 Java。 - Liam Flaherty
1
Codename One 看起来非常有趣,不错的发现。在 iOS 上你不会遇到性能问题,因为 .NET 不是本地的,请相信我。除非你计划创建某种塔防游戏,在该游戏中人物可以在地图上放置50个塔,然后又有100个怪物同时被攻击,否则你真的没有什么可担心的。我从未遇到过任何性能问题,而且我使用过更慢的选项。 - Hate Names
显示剩余5条评论

2
根据您的偏好,有几个选项可供选择;我会列出我最近遇到的一些。
  1. Cocos2d系列似乎在这些日子里非常受欢迎。如果您认为C++对您来说不是问题,那么Cocos2d-X将是一个选择,因为它提供了很多平台。其他Cocos2d系列也可能引起您的注意。我猜测有几个版本,如HTML5、Javascript、Python等,但我认为只有cocos2d-x是跨平台的。
  2. Unity3D(C#、Javascript、Boo)似乎是一个选择,但它不是开源的,以及UDK(UnrealScript)也是同样的情况,但如果您想购买许可证,他们提供源代码。
  3. Flash也可以是一个不错的选择,正如您所提到的。它使用AS3语言,如果您是初学者,这可能非常有用。
  4. ImpactJS也提供了很多平台,它使用HTML5,您可以在此处检查:http://impactjs.com/
列表可能会越来越长,取决于您的需求。您应该清楚地说明您的需求,例如;您想深入多少?哪些平台对您最重要?等等。
祝你好运

Cocos2D 看起来非常吸引人,我想支持尽可能多的平台。 - Liam Flaherty
是的,这些东西现在非常流行,我认为当你开始其中一个时,切换到另一个会更容易,例如cocos2d-iphone -> cocos2d-x。 - Onur A.
我会看看这个进展如何 - Liam Flaherty

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接