2D跨平台游戏开发引擎

85
我已经使用Corona SDK有一段时间了,喜欢使用Lua创建强大应用程序的快速简便。但是它只能编译iOS和Android,现在感觉有点不够用了。
我主要希望它能够编译为桌面和移动端。至少包括以下内容:
  • Windows + Mac用于桌面,作为独立应用程序。
  • iOS + Android用于移动端。
我更喜欢Lean向Lua类型脚本而非ActionScript,但请随意发布您所使用和喜爱的任何内容。
到目前为止,我已经找到了以下引擎:
  • Marmalade Quick - 经过进一步研究,Marmalade Quick只能为移动设备构建!
  • IwGame - 基于Marmalade开发,可以使用Lua在桌面和移动设备上部署。任何信息都会受到高度赞赏。
  • sio2 - 说“SIO2是一个基于OpenGLES的跨平台2D和3D游戏引擎,适用于iOS、Android、MacOS和Windows”,并且“该引擎还允许您将游戏移植到Mac Store和Windows。”但是他们的论坛和网站标题是“移动设备游戏引擎”。找不到有关是否可以部署到桌面平台的任何信息,再次感谢任何信息。
  • Loom Engine - Loom类似于Haxe + OpenFL(试图吸引Flash开发人员),因为它使用类似于ECMAScript的AS3,但它不会从中构建本机代码。但是,它使用Cocos2D进行渲染,因此理论上应该与Cocos2D一样快。 - 感谢Bojan。
  • SDL - 我在多个地方阅读过SDL可以部署到几乎任何平台或设备,并具有Lua绑定。但我找不到它是如何工作的,因为它不是引擎。任何能解释它如何工作以及是否可能的人都非常感谢。
  • SFML - “Windows,Linux,Mac OS X和即将推出的Android和iOS。”不使用Lua,但可以使用其他语言,如Java和Python等。有关此信息的任何信息都可以提供吗?
  • Torgue2D - “Torque 2D是专为OS X、Windows和iOS设备开发的,并在所有平台上运行得同样好。”使用TorgueScript,没有Android =(
  • Sencha - 似乎可以编译到所有平台,还使用了我知道的JavaScript。但是,即使使用V8 JS,与其他选项相比,这个性能如何?
  • GameMaker - 自己的脚本语言GML,我记得这是一个面向非程序员的工具。它实际上已经成长为一个真正的引擎了吗,我的意思是用于严肃的开发?
  • Construct2 - 和gamemaker一样的问题
  • Corona - Lua但仅限移动设备(仅限Android和iOS)
  • Cocos2D - 看起来有很多选项,但不确定是否使用相同的语言?看起来你必须重新编写整个代码。如果cocos2D可以使用几乎相同的代码部署到桌面+移动设备,则会非常感谢任何信息。
  • Angel2D - 说它可以部署到除Android之外的所有设备,并使用Lua,有人以前使用过吗?
  • libgdx ---我只看到关于这个好的东西。这里是libgdx的基准测试结果,这就是我看到它在60fps时达到40k精灵的地方。 http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml。实际上,libgdx似乎仅略微超过30k。
    所以,如果您能从自己的经验中评论任何引擎并建议推荐哪一个,我会很高兴。感谢您的帮助!
    编辑:由于这个话题越来越受欢迎,我将添加我随时间发现的其他选项。我建议您选择最熟悉且最适合您项目需求的内容。

1
OpenFL(Haxe)可以在许多平台上生成本地代码,而不仅仅是 Flash。Windows、Mac、Linux 和 Android 都有可选的本地部署或称为 Neko 的 OpenFL 运行时,理论上比 Flash 更快,而 SDL 2.0 将很快实现 iOS 部署。Loom 与 OpenFL 类似(旨在吸引 Flash 开发人员),因为它使用类似 ECMAScript 的 AS3,但它不能从中生成本地代码。但是,它使用 Cocos2D 进行呈现,因此理论上应该与 Cocos2D 一样快。 - Bojan Markovic
2
你真的应该将Cocos2d-X添加到列表中:http://www.cocos2d-x.org/ - Clay
你一定要看看Epic Games的UDK。它是一个专为模组制作者和独立开发者设计的完整AAA引擎。不幸的是,目前它不支持安卓系统,尽管他们已经推出了更加可用的UE4许可证,该许可证支持安卓系统。请注意,UE4刚刚发布,而UDK则是一个相当成熟的平台。 - Igor Čordaš
如果您想要一个开源且可移植的东西(基于Java),请查看jMonkeyEngine。 - Igor Čordaš
9个回答

9
我会推荐V-Play (v-play.net) - 它是一个基于Qt的跨平台游戏引擎,支持iOS、Android、Symbian、MeeGo、Blackberry10,并且可以导出原生桌面应用程序,适用于Windows、Mac和Linux。
它基于C ++,但对QML&JavaScript提供了良好的脚本支持。 QML易于学习,可提高生产力,因为需要较少的代码 - 只需查看与cocos2d-x(60% less Loc)或Corona(15% less LoC)相同游戏的比较即可。
(免责声明:我是V-Play背后的人之一)

1
虽然我相信V-Play是一个很棒的产品,但你应该放置一个免责声明,说明你是联合创始人。参见:http://meta.stackexchange.com/a/59302 - Nepoxx
1
当然 - 我刚刚添加了它。 - Christian Feldbacher

7
如果你喜欢使用Python,Kivy是当前一个很好的解决方案。它可以编译到所有你需要的平台上:

Kivy可以运行在Linux、Windows、MacOSX、Android和IOS上。你可以在所有支持的平台上运行相同的代码。它可以本地使用大多数输入协议和设备,如WM_Touch、WM_Pen、Mac OS X Trackpad和Magic Mouse、Mtdev、Linux Kernel HID、TUIO。还包括多点触摸鼠标模拟器。

Kivy使用了许多针对图形渲染的优化代码(通过Cython),因此它也非常快。
这里有一个speakerdeck,它给出了一些背景和概述(特别是关于Android)。

虽然kivy可以用于游戏开发,但它并不是一个游戏引擎。而基于kivy的游戏引擎kivyent(kivent.org)则更加适合游戏开发,除非你的游戏非常简单且不需要额外的复杂性。 - Tshirtman

6

那么 HaxeFlixel 呢?我们有很多演示可供选择,并且当然支持通过 Haxe + OpenFL 进行跨平台开发。这是一个托管在GitHub上的开源项目。我们支持所有主要平台(包括 iOS)。


5

这是我的游戏框架Oxygine

它是一个开源的现代化、硬件加速的2D C++框架,适用于移动和PC平台。

特征:OpenGL(ES)2、压缩纹理、图集、复杂的动画/补间/精灵、场景图、字体、事件处理、构建工具等。可以建立在SDL2或Marmalade SDK之上。

引擎的基础是场景图,类似于Flash。简而言之,你可以称其为C++版的Flash,但更加舒适和快速。最初是为移动平台(iOS、Android)开发的,但也可用于PC游戏。

enter image description here


我已经尝试过它(并实际发布了一个完成的游戏产品),效果非常好! - Juster

4
如果您有C#背景,请看一下Duality。 Duality是一个灵活的2D游戏框架,完全用C#编写-它在这里为您简化了一些事情。它提供了可扩展的游戏引擎和相应的可视化编辑器。由于Duality本身就包含了关卡编辑器、测试环境和内容管理器,因此没有必要再使用这些工具。最重要的是:它是免费的。

1
不错的补充。我很快会将它加入到列表中,并加入另外几个我发现的,以及更好地组织它们。感谢您的贡献。 - Hate Names
它是否跨平台兼容? - JCPhlux
2
@JCPhlux,是的。我不确定移动端怎么样,但它可以在mono上运行。 - Andy
那个http://www.fetzenet.de/blog/?page_id=697是什么?为什么不用这个https://duality.adamslair.net/? - R S
已解决。我认为他们在我发布答案后不久就搬走了 - https://github.com/AdamsLair/duality/issues/45 - Andy

4
这里没有提到App Game Kit (AGK),让我来填补一下。它是一个跨平台的SDK,主要是2D,允许您在C++或者它自己的“Basic”语言中编写一次代码。第二版刚刚在Kickstarter上获得了超过400%的资金支持,并将支持完整的3D、Spine动画角色(用于2D动画)、子弹物理和其他很多新功能。
它已经拥有Facebook、Twitter、一堆Ultrabook传感器命令、Box2D等等。我从一开始就在使用它,非常喜欢(可以看出来吗?)。不,我不工作在The Game Creators(创建它的公司)工作,虽然我承认我曾经做过一段时间的应用程序开发。
从我的角度来看,最好的功能之一是您可以在Windows上开发,并通过Wi-Fi从IDE广播到任何支持的设备上,因此当我在编码时,我可以(在几秒钟内)在iPad、Android、Windows、Mac或Blackberry Playbook上测试我的代码。

2
我想给你一些关于SDL如何使用的见解。正如你之前所说,它不是游戏引擎(实际上只是一个库)。此外,它根本没有面向对象的特性,您也没有易于进行动画处理的工具(您必须自己编写代码来实现)。
使用方式(我使用的是C版本,但我猜Lua绑定应该类似):
包含所需的头文件以在您想要的平台上构建项目。
设计自己的游戏循环,在其中设置(至少)整个事件处理系统、帧速率管理器和“屏幕清理器(或更新器)”(我要强调的是,您必须手动使用SDL_flip_screen例程刷新屏幕,而这不是Corona的其中一个问题)。
然后,使用之前制作的所有“机制”编写游戏。
SDL是一个低级库(不要期望有易于使用的GUI框架或类似Corona的Storyboard框架)。
最后,这个库被用来将文明三移植到Linux,所以它确实可以工作,但要做出类似于Corona的东西需要大量精力 ;)
PS:我不是母语为英语的人,如果我表达不清楚,请告诉我 :)

2
Gideros是一款基于Lua的2D跨平台引擎,目前支持Android和IOS平台,但未来还将支持更多平台。它还拥有一些出色的功能,如即时设备测试、自动缩放和自动图像分辨率,以轻松定位各种屏幕尺寸,同时还可以通过本地插件扩展每个平台。

1
你还有ShiVa3D,它是Unity3D的一个严肃竞争对手。它使用Lua语言,并支持从移动设备到游戏机和Web浏览器等多个平台。
非常直观易用,界面也非常漂亮。

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