选择3D游戏引擎

时间:2009-07-19 13:05:01

标签: c++

我想把它作为开发桌面游戏的爱好。我找到了几个引擎,但我不确定它是否完成了我正在查看的初始工作。

最初我想做以下事情:

  1. 创建一个人物(头像),并让用户穿着头像
  2. 在游戏中加载头像
  3. 在后期阶段,我希望将其发展为多人游戏。

    我该怎么办?

11 个答案:

答案 0 :(得分:15)

我也推荐Ogre。 Ogre可以做到这一点,它提供了网状和动画支持所需的一切,但不是作为插入式解决方案。你必须为此完成许多代码。

对于我们的项目,我们实施了类似的工作。主角和任何其他角色都可以穿着不同的武器和盔甲,角色化身的视觉效果也会随之改变。

作为开始提示如何解决这个问题:在您的建模工具(Blender,Maya,3ds max等)中,您可以为自己的头像及其所需的所有衣服建模,并将它们装配到相同的骨架上。然后将所有内容单独导出为Ogre的网格格式。

然后,您可以在运行时将用户选择的服装网格附加到骨架实例,以便它们一起形成头像。这不是很难通过Ogre-API来实现,但为了更方便地访问它,您可以使用MeshMagick Ogre扩展的meshmerge工具。它就是为了这个目的而开发的。

如果你想改变面部特征等其他特性,这也是可能的,因为Ogre支持开箱即用的顶点姿势动画,因此你可以为脸部的某些特征做准备,让用户通过滑块改变脸部或者像这样的东西。 (例如在Oblivion中)

关于Ogre需要注意的一件事:它是一个3D图形引擎,而不是游戏引擎。因此,您可以使用它和动画和光线在屏幕上绘制内容,并以任何方式更改视觉效果,但它不会输入或物理或声音。为此,您必须使用其他库并集成它们。虽然可以使用几种基于Ogre的预捆绑游戏引擎。

答案 1 :(得分:6)

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

http://www.ogre3d.org/

它更像是一个GFX引擎,但它具有您想要的所有先决条件。

祝你好运!

答案 2 :(得分:2)

没有引擎可能会为您做这件事。他们所做的通常是允许您加载和渲染3D模型。但结合它们,你需要做的“装扮”的方式取决于你。创建它们或让用户这样做最终取决于你。引擎可能提供了许多工具来简化任务(例如,在用户设计模型时渲染模型),但游戏引擎不是一个神奇的“制作游戏”框,你只需要按一个按钮,你的自定义游戏就出来了。

答案 3 :(得分:2)

有几个人说Ogre3D,我会提出Irrlicht作为替代方案。

答案 4 :(得分:1)

你可能想看一下http://www.crystalspace3d.org/ - 我不得不承认这对我来说更像是一个探索性问题,但它似乎是一个非常好的引擎 - 包括物理和脚本。他们有一个项目,显示在类似太空站的建筑物中行走的化身具有非常流畅的相机效果。

OTOH:根据你想要推动它的程度,你可能会发现自己正在重建类似SecondLife(tm)的环境。如果这是一个公平的假设,那么您可以查看OpenSimulator和相关的开源查看器项目,看看您是否对此感兴趣 - 并与现有团队一起工作以进一步开发代码,而不是自己动手

答案 5 :(得分:1)

如果你对C ++很好,我建议使用C4 Engine。根据我的经验,现有的游戏引擎要么过于严格,要么仅仅是一组库。

答案 6 :(得分:1)

如果你只是想要展示一些东西,那么Ogre是一个很好的方式。正如一些人已在此处所述,Ogre是一个渲染引擎。有许多附加组件和功能可以完成常见的任务,如音频,输入和诸如此类的东西。如果您只是想要玩游戏或创建原型,那就非常好了。

你是否想要开始一个长期项目,这个项目将在更长的时间内开发(很可能考虑到你可能是唯一的开发者和游戏是复杂的应用程序),你应该真正开始考虑什么这是你想要做的。然后,根据您的目标,寻找可以解决您需求的几个引擎(总有一些API可以完成XYZ)。然后由您决定如何管理您的游戏以及您使用现有库的位置 - 您基本上可以根据自己的需要绑定自己的引擎。

如果你开始寻找一个真正的游戏引擎,就“我的所有游戏开发需求的引擎”而言,这会变得有点困难。在devmasters(http://www.devmaster.net/engines/)查看精彩的3D游戏引擎列表,你会发现许多alpha状态游戏引擎试图完成这个,尽管你应该记住,支持和文档通常不是一流的在那些情况下。

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

答案 7 :(得分:1)

如果你对C ++很好,你可以编写自己的引擎:P

Ogre是Irrlicht和Crystalspace中最好的,其背后的原因很简单--Ogre实际上已被游戏行业用于生产流程中。它实际上有很大的重量,而Irrlicht和Crystalspace或多或少的应用程序没有开箱即用。然而,Crystalspace有一个分支项目,它将游戏引擎实现到Blender 3d,允许艺术家在不离开实际软件的情况下扮演程序员的角色。

我对Irrlicht的态度不是很大 - 其动机背后隐藏着许多狡猾。对于一个开源项目,它分支出许多不同的衍生产品,既可以是完整的游戏引擎,也可以是WYSWYG编辑器,他们会找到方法让你锁定付费。

Ogre擅长成为图形引擎而不是图书馆,它必须根据个人需求进行编译。权衡是您可以将Ogre实施到任何设计工作流程中,甚至可以创建一个新的。从肩膀上卸下负载需要编写任何类型的图形代码,从而使其成为基本形式的非常光滑的快速原型制作引擎。

答案 8 :(得分:0)

你可以尝试的一个引擎是Torque 3D游戏引擎www.garagegames.com,它虽然不是免费软件,但它允许开箱即用的可用性。虽然您在能够完全自定义角色方面所寻求的功能在引擎内不会立即可用,但如果您愿意自己创建模型,那么将它们添加到游戏中并使用游戏应该不会太难引擎改变化身的'皮肤'。我认为将其与其他引擎区分开来的一件事是,它预装了网络功能(根据您在问题中描述的内容,我猜您正在尝试制作RTS或MMO,以及如果是的话,我祝你好运。)

虽然引擎基于射击游戏可能看起来很奇怪,但Torque论坛上有一些指南允许你添加基于剑的战斗编码以及与基于幻想的游戏相关的其他事情(如果,那是,你正在计划制作的东西。)

但无论如何......祝你的项目好运。如果你正在尝试我认为你正在尝试的东西并非易事。但我相信你知道你在做什么=)

希望这有帮助

答案 9 :(得分:0)

如果您对使用Irrlicht 3D引擎感兴趣,可以找到许多教程,引导您完成创建简单3D应用程序here的过程。

答案 10 :(得分:0)

我还建议Irrlicht。它更容易开始,但它没有一半的Ogre3D支持。