Libgdx还是Playn?

23

我需要选择一个跨平台移动游戏开发框架,希望能得到一些帮助。

我已经将选择范围缩小至 libgdxplayn

我计划制作主要针对 Android 的游戏,但也希望能够在 iOS 上发布,并可以作为 HTML 游戏。我知道 libgdx 目前不支持 iOS,但我也知道它正在开发中,并且我对开发者有信心。

如果有人有 libgdx 和/或 playn 的经验(最好都有),我会非常感激您分享您的经验以及您选择哪个框架以及原因。


你能分享一下为什么cocos2d-x没有进入你的列表吗?对我来说,这归结于libgdx与cocos2d-x之间的比较,但我之前没有听说过playn。 - Code Droid
8个回答

16
我认为在这一点上,两者都是不错的选择。原因如下...
我没有使用过Libdx,但我浏览了他们的网站。我认为这两个项目都看起来很不错。如果我要选择一个游戏引擎,我的决定将基于功能、稳定性和支持。
首先是支持方面,两个项目似乎都有非常专注的贡献者。PlayN的Michael Bayne是一个出色的编码机器。BadLogicGames(libgdx)的Mario似乎非常专注。这两个项目似乎都有一个健康的贡献者和支持者团队。
关于功能,它们似乎相当匹配。两者都可以使创建2D游戏成为一种很棒的体验。Libgdx似乎在3D方面更有优势,但如果你期望能够轻松地创建一个杀手级别的3D游戏体验,那么这两个框架都无法为你承担重任。Libgdx似乎甚至没有像JMonkey那样发展得如此之远的3D工具包,后者也无法与商业工具包竞争。

说实话,如果你想制作一款商业化的3D游戏来与其他商业化产品竞争,你需要购买一款商业化的3D引擎(并且需要一个相当能干的团队)。这两个项目都无法提供你所需的工具,以便快速地生成美丽的图像... 与Unity引擎相比。

http://www.youtube.com/watch?v=Fc9m0Z1GDg8

PlayN的开发人员似乎更加谨慎,试图在不影响2D API和使用体验的情况下提供良好的3D API。在这里,您可以阅读他们谨慎讨论如何最好地暴露OpenGL ES 2.0层。

http://goo.gl/5f3ls

Libgdx的方法似乎比较激进。两者都有优点和缺点。我的游戏中使用了Vecmath进行一些3D计算,它位于PlayN之上。这是代码,您可以在可行的情况下混合匹配。
考虑到它们在目的和执行方面都非常相似,很可能会有相当多的交叉污染。您可以在此处看到,Libgdx的大部分Maven支持都是从PlayN的配置中复制的。

http://www.badlogicgames.com/wordpress/?p=2707

此外,Libgdx只支持iOS平台,这是因为Michael(PlayN的创始人)创建了IVKM。之后,Mario还必须添加JNI支持以实现他的C++特性。

http://www.badlogicgames.com/wordpress/?p=2791

这两个项目互相了解,相互学习对方前进的方式。

就稳定性而言,最好通过每个项目的成功案例来衡量。Tupsu和AngrybirdsChrome在PlayN上,Ingress和其他项目在Libgdx上。

PlayN是纯Java,因为它基于Android/html API等。 Libgdx似乎在某些平台上有一些C++。这非常取决于您正在做什么,即对于Web,GWT实际上无法编译任何C++模块。此外,只要您可以避免GC并且不固执于使用语言的方式,Java的速度与C++相当(通常略慢,有时更快)。

话虽如此,C++在某些用例中仍然可能有用。

有人回答说,Libgdx可以支持单核手机上的大量精灵吞吐量,暗示这是由于C++。这不是Libgdx使用C++的领域。请参见功能。

http://libgdx.badlogicgames.com/features.html

这两个框架在精灵吞吐量方面的表现可能相似。您可以在这里玩PlayN的网络性能测试。单击统计计数器增加数字。

http://samskivert.com/playn/perf-test/

两者都有类似于菜单UI的东西,坐在框架上面。

最终我还是选择了PlayN,因为我认为没有真正的理由去换,而且这也是我一开始使用的。你的情况可能会有所不同。


平衡、全面的答案。 - BlueSilver
2
我的答案现在已经过时了,因为像RoboVM这样的技术已经发展出来了。Michael的代码仍然是最完美的。通过研究他的代码,你会成为一个更好的程序员。然而,由于Libgdx社区的规模和他们的开发速度,肯定存在一些优势。 - Daniel Gerson

13

我投票支持libgdx。相较于playn,libgdx似乎更为全面,拥有非常活跃的社区,支持几乎所有playn支持的平台(一些支持即将到来),且文档非常完善。此外,如果你特别针对Android(正如你的问题所暗示的那样),我宁愿说libgdx是事实上适用于Android的框架。


9

我的团队已经在使用libgdx进行开发,效果非常好。你可以添加box2d来处理物理效果,并且不需要使用糟糕的Android模拟器进行调试。所有的工作都是用Java完成的,你只需要将项目导入到Android项目中,就可以在任何你选择的设备上尝试它。你还可以得到Windows/Web项目,iOS版本也即将推出。所以不用担心,libgdx是一个很好的选择。


8

我没有使用libgdx发布过游戏,但是我会支持它。如果你选择错误的框架,就必须考虑在任何平台上都无法开发成功游戏的风险。我刚刚看了一下playn,似乎缺乏文档和用户群活动,而且进展不够迅速。你还应该考虑Cocos2d-x,这个框架应该支持两种平台。我有一种感觉,至少从Android端来看,libgdx作为编写游戏的平台是不可阻挡的。


2
尽管可以赞美Libgdx,但这个回答似乎相当无知。你是否尝试在PlayN论坛上发布问题?Michael一直很快回答。在此回答发布时,它正在被一个商业团队以及更广泛的社区积极开发:http://www.threerings.net/about/crew.html - Daniel Gerson

1

我不知道其他的引擎,但对我来说,libgdx是一个非常好的引擎。我刚从高中毕业,已经编程一年了。通过学习libgdx语法,我仅用一周时间就在iOS和Android上创建了各种应用程序。如果你想了解基础知识,我建议你访问这个链接http://www.kilobolt.com/zombie-bird-tutorial-flappy-bird-remake.html,这就是我学习的方法。


0

我无法真正比较这两个,因为我迄今只使用过Libgdx。对于Libgdx来说,在开始开发之前有很多资源和示例可以参考。许多支持者编写了易于理解的教程,因此学习起来相当容易。


0

Libgdx非常快,因为它的一些部分是用C++编写的。使用这个框架,您可以在单核手机上平稳地移动数百个精灵。它易于安装和使用,社区能够快速回答我所有的问题。


0
我使用libgdx创建了一个大型的战略在线游戏,效果非常好。它运行速度快,支持也很好,文档也比较详细。iOS平台可以通过robovm支持,而且很快就会在libgdx中实现Multi-OS Engine。如果你精通Java,那么libgdx是最佳选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接