适用于Android的2D游戏库/框架/引擎[关闭]


Answers:


62

编辑:PSA:请记住,此答案写于2012年,三年后,存在更多引擎,其中许多引擎纯粹是为移动设备制造的。不要认为这个答案是理所当然的,请在Google中搜索最新的引擎。


我在Android上移植了Irrlicht,并将其用于2D游戏。这不是最好的解决方案,但我的表现很出色。我尝试了许多Java框架,但是垃圾收集器会在G1手机上的0.2秒内使您的游戏滞后...因此,框架应该非常谨慎地进行分配。

商业C ++框架:

  • unity3D:非常好(可在Android,iOS,Web,Windows,OS X上使用)[游戏:火箭兔子]
  • 虚幻引擎(商业):最好的引擎,但不适合初学者[游戏:地下城防御者]

开源C ++框架:

  • SDL:可能是游戏开发者,开源和跨平台(包括移动设备)的最佳C库
  • Ogre3D:最好的开源3d引擎,但是它是一个大型框架
  • Irrlicht:良好的性能,轻巧的框架[游戏:Moblox]
  • Linderdaum Engine:适用于Windows和Android的开源
  • Cocos2d-x:开源跨平台

Java开源框架:

  • LibGDX:开源,非常受欢迎,支持多个平台,支持Tiled,Box2D等,良好的文档资料
  • AndEngine(开源):良好的性能。有关文档,请查看示例并阅读源代码。但这是一个免费的库,可以开始一个游戏项目[Game:Drop Block]
  • 适用于Android的cocos2d:垃圾收集器问题
  • rokon:表现出色,专为移动设备而设计,但项目似乎已死。

物理引擎:

  • box2d(OpenSource):快速简便
  • jbox2d(开放源代码):在Java上太慢了,我用SWIG制作了JNI包装器以使用本机box2d(AndEngine所做的相同)
  • Chipmunk(OpenSource):速度很快,但我更喜欢box2d
  • bullet(OpenSource):出色的3D引擎

警告,使用Froyo和JIT,Java库的性能要好得多。但是垃圾收集器问题始终有效。使用姜饼,垃圾收集器是连续的,因此没有问题。


1
我还想添加cocos2d-x,它具有MIT许可证,可在Android,iOS和Windows Phone上使用。我相信这与上面提到的有所不同,因为这是专门用C ++而不是Java编写的。
Jamornh'5

AndEngine从libgdx借用box2d包装器。
Matsemann

6
Unity3d不是C ++。它支持C#,JavaScript方言和boo
lhk 2012年

如果您愿意的话,也绝对可以通过本机完成。制作Tiny Words的家伙做了jmoses.co/2014/10/23/…–
John Moses

1
SDL不是Java;它不是Java。它是C。您可能遇到的Java是调用C代码的包装器/绑定。该引擎的功能均未在Java中发生。
Slipp D. Thompson


11

AndEngine相当新,但是它是开源的,并且看起来很有希望。

自我描述:

免费的Android 2D OpenGL游戏引擎。AndEngine由Nicolas Gramlich开发。


1
我已经从iPhone上的Cocos2d进行了一些实验,到目前为止,对于基于sprite的2d游戏来说,这似乎还不错。该项目似乎很活跃,周围有一个不错的论坛社区。
马特·格斯特

关于AndEngine ...我开始制作一款非常基本的游戏,一段时间后,我开始发现关于AndEngine的负面评论,尤其是它与很多精灵的性能。因此,我进行了一项测试,并在仍处于早期开发阶段的时候在游戏中添加了20个精灵。我“按书”做了一切,这几乎扼杀了HTC的Z欲望。非常失望,改用LibGDX。

@AscensionSystems我不知道您在那做什么,但我知道您做错了。使用Desire Z,您可以轻松在屏幕上放置数百个移动的精灵。只需在示例中运行基准测试,您就会知道如何正确执行。
尼古拉斯·格拉姆利希

