【发布时间】:2012-03-11 15:53:23
【问题描述】:
我现在是一名 C#/Java 开发人员,我在 XNA 和 C#.NET 上玩得很开心。
但我想尝试在 Java 上开发 3d,因为它是可移植的,而且我还没有尝试过 OpenGL。
我遇到了一个问题,这里有很多可能性:
- jMonkeyEngine
- Avatrix3D
- Ardor3D
- Java3D - 我实际上并没有仔细研究过,这看起来很有趣,但我更愿意先看看人们实际说了什么。如果这真的是我一直在寻找的东西,那就太棒了。缺点是我认为支撑位非常低。
我主要研究了 JME,结果证明它更像是一个引擎而不是一个框架(通过这个名字我想到了,虽然有人告诉我不是)。
基本上我想从一个具体的框架中得到什么:
- 漂亮的自动渲染(请参阅 XNA,可能比他们做的多一点,但在那个附近)
- 包含向量数学,他们在 JME 中使用 nodes 所做的一切都很好
- 最好易于移植到应用程序中(与 XNA 不同,最终用户必须安装 .NET 和 XNA)
- 没有不必要的实现不一定是通用的:这可能需要解释,我的意思是,我讨厌 JME 中他们已经有一堆重物理实现,例如他们的子弹类和简单物理更新。他们不一定总是按照你的意愿去做,而且你自己的实现也不是很容易。在 XNA 中,他们完全开放了所有这些主题。
- 真正的 OOP 方法。真的。在 XNA 中,我认为它是一种真正的 OOP 方法,因为您有一个控制器类,其中包含所有 GameComponent。这也是使构建您自己的用于个人输入管理等的库变得如此容易的原因。物理也变得更容易处理。
请注意,我很长时间没有关注 JME,所以我可能会误会它。如果我是,请说出来,并提供示例说明它如何实现我要求的内容。
否则,请给我一些想法,可能是这样的,也就是说,一个框架而不是一个引擎。
另外,值得注意的是我已经问过类似的问题here。这就是我最终研究 JME 的方式。我还在我的待办事项列表中查看了 Java3D。
这个问题是不同的,因为我专门针对 framework 而不是 engine。 (对我来说,不同之处在于引擎会尝试让一切游戏就绪,而框架只是让制作适合您的需求的实际引擎变得更容易)。
编辑:阅读 2 个答案后,我将研究 Java3D,即使它似乎支持很少,因为如果我不想要 JME 的重量不打算使用它,并认为破解产品的大块有些错误(我的意思是如果需要的话可以这样做,但我更愿意先研究其他解决方案)。如果这也不起作用,我将研究 jogamp 和 LWJGL,可能会从它们构建我自己的框架(似乎是一个有趣的项目)。如果我不构建它,我将坚持使用 XNA(尽管我将失去将我的任何作品安装到楼下的 linux 机器的可能性:()
【问题讨论】:
标签: java frameworks 3d xna