2D跨平台游戏开发引擎

时间:2013-07-11 03:47:38

标签: windows mobile cross-platform 2d game-engine

我已经使用Corona SDK工作了一段时间,并且喜欢使用Lua创建功能强大的应用程序的快捷方式。但它只能编译iOS和Android,现在感觉太少了。

我的主要兴趣是能够编译到桌面和移动设备。至少对于以下内容:

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

我更倾向于更倾向于使用Lua类型的脚本而不是ActionScript,但请随意发布您曾经使用过的任何内容并热爱。

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

  • Marmalade Quick - 进一步研究后,Marmalade Quick只能为Mobile构建!
  • IwGame - 在橘子酱上工作并表示可以部署到 桌面和移动与Lua。任何信息都非常感谢
  • sio2 - 说" SIO2是一个基于OpenGLES的跨平台2D和3D 适用于iOS,Android,MacOS和Windows的游戏引擎"和#34;引擎也 允许您在Mac Store和Windows上移植游戏。",但是 他们的论坛和网络标题是#34;移动设备的游戏引擎"。能'吨 找到有关它是否可以部署到桌面平台的任何信息,任何信息都是 非常感谢。
  • Loom Engine - Loom类似于Haxe + OpenFL(试图吸引Flash开发人员),因为它使用类似ASAS的ECMAScript,但它并没有从中构建本机代码。然而,它使用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,以前有人曾经使用过这个吗?
  • 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,我听说它不会收到未来的更新,但是相当稳定?欢迎提供更多信息。
  • Citrus ---也没有关于柑橘的大量信息。 AS3游戏引擎,可以为iOS,Android,Windows,Mac等构建。
  • Haxe + OpenFL --- OpenFL(Haxe)在许多平台上构建为本机,而不仅仅是Flash。 Windows,Mac,Linux和Android都获得可选的本机部署或称为Neko的OpenFL运行时,理论上比Flash更快,SDL 2.0将很快启用iOS部署(ish)。 - 感谢Bojan。
  • Qt-Project ---只需将Qt项目链接到这里,就可以构建一切,并拥有一个非常大的社区,有很多第三方库可以帮助你进一步发展。
  • Moai ---我知道唯一可以为桌面和移动设备构建的Lua引擎。唯一的缺点是社区不是那么大,文档也不是最好的。但是,如果你能够通过这些,这是一个很好的解决方案,也是我目前正在使用的解决方案。
  • Adobe ---不能忘记在这里添加adobe,因为它可以构建支持flash的所有东西。
  • Unity3D ---最近公布的2D整合看起来很有希望,应该会在2013年第3季度发布。
  • Cocos2d-x ---一个开源引擎。支持JS,Lua,C ++和多个平台。
  • Html5 ---似乎有很多关于html5移动应用的重点,这里只是我发现的一些工具可以帮助将html5项目移植到平台:

    1. Chromium embedded

    2. Sencha

    3. Phonegap

    4. Appcelerator/Titanium

    5. Icenium

所以,如果您可以根据自己对任何引擎的经验发表评论并建议您推荐哪一个,我会感到高兴。 谢谢你的帮助!

编辑:由于这个主题越来越受欢迎,我将添加我随着时间的推移发现的其他选项。我建议你选择最熟悉的,最适合你的项目需求。

9 个答案:

答案 0 :(得分:8)

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

它基于C ++,但对QML & JavaScript有一个简洁的脚本支持。 QML是一个不费脑子的学习,可以提高您的工作效率,因为需要的代码更少 - 只需查看与cocos2d-x(减少60%Loc)或Corona(减少15%LoC)的比较同样的游戏。

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

答案 1 :(得分:6)

如果您正在使用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)。

答案 2 :(得分:5)

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

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

enter image description here

答案 3 :(得分:5)

HaxeFlixel怎么样?我们有很多demos选择,当然也支持通过Haxe + OpenFL进行跨平台开发。这是一个托管在GitHub上的开源项目。我们支持all major platforms(包括iOS)。

答案 4 :(得分:4)

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

它已经有Facebook,Twitter,一堆超极本传感器命令,Box2D等等。我从一开始就一直在使用它并喜欢它(你能说出来吗?)。不,我不为The Game Creators(创建它的公司)工作,虽然我承认我确实做了一段时间制作一些应用程序。

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

答案 5 :(得分:4)

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

  

Duality是一个完全用C#编写的灵活的2D游戏框架 -   它就是为了让你的事情变得更轻松。它提供了两者   可扩展的游戏引擎和可视化编辑器。将有   不需要关卡编辑器,测试环境或内容管理器   因为二元性本身就是一切。最重要的是:它是免费的。

答案 6 :(得分:2)

我只是回答您如何使用SDL的一些见解。如前所述,它不是游戏引擎(实际上它只是一个库)。此外,它根本不是面向对象的,你没有一些简单的动画设施(你必须自己编写代码)。

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

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

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

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

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

最后,这个库被用来将Civilization III移植到Linux上,所以是的它可以工作,但它会让你有很多精力来获得与Corona一样的东西;)

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

答案 7 :(得分:2)

Gideros is a great Lua based 2d cross platforms engine,目前支持Android和IOS平台,但还有更多内容。 它还具有一些强大功能,如即时设备测试,自动缩放和自动图像分辨,可轻松定位各种屏幕尺寸,以及通过本机插件扩展每个平台的选项。

答案 8 :(得分:1)

你还有ShiVa3D,Unity3D的一个重要竞争对手。 它使用Lua并支持从移动设备到游戏控制台和Web浏览器的许多平台。

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