http://www.gamedev.net/community/forums/topic.asp?topic_id=512224&whichpage=1
What GUI system to use for C++/Ogre MMOG? |
|
![]() | ![]() ![]() | |||
![]() | ||||
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? | ||||
|
![]() | ![]() ![]() | |||
![]() | ||||
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:Funnily enough, that pretty much mirrors my view of the entire OGRE distribution ;) | ||||
|
![]() | ![]() ![]() | |||
![]() | ||||
Quote: 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 | ||||
|
![]() | ![]() ![]() | |||
![]() | ||||
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? | ||||
|
![]() | ![]() ![]() | |||
![]() | ||||
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/ | ||||
|
![]() | ![]() ![]() | |||
![]() | ||||
Quote: Overall, I am not happy with CEGUI. I feel that it's going the roundabout way about doing simple things. All these layout, schemas, and look and feel files add too much complexity to the system. Another problem is its IDE, CEGUILayout Editor, has very little functionality for building GUIs. Coming from working on Windows Forms project in VS2005, CEGUI Layout Editor seems like an amateurish college project. Finally, there is very little support for it, very little documentaion, and a tiny online community. | ||||
|
![]() | ![]() ![]() | |||
![]() | ||||
Quote: Well, it needs to be able to handle your standard communication with the user in the form of dialog boxes and such. In addition, our games includes several in-game business-type application, such as Report Generator, Spreadsheet Generator, rudimentary Email system, Field Manual (an in-game database), Journal. All of those have complicated functionality. For example, in the Spreadsheet Generator you need to be able to enter a bunch of numbers like in a real spreadsheet (in a bunch of text boxes), save that, load it, and generate graphs off of it. Naturally it needs to be able to handle events attached to any of its widgets/controls. So, fairly complicated. It is really too bad that we can't use Windows Forms with Ogre. They offer so much functionality and are easy to work with. We are currently looking at Flash. | ||||
|
![]() | ![]() ![]() | ||
![]() | |||
I'm a fan of GLV for openGL GUI work. It's lightweight and pretty straight forward. http://mat.ucsb.edu/glv/ Cheers, Bob ---------------------------------- Halfway down the trail to Hell... | |||
|