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

7 java 3d xna frameworks

我现在是一名C#/ Java开发人员,我在使用C#.NET的XNA上度过了愉快的时光.
但是我想尝试在Java上开发3d,因为它是可移植的,我还没有尝试过OpenGL.

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

  • jMonkeyEngine
  • Avatrix3D
  • Ardor3D
  • Java3D - 我实际上没有深入研究过,看起来很有趣,但我更希望看到人们实际上先说的是什么.如果这实际上是我一直在寻找的那将是非常棒的.缺点是我认为支撑位非常低.

我主要研究了JME,结果发现它更像是一个引擎然后是一个框架(我通过这个名字发生了这个问题,虽然我被告知它不是).

基本上我想从特定的framerwork:

  • 漂亮的自动渲染(参见XNA,可能比他们做的更多但是围绕着它)
  • 包含矢量数学,他们在JME中用节点做了什么就好了
  • 最好使用应用程序轻松移植(与XNA不同,最终用户必须安装.NET和XNA)
  • 没有必要的实现不一定是通用的:这可能需要一个解释,我的意思是,我讨厌JME的是他们已经有一堆重的物理实现,比如他们的bullet类和simplePhysicsUpdate.他们并不总是按照你的意愿去做,而且实现你自己并不容易.在XNA中,他们将所有主题完全打开.
  • 真正的OOP方法.真.在XNA中,我认为它是一个真正的OOP方法,因为你有一个控制器类,它包含所有的GameComponent.这也是为个人输入管理等构建自己的库非常容易的原因.物理学也变得更容易处理.

请注意,我很长一段时间没有看过JME,所以我可能会误解它.如果我是,请说出来,并提供一些示例,说明它如何实现我要求的东西.

否则请告诉我可能是什么样的想法,也就是说框架而不是引擎.

此外,值得注意的是,我已经在这里问了一个类似的问题.这就是我如何看待JME.我也在我的待办事项清单上查看Java3D.
这个问题不同,因为我专门提出一个框架,而不是一个引擎.(对我而言,不同之处在于引擎会尝试让所有游戏准备就绪,而框架只会让您更容易制作出适合需求的实际引擎).

编辑:在阅读了2个答案之后,我会调查Java3D,即使它似乎没什么支持,因为我不想要JME的沉重,如果我不打算使用它,并考虑攻击产品的大块有些不对(我的意思是,如果需要的话,可以这样做,但我更愿意先考虑其他解决方案).如果这也不起作用,我将研究jogamp和LWJGL,可能从它们构建我自己的框架(看起来像一个有趣的项目).如果我不构建它,我只会坚持使用XNA(虽然我会失去将我的任何创作安装到楼下linux机器的可能性:()

fdr*_*ger 2

有几个想法,但跳到正题:Java 没有这样的框架,您可以停止寻找 - 否则会非常失望。

XNA 是 Microsoft 的一项重大投资,其范围和工具都令人惊叹。这也就不足为奇了:XNA 同时是 Microsoft Xbox 战略和移动战略的一部分。它背后有大量的资源。Java 方面没有人做过类似的投资,因为没有主要参与者有兴趣将 Java 推为游戏平台(这可能会随着 Android 和 JavaFX 的改变而改变,但我不会屏住呼吸)。

我们爪哇岛拥有许多小型图书馆、社区和项目。更多的兴奋和想法,更少的成熟。更少的工具,更多的异花授粉。我目前最喜欢的是 PlayN,它是一个非常酷的跨平台库,可让您为 Android 和桌面构建游戏,然后将其编译为 Javascript,并在任何现代浏览器上运行,无需任何插件。

至于技术方面,有两点需要注意:

  • 我反对将“一个控制器统治所有”称为真正的 OO 方法(并且可能反对将任何内容称为“真正的 OO 方法”);这当然是一种设计选择,有好的一面,但也有其弊端。除了将依赖项粘贴到某个中心对象中之外,还有其他提供依赖项的方法。

  • JME 并不是 - AFAIR - 硬连接到任何特定的物理引擎,它是基于一切都应该是可交换的假设而构建的。它的完成方式可能与 XNA 不同,但它很好。

  • 真的,我并不反对单一控制器;我的许多最好的朋友都是单身。我只是反对将它们(或与此相关的任何其他内容)视为“单一真正的 OOP 技术”:) 至于您的疑虑,请您自己看看。XNA 不是一般的开源项目。这是一个巨大的平台,只有拥有大量资源的大供应商才能提供。没有哪个 Java 供应商认为投资构建 Java 游戏平台是一个好主意,因此我们有很多很棒的开源东西,只是没有您所习惯的成熟度。顺便说一句,Java3D 的水平太低了,它会让你哭泣。 (2认同)