我们和几个朋友一起开始了这个业余的、独立于平台的基于 Java 的太空战斗模拟器游戏项目(类似于《翼指挥官》中早已死去的传奇)。虽然我们都不是 3D 程序员,所以路还很长。

我的问题是:在我们这里,你会开始学习 OpenGL(也许是通过 GLUT)还是今天有更好的可能性?Direct3D 怎么样?您可以推荐什么书吗?我们特地订购了一对

  • Dave Shriner 的 OpenGL 编程指南
  • Luke Benstead 的 OpenGL 游戏编程入门
有帮助吗?

解决方案

考虑使用开源 3d 引擎,例如 食人魔3D 或者 伊尔利希特. 。这样您就可以专注于制作游戏:内容、玩法。

两个引擎都定义了一个可以映射到 Direct3D 或 OpenGL 后端的抽象层。

编辑:起初我没有注意到你提到了 Java,无论如何两个引擎都支持 Java 绑定。

其他提示

如果您决定学习低级图形编程而不是使用 Ogre3D 或 Irrlicht 等高级 3D 引擎,我建议从 OpenGL ES 2.X 开始,它是 OpenGL 的子集。

OpenGL ES 2.X 是 OpenGL 的简化子集,适用于具有可编程硬件(例如手机)的嵌入式系统。例如,在 OpenGL 中可能有多种方法来完成任务,但在 Open GL ES 2.X 中,只有一种方法。由于 OpenGL ES 2.X 中的选择较少,因此掌握 OpenGL ES 2.X 所需学习的内容也较少。OpenGL ES 2.0编程指南有480页,OpenGL编程指南第七版有936页。

此外,使用 OpenGL ES 2.X 将为您的游戏带来更广泛的硬件受众。由于它是 OpenGL 的子集,因此为 OpenGL ES 2.X 编写的代码无需修改即可在完整的 OpenGL 系统上运行。您的游戏图形可以在从台式机到智能手机的一系列目标机器上运行。

您可以选择开源 3D 引擎,例如 食人魔3D.

但如果您真的想自己编写图形引擎(非常有趣),请从学习线性代数开始。不是很高级的东西,但你应该很舒服地用平移向量、旋转矩阵等表达自己。

如果您已经熟悉这些概念,请选择 Direct3D 或 OpenGL - 这更多地取决于可用的平台。如果您喜欢在 Mircosoft 环境中编码,请选择 Direct3D,其他一切请选择 OpenGL。

附加库的选择取决于编程语言。比 GLUT 更好的替代方案可能是 SDL (C) 或 Qt(C++)。

好吧,如果您以前从未进行过 3D 图形编程,请尽量简单并边学边学。NeHe(Neon Helium)曾经有一套非常好的 OpenGL 教程,这就是我采取的路线。

我发现 OpenGL 更容易上手,因为学习曲线不是那么陡峭。您可以快速获得结果,这对消除最初的挫败感/动力有很大帮助。大量的帮助等等。但需要注意的是 - 3D 编程本质上很复杂,您将花费更多的精力来构建图形技术而不是游戏本身。如果您确实想看到游戏完成,请考虑采用 Ogre3D :o)(免责声明:我知道还有其他引擎,但 Ogre 很稳定、经过验证并且附带良好的文档)

如果您想保持平台独立性,DirectX 就不行,因为它仅限于 Microsoft Windows 平台

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top