我们是一家只有2名程序员的小公司。我们目前使用Adobe Flash / Air为桌面和移动设备制作小型2D和3D游戏。我们希望停止使用该框架并开始学习和开发C ++,因为C ++上有更多更好的库和框架。
我不确定要用于渲染的库。我知道Ogre3D是一个很棒的3D内容渲染引擎,但有时我们需要制作2D游戏或“2.5D”游戏,有时需要进行视频播放,所有这些都需要与3D场景混合。
我知道有一些2D框架,比如cocos2D-x和smfl可以与OpenGL一起使用(我对OpenGL了解不多),可以完成我需要的所有2D事情,但这些框架可以与Ogre3D结合使用吗?它是否可以在不需要知道所有Ogre3D内部函数或OpenGL如何工作的情况下完成?
如果Ogre3D可以与任何2D引擎结合使用,我需要学习如何合并框架?
答案 0 :(得分:0)
鉴于你一直在使用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 强>
答案 1 :(得分:0)
是的,Ogre3D可以处理播放视频等“2D任务”。只是3D空间中的一个平面,它被投射到。然而,对于纯2D项目,诸如Ogre3D的3D渲染引擎通常是矫枉过正的。如果您正在谈论2,5D,那么您将重新使用Ogre3D。
关于集成:不完全确定,但我猜那些其他2D框架需要一个可以从Ogre获得的OpenGL渲染上下文。
编辑: Same question已在官方Ogre3D论坛中被问到。
答案 2 :(得分:-1)
我们是另一个致力于游戏开发的小团队。
我们尝试了很多渲染引擎,并最终使用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。