tuohirv at March 2nd, 2011 04:00 — #1
Description For some time now i've been working with mobile devices and Qt. Qt is a great library, but as a game developer I've found it difficult that it lacks a "true" OpenGL ES 2.0 support: Current versions offer only an encapsulated version "QtOpenGL" of it. QtOpenGL is used via "QGLWidget" which is a Qt's UI-component enabling OpenGL graphics inside it.
The encapsulation and modified syntax wouldn't be a problem if you could be sure you are always working only with Qt, but nowadays it's important to maintain as much portability as possible. Also, when software needs to be ported from other platforms to Symbian\\^3 (or other systems supported by Qt), this can be a very difficult issue.
We've been developing a "replacement" version of QGLWidget which would work as much like real QWidget as pobssible, but directly with underlying native GLES2. This way the developer could use native GLES2 just like in most other platforms and still take advantage of Qt's great functionality.
We hope our work would help the developers exactly with the issues above and make devices supported by Qt more attractive especially to game developers.
In this shot you can see a game I've been developing within our replacement widget (GE::GameWindow). I've tried to keep it as simple as possible and still use as much different techniques as possible.
- Heavily simplified "Scorched earth"/Worms clone where you try to push your opponent down from randomly generated hill by shooting him.
- Everything is rendered with OpenGL ES 2.0
- Windows support (for easy debugging and fast development) is available with PowerVR's GLES2 emulation libraries.
- Landscape texture is generated from a set of base textures with shaders at run-time. (you can see it modifying when ammunitions "burn" it enough).
- Multilayer sky/ground system.
- Several background layers for creating more complex feeling for the scene.
- Particlesystem with fixed-points and nicely customizable type system. Each type can have its own program for rendering.
Our project page at
http://projects.forum.nokia.com/qoatofthehill contains all of the sources and pre-built binaries for Symbian\\^3, Maemo and Windows. What do you think?
thenut at March 4th, 2011 18:21 — #2
I used Qt a bit and while it is not all that bad, like you I ended up "tweaking" it to make it better. I was more into the 2D side of things as my cheap Nokia doesn't support 3D. Aside from modifying some standard C headers to get vsprintf support, I didn't have much of an issue porting my own framework over to Symbian. Then again, I only used Qt for UI and nothing else.
It looks like you put in fair bit of work to build your module around Qt. Have you released your game to the Ovi Store? Is the framework being used for other projects right now? Since my phone doesn't support 3D, I don't really know what sort of 3D games are there for Symbian.
Also, have you heard that Nokia is now partnered with Microsoft to release WP7 devices? While I've heard some vocal Symbian devs scoff at it, I often wonder if Symbian's future is up in the air right now.
tuohirv at March 7th, 2011 04:10 — #3
Thanks for your reply TheNut,
We haven't released the game at Ovi store and I don't know are we going to. Maybe at some point. The whole game is aimed as an example only. We have no other intrest about it..
projects using the platform as well but they are currently at private-state: One of them is our old match-3 puzzle ISmiley, which is going to be used as an example port to Symbian platform with some theme modifications: http://www.peekpoke.fi/iphone/ We've also planned to port couple of larger projects. Just to show how simple it can be..Its not so easy to find OpenSource IPhone stuff, but I will notfify DevMaster as soon as we get something out.
I know about the WP7 issue. It will definately affect on Symbian's future.. We have been discussing about some possibilities to make at least some kind of porting possible in near future, but those all are still just plans. Let see what happens.
But for now: OpenGL/C/C++ developement is still "de facto" for all other high-end mobile devices... Our framework just enables developers to port stuff easily to Symbian if they want. Even though Symbian's future is unknown, there are still huge amount of devices running it. Developers might have intrest for getting their already existing games to run on those devices with small effort,..