在选择跨平台手机游戏开发框架时,我需要一些帮助。我已将其范围缩小到libgdx和playn
我计划制作主要针对 Android 的游戏,但我也可以在 ios 和 html 上发布它们。我知道 libgdx 目前不支持 ios,但我也知道它正在开发中,我对开发人员有信心。
如果有人有 libgdx 和/或 playn 的经验(最好两者兼有),如果您能分享您的经验以及您选择哪个以及为什么选择,我将非常感激。
我认为在这一点上,两者都是一个不错的选择。这就是为什么...
我没有使用过 Libdx,但我仔细阅读了他们的网站。我认为这两个项目看起来都不错。如果我选择游戏引擎,我的决定将归结为功能、稳定性和支持。
从支持开始,这两个项目似乎都有非常敬业的贡献者。PlayN 的 Michael Bayne 是编码器的机器。BadLogicGames (libgdx) 的马里奥似乎非常敬业。这两个项目似乎都有一群健康的贡献者和倡导者。
关于功能,它们似乎相当均衡。两者都将使创建 2D 游戏成为一种很棒的体验。Libgdx 似乎在 3d 方面具有优势,但如果您希望能够轻松创建 KILLER 3d 游戏体验,那么这两个框架都不会为您完成繁重的工作。Libgdx 似乎不像 JMonkey 那样长的 3D 工具包,它也无法与商业工具包竞争。
老实说,如果你想制作一款商业 3D 游戏来与其他商业产品竞争,你将不得不获得商业 3D 引擎的许可(并且拥有一支非常称职的团队)。与 Unity 的引擎相比,这两个项目都不会提供快速启动和运行漂亮图像所需的工具。
http://www.youtube.com/watch?v=Fc9m0Z1GDg8
PlayN 的人似乎对尝试提供良好的 3D API 而不影响 2D API 和使用它们的体验更加谨慎。在这里,您可以阅读他们关于公开 OpenGL ES 2.0 层的最佳方式的谨慎讨论。
相比之下,Libgdx 的方法似乎更具侵略性。两者都有优点和缺点。我在我的游戏中使用位于 PlayN 之上的 Vecmath 进行了一些 3D 计算。它是代码,您可以在可行的情况下混合和匹配。
鉴于它们在目的和执行方面非常相似,因此可能会有相当多的异花授粉。您可以在此处看到,大部分 Maven 对 Libgdx 的支持是从 PlayN 的配置中复制而来的。
http://www.badlogicgames.com/wordpress/?p=2707
此外,由于 Michael (PlayN) 创建 IVKM 所做的工作,libgdx 仅支持 iOS。然后,Mario 还必须为他的 C++ 特性添加 JNI 支持。
http://www.badlogicgames.com/wordpress/?p=2791
两个项目都了解对方,并从各自前进的道路上相互学习。
就稳定性而言,最好通过各自拥有的成功项目来衡量。PlayN 上的 Tupsu 和 AngrybirdsChrome,Libgdx 上的 Ingress 和其他。
PlayN 是纯 Java,因为它位于 Android/html api 等之上。Libgdx 在某些平台上似乎有一些 C++。这在很大程度上取决于您在做什么,即对于网络而言,GWT 实际上不能编译任何 C++ 模块。此外,Java 的速度与 C++ 相当(通常稍慢,有时更快),前提是您可以控制 GC,并且对您如何使用该语言不拘泥于教条。
话虽如此,C++ 在某些用例中可能仍然有用。
其他人回答说 Libgdx 可以在单核手机上支持巨大的精灵吞吐量,这意味着这是因为 C++。这不是 libgdx 使用 C++ 的领域。查看功能。
http://libgdx.badlogicgames.com/features.html
就 sprite 吞吐量而言,这两个框架的表现可能相似。您可以在此处享受 PlayN 的网络性能测试的乐趣。单击统计计数器以增加数量。
http://samskivert.com/playn/perf-test/
两者都有诸如菜单 UI 之类的东西,它们位于框架之上。
最终我还是坚持使用 PlayN,因为我认为还没有真正的理由来切换,这就是我开始的。你的旅费可能会改变。
我投票支持 libgdx。libgdx 似乎比 playn 更广泛,有一个非常活跃的社区,支持几乎所有 playn 支持的平台(一些支持即将推出),并且有很好的文档记录。此外,如果您特别针对 Android(正如您的问题所暗示的那样),我宁愿说 libgdx 是事实上的框架。
我的团队已经在使用 libgdx 进行开发,而且效果很好。您可以为物理添加 box2d,并且不需要糟糕的 android 模拟器来调试。一切都是用java完成的,您只需将项目导入您的android项目,并可以在您选择的任何设备上试用。您还拥有 windows/web 项目,iOS 即将推出。所以不用担心,libgdx 是一个不错的选择。
我没有用 libgdx 做过任何发布游戏,但它会得到我的投票。如果您选择了错误的框架,您必须考虑在任何平台上都无法开发成功游戏的风险。刚看了 playn ,似乎没有文档,没有用户组活动,而且还不够远。您还应该考虑应该支持两个平台的 Cocos2d-x。我有一种感觉,libgdx 作为至少在 Android 端编写游戏的平台是不可阻挡的。
我不知道另一个,但对我来说 libgdx 是一个很棒的引擎,我刚从高中毕业并且已经编码了一年。通过 libgdx,我在学习 libgdx 语法的短短 1 周内为 iOS 和 android 创建了各种应用程序。如果您想了解基础知识,我建议您访问此链接http://www.kilobolt.com/zombie-bird-tutorial-flappy-bird-remake.html,这就是我学到的。
我无法真正比较这两者,因为到目前为止我只使用过 Libgdx。对于 Libgdx,在开始开发之前,您可以查看大量资源和示例。许多支持者编写了易于理解的教程,因此很容易学习。
Libgdx 非常快,因为有些是用 C++ 编写的。使用此框架,您可以在单核手机上流畅地移动数百个精灵。它易于安装和使用,社区可以快速回答我的所有问题。
我用 libgdx 创建了一个大型战略在线游戏。太好了。它很快。支持是好的。文档更多。ios 支持 robovm 并且很快 Multi-OS Engine 也将在 libgdx 中实现。如果你精通Java。libgdx 是最好的选择。