2D 跨平台游戏开发引擎 [关闭]

Posted

技术标签:

【中文标题】2D 跨平台游戏开发引擎 [关闭]【英文标题】:2D Cross-Platform Game Development Engines [closed] 【发布时间】:2013-07-11 03:47:37 【问题描述】:

我已经使用 Corona SDK 工作了一段时间,并且喜欢使用 Lua 创建功能强大的应用程序是多么快速和轻松。但是只能编译iosandroid,现在感觉太少了。

我的主要兴趣是它能够编译到桌面和移动。至少在以下方面:

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

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

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

Marmalade Quick - 经过进一步研究,Marmalade Quick 只能为移动端构建! IwGame - 在果酱上工作,并表示它可以部署到 使用 Lua 的桌面和移动设备。非常感谢您提供的任何信息 sio2 - 说“SIO2 是一个基于 OpenGLES 的跨平台 2D 和 3D 适用于 iOS、Android、MacOS 和 Windows 的游戏引擎”和“引擎也 允许您将游戏移植到 Mac Store 和 Windows 上。”,但是 他们的论坛和网页标题是“移动设备游戏引擎”。不能 查找有关它是否可以部署到桌面平台的任何信息,任何信息都是 再次非常感谢。 Loom Engine - Loom 类似于 Haxe + OpenFL(试图吸引 Flash 开发人员),因为它使用类似 AS3 的 ECMAScript,但它不使用它构建本机代码。但是它使用 Cocos2D 进行渲染,所以理论上它应该和 Cocos2D 一样快。 ——感谢博扬。 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 sprites。 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 --- 也没有太多关于 Citrus 的信息。可以为 iOS、Android、Windows、Mac 等构建的 AS3 游戏引擎。 Haxe + OpenFL --- OpenFL (Haxe) 在许多平台上构建为本机,而不仅仅是 Flash。 Windows、Mac、Linux 和 Android 都有可选的本机部署或称为 Neko 的 OpenFL 运行时,理论上比 Flash 更快,SDL 2.0 将很快启用 iOS 部署(ish)。 -- 感谢博扬。 Qt-Project --- 只需在此处链接 Qt 项目,即可构建所有内容,并且拥有一个相当大的社区,其中包含许多第三方库,可以进一步帮助您。 Moai ---我所知道的唯一可以为桌面和移动构建的 Lua 引擎。唯一的缺点是社区不是那么大,文档也不是最好的。但如果你能通过这些,这是一个很好的解决方案,也是我目前正在使用的解决方案。 Adobe --- 不能忘记在此处添加 adobe,因为它可以构建支持 Flash 的所有内容。 Unity3D --- 最近宣布的 2D 集成看起来很有前景,应该会在 2013 年第三季度到第四季度发布。 Cocos2d-x --- 一个开源引擎。支持 JS、Lua、C++ 等多种平台。

html5 --- 似乎很多人都在强调 html5 移动应用程序,这里只是我发现的一些工具,可以帮助您将 html5 项目移植到平台:

    Chromium embedded

    Sencha

    Phonegap

    Appcelerator/Titanium

    冰晶石

因此,如果您能根据自己使用任何引擎的经验发表评论并提出您会推荐的建议,我将非常高兴。 感谢您的帮助!

编辑:由于这个主题越来越受欢迎,我将添加我发现的其他选项。我建议您选择最熟悉且最适合您的项目需求的内容。

【问题讨论】:

OpenFL (Haxe) 在许多平台上构建为本机,而不仅仅是 Flash。 Windows、Mac、Linux 和 Android 都有可选的本机部署或称为 Neko 的 OpenFL 运行时,理论上比 Flash 更快,SDL 2.0 将很快启用 iOS 部署(ish)。 Loom 类似(试图吸引 Flash 开发人员),因为它使用类似 AS3 的 ECMAScript,但它不使用它构建本机代码。但是它使用 Cocos2D 进行渲染,所以理论上它应该和 Cocos2D 一样快 你真的应该把 Cocos2d-X 添加到列表中:cocos2d-x.org 您应该明确地查看 Epic Games 的 UDK。它实际上是针对现代和独立开发者的完整 AAA 引擎。不幸的是,它目前不支持安卓,尽管他们提供了更多支持安卓的完整 UE4 许可。请注意,UE4 刚刚发布,UDK 是一个相当成熟的平台。 另外,如果你想要一些开源和可移植(基于 Java)的东西,请参阅 jMonkeyEngine。 【参考方案1】:

我会推荐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 背后的人之一)

【讨论】:

虽然我确信 V-Play 是一款很棒的产品,但您应该声明您是联合创始人。见:meta.stackexchange.com/a/59302 当然 - 我刚刚添加了它【参考方案2】:

如果您喜欢使用 Python,Kivy 现在是一个很好的解决方案。它可以编译到您要求的所有平台:

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

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

这是一个speakerdeck,它为您提供了一些背景和概述(特定于 Android)。

【讨论】:

虽然 kivy 可用于游戏开发,但它并不完全是游戏引擎,但 kivyent (kivent.org) 是基于 kivy 的游戏引擎,这可能更适合,除非你的游戏非常简单,不需要增加复杂性。【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

我试过了(还真的发布了游戏成品),效果很好!【参考方案5】:

这里没有提到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。

【讨论】:

【参考方案6】:

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

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

【讨论】:

不错的补充。我将很快将其添加到列表中,以及我发现的更多内容,以及更好地组织它。感谢您的意见 是否跨平台兼容? @JCPhlux,是的。我不确定移动设备,但它确实可以在单声道上运行。 fetzenet.de/blog/?page_id=697 是什么?为什么不是这个duality.adamslair.net 已修复。我想他们在我发布答案后不久就搬家了 - github.com/AdamsLair/duality/issues/45【参考方案7】:

我的回答只是为了让您了解如何使用 SDL。正如您之前所说,它不是游戏引擎(实际上只是一个库)。此外,它根本不是面向对象的,而且您没有一些简单的动画工具(您必须自己编写代码)。

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

包括在您想要的平台上构建项目所需的标头。

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

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

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

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

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

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

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

使用起来非常直观,用户界面非常漂亮。

【讨论】:

以上是关于2D 跨平台游戏开发引擎 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

UWP简单示例:快速开发2D游戏引擎

OUZEL:一个针对2D游戏开发的C++游戏引擎

Godot 2D 和 3D 游戏引擎

Godot 2D 和 3D 游戏引擎

适用于 Android 和 iOS 的 2D 跨平台游戏引擎? [关闭]

有没有比 Libgdx 更好的 2D 游戏引擎? [关闭]