选择一个3D游戏引擎

6

我想把开发桌面游戏作为一项业余爱好。我找到了几个引擎,但不确定它们是否能够完成我所需的初始工作。

起初,我想做以下几件事:

  1. 创建一个角色(头像),并让用户为其着装
  2. 将角色加载到游戏中

在后期,我想将其发展成多人游戏。

我该怎么办?

11个回答

15
我还建议使用Ogre。 Ogre可以实现这一点,它提供了所有关于网格和动画支持所需的东西,但不是一个即插即用的解决方案。您需要编写大量代码才能完成此操作。
对于我们的项目,我们实现了与您类似的东西。主角和其他角色都可以穿上不同的武器和盔甲,并且角色化身的视觉效果会相应地改变。
作为如何处理此问题的起始提示:在您的建模工具(Blender、Maya、3ds max等)中,您可以对化身及其所需的所有衣服进行建模并将其绑定到同一骨架上。然后将每个物品单独导出到Ogre的网格格式。
在运行时,您可以将用户选择的服装网格附加到骨架实例上,以便它们共同形成角色。通过Ogre-API,这不难做到,但为了更轻松地访问此功能,您可以使用MeshMagick Ogre扩展的meshmerge工具。它是专门为此目的开发的。
如果您想更改其他特征,例如面部特征,则也可以实现,因为Ogre支持顶点姿态动画,因此您可以为面部的某些特征准备路径,并让用户通过滑块等方式更改面部。 (例如像在Oblivion中)
关于Ogre需要注意的一件事:它是一个3D图形引擎,而不是游戏引擎。因此,您可以使用它将东西绘制到屏幕上,并以任何方式更改视觉效果、动画和光线等,但它不处理输入、物理或声音。为此,您必须使用其他库并将它们集成。基于Ogre的几个预打包游戏引擎也可用。

6

如果你擅长C ++,你应该使用Ogre,它是最好的开源引擎,由其创建者不断更新,有很多教程和非常有帮助的社区。

http://www.ogre3d.org/

这更像是一个图形引擎,但它拥有您所需的所有先决条件。

祝你好运!


1
Ogre没有网络支持。它纯粹是一个图形引擎。 - haffax
@haffax:相比于图形,网络编程实现起来并不是特别困难。 - Zifre

2

没有引擎会为您完成这项工作。它们通常允许您加载和呈现3D模型,但将它们组合起来以“装扮”它们的方式取决于您自己。创建它们或让用户这样做最终也取决于您。引擎可能提供了许多工具来使任务变得更容易(例如,在用户设计模型时渲染模型),但游戏引擎并不是一个神奇的“制作游戏”的盒子,您只需要按下一个按钮,就可以获得您定制的游戏。


2

有几个人提到了Ogre3D,我想推荐Irrlicht作为一种可替代的选择。


1
你可能想看一下http://www.crystalspace3d.org/ - 我必须承认对我来说更多是探索性的事情,但它似乎是一个相当不错的引擎 - 包括物理和脚本。他们有一个项目展示了角色在类似太空站的建筑中行走,并具有非常流畅的摄像效果。
另一方面:根据你想推进到什么程度,你可能会发现自己正在重新创建类似SecondLife(tm)的环境。如果这是一个合理的假设,那么你可以看看OpenSimulator和相关的开源查看器项目,看看这是否对你感兴趣 - 并与现有团队一起继续开发代码,而不是独自工作。

1

如果你擅长C ++,我建议使用C4 Engine。根据我的经验,现有的游戏引擎要么过于死板,要么只是一堆库的集合。


4
我认为“库的集合”是目前最好的“引擎”设计。 :) - jalf

1

Ogre是一个不错的选择,如果你只是想展示一些东西。正如一些人在这里已经说过的,Ogre是一个渲染引擎。有许多插件和功能可用于完成常见任务,例如音频、输入等等。如果你只是想玩玩或者创建一个原型,那么这完全没问题。

但是,如果你想开始一个长期项目,在较长的时间内进行开发(考虑到你可能是唯一的开发人员,游戏是复杂的应用程序),你应该真正开始思考你想做什么。然后,根据你的目标,寻找几个可以满足你需求的引擎(总会有一些API可以完成XYZ)。然后,你就可以按照自己的需求来管理你的游戏并使用现有的库,基本上就是根据自己的需求来打造自己的引擎。

如果你开始寻找一个真正的游戏引擎,以满足所有游戏开发需求,那就有点困难了。可以查看devmasters的3D游戏引擎列表(http://www.devmaster.net/engines/),你会发现很多尝试实现这一点的alpha状态的游戏引擎,尽管你应该记住,这些情况下的支持和文档通常不是一流的。

我个人从未使用过它,但我为我的项目评估了开源引擎Delta3D(delta3d.org),并对其酷炫的架构印象深刻。它封装了许多其他优质的开源框架,用于图形(OpenSceneGraph: openscenegraph.org)或物理(ODE: ode.org)等方面。就我所知,这可能是你能得到的最接近免费和灵活的游戏引擎。它是在一所空军大学开发的,并由于其学术背景而附带有大量详细的文档。


1

如果你擅长C++,你可以编写自己的引擎 :P

Ogre是Irrlicht和Crystalspace中最好的,原因很简单——Ogre实际上已经被游戏行业用于生产流程。它实际上有很多支持,而Irrlicht和Crystalspace则更多地是一些不会在开箱即用时做很多事情的应用程序。然而,Crystalspace有一个分支项目,将游戏引擎实现到Blender 3d中,允许艺术家在不离开实际软件的情况下扮演程序员的角色。

我对Irrlicht并不是很感冒——它的动机背后有很多狡猾的东西。对于一个开源项目来说,它分支出了许多不同的衍生品,其中包括完整的游戏引擎或WYSWYG编辑器,并且它们会找到一些方式来让你付费。

Ogre在成为图形引擎方面表现出色,而不是库,它必须根据个人需求进行编译。权衡之处在于,你可以将Ogre实现到任何设计工作流程中,甚至创建一个新的工作流程。它减轻了你写任何类型的图形代码的负担,因此在其基本形式下,它是一个非常流畅的快速原型引擎。


0

如果你对使用Irrlicht 3D引擎感兴趣,你可以在这里找到一些教程,逐步指导你创建简单的3D应用程序。


0

我也建议使用Irrlicht。它更容易入门,但是它只有Ogre3D支持的一半。


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