跨平台2D图形引擎


57

我正在寻找一个2D图形引擎,该引擎将使我能够发布到Windows,Mac和iPhone,这与Unity 3D所做的非常相似。

是否有一个好的引擎可以做到这一点并且特定于2D?


如果您喜欢冒险,可以随时查看其中一种开源2D游戏,例如Aquaria,Gish和其他Humble Indie Bundle。
MarkovCh1 2010年

6
您忘记了Linux,对这些家伙没有爱吗?
Derek 2012年

Answers:


37

总是有旧的备用数据库SDL。它的级别相当低,但是它的简单性使得它可以移植到数以十万计的平台(包括Windows,Linux,Mac,nintendo DS,wii等)。有一个iPhone端口,我没有用过,但看起来已经足够成熟了。


似乎他们没有1.3版本的“稳定版”,但这是您要获得iPhone支持的版本。您可能需要从其HG存储库中获取1.3版本并自行构建。
Casey

22

确实没有任何理由不能使用Unity3D来创建“ 2D”游戏。您可以使用带纹理的四边形和正交摄影机,并且自己拥有2D游戏。甚至还有一些独特的解决方案,例如使用骨骼动画系统并将精灵放置在不同关节的顶部,或使用真正紧凑的透视相机获得廉价的视差。

甚至有Unity的中间件提供程序来提供更好的Sprite管理解决方案。像精灵管理器2


2
实际上,我一直在这样做。我发现,就用户界面而言,统一性的3D方面趋于妨碍。而且,我总是最终制作出一个虚拟场景,该场景除了带有根脚本的相机外什么也没有。不过,我会检查您提到的链接!
凯文·莱蒂

20

SFML是一个不错的现代,面向对象的跨平台图形引擎。它是硬件加速的(基于OpenGL),并且具有针对

  • C ++
  • C
  • .Net(C#,VB.Net,C ++ / CLI等)
  • 蟒蛇
  • d
  • 红宝石
  • 迷彩

4
SFML +1。很好,但是唯一的问题是缺少iphone端口。
共产党鸭子

12

SDL,Allegro,OpenGL
SDL和Allegro不仅是图形库,而且还是整个游戏开发库。
SDL的缺点之一是它接管了main()并重新定义了它,从而使其很难与其他库结合使用。(以我的经验
来看,是QT)另一个不好的事情是SDL只允许一个窗口(这是稳定的版本1.2,开发版本1.3允许,但是尚无完全支持或记录的文件)
我可以说出SDL的弱点,因为我最了解它,并且可以使用它,但是尽管如此,它还是非常强大的,许多仿真器(包括Mame和ScummVM的端口)以及游戏都可以使用它。
尽管OpenGL广泛用于3D,但它是一个图形库,因此,它也允许通过表面像素级操纵实现2D图形,并在3D和2D中广泛使用硬件加速。


我一直都在Allegro中创建游戏。爱它。
色调

即使在QCoreApplication中有事件循环,Qt也不会接管main。您可以在任意循环中调用qApp-> processEvents,Qt会很高兴。
Mircea Chirea

1
SDL是否必须接管您的主循环?我认为您可以通过不包括SDLmain.h并谨慎做自己的事来避免这种情况……
Ricket 2010年

2
SDL不会接管您的主要游戏循环。通常,您可以自己创建一个,然后在该调用中调用SDL_PollEvent来获取SDL知道的任何事件(键盘输入,鼠标移动等)。
dcarrigg

6

你可以看一下Troll2D

Box2D用于许多平台。包括iPhone。但是您必须找到一种显示这些对象的方法。由于Box2D仅处理2D物理模拟。


Olafur-我想说Troll2D是您的答案,所以您应该从此开始。Box2d应该是事后的想法。
伊恩

5

LÖVE是2D引擎,可以轻松快速地使用Lua语言开发游戏。

它可以在Mac(PPC和Intel),Windows和Linux(32和64位)上运行,并且游戏可以作为一个文件在所有平台上运行的“ .love”文件轻松分发。

它们基本上是您游戏的压缩版本,其zip扩展名重命名为love

不幸的是,目前没有iPhone端口。


5

Cocos2D起源于Mac / Windows下的Python,可在iPhone下以Objective-C 的形式使用。在2D iPhone游戏开发中很流行。雷·温德利希(Ray Wenderlich)为iPhone提供了一些很棒的Cocos2D教程

因为它们已经从Python移到了Objective-C,所以我怀疑您将不再能够从同一代码库在所有平台之间进行交叉编译。


正确,有很多cocos2d端口,但是都使用自己的语言。适用于iPhone的Objective-C,适用于Android的Java,适用于Web的Javascript,适用于原始PC版本的Python和适用于新Windows端口的C ++(可能不支持Windows Mobile)(尚不清楚)。除了名称和设计理念外,它们不能以任何方式互换。
LearnCocos2D 2010年

我认为Cocos2d-x现在是非常稳定的跨平台的,具有一种实现语言:C ++(也包括iPhone)。
legends2k 2012年

4

如果您不担心iPhone,则总是将Flash打包为AIR-丢失了iPhone,但获得了Linux和Web部署。然后,您可以选择适合您的项目的游戏/物理/渲染引擎,例如。FlashPunk,Flixel,Box2d。


您还将获得Android手机支持(至少是更新的手机支持),并且将来可能还会获得Palm / Blackberry / Windows Mobile支持。
davr

现在支持iOS,而不支持Linux。
Danik

4

您可以尝试使用Angel Engine。它基于C ++,OpenGL,Box2D,并且使用Python进行脚本编写。它主要用于原型制作,但最近的版本似乎专注于制作完整游戏。



2

PlayN支持HTML5,Android,iOS,Flash和桌面Java。

您用Java编写代码,它可以将Java代码转换为HTML的JavaScript(通过GWT),转换为ARM汇编(通过IKVM从Java字节码转换为CLR字节码,然后通过MonoTouch将CLR字节码编译为本地iOS应用),通过自定义的GWT后端(生成JavaScript而不是JavaScript的GWT后端)连接到ActionScript,以及不进行任何转换的Android和桌面Java。


2

Moai SDK是可以在这些平台上运行的框架。它是开源的,因此请查看他们的github repo

Moai也可以发布到Google Chrome和Android。

*我不认为目前可以在Mac或Windows上发布(即到.app或.exe),但可以添加发布。


1

Haxe + NME支持HTML5,Flash,Android,iOS,Blackberry,Windows,Mac,Linux,WebOS。它支持2D图形(位图精灵,矢量绘图,以及阴影和模糊效果)。


0

最近,我已经为从事iPhone和iPod touch开发的人们听到了很多有关MonoTouch的信息。该框架位于Mono之上,Mono已经跨平台兼容。


不幸的是,这违反了iTunes商店协议,因为您使用非C / C ++ / ObjC语言编写内容并使用翻译层。您可能仍会获得批准,但将来可能会吸引您。我个人不会冒险。
davr

自1年前起,@ davr monotouch并未违反协议条款。
dodgy_coder 2012年

@dodgy_coder是的,我还记得苹果公司最终制定出那些弱智的规则时(我相信这些规则仅是为了损害Adobe)。我最初的评论在我发表时是正确的:)
davr 2012年

-1

Unity3d是最好的2d游戏开发工具和引擎。或者单人游戏。html5和flash不适合该主题。已经闪光灯熄灭。

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.