Page 1 of 1

needed: Ogre lightweight GUI system

Posted: Sun Feb 15, 2015 9:42 am
by SuperNess
hello all!

I'm working on an ogre project and need some basic GUI for my game's level editor. something pretty basic, not too complicated.
I searched ogre wiki and this forum and there are essentially bazzilion of ogre gui libs and all of them are kind of old. I tried ogre trays but its functionality is insufficient and I don't want to use OIS (I'm using SFML for input).

so my question is this - can you recommend me a lightweight GUI system that works nicely with Ogre and provide at least a little more than trays?
bonus:
1. don't require OIS.
2. takes less than million lines of code to integrate.
3. written / maintained recently
4. free license (or at least affordable :))

thanks in advance :wink:
(PS just to be clear I know this page: http://www.ogre3d.org/tikiwiki/tiki-ind ... on+of+GUIs but I'm looking for personal recommendation that will help me get focused)

Re: needed: Ogre lightweight GUI system

Posted: Sun Feb 15, 2015 2:33 pm
by Thyrion
SuperNess wrote:I'm working on an ogre project and need some basic GUI for my game's level editor. something pretty basic, not too complicated.
I searched ogre wiki and this forum and there are essentially bazzilion of ogre gui libs and all of them are kind of old. I tried ogre trays but its functionality is insufficient and I don't want to use OIS (I'm using SFML for input).
but I'm looking for personal recommendation that will help me get focused
welcome to the sfml club! :)
finding the right GUI for your needs isn't easy.
- MYGUI (openmw),CEGUI(some ogre games) - seems to be the most used GUI systems here. I don't use them because i find them to big(source code)... i want a gui system as simple and fast as sfml. ^^
CEGUI is older, but MYGUI seems to fit better for ogre (just my personal opinion)
- Gorilla is a nice graphics lib. Small,simple and fast. But doesn't provide a GUI system.
- i started with GUI3D, but as soon as you want to customize the gui or load your data from files, you need to rewrite it. Also i don't like the control creation with one manager class.
- Novembers kiUi looks promising because it's based on gorilla. Till now he didn't opensource it.

in short:
if you want an ingame editor in c++ you need much controls. so the only options are: CEGUI,MYGUI eventually KiUI or you use a HTML GUI like Wolfire.

I choosed wpf for the level/game editor. Currently i'm modifying SFGUI, that i can use gorilla. Till now i like it.

Re: needed: Ogre lightweight GUI system

Posted: Sun Feb 15, 2015 6:23 pm
by SuperNess
thanks mate, you narrowed down my list a little 8)
from what I've read CEGUI looks promising, but like you said its kinda big and I'm currently struggling with its compiling process (probably wrong boost version or some other silly mistake :lol: )

I think my next move would be to compare CEGUI and GUI3D.

would love to hear more if anyone got anything to add

Re: needed: Ogre lightweight GUI system

Posted: Sun Feb 15, 2015 9:30 pm
by frostbyte
i recommend myGui for its great integration with ogre and its not that big code-base
myGUI is very friendly and quite easy to use... 8)
CEGUI i could'nt even compile the behemoth on windows to use ogre, i've spent a whole week on this 2 years ago and almost had a nerv-breakDown :lol:

broadning your option is using SDL or SFML windowing system with ogre and using gui libs based on this libraries...
i've also found some other "renderless" gui libs on the web, but nothing with added value...

Re: needed: Ogre lightweight GUI system

Posted: Sun Feb 15, 2015 10:00 pm
by Herb
I've used MyGUI and CEGUI extensively, and for an easy to use with features package that works well with Ogre, I'd definitely go with MyGUI. CEGUI can be a little painful to get going and for defining themes. MyGUI just compiles right in and pretty much works out of the box. The newest versions of MyGUI have some really nice tools too for layout and such.

Re: needed: Ogre lightweight GUI system

