在哪里可以找到类似于Java的XNA的框架

我现在是一名C#/ Java开发人员,并且我一直在XNA上玩C#.NET。
但我想尝试在Java上开发3D,因为它是可移植的,我还没有尝试过OpenGL。

我遇到了一个问题,这里有很多可能性:

  • jMonkeyEngine
  • Avatrix3D
  • Ardor3D
  • Java3D - 我并没有真正看重过,这似乎很有趣,但我更希望看到人们真正先说的是什么。 如果这实际上是我一直在寻找的东西,那就太棒了。 缺点是我相信支持水平非常低。
  • 我主要研究了JME,后者实际上更像是一个引擎,然后是一个框架(这个框架通过名称出现在我的头上,虽然我被告知它不是)。

    基本上我想从一个专门的工作中想要什么:

  • 漂亮的自动渲染(请参阅XNA,或许他们会做更多的事情,但围绕它)
  • 包括矢量数学,他们在JME中做了什么节点是好的
  • 最好易于与应用程序一起移植(与XNA不同,最终用户必须安装.NET和XNA)
  • 没有不必要的实现不一定是通用的:这可能需要一个解释,我的意思是说,我在JME中讨厌的是他们已经有了一堆沉重的物理实现,比如他们的子弹类和simplePhysicsUpdate。 他们并不总是一定按你想要的去做,而且实现你自己的并不容易。 在XNA中,他们完全公开了所有这些主题。
  • 真正的面向对象方法。 真。 在XNA中,我认为它是一个真正的面向对象的方法,因为你有一个控制器类,它包含了所有的GameComponents。 这也使得为个人输入管理等构建自己的图书馆变得如此简单。 物理也变得更加容易处理。
  • 请注意,我很久没有看JME了,所以我可能会误解它。 如果我是,请说出来,并提供一些例子说明它如何实现我要求的东西。

    否则,请给我看看可能是什么样子,也就是说,一个框架,而不是引擎。

    另外,值得注意的是我在这里已经提出了类似的问题。 我就是这样看着JME的。 我也在我的待办事项列表中查看Java3D。
    这个问题是不同的,因为我特别要求框架而不是引擎。 (对我来说,不同之处在于引擎会尝试让所有的游戏都准备就绪,而框架只是简化了使实际引擎适合您的需求)。

    编辑 :在阅读2个答案之后,我将研究Java3D,即使它似乎只有很少的支持,因为如果我不打算使用它,我不希望JME的沉重感,并考虑黑客攻击产品大块有些不对(我的意思是如果需要的话可以做,但我宁愿首先查找其他解决方案)。 如果这也行不通,我会研究jogamp和LWJGL,可能从他们构建我自己的框架(看起来像是一个有趣的项目)。 如果我没有构建它,我只能坚持XNA(尽管我将失去将我的任何创建安装到Linux机器楼下的可能性:()


    有几个想法,但跳到追逐:没有这样的Java框架,你可以停止看 - 或非常失望。

    XNA是微软的一项重大投资,其范围和工具非常惊人。 难怪:XNA同时也是微软的XBox战略和他们的移动战略的一部分。 它拥有大量的资源。 Java方面没有人做过类似的投资,因为没有一个主要玩家有兴趣推动Java作为游戏平台(这可能会随着Android和JavaFX而改变,但我不会屏住呼吸)。

    我们在Javaland有什么 - 有很多较小的图书馆,社区和项目。 更多的兴奋和想法,不太成熟。 更少的工具,更多的交叉授粉。 我目前的最爱是PlayN,它是一款非常酷的跨平台库,可让您为Android和桌面构建游戏,然后将其编译为Javascript并在任何现代浏览器上播放,无需任何插件。

    至于技术方面,有两点说明:

  • 我反对称呼“一个控制者统治他们”是一种真正的面向对象方法(可能反对称呼任何“真正的面向对象方法”); 它当然是一个具有良好双方的设计选择,但它有其折衷。 除了将它们粘贴到一些中心对象外,还有其他一些提供依赖关系的方法。

  • JME不是 - AFAIR - 硬连线到任何特定的物理引擎,它建立在假定所有东西都应该可交换的基础上。 它可能以与XNA不同的方式完成,但它很好。


  • 我认为jMonkeyEngine可能是你最好的选择。

    它被设计成一个功能完备的游戏引擎,但没有什么可以阻止你将它用作框架,只是挑选和选择你需要的位。 它也是开源的,所以如果你想做一些不同的事情,那么总是有可能以你想要的方式破解它:-)

    例如,如果您不喜欢更高级别的jMonkeyEngine场景图形功能,则可以使用LWJGL(jME内部用于渲染)并直接使用OpenGL进行绘制。

    链接地址: http://www.djcxy.com/p/10513.html

    上一篇: Where to find a framework similar to XNA on Java

    下一篇: esque bidirectional use during request processing?