I am currently in the process of re-touching the user interface of a game (OpenLieroX namely). I am looking for a library/framework that would allow an easy GUI creation. To be concrete, these are my requirements:
-
Open source - the game is LGPL and running into license issues is the last thing we want to care about :)
-
Cross platform - at least Linux/Unix, Mac OS X and Windows 2k+ are a must but more is better.
-
Stable and mature - I would prefer not using a project that will die in a month
-
Fast and lightweight (less than 15 mb compiled) - it's for a game after all
-
C++ interface - the game is written in C++
-
Easy to use - tutorials and a good documentation are a big plus
-
Easily adjustable - it should be easy to change the appearance of widgets
-
An easy to use styling language - a simple language that designers can use to create appealing skins for the game
-
An easy way to add custom widgets - I need to add viewports, character skins etc. to the interface and render them my way
-
Support for off-screen rendering (into a buffer)
I have already tried these libraries:
-
Webkit (various ports) - it's cool but not really made for game GUIs. Impossible to add custom elements with custom drawing (viewports etc.).
-
Enlightenment - cool libraries but too Linux centric. Especially the Windows port is incomplete.
-
Qt - great but offscreen rendering doesn't belong to its strenghts and mainly it's too big for the purpose
-
GTK - quite the same problems as with Qt, poor Mac OS X support
I would highly appreciate if anyone knows a framework that could fit these needs. Thanks for your input.
Have you had a look at Crazy Eddie's GUI System for Games? I'm pretty sure it meets most of your requirements.
In my opinion the best GUI for a game is guichan. It has all the features you are looking for.