2D跨平台游戏开发引擎


84

我使用Corona SDK已有一段时间,并且喜欢使用Lua创建功能强大的应用程序的速度和便捷性。但是它只能针对iOS和Android进行编译,现在感觉太少了。

我主要的兴趣是它能够编译到Desktop AND Mobile。至少对于以下情况:

  • Windows + Mac,用于台式机,作为独立应用程序。
  • 适用于移动设备的iOS + Android。

我希望它更倾向于Lua类型的脚本而不是ActionScript,但是请随时发布您使用过并喜欢的任何内容。

到目前为止,我发现了以下引擎:

  • Marmalade Quick-进一步研究之后,Marmalade Quick只能为Mobile构建!
  • IwGame-可在果酱上使用,并表示可通过Lua部署到台式机和移动设备。任何信息都非常感谢
  • sio2-说“ SIO2是适用于iOS,Android,MacOS和Windows的基于OpenGL的跨平台2D和3D游戏引擎”和“该引擎还允许您将游戏移植到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-与游戏玩家相同的问题
  • Corona -Lua,但仅适用于移动设备(也适用于Android和iOS)
  • Cocos2D-好像它有很多选择,但不确定是否使用相同语言吗?似乎您必须重新编写整个代码。如果cocos2D可以使用几乎相同的代码部署到台式机+移动设备上,则任何信息将不胜感激。
  • Angel2D-说它可以部署到除Android之外的所有内容并使用Lua,以前有人使用过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。但是仍然看起来很神奇。对我来说,这与Qt处于同一水平,几乎是完美的,只是我并不真正担心它的性能。libgdx几乎可以为所有内容构建。
  • XNA + MonoGame --- MonoGame的性能似乎仅比libgdx低一点,可以构建到大多数平台上。但是我对XNA不太了解,听说它不会收到将来的更新,但是稳定吗?欢迎提供更多信息。
  • 柑橘---也没有太多有关柑橘的信息。可为iOS,Android,Windows,Mac等构建的AS3游戏引擎。
  • Haxe + OpenFL --- OpenFL(Haxe)在许多平台上都是本机构建的,而不仅仅是Flash。Windows,Mac,Linux和Android均可获得可选的本机部署或称为Neko的OpenFL运行时,其理论上比Flash快,并且SDL 2.0将很快实现iOS部署。-感谢Bojan。
  • Qt项目-仅在这里链接Qt项目,就可以为所有内容构建,并拥有一个相当大的社区,其中包含许多第三方库,可以为您提供进一步的帮助。
  • Moai ---我知道唯一可以为台式机和移动设备构建的Lua引擎。唯一的缺点是社区规模不大,文档也不是最好的。但是,如果您能通过这些认证,那将是一个很好的解决方案,也是我目前正在使用的解决方案。
  • Adobe ---不能忘记在此处添加Adobe,因为它可以构建到支持Flash的所有内容。
  • Unity3D ---最近宣布的2D集成看起来非常有希望,应该在2013年第3到4季度发布。
  • Cocos2d-x ---一个开源引擎。支持JS,Lua,C ++和多个平台。
  • HTML5 ---似乎有很多强调HTML5的移动应用,这里只是我发现,它可以帮助你的端口HTML5项目,平台的一些工具:

    1. 铬嵌入

    2. 煎茶

    3. 电话间隙

    4. 加速器/钛

    5. Icenium

因此,如果您可以从您使用任何引擎的经验中提出意见并提出建议,我将很高兴。谢谢您的帮助!

编辑:由于这个话题越来越流行,我将添加随着时间的推移我发现的其他选项。我建议您选择最熟悉,最适合您的项目需求的内容。


1
OpenFL(Haxe)可在许多平台上原生构建,而不仅仅是Flash。Windows,Mac,Linux和Android均可获得可选的本机部署或称为Neko的OpenFL运行时,其理论上比Flash快,并且SDL 2.0将很快实现iOS部署。Loom类似于(试图吸引Flash开发人员),因为它使用类似于ECMAScript的AS3,但是它并不从中构建本机代码。但是,它使用Cocos2D进行渲染,因此理论上应该与Cocos2D一样快
Bojan Markovic

2
您确实应该将Cocos2d-X添加到列表中:cocos2d-x.org
Clay

您应该最终查看Epic Games的UDK。它实际上是针对moders和Indie Developers的完整AAA引擎。不幸的是,尽管他们提供了更多的完全支持UE4的UE4许可,但它目前不支持android。请注意,UE4刚刚发布,UDK是一个相当成熟的平台。
IgorČordaš2014年

另外,如果您需要开放源代码和可移植的东西(基于Java),请参见jMonkeyEngine。
IgorČordaš2014年

Answers:


9

我会推荐V-Play(v-play.net)-这是一个基于Qt的跨平台游戏引擎,适用于iOS,Android,Symbian,MeeGo,Blackberry10,并且还可以导出用于Windows,Mac和Linux的本机桌面应用程序。

它基于C ++,但是对QML和JavaScript具有纯净的脚本支持。QML无需学习,可以提高工作效率,因为需要更少的代码-只需比较一下cocos2d-x(比Loc少60%)或Corona(比LoC少15%),就可以比较相同的游戏。

(免责声明:我是V-Play的幕后黑手之一)


1
尽管我确定V-Play是一款了不起的产品,但您应该声明自己是联合创始人。参见:meta.stackexchange.com/a/59302
Nepoxx'3

1
当然-我刚刚加入它
基督教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),因此它也很快。

这是一个扬声器面板,为您提供一些背景知识和概述(特定于Android)。


尽管kivy可以用于游戏开发,但它并不是一个游戏引擎,但是kivyent(kivent.org)是基于kivy的游戏引擎,它可能更适合,除非您的游戏非常简单且不适合需要增加复杂性。
Tshirtman 2014年


5

这是我的游戏框架Oxygine。它是用于移动和PC平台的开源现代硬件加速2D C ++框架。功能:OpenGL(ES)2,压缩纹理,地图集,复杂的动画/补间/精灵,场景图,字体,事件处理,构建工具等。可以构建在SDL2或Marmalade SDK之上。

在引擎的基础上,有一个场景图,类似于Flash。简而言之,您可以将其称为Flash for C ++,但更舒适,更快捷。最初,它是为移动平台(iOS,Android)开发的,但也可以用于PC游戏。

在此处输入图片说明


我已经尝试过(实际上已经发布了完整的游戏产品),效果很好!
Juster 2014年

4

这里没有提及App Game Kit(AGK),所以让我填补空白。它是一个主要的2D跨平台SDK,允许您使用C ++或自己的“基本”语言编写一次代码。第2版​​刚刚在Kickstarter上获得了超过400%的资金,并将提供完整的3D支持,Spine支持(用于2D动画角色),子弹物理以及其他一系列新功能。

它已经有了Facebook,Twitter,一堆Ultrabook传感器命令,Box2D等。我从一开始就一直在使用它,并且喜欢它(您能告诉我吗?)。不,尽管我承认我确实做了一段时间,但我并没有为Game Creators(创建游戏的公司)工作。

从我的角度来看,最好的功能之一就是您可以在Windows上进行开发,并可以通过Wi-Fi从IDE广播到任何受支持的设备,因此在编写代码时,我可以(在几秒钟内)在iPad,Android, Windows,Mac或Blackberry Playbook。


4

如果您具有C#背景。看看双重性。

对偶是一个完全用C#编写的灵活的2D游戏框架,它在这里使您的工作变得更轻松。它提供了可扩展的游戏引擎和可视化编辑器来进行匹配。因为双重性本身就是全部,所以不需要级别编辑器,测试环境或内容管理器。最好的是:它是免费的。


1
不错的补充。我将很快将其添加到列表中,以及我发现的更多信息以及更好地组织它。感谢您的输入
仇恨名称的名称是

跨平台兼容吗?
JCPhlux 2014年

2
@JCPhlux,是的。我不确定移动设备,但它确实可以在单声道上运行。
安迪

那是fetzenet.de/blog/?page_id=697是什么?为什么不选择duality.adamslair.net
RS

固定。我认为他们在我发布答案后不久就搬了-github.com/AdamsLair/duality/issues/45
Andy

2

我只是想给您一些有关如何使用SDL的见解。正如您之前所说,它不是游戏引擎(实际上只是一个库)。此外,它根本不是面向对象的,并且您没有一些简单的动画功能(您必须自己编写代码)。

它是如何工作的(我使用的是C版本,但我猜Lua的绑定应该类似):

包括在所需平台上构建项目所需的标题。

设计您自己的游戏循环,在该循环中,您将(至少)设置整个事件处理系统,帧速率管理器和“屏幕清洁器(或更新器)”(我坚持这样一个事实,您必须手动刷新屏幕使用SDL_flip_screen例程,而这与Corona完全无关。

然后,使用之前制作的所有“力学”对游戏进行编码。

SDL是一个低级库(例如,不要期望拥有易于使用的GUI框架或Corona的故事板框架)。

最终,该库用于将Civilization III移植到Linux,是的,它可以工作,但要消耗大量精力才能拥有与Corona类似的功能;)

PS:我不是英语母语人士,所以如果我不清楚的话,请告诉我:)



1

您还拥有ShiVa3D,它是Unity3D的重要竞争对手。它使用Lua并支持从移动到游戏机和Web浏览器的许多平台。

使用起来非常直观,并且可以很好地使用UI。

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.