tiistai 1. maaliskuuta 2011

Qoat of the Hill


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 lots different techniques.
Some details:
- 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.
 You can check our project (including sources) at:
http://projects.forum.nokia.com/qoatofthehill

Some screenshots: