需要有关 3D 和 2D C++框架选择的建议
Need advice on 3D and 2D C++ framework selection
我们是一家只有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。
- 如何使用默认参数等选择模板专业化
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 选择要调用的构造函数
- C++选择排序算法中的逻辑错误
- QTreeView幻灯片多选后无法使用单击选择
- 无法获取菜单选择以运行函数.C++
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- 在C++中,如何通过几种类型从元组中选择多个元素
- 讨论 - 创建矩阵时的数组与向量的向量 - 什么是最实用的选择
- 对可变参数使用声明.如何选择正确的功能
- catch框架有没有办法比较流或文件
- 选择选举获胜者的程序
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 使用Qt框架在c ++类中创建API调用
- 如何选择在 csv 文件中输出的位置
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- 有选择地编译框架C++的方法
- 需要有关 3D 和 2D C++框架选择的建议
- 为音乐音序器的iPad开发选择的语言和框架