What GUI system to use for C++/Ogre MMOG?

Started by
11 comments, last by Scourage 15 years, 5 months ago
So I am working on a MMOG in C++, using Ogre for 3D graphics. Our current GUI is CEGUI version 0.4.1 and we are in the process of researching other possible GUI systems. We'll also be working on some other games (not necessarily MMOGs) in the near future, still using C++ and Ogre. What would people here (especially seasoned game developers) recommend to use as a GUI system?
Advertisement
I've always heard that CEGUI was supposed to be one of the most popular and well used GUIs for indie games when working with OpenGL. Out of curiosity, what are your good and bad experiences with CEGUI and overall impression? I was planning on integrating it in my own game (throwing out an old homemade GUI system).
CEGUI is hideously, ridiculously overengineered. It's the worst kind of organic code, with a confusing and overengineered abstraction (Falagard) crudely nailed to a lower level confusing but underengineered abstraction (the pre-Falagard stuff). The XML demonstrates a flawed understanding of XML and the C++ reinvents enough wheels for a whole parking lot.

For all that, though, it's pretty much the only game in town, and all things considered, it's not a bad library. If you don't mind the steep learning curve (for both the organic code and the workarounds for various odd issues) it can produce some good results, and you could hardly ask for a better mix of flexibility and automation. Most importantly, now that Crazy Eddie has actually returned to his eponymous project, things aren't quite as dead as they once were, and there's a reasonable chance of getting good community support. So I'd say go for it. You could do worse.
I've heard nice things about RBGui, but the original developers have stopped working on it so its not really moving anywhere. There's a couple of other GUI systems floating around on the ogre forum, your best bet is to post over there.


How complicated does your GUI need to be ?
The main ones that I'm aware of and have played with are CEGUI, MyGUI, and RBGui.

For CEGUI I guess my experience was similar to how Sneftel described it.. it seemed ridiculous overkill in order to get a relatively bare bones custom solution going. I eventually got a bit fed up spending large amounts of time trying to piece together those pieces from the XML config files that I needed without just blatantly copying/pasting things wholesale that I wouldn't need. On top of that, while there's a fair amount of Doxygen generated code for the library itself, the info out there for the actual XML config files I found to be scattered and at times very limited. Again, after a while I just didn't feel like poring over the depths of it to figure out how to get configurations just right.

MyGUI was a nice change in that it's much lighter weight, and at the time it was more actively developed than CEGUI (not saying much since CEGUI hadn't/hasn't seen a real update in a while). But it, too, suffers a real lack of documentation. Plus, I believe a number of the comments in the code are in Russian, so it didn't particularly help me out while trying to figure out certain aspects of the library.

I only recently started playing with RBGui. It seems like it's got a lot of different features, and the configuration file seems a bit easier to grok. Granted, it hasn't seen any version updates in a while, but I still think the developer does some maintenance on it. I believe it underwent minor changes just to make it work with Ogre 1.6 when it came out not too long ago. So far though, I haven't had too many issues with it, and it seems to be the most mature GUI system that you can currently plug into Ogre at the moment. I'd probably give it a shot if you aren't fond of CEGUI.
Quote:Original post by Sneftel
CEGUI is hideously, ridiculously overengineered. It's the worst kind of organic code, with a confusing and overengineered abstraction (Falagard) crudely nailed to a lower level confusing but underengineered abstraction (the pre-Falagard stuff). The XML demonstrates a flawed understanding of XML and the C++ reinvents enough wheels for a whole parking lot.

For all that, though, it's pretty much the only game in town, and all things considered, it's not a bad library.
Funnily enough, that pretty much mirrors my view of the entire OGRE distribution ;)

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Quote:Original post by swiftcoder
Quote:Original post by Sneftel
CEGUI is hideously, ridiculously overengineered. It's the worst kind of organic code, with a confusing and overengineered abstraction (Falagard) crudely nailed to a lower level confusing but underengineered abstraction (the pre-Falagard stuff). The XML demonstrates a flawed understanding of XML and the C++ reinvents enough wheels for a whole parking lot.

For all that, though, it's pretty much the only game in town, and all things considered, it's not a bad library.
Funnily enough, that pretty much mirrors my view of the entire OGRE distribution ;)

That's a good point. It's enough to drive a man to C.
Reading this thread I humpled across this library which allows you to use native html to create your gui

http://navi.agelessanime.com

I just wonder whether this library can be used without ogre, since I am writing my own engine


http://www.8ung.at/basiror/theironcross.html
I've often wondered whether GTK+ could be made to work in a game, never actually had a look though. :( (On the TODO list)

http://www.gtk.org/

Anyone have any experience of attempting to do this?
Cheers,MartinIf I've helped you, a rating++ would be appreciated
For OpenGL:
http://www.bramstein.com/projects/gui/
http://glgooey.sourceforge.net/
http://turska.sourceforge.net/
http://glam.sourceforge.net/
http://glui.sourceforge.net/
http://libufo.sourceforge.net/

This topic is closed to new replies.

Advertisement