需要有关 3D 和 2D C++框架选择的建议

Need advice on 3D and 2D C++ framework selection

本文关键字:选择 框架 C++ 2D 3D      更新时间:2023-10-16

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

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

我知道有像cocos2D-x和smfl这样的2D框架可以与OpenGL配合使用(我对OpenGL了解不多),并且可以做我需要的所有2D事情,但是这些框架可以与Ogre3D结合使用吗?而且,在不需要知道所有Ogre3D内部内容或OpenGL如何工作的情况下,它能完成吗?

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

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

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

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

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

目前,您可以使用带有纹理的平面来完成 2D 工作,但 Unity 还将在不久的将来推出一套原生 2D 工具。此外,正在创建一个新的 GUI 系统

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

不过,Unity 的一个大问题是你需要 Unity Pro 才能使用插件。Unity 许可证是按平台的,因此,如果您决定使用插件,并在多个平台上发布游戏,您最终可能会支付大量许可费

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

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

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

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

编辑:在官方Ogre3D论坛中也提出了同样的问题。

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

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

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