正在考虑用Qt制作一款游戏,并且想知道QML是否已经到了可以用作桌面上的一个重要工具的地步.已经看到Qt的一些帖子说他们最终会将大部分内容转换为QML,所以这似乎可能是要走的路,至少根据Qt.
编辑:我意识到QML可能不适合拥有大量图形的3D游戏.正在寻找更多的东西,大多数2D东西,如平台游戏类型的游戏.
见到http://labs.qt.nokia.com/2010/08/12/a-guide-to-writing-games-with-qml/.所以它在某种程度上显然是可能的.我也看过一些令人印象深刻的游戏,只用java脚本编写,我相信它是QML的基础.我很好奇目前Qt的最佳方式是什么,因为最近情况发生了变化......
cha*_*ley 11
这可能取决于您在发布游戏之前要等待多长时间.
Trolls/Qt现在正在重新制作其"图形堆栈":而不是历史性的"每个小部件渲染本身"(这是游戏和丰富的移动应用程序的错误范例),它们正在重新实现单一渲染WHOLE界面的图形堆栈,其中"窗口小部件"本身仅仅是数据集,可以提供给渲染.简而言之,我们的目标是使桌面/移动应用程序具有与高端游戏几十年来完全相同的性能(使用自己的图形堆栈,看起来与典型的X/Xlib/Motif/Xvt/Win/MFC/Qt应用程序图形堆栈完全不同).此外,Qt5计划(现在计划/开发,他们声称明年某个时候发布)依赖于OpenGL来实现这种图形堆栈.
完成这项工作后,管道将是: Widgets==>QML==>(C++ Graphics Stack)==>Hardware.目前(Qt 4和之前)它是: QML==>Widgets==>(C++ Graphics Stack)==>Hardware.
您可以谷歌搜索关于此的各种帖子/讨论,或者这是一个关于这些努力的长篇演讲:http://qt.nokia.com/developer/learning/online/talks/developerdays2010/tech-talks/performance-做图形最正确的路/
恕我直言,QML对游戏更有意义,因为界面组件是"独立参与者"(例如,不通过布局相互联系).这也是为什么QML对移动设备(房地产是一种溢价)以及非常华丽的桌面应用程序(尽管它仍然相对年轻且未经证实)更有意义的原因.
QML已经有很多渲染/动画选项,但它们大多是非常丰富的2D(但是你可以很好地模拟3D).QML 3D现在正在进行大量修订,但新的东西看起来非常好(并且位于OpenGL上).所以,如果你想要沉重的3D,那么它可能是实验时间,直到你看到新的Qt5接口并且可以利用硬件加速(取决于你需要多少3D).
我从新的Qt5中看到的性能规格与新的图形堆栈(在原型开发中)相当令人印象深刻,以至于我一直在考虑用QML编写一些游戏来玩它.如果这是从现在起十二个月(或者在Qt5发布之后),我敢打赌QML将是游戏的最佳/最简单的决定(因为组件是独立的演员,它使用起来非常简单,并且我将所有特定于游戏的重要内容推送到C++中,这在QML上很容易做到.
QML绝对是设计2D游戏的可行选择,可以为您节省大量时间和代码. V-Play(v-play.net)是一款基于Qt/QML的跨平台2D游戏引擎,具有许多有用的V-Play QML游戏组件,用于处理多种显示分辨率和宽高比,动画,粒子,物理,多点触控,手势,路径查找等(API参考).
如果您对使用V-Play制作的游戏感到好奇,可以快速选择它们: