一个易于使用的3D图形引擎适用于简单游戏?

5
有很多关于3D图形引擎的列表,但我的需求有些特殊,我自己无法决定要选择哪一个。我即将开始开发一个相当简单的(C ++)游戏,模拟太阳系中宇宙飞船的真实运动。正如您所想象的那样,所需的图形非常基本:
  • 行星只是具有纹理的球体;
  • 宇宙飞船没有或几乎没有可动部件(仅旋转和平移);
  • 我可能需要一些照明/动画效果来使其美观。
Celestia在美学上非常接近我所考虑的内容。
现在,问题在于迄今为止我只在科学模拟中使用了C ++,而且我对图形界面和游戏完全没有任何经验。另外,我不想花费数月时间学习如何使用复杂的引擎。
我的问题是:哪个引擎易于学习和使用,同时产生漂亮的图形?我正在寻找最佳平衡点。
据我所知,三个最受欢迎的OSS引擎是Ogre3D、Irrlicht和Crystal Space 3D。通过比较一些YouTube视频,Crystal Space的图形效果最好,但使用起来似乎有点混乱。他们说Irrlicht更容易,但在我的看法中,它在图形结果方面也较差。Ogre3D看起来不错,但我不知道它对初学者友好程度如何。
我真的很感谢您的建议!

2
凭直觉说,我认为没有一个3D图形引擎(更不用说游戏引擎了)是“易于使用”的。这就像开车一样,你必须去上课学习。有些可能比其他的更舒适,但这需要你投入一些时间才能体现出来。我的个人最爱是Irrlicht,但Ogre也有庞大的社区支持和活动;我认为你无论选择哪个都不会错。 - Kerrek SB
我理解你的观点。所谓“易于使用”,我指的是“更直观,步骤更少”,但由于缺乏经验,这一切都很模糊。庞大的社区支持确实很吸引人。 - Marco Giancotti
如果你对C++的经验有限,为什么非要使用它呢? - jalf
适合发布在gamedev.stackexchange.com上。 - Puppy
没有一个很容易理解,因为这是一个复杂的主题 = 但所有这些东西,尤其是Ogre,都有伟大的社区,他们应该能够帮助您入门。 - jcoder
显示剩余3条评论
2个回答

5
我喜欢 Panda3D 这种快速渲染简单场景的引擎。它有 C++ 和 Python API,并提供了许多有用的实用类型(动画、简单碰撞检测等),这应该会使编写游戏变得更容易。
图形渲染的美学吸引力在很大程度上取决于您自己的艺术质量;引擎只显示您提供给它的内容,功能列表(着色器、场景管理等)在各种开源引擎之间是相似的。我认为 YouTube 视频不是比较的好方法。
您应该根据个人喜好做出决定,因为您花费在让更复杂/困难的引擎做您想要的事情的时间可能更好地用于改进游戏。
Kerrek 是正确的,它们都不是真正“易于使用”的。

我猜看YouTube视频并不是做决定的好方法。我会去了解一下Panda3D,感谢你的建议。 - Marco Giancotti

2
在过去几年中,Unity 3D变得非常流行,而且是我知道的最容易使用的引擎。
通常我不太信任“游戏引擎”,因为它们几乎总是写得很糟糕、难以使用,并且无法扩展。这不是一个非常好的“编写游戏时所需的所有内容”的比喻。
但从我所看到的来看,Unity实际上做到了。我想这就是为什么它如此受欢迎的原因。
然而,它的API是设计用于通过Mono使用的,因此虽然你可以使用所有支持的语言(我相信Unity建议使用Javascript,但C#也是一个相当流行的选择),但我不认为它直接支持C++。
问题是,你真的需要用C++编写游戏吗?
但无论你选择哪条路线,请确保你选择的图形引擎实际上已经在真正的游戏中使用过。基本上,对于任何引擎来说(我不确定你列出的任何一个引擎是否能够胜任),检验标准是它能否用于制作合理的游戏。这就是为什么有类似这个建议的原因。当编写“引擎”时,很容易陷入编写引擎代码本身的误区,最终得到一个巨大的框架,其中包含各种从未在游戏中使用过的功能,因此当有人尝试做到这一点时,它会崩溃、表现糟糕或难以使用并缺乏重要功能。
因此,舍弃任何没有实际完整游戏支持的引擎。不是图形演示,而是游戏。无论是商业AAA游戏、独立游戏还是某些爱好项目,重要的是有人使用它制作了游戏,并且该游戏作为引擎的展示看起来令人信服。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接