说实话,如果你想制作一款商业化的3D游戏来与其他商业化产品竞争,你需要购买一款商业化的3D引擎(并且需要一个相当能干的团队)。这两个项目都无法提供你所需的工具,以便快速地生成美丽的图像... 与Unity引擎相比。
http://www.youtube.com/watch?v=Fc9m0Z1GDg8
PlayN的开发人员似乎更加谨慎,试图在不影响2D API和使用体验的情况下提供良好的3D API。在这里,您可以阅读他们谨慎讨论如何最好地暴露OpenGL ES 2.0层。
Libgdx的方法似乎比较激进。两者都有优点和缺点。我的游戏中使用了Vecmath进行一些3D计算,它位于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,因为我认为没有真正的理由去换,而且这也是我一开始使用的。你的情况可能会有所不同。
我投票支持libgdx。相较于playn,libgdx似乎更为全面,拥有非常活跃的社区,支持几乎所有playn支持的平台(一些支持即将到来),且文档非常完善。此外,如果你特别针对Android(正如你的问题所暗示的那样),我宁愿说libgdx是事实上适用于Android的框架。
我的团队已经在使用libgdx进行开发,效果非常好。你可以添加box2d来处理物理效果,并且不需要使用糟糕的Android模拟器进行调试。所有的工作都是用Java完成的,你只需要将项目导入到Android项目中,就可以在任何你选择的设备上尝试它。你还可以得到Windows/Web项目,iOS版本也即将推出。所以不用担心,libgdx是一个很好的选择。
我没有使用libgdx发布过游戏,但是我会支持它。如果你选择错误的框架,就必须考虑在任何平台上都无法开发成功游戏的风险。我刚刚看了一下playn,似乎缺乏文档和用户群活动,而且进展不够迅速。你还应该考虑Cocos2d-x,这个框架应该支持两种平台。我有一种感觉,至少从Android端来看,libgdx作为编写游戏的平台是不可阻挡的。
我不知道其他的引擎,但对我来说,libgdx是一个非常好的引擎。我刚从高中毕业,已经编程一年了。通过学习libgdx语法,我仅用一周时间就在iOS和Android上创建了各种应用程序。如果你想了解基础知识,我建议你访问这个链接http://www.kilobolt.com/zombie-bird-tutorial-flappy-bird-remake.html,这就是我学习的方法。
我无法真正比较这两个,因为我迄今只使用过Libgdx。对于Libgdx来说,在开始开发之前有很多资源和示例可以参考。许多支持者编写了易于理解的教程,因此学习起来相当容易。
Libgdx非常快,因为它的一些部分是用C++编写的。使用这个框架,您可以在单核手机上平稳地移动数百个精灵。它易于安装和使用,社区能够快速回答我所有的问题。