3

和几个朋友一起,我们开始了这个业余的、独立于平台的、基于 java 的太空战斗模拟器游戏项目(有点像翼指挥官的长死传奇)。虽然我们都不是 3D 程序员,所以这条路会很长。

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

  • Dave Shriner 的 OpenGL 编程指南
  • Luke Benstead 的 OpenGL 游戏编程入门
4

6 回答 6

5

考虑使用像Ogre3DIrrlicht这样的开源 3d 引擎。这样你就可以专注于制作游戏:内容、玩法。

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

编辑:起初我没有注意到你提到 Java,反正两个引擎都支持 Java 绑定。

于 2009-12-02T11:23:48.220 回答
3

如果您决定学习低级图形编程而不是使用 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 Programming Guide 是 480 页,OpenGL Programming Guide, Seventh Edition 是 936 页。

此外,使用 OpenGL ES 2.X 将为您的游戏提供更广泛的硬件受众。因为它是 OpenGL 的一个子集,所以为 OpenGL ES 2.X 编写的代码可以在一个完整的 OpenGL 系统上运行,几乎不需要修改。您的游戏图形可以在从台式机到智能手机的各种目标机器上运行。

于 2009-12-02T14:01:12.787 回答
2

您可以选择像Ogre3D这样的开源 3D 引擎。

但是如果你真的想自己写图形引擎(很有趣),那就从学习线性代数开始吧。不是很高级的东西,但你应该很擅长用平移向量、旋转矩阵等来表达自己。

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

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

于 2009-12-02T11:28:27.807 回答
1

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

于 2009-12-02T11:23:59.630 回答
1

我发现 OpenGL 更容易上手,因为学习曲线不是那么陡峭。您可以获得快速的结果,这对最初的挫折/动机有很大帮助。大量的帮助等等。虽然警告的话 - 3D 编程本质上是复杂的,你将花费更多的精力来构建图形技术而不是游戏本身。如果你真的想看到游戏完成,可以考虑采用 Ogre3D :o)

于 2009-12-02T12:24:14.563 回答
0

如果您想保持平台独立,DirectX 将不会这样做,因为它仅限于 Microsoft Windows 平台

于 2009-12-02T11:23:27.493 回答