2011-12-17 42 views
0

我正在创建一个OpenGL游戏,我正在寻找最好的跨平台解决方案。我有使用QtCreator的QtSDK的经验,我喜欢信号/插槽范例(不是MFC的粉丝,它消除了wxWidgets),我想我可以轻松地将我已经完成的任务交给Qt,但是我担心由于Qt基于它的widget可能对我的游戏来说太慢了。目前,我生成了一个(相当)大的地形,并且我处理了许多实体(2-500 +),其中一些实体具有许多粒子(〜2-500 ^〜2-500),同时需要有效地处理键盘和鼠标输入我目前在OpenGL中做的,除了GLew之外没有任何更高的级别)。QtSDK:游戏速度太慢吗?其他建议?

我也对SFML感兴趣,因为它可以处理窗口创建和音频/网络,并且看起来与OpenGL相当友好。

我的问题:您是否使用QtSDK制作了三维游戏?它有反应吗?在我开始将大量代码移植到Qt之前,任何提示都会非常棒,只会令人失望。

在此先感谢!

回答

1

一般来说,如果你正在做一个游戏,你应该避免使用Qt创建您的OpenGL窗口。你可以使用Qt来处理一些东西(Unicode字符串,信号等),但是Qt不能提供你制作游戏时所需的所有输入,声音处理等需求。这不会让维护大多数游戏所需的严格时间变得容易。

如果您正在寻找游戏开发的跨平台基础,您应该研究SFML/SDL/Allegro5。所有这些都非常适合游戏开发。

1

如果你已经在OpenGL中做了所有事情,我真的没有看到切换的理由。信号和插槽比手动方式慢,并且需要预编译构建步骤,这对于移植来说是一件麻烦事。

如果所有QGLWidget选项设置正确(刷新和重绘速率),Qt不会影响性能(或至少不应该)。如果你打算使用OpenGL来绘制Qt GL Widgets(这也是可能的),那可能会影响性能。

我相信你是见利忘义SDL是所有关于:API by category

0

我已经在Qt中创建了模型等的例子。 Qt不是太慢,或者什么。如果你想创建一个游戏,或者任何在Qt中,然后继续。 Qt为使用Qt的最终用户提供了很多。所以忽略所有其他的回应。我从来没有遇到任何速度问题。

1

虽然我只有用QT一点点经验,我最近碰到一个有趣的消息传来:http://labs.qt.nokia.com/2011/12/15/qt-4-8-0-released/

现在可以创建“多线程”的OpenGL的解决方案。我认为它可以提高性能。一个线程可以独立负责GUI(窗口小部件)和其他OpenGL(一个用于渲染,一个用于资源加载等)。总而言之,我认为对于简单或休闲游戏QT就足够了。当然,你将无法在其中创建AAA游戏:)