谢谢Nicolas,我很欣赏您为引擎“坚持”的事实,但是坦率地说,我没有做错任何事情。它与android有关,并且VBO的调用也触发了GC。通过禁用VBO,我可以使andengine正常工作,但这也使我的手机变得如此热,以至于在播放约5分钟后就会出现故障。我在libGDX上也遇到了同样的问题,所以我用C ++编写了自己的引擎。另外,使用示例应用程序也无法在屏幕上显示“数百”。我可以得到大约90 128x128、2个“帧”动画物理精灵,然后才能与您的引擎保持一致。

(续)...在我的引擎中,我可以在屏幕上获得170、512x512、16个“帧”动画的物理精灵,然后才能看到帧率甚至开始降至60 fps以下。

8

我想你可以使用游戏副本岛克里斯PRUETT作为2D游戏的一个例子。我认为这应该是其他游戏的基础,正如Google I / O 2010的这段视频中所解释的那样。您可以在此处观看比赛。


是的,那是一个不错的视频,绝对值得一看,尤其是当他谈到效率时。
Spidey

7

适用于Android的Unity3D(从技术上讲,它可以用来制作2D游戏)即将推出:http//unity3d.com/


是的,我完全同意。其次,如果您支付Unity3D许可证的费用,则可以在多个平台上发布相同的作品。因此,您从免费的WINDOWS / MAC许可证开始。学习程序。然后将许可证升级到您认为合适的平台。虽然目前Android仅是PRO版本,这意味着您需要Unity3D PRO + Android PRO = $ 3000 ...
BerggreenDK 2010年

使用iOS的Cocos2D制作了10-15个2D游戏后,我使用Unity 4.6制作了一个游戏,这是一个糟糕的体验,缓慢且有错误-对于iOS-无法说出其他平台的性能。.虽然4.6有了很多改进自从早期使用2D东西开始,它就离专用的2D渲染引擎(如Cocos2D或其他大多数东西)不远了。性能太差了,他们仍然在争取iOS 64位支持。就是说,多平台强度当然是最大的强度。
乔尼2015年




4

目前正在有一个SDL的Android端口,SDL可能是目前最好的2D图形框架。它是由暴雪的一位负责人设计的,因此您已经了解到一些真正的游戏制作专业知识。




2

我正在开发一个名为YoghurtGum的开源2D游戏引擎,该引擎应该适用于Windows Mobile和Android。但是,事实证明,将整个过程移植到Android C ++非常困难。

我知道,这是有史以来最无益的答案。


2

如果您想在AIR for Android中进行开发,则可以使用Flash。Flash本身确实没有任何游戏特定的功能,但是由于Flash在网络上的成功,因此有大量的第三方库专门为游戏而设计。

Flash中一些比较流行的游戏第三方框架包括Flixel(http://flixel.org/)和PushButtonEngine(http://pushbuttonengine.com/),它们完全是为游戏开发而设计的。闪光灯还具备(上面提到的物理引擎-一个版本的Box2D的http://box2dflash.sourceforge.net/),并有各种3D库,如Papervision(http://code.google.com/p/papervision3d/)如果您将来想走那条路。

但是,在AIR中进行开发的主要缺点是,我非常确定您需要以Froyo 2.2或更高版本为目标,因此旧款手机将被淘汰。


除了AndEngine之外,我还在玩AIR for Android Betas,如果运行缓慢的话,它们也很不错。我认为这对于策略游戏或动作元素不太多的动作非常有效。我一直在使用2.1版的Beta版,因此2.2版的最终发行版可能很快,但我不确定。绝对值得一看。
马特·格斯特


0

PlayN是一个平台的2D游戏框架,除HTML5,Flash和JVM外,还针对Android。它有些新,但是用于编写《愤怒的小鸟》的HTML5实现,并且具有相当活跃的社区。

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.