2D跨平台游戏开发引擎

我用Corona SDK工作了一段时间,并且喜欢用Lua创buildfunction强大的应用程序的速度和容易程度。 但它只能编译iOS和Android,现在觉得太less了。

我的主要兴趣是它能够编译到桌面和移动。 至less以下几点:

  • 用于桌面的Windows + Mac,作为独立应用程序。
  • iOS + Android移动版。

我更喜欢它更倾向于Luatypes的脚本而不是ActionScript,但是请随意发布任何你曾经工作和喜欢的东西。

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

  • 果酱快速 – 进一步调查后,果酱快速只能build立移动!
  • IwGame – 在果酱之上工作,并表示可以通过Lua部署到桌面和移动设备上。 任何信息都非常赞赏这一点
  • sio2 – 说“SIO2是基于OpenGLES的iOS,Android,MacOS和Windows的跨平台2D和3D游戏引擎”和“引擎还允许你在Mac商店和Windows上移植你的游戏”,但是他们的论坛网页标题是“移动设备的游戏引擎”。 无法find任何信息,如果它可以部署到桌面平台,任何信息非常感激再次。
  • 织机引擎 – 织机类似于Haxe + OpenFL(试图吸引Flash开发者),因为它使用类似于ECMAScript的AS3,但是它不能从它构build本地代码。 但是它使用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,与其他选项相比,这样做的performance还是不错的。
  • GameMaker – 自己的脚本语言GML,我真的记得这个作为非程序员的工具。 它真的发展成为一个真正的引擎,我的意思是认真的发展?
  • 构造2 – 与gamemaker相同的问题
  • 电晕 – Lua但只有手机(仅限Android和iOS)
  • Cocos2D – 似乎它有很多选项,但不知道用相同的语言? 好像你不得不重新写你的整个代码。 任何信息,如果cocos2D可以部署到桌面+移动与几乎相同的代码将不胜感激。
  • Angel2D – 说它可以部署到除了Android以外的任何东西,并使用Lua,任何人曾经使用过这个?
  • libgdx —我只看过这个好东西。 这里是libgdx的基准testing,是我看到它在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可以构build一切非常。
  • XNA + MonoGame — MonoGame的性能似乎只比libgdx略低,可以构build到大多数平台上。 但是我对XNA了解不多,而且我听说它不会收到未来的更新,但相当稳定? 更多信息是受欢迎的。
  • 柑橘 —也没有太多有关柑橘的信息。 AS3游戏引擎,可以为iOS,Android,Windows,Mac等等构build。
  • Haxe + OpenFL — OpenFL(Haxe)在许多平台上构build到本地,而不仅仅是Flash。 Windows,Mac,Linux和Android都可以获得可选的原生部署或称为Neko的OpenFL运行时,这在理论上比Flash快,SDL 2.0将很快启用iOS(ish)。 – 感谢Bojan。
  • Qt-Project —只需在这里连接Qt项目,就可以构build一切,并有一个相当大的社区,有很多的第三方库,以帮助您进一步。
  • Moai —我知道可以为Desktop和Mobile构build的唯一Lua引擎。 唯一的缺点是社区不是那么大,文档不是最好的。 但如果你能通过这些,这是一个很好的解决scheme,我正在使用。
  • Adobe —不能忘记在这里添加adobe,因为它可以构build到支持flash的所有东西。
  • Unity3D —最近宣布的2D整合看起来很有希望,应该会在2013年的Q3-Q4上发布。
  • Cocos2d-x —一个开源引擎。 支持JS,Lua,C ++和多种平台。
  • Html5 —似乎有很多强调HTML5的移动应用程序,这里只是一些工具,我发现可以帮助您的HTML5项目移植到一个平台:

    1. embedded铬

    2. 煎茶

    3. PhoneGap的

    4. Appcelerator的/titanium

    5. Icenium

所以,如果你能从你的任何引擎的经验评论,并build议你会推荐哪一个,我会很高兴。 感谢您的帮助!

编辑:由于这个话题越来越stream行,我会添加其他选项,我发现随着时间的推移。 我build议你select你最熟悉的,最适合你的项目需求。

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

它基于C ++,但对QML和JavaScript有一个整齐的脚本支持。 QML是一个不费吹灰之力就可以学习,可以提高您的生产力,因为只需要更less的代码 – 只需看看与cocos2d-x (低于60%的Loc)或Corona (低于15%的LoC)比较相同的游戏的比较。

(声明:我是V-Play背后的人之一)

如果您正在使用Python, Kivy现在是一个很好的解决scheme。 它汇编到您要求的所有平台:

Kivy运行在Linux,Windows,MacOSX,Android和IOS上。 您可以在所有支持的平台上运行相同的代码。 它可以使用本地大多数input协议和设备,如WM_Touch,WM_Pen,Mac OS X触控板和魔术鼠标,Mtdev,Linux内核HID,TUIO。 包括一个多点触摸鼠标模拟器。

Kivy使用大量优化的代码进行graphics渲染(通过Cython),因此速度也很快。

这是一个speakerdeck ,给你一些背景和概述(特定于android)。

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

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

在这里输入图像说明

如何HaxeFlixel ? 我们有很多的演示 ,当然也支持通过Haxe + OpenFL进行跨平台开发。 这是一个在GitHub上托pipe的开源项目。 我们支持所有主stream平台 (包括iOS)。

这里没有提到应用游戏套件(AGK) ,所以让我填补这个空白。 这是一个主要的2D跨平台SDK,允许您使用C ++或自己的“基本”语言编写一次。 版本2刚刚在Kickstarter上获得了超过400%的资金,并将拥有完整的3D支持,Spine支持(用于2Danimationangular色),子弹物理以及其他一些新function。

它已经有Facebook,Twitter,一堆Ultrabook传感器命令,Box2D等等。 我从一开始就使用它并且喜欢它(你能告诉吗?)。 不,我不是为The Game Creators (创build它的公司)工作的,尽pipe我承认我做了一段时间制作一些应用程序。

从我的angular度来看,最好的function之一就是可以在Windows上开发,并通过Wi-Fi从IDE广播到任何支持的设备,所以当我编码时,我可以在几秒钟内在iPad,Android, Windows,Mac或黑莓Playbook。

如果你有C#背景。 看看Duality。

Duality是一个完全用C#编写的灵活的2D游戏框架 – 在这里让事情变得更简单。 它提供了一个可扩展的游戏引擎和一个可视化编辑器来匹配。 由于Duality本身就是一切,所以不需要关卡编辑器,testing环境或内容pipe理器。 最重要的是:它是免费的。

我只是回答一些关于如何使用SDL的见解。 正如你之前所说,它不是一个游戏引擎(它实际上只是一个库)。 而且,它不是面向对象的,而且你没有一些简单的animation设施(你必须自己编码)。

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

在需要的平台上包含构build项目所需的头文件。

devise你自己的游戏循环,你将在其中设置(至less)整个事件处理系统,帧速率pipe理器和“屏幕清理器(或更新)”(我坚持事实上,你必须手动刷新你的屏幕使用SDL_flip_screen程序这是不是你所关心的与Corona有关的事情)。

然后,使用之前制作的所有“机制”编码您的游戏。

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

最后,这个库被用来将文明III移植到Linux,所以是的,但它会要求你有很多精力来拥有像Corona一样的东西;)

PS:我不是以英语为母语的人,所以请让我知道如果我不清楚:)

Gideros是一个非常好的基于Lua的2d跨平台引擎 ,目前支持Android和IOS平台,但是更多。 它还具有一些很棒的function,如设备testing,自动缩放和自动图像分辨率的即时function,轻松定位各种屏幕尺寸,以及通过本地插件扩展每个平台的选项。

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

非常直观的使用和非常漂亮的用户界面。