【问题标题】:Need advice on 3D and 2D C++ framework selection [closed]需要有关 3D 和 2D C++ 框架选择的建议 [关闭]
【发布时间】:2013-10-16 01:07:07
【问题描述】:

我们是一家只有 2 名程序员的小公司。我们目前使用 Adob​​e Flash/Air 为桌面和移动设备制作小型 2D 和 3D 游戏。我们希望停止使用该框架并开始在 C++ 上学习和开发,因为 C++ 上有更多更好的库和框​​架可用。

我不确定用于渲染的库。我知道 Ogre3D 是一款出色的 3D 内容渲染引擎,但有时我们需要制作 2D 游戏或“2.5D”游戏,有时还需要播放视频,所有这些都需要与 3D 场景混合。

我知道有像 cocos2D-x 和 smfl 这样的 2D 框架可以与 OpenGL 一起使用(我对 OpenGL 了解不多)并且可以完成我需要的所有 2D 事情,但是这些框架可以与 Ogre3D 结合使用吗?并且不需要知道所有 Ogre3D 内部的东西或 OpenGL 是如何工作的,是否可以做到这一点?

如果 Ogre3D 可以与任何 2D 引擎相结合,我需要学习什么来合并框架?

【问题讨论】:

  • 有什么理由不只使用统一?
  • 你可以在食人魔中做 2D。不要忘记 2D 只是 3D 中的平面。
  • 为什么需要将 2D 引擎和 3D 引擎结合起来?我认为该游戏可以是 2D 或 3D,所以没有理由合并。或不?另外,在我看来,SFML 非常适合 2D。

标签: c++ opengl opengl-es ogre ogre3d


【解决方案1】:

鉴于您一直在使用 flash,我猜您并没有移植旧的 C++ 代码。

此外,由于您不想知道您正在使用的框架的内部结构或 OpenGL 的实际工作原理,因此您不需要像 C++ 这样的低级语言。

大量的开源库也不是用 C++ 编写游戏的好理由。

Unity3D 拥有免费的基本许可证,并提供开箱即用的一切所需。

目前,您可以使用带有纹理的平面来进行 2D 工作,但 Unity 也将在不久的将来推出一组 Native 2D Tools。此外,正在创建 new GUI system。

对于您认为可能需要的任何 C++ 库,Unity 中可能已经有一些东西可以满足您的需求。如果没有,则可能有一个可供您使用的 .NET 端口。如果一切都失败了,您可以为您需要的任何库编写一个 C 接口,并将其用作 Unity 中的插件。

Unity 的一个大问题是您需要 Unity Pro 才能使用插件。 Unity 许可证是针对每个平台的,因此,如果您决定使用插件并为多个平台发布游戏,您最终可能会在licensing fees 中支付大量费用。

最后,您需要的不仅仅是一个应用程序框架。您还需要一个关卡编辑器。构建 3D 关卡编辑器并非易事,而且鉴于您的团队只有两个人,仅此事实就足以认真考虑使用 Unity。

因此,除非您要移植旧代码、需要对硬件的低级别访问权限或对本机代码有特定需求,否则我的建议是不要使用 C++,而只需使用 Unity强>.

【讨论】:

  • 首先,下一个版本是虚幻引擎4,而不是2。其次,如果你只想学习C++,你使用哪个框架都没有关系。它们都有优点和缺点。而且由于像想要使用 OpenCV 这样重要的事情被排除在您最初的问题之外,您要么故意省略重要的细节,要么真的不知道自己想要什么。这两种情况都会阻止任何人为您的问题提供任何真正有意义的答案。
  • 不太离题。你征求意见,这是我的。我也更喜欢 C++,但考虑到你的目标,这对于一个两个人的团队来说似乎非常雄心勃勃,C++ 可能不是最好的选择。但是,如果您仍然坚持使用 C++,您应该编辑您的原始帖子,详细说明您需要什么。
【解决方案2】:

是的,Ogre3D 可以处理像播放视频这样的“2D 任务”。只是它被投影到的 3D 空间中的平面。然而,对于纯 2D 项目,像 Ogre3D 这样的 3D 渲染引擎通常是多余的。如果你在谈论 2,5D,那么你又回到了 Ogre3D 的游戏中。

关于集成:不完全确定,但我猜那些其他 2D 框架需要您可以从 Ogre 获得的 OpenGL 渲染上下文。

编辑: Same question 已在 Ogre3D 官方论坛中被询问。

【讨论】:

    【解决方案3】:

    我们是另一个致力于游戏开发的小团队。

    我们尝试了很多渲染引擎,最终选择了 Irrlicht 渲染引擎。 Irrlicht 并不比 Ogre 3D 更好,或者我不想证明这一点。我们觉得 Irrlicht 更灵活地满足我们的需求。它还支持 2D 渲染,并且批处理速度非常快。 Irrlicht 可以轻松移植到其他平台,我们花了一周时间将其移植到 Google Chrome NaCl。

    Irrlicht 是一个非常基础的渲染系统,它支持 OpenGL 和 OpenGL ES,所以它很容易让你移动。您可以毫不费力地添加任何高级功能。我们的一些游戏适用于 iOS、Android、Windows PC、Mac OSX、Linux 和 Google Chrome Native Client。

    【讨论】:

    • 由于我正在使用 Ogre3D,所以一些快速的 cmets:Ogre3D 也可用于包括 NaCl 端口在内的许多平台。同样适用于 OpenGL 和 OpenGL ES(所以 iOS、Android、WP8 也一样)。底线:在跨平台支持方面,Irrlicht 和 Ogre3D 非常相似。
    • 我们选择 Ogre3d 的唯一原因是因为它与 Irrlicht 相比相当先进。 Ogre3d 具有高级功能,如网格批处理、实例化,所有这些都在核心中实现。但是,Irrlicht 也具有这些功能,但社区进行了一些更改。这给了我们灵活性。这一切都取决于您的需要。如果你想在添加之前学习一些东西,你可以选择 Irrlicht,另一方面,Ogre3d 已经为你准备好了一切。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 2010-12-16
    • 2016-05-26
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多