我正在创建一个OpenGL游戏,我正在寻找最好的跨平台解决方案。我有使用QtCreator的QtSDK经验,我喜欢信号/插槽范例(不是MFC的粉丝,它消除了wxWidgets),我想我可以很容易地把我已经做过的东西移植到Qt但是我担心由于Qt是基于它的小部件可能对我的游戏来说太慢了。目前,我生成一个(相当)大的地形,我处理许多实体(2-500 +),其中一些有很多粒子(~2-500 ^ ~2-500),同时需要有效地处理键盘和鼠标输入(所有我目前在OpenGL中做的,没有任何更高级别,除了GLew)。
我也对SFML感兴趣,因为它可以处理窗口创建和音频/网络,并且似乎对OpenGL非常友好。
我的问题:你是否使用QtSDK制作了一个三维游戏?它有反应吗?在我开始将大量代码移植到Qt之前,任何提示都会很棒。
提前致谢!
答案 0 :(得分:1)
如果你已经在OpenGL中做了所有事情,我真的没有理由转换。信号和插槽比手动方式慢,并且需要预编译构建步骤,这是移植的麻烦。
如果正确设置了所有QGLWidget选项(刷新和重绘率),Qt不会影响性能(或者至少不应该)。如果您打算使用OpenGL绘制Qt GL小部件(这也是可能的话),这可能会影响性能。
我相信你忘记了SDL的全部内容:API by category
答案 1 :(得分:1)
一般情况下,如果您正在制作游戏,则应避免使用Qt创建OpenGL窗口。您可以将Qt用于某些内容(Unicode字符串,信令等),但Qt不提供您在制作游戏时所需的所有输入,声音处理等需求。保持大多数游戏所需的严格时间并不容易。
如果您正在寻找跨平台游戏开发的基础,您应该调查SFML / SDL / Allegro5。所有这些都非常适合游戏开发。
答案 2 :(得分:1)
虽然我对QT只有一点经验,但我最近发现了一条有趣的新闻:http://labs.qt.nokia.com/2011/12/15/qt-4-8-0-released/
现在可以创建“多线程”OpenGL解决方案。我认为它可以提高性能。一个线程可以单独负责GUI(小部件)和其他OpenGL(一个用于渲染,一个用于资源加载等)。
总而言之,我认为对于简单或休闲游戏,QT就足够了。当然,你将无法在其中创建AAA游戏:)
答案 3 :(得分:0)
我在Qt中创建了一些模型等示例。 Qt不是太慢,或者其他什么。如果你想在Qt中创建一个游戏,那么请继续。 Qt为使用Qt的最终用户提供了很多帮助。所以忽略所有其他响应。我从未对速度有过任何问题。