Posted: Sun Feb 15, 2015 11:12 pm
by SuperNess
broadning your option is using SDL or SFML windowing system with ogre and using gui libs based on this libraries...
- I integrated SFML in a way that Ogre still use an ogre window, the SFML is just for reading mouse/keyboard/joystick states. out of curiosity - did you manage to use an SFML window and render 2d with SFML on top on Ogre rendering?

anyway based on the comments I got here I am now focusing my efforts on MyGUI (although I managed to compile CEGUI and it was very satisfying).
I will report back in few days to give my personal impression.

thank you all :D

Re: needed: Ogre lightweight GUI system

Posted: Sun Feb 15, 2015 11:48 pm
by frostbyte
out of curiosity - did you manage to use an SFML window and render 2d with SFML on top on Ogre rendering?
never used sfml, but thyrion did http://www.ogre3d.org/forums/viewtopic. ... 52#p509076
you'll have to wait for his response on the 2d over thing...but from my experiance most windowing systems are designed for such integration...

Re: needed: Ogre lightweight GUI system

Posted: Mon Feb 16, 2015 12:04 am
by Thyrion
nope ... i don't use the sfml graphics lib.
but this guy seems to have a working example:
http://www.ogre3d.org/forums/viewtopic.php?f=1&t=79384

Re: needed: Ogre lightweight GUI system

Posted: Mon Feb 16, 2015 12:20 am
by frostbyte
ha, the notorious flickering problem, i was able to solve this on some "windowing" system that gave me this problem, but it involved some very ugly hacks...
problem comes from backbuffer switching loop...any way i eventualy ditched it
so in sfml case thats a no go...just use myGUI...some features are missing but atleast its a smooth sail...
problem with gui systems is their isn't a magic bullet, iv'e changed gui systems atleast 5 times...i hope myGui is a safe haven...

Edit: ok, seams like sfml flckering problem dont go so deep and was resolved http://www.ogre3d.org/forums/viewtopic.php?f=2&t=80678

Re: needed: Ogre lightweight GUI system

Posted: Tue Feb 17, 2015 3:25 pm
by SuperNess
OK after going through the 9 rings of hell also known as "MyGUI compiling process", I came back with the following conclusions:

1. don't try to compile MyGUI yourself.
2. DONT TRY TO COMPILE MYGUI YOURSELF. get it here: http://www.ogre3d.org/forums/viewtopic.php?f=4&t=69274
3. very simple, easy to use, and easy to setup.
4. nice and tight API. some deprecated functions and undocumented stuff ("tbd document this"...), but still pretty clear.
5. no good tutorials (or at least haven't found them yet), but the API on its own is clear enough to make up for that.
6. so far looks like a promising gui system. managed to do a lot with it in a very short time.

bottom line is: looks good :D recommend trying it out.
thanks anyone for helping me find a nice gui system, so far this looks like the right choice.

cheers!

Re: needed: Ogre lightweight GUI system

Posted: Wed Feb 18, 2015 8:05 am
by Daixiwen
I had less trouble compiling myself MyGUI than CeGUI :D

Re: needed: Ogre lightweight GUI system

Posted: Wed Feb 18, 2015 1:50 pm
by Herb
Agree with Daixiwen that I don't remember compile issues with mygui... On Linux, you can even just apt-get install them. :)

@Superness - I do agree with you on the tutorials with mygui. There are some great example programs to look at, but if you want to do something more complex like an editor, I found it hard to understand the best way to do that... I tried looking at the source of the mygui tools themselves, but the code is a bit hard to follow without better understanding on how mygui works. But, I do think on a whole, it's the fastest way to implement something UI related. I'm using Qt for my editor, and it's a love / hate relationship as you can do a lot with Qt, but the build system to have it cross-platform in my app with Ogre and just the integration piece can be painful to develop and maintain.

Re: needed: Ogre lightweight GUI system

Posted: Thu Feb 19, 2015 9:37 am
by SuperNess
@Daixiwen, @Herb maybe it was just bad luck but everything that could go wrong with the compile - went wrong, and when I did manage to compile it somehow I ended up with crashing dlls. I'm glad to see its just me :lol:

Re: needed: Ogre lightweight GUI system

Posted: Thu Feb 19, 2015 12:10 pm
by jacmoe
This is a topic which resurfaces once or twice each year, always with the same solution/answer. ;)

Personally, I never had a problem with getting CEGUI up and running, but I won't deny that MyGUI is quite good.
And almost as powerful and flexible as CEGUI.
Each to his own.

Re: needed: Ogre lightweight GUI system

Posted: Sun Feb 22, 2015 9:07 pm
by Transporter
I never had problems to compile MyGUI! But I had a lot of trouble with CEGUI. If you like it simple, you can also look at librocket. I use it in all my current projects. It's a HTML like syntax.

Re: needed: Ogre lightweight GUI system

Posted: Tue Mar 03, 2015 1:10 pm
by Ident
Transporter wrote:I never had problems to compile MyGUI! But I had a lot of trouble with CEGUI. If you like it simple, you can also look at librocket. I use it in all my current projects. It's a HTML like syntax.
What were the troubles you had with CEGUI? We have a very active forum and we managed to help everybody to get it to build, most people manage it on their own anyways. I also improved the CEGUI + Ogre build guide on the Wiki a lot in the last months and I believe it is pretty clear now how things have to be configured: http://cegui.org.uk/wiki/Building_CEGUI ... reRenderer
There were some issues with boost which was not directly our fault. The issue is also that Ogre can be configured in different ways. I tried to describe solutions for either of these problems in the article. I believe things got a lot better in that respect and we also improved the CMake files for this purpose.

Re: needed: Ogre lightweight GUI system

Posted: Wed Mar 04, 2015 12:27 pm
by Daixiwen
Yes the problems I got were with boost. I'm not that familiar with CMake so I had to look up quite a few things before finding out what to change in the CMake parameters to get CeGUI to configure/compile properly.
I'm not qualified to say whether this is "not directly your fault", but as a end user all I see is that on my system MyGUI compiles straight out of the box while CeGUI doesn't. ;)

Compiling Ogre with boost is quite common, so it could be a good idea to include a readme file with CeGUI describing the steps required to compile CeGUI in that configuration, if this can't be automated in Cmake.

Re: needed: Ogre lightweight GUI system

Posted: Wed Mar 04, 2015 12:29 pm
by Daixiwen
okay never mind, ignore my last comment on the readme file, I just read your wiki link and it looks like it's well described now. I don't think it was that clear the last time I tried to compile CeGUI.

Re: needed: Ogre lightweight GUI system

Posted: Wed Mar 04, 2015 1:32 pm
by Ident
Daixiwen wrote:okay never mind, ignore my last comment on the readme file, I just read your wiki link and it looks like it's well described now. I don't think it was that clear the last time I tried to compile CeGUI.
Yea I walked a couple of people through the wiki article and everytime something unclear was encountered i added more info or changed what was written. THat way the article has changed a lot since. I think it is pretty clear now and I believe almost everybody should be able to create a solution now without issues.

For the future I have planned to make a minimal example of an Ogre application. This will be created optionally in CEGUI's CMake and people can theoretically take it as a base for their program. Currently we have a glfw3 and SDL2 base sample in the works, they are almost done.

Re: needed: Ogre lightweight GUI system

Posted: Wed Mar 04, 2015 2:57 pm
by Transporter
Ident wrote:There were some issues with boost which was not directly our fault. The issue is also that Ogre can be configured in different ways. I tried to describe solutions for either of these problems in the article. I believe things got a lot better in that respect and we also improved the CMake files for this purpose.
I had this problem and a discussion about it. Maybe it's fixed now, but I don't care about it. I'm using libRocket + lua and Ogre 2.x at the moment.