二维跨平台游戏开发引擎

我已经使用 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 的游戏引擎”和“引擎也 允许你把你的游戏移植到 Mac 商店和 Windows 上”,但是 他们的论坛和网页标题是“移动设备的游戏引擎” 找到任何信息,如果它可以部署到桌面平台,任何信息是 非常感谢。
  • Loom Engine -Loom 类似于 Hax + 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,我实际上记得这是一个非程序员的工具。它真的成长为一个真正的引擎,我的意思是认真的发展?
  • 构造2 -与游戏制作者相同的问题
  • Corona -Lua 但只能移动(Android 和 iOS 也是如此)
  • Cocos2D -看起来它有很多选项,但是不确定是否使用相同的语言?看起来你得重写整个代码。如果 cocos2D 可以部署到桌面 + 移动设备上的任何信息与几乎相同的代码将不胜感激。
  • Angel2D -说它可以部署到除 Android 以外的任何地方,并且使用 Lua,以前有人用过这个吗?
  • Libgdx ——我只看到这方面的好处。下面是一个针对 libgdx 的基准测试,我看到它在60fps 的速度下达到了40k sprites。http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml.看起来 libgdx 实际上只有3万多。但看起来还是很棒。对我来说,这和 Qt 是一个级别的,几乎完美,除了我并不担心它的性能。Libgdx 几乎可以构建任何东西。
  • XNA + MonoGame——-MonoGame 的性能似乎仅略低于 libgdx,可以构建到大多数平台。然而,我对 XNA 了解不多,我听说它不会接收未来的更新,但是它是相当稳定的吗?欢迎提供更多信息。
  • 柑橘 ——-也没有太多关于柑橘的信息。AS3游戏引擎,可以为 iOS,Android,Windows,Mac 和更多。
  • 哈克斯 + OpenFL——-OpenFL (哈克斯)构建到许多平台上的本机,而不仅仅是 Flash。Windows、 Mac、 Linux 和 Android 都有可选的本地部署或称为 Neko 的 OpenFL 运行时,理论上比 Flash 快,而且 SDL 2.0将很快启用 iOS 部署。——感谢 Bojan。
  • Qt-Project ——在这里只需链接 Qt 项目,就可以构建任何东西,并且有一个非常大的社区,有许多第三方库可以进一步帮助您。
  • Moai ——我所知道的唯一可以为桌面和移动设备构建的 Lua 引擎。唯一的缺点是社区不是很大,文档也不是最好的。但是,如果你能通过这些,这是一个伟大的解决方案,我正在使用的一个。
  • Adobe ——别忘了在这里添加 Adobe,因为它可以构建支持 flash 的所有东西。
  • Unity3D ——最近宣布的2D 集成看起来非常有前途,应该会在2013年第三季度到第四季度发布。
  • Cocos2d-x ——一个开源引擎,支持 JS、 Lua、 C + + 和多种平台。
  • Html5 ——看起来对于 html5移动应用程序有很多的强调,这里只是我发现的一些工具,可以帮助你把你的 html5项目移植到一个平台上:

    1. 内嵌铬

    2. 森卡

    3. 接电话

    4. 贴片机/钛合金

    5. 伊森尼

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

编辑: 由于这个话题越来越受欢迎,我将增加其他选项,我已经找到了随着时间的推移。我建议您选择您最熟悉的,并且最适合您的项目需要的。

71611 次浏览

I would recommend V-Play (v-play.net) - it's a cross-platform game engine based on Qt for iOS, Android, Symbian, MeeGo, Blackberry10 and also can export for native desktop applications for Windows, Mac and Linux.

It's based on C++ but has a neat scripting support for QML & JavaScript. QML is a no-brainer to learn and can boost your productivity as less code is needed - just see the comparison with cocos2d-x(60% less Loc) or Corona(15% less LoC) for a comparison of the same games.

(Disclaimer: I'm one of the guys behind V-Play)

No mention of App Game Kit (AGK) here so let me fill in the gap. It's a mainly 2D cross platform SDK allowing you to code once in either C++ or it's own "Basic" language. Version 2 just got over 400% funding on Kickstarter and will have full 3D support, Spine support (for 2D animated characters), bullet physics and whole bunch of other new features.

It already has Facebook, Twitter, a bunch of Ultrabook sensor commands, Box2D and more. I've been using it from the start and love it (can you tell?). No, I don't work for The Game Creators (the company that created it) although I admit I did do for a while making some apps.

One of the best features from my point of view is you can develop on Windows and broadcast from the IDE over Wi-Fi to any supported device, so while I'm coding I can (within seconds) test my code on iPad, Android, Windows, Mac or Blackberry Playbook.

If you have C# background. Have a look at Duality.

Duality is a flexible 2D game framework written entirely in C# – and it’s here to make things a little easier for you. It provides both an extensible game engine and a visual editor to match. There will be no need for a level editor, testing environment or content manager because Duality is all that by itself. And best of all: It’s free.

Here is my game framework Oxygine. It is open source modern hardware accelerated 2D C++ framework for mobile and PC platforms. Features: OpenGL(ES) 2, compressed textures, atlases, complex animations/tweens/sprites, scene graph, fonts, event handling, build tools, and others. Can be built on top of SDL2 or Marmalade SDK.

In the basis of the engine there is a scene graph, that is similar to Flash one. To be short, You can call this as Flash for C++, but more comfortable and way faster. Initially it was developed for mobile platforms (iOS, Android), but can be also used for PC games.

enter image description here

I'm just answering to give you some insights on how the SDL is used. As you said before it's not a game engine (it's just a library actually). Furthermore, it is not object oriented at all and you don't have some easy animation facilities (you have to code them by yourself).

How it works (I used the C version but I guess the Lua binding should be similar):

Include the headers needed to build the project on the platform you want.

Design your own game loop in which you will set up (at least) a whole event processing system, frame rate manager and a "screen cleaner (or updater)" (I'm insisting on the fact that you have to manually refresh your screen using the SDL_flip_screen routine which is something that is not one of your concerns at all with Corona).

Then, code your game using all the "mechanics" you made before.

The SDL is a low level library (don't expect to have an easy to use GUI framework or the storyboard framework of Corona for instance).

Finally, this library was used to port Civilization III to Linux, so yes it works but it will ask you a lot of energy to have something like you had with Corona ;)

PS: I am not a native English speaker, so please let me know if I wasn't clear :)

How about HaxeFlixel? We have a great selection of demos, and of course support cross platform development via Haxe + OpenFL. This is an open source project hosted on GitHub. We support all major platforms (including iOS).

If you are into using Python, Kivy is a great solution these days. It compiles to all the platforms you ask for:

Kivy is running on Linux, Windows, MacOSX, Android and IOS. You can run the same code on all supported platforms. It can use natively most inputs protocols and devices like WM_Touch, WM_Pen, Mac OS X Trackpad and Magic Mouse, Mtdev, Linux Kernel HID, TUIO. A multi-touch mouse simulator is included.

Kivy uses lots of optimized code for graphics rendering (via Cython) so it is fast too.

Here is a speakerdeck that gives you some background and an overview (android specific).

You also have ShiVa3D, a serious competitor of Unity3D. It uses Lua and supports many platforms from mobile to game consoles and web browsers.

Very intuitive to use and very nice UI to work with.

Gideros is a great Lua based 2d cross platforms engine, currently supporting both Android and IOS platforms, but more to come. And it also has some great features as instant on device testing, auto scaling and auto image resolution to easily target various of screen sizes, as well as the option to extend each platform through native plugins.