Jump to content
  • Advertisement
Sign in to follow this  

Unity Where are all the good GUI libraries?

This topic is 1840 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Advertisement

Awesomium will probably be available for Unity again soon I'd bet.. here's the tutorial for one of the more recent versions.   They also should have a mono version as well soon.. I think what's up now is a pre-gdc release.  I just wish they would keep their old versions available.

 

http://labs.awesomium.com/unity3d-integration-tutorial-part-1/ 

 

Scaleform too expensive?  http://gameware.autodesk.com/scaleform/unity

Share this post


Link to post
Share on other sites

I've never heard anything good about Scaleform from those who've used it. Sure, you get floaty 3D dialogs and animated textures, but making GUIs that are internally complex rather than externally flashy still seems to be a mess.

 

I'm half-tempted just to go for HTML5 because at least HTML does a decent job of GUIs - but then is a typical HTML GUI compatible with HTML5 gaming libraries? Seems like they render everything onto a canvas so I'm guessing the answer is no.

Share this post


Link to post
Share on other sites

I've never heard anything good about Scaleform from those who've used it. Sure, you get floaty 3D dialogs and animated textures, but making GUIs that are internally complex rather than externally flashy still seems to be a mess.

Once you know the ins and outs of Flash and ActionScript (which, admittedly, is a huge challenge in and of itself), it's not actually that difficult to get even the most complex of UI scenes implemented. I would say that most of the issues with Scaleform aren't really development-related as much they are workflow-related, and those really begin to show as your UI team size increases. But if you're a single developer who knows Flash and can fork out a few hundred bucks, it might be worth it. But try out the evaluation version first ;)

Edited by Zipster

Share this post


Link to post
Share on other sites

Yes, I've noticed this too. For Unity basically you have to buy a GUI package from the asset store, and your options are NGUI, EZ GUI, or iGUI. NGUI and EZ GUI are powerful and flexible, but expense, difficult to use for most, and require lots of custom programming. iGUI is the only one that is a WYSIWYG GUI editor and is pretty good, but it is pretty simple and still expensive.

 

I found I was spending way too much time working on the GUI than my actual game, so I decided to create my own GUI editor system. It's basically a WYSIWYG editor, where you can create your entire game GUI and save it as a prefab. It supports an arbitrary number of hierarchies, 3d animations through the use of a free Tween library, Photoshop like gameobject manipulations like holding shift / control to do different things based on which objects you have selected. Pretty much everything can be changed in the editor scene. I'm hoping to create my entire Game's GUI from the editor alone saved as a prefab, once I get that done I can possibly add content to it and sell it on the asset store.

Share this post


Link to post
Share on other sites

I am left to suspect (partly from experience) that it may be that GUI is one of those things it is difficult to really get "right".

 

like, while it isn't too hard to draw things and figure out, say, when a mouse click is directed at them, it is harder to figure out things like how to best represent the appearance and behavior of widgets and how to best structure and handle the various events, making the creation of a usably good general-purpose GUI library fairly difficult.

 

(not that it can't be done though.)

 

though, others are free to disagree and may not share my experiences here...

Edited by cr88192

Share this post


Link to post
Share on other sites

Once you know the ins and outs of Flash and ActionScript (which, admittedly, is a huge challenge in and of itself), it's not actually that difficult to get even the most complex of UI scenes implemented.

 

I'm fine with Actionscript but have no real knowledge of Flash itself. All I know about Scaleform is that the devs I know have worked with it said it was awful, and the games I've seen that used it had very simple (but pretty) GUIs, for the most part. I don't know how to find out much more about it though.

 

 

iGUI is the only one that is a WYSIWYG GUI editor and is pretty good, but it is pretty simple and still expensive.

 

To be honest I don't care about WYSIWYG (although I know a lot of developers do, especially those who use Unity). What I care about is:

  • Can I construct a complex dialogue dynamically through code? If not, it's worthless, because static dialogues are quite easy to implement without a GUI system just by drawing some sprites and looking to see where the mouse clicks go.
  • Can it layout objects for me in lists and grids? If not, it's going to be a nightmare to use for any complex data. I need to be able to push an arbitrary number of objects into a container and have it position them for me - otherwise, I may as well just render them directly myself.
  • Can it handle scrolling areas? This is the main thing that stops me writing my own GUI in Unity - since there is no access to scissor rectangles I can't implement scrolling areas myself. NGUI have got around this with custom shaders, which is a fun hack, but they obviously have no clue how to handle input management properly so that's a non-starter.
  • Can I change the state of the GUI easily? HTML has this 100% right - if you want to change something, it's one simple function call to find it, then one property access to change it. No need to hook up signals and slots. No need to manually traverse the tree of elements. No need to pre-create the element so that you can hold a reference to it and change it later.
  • Can the GUI effectively tell me when things happen? Usually this is done with callbacks attached to events on controls. Some GUIs like to run in immediate mode which makes life much harder since in most languages you only get one return value from a function, meaning each control can only really signal one type of event.

 

 

Take a look to: http://www.noesisengine.com/noesis_gui_features.htm

 

They're going to need to put some actual information on their page rather than just marketing if they want people like me to try it. Life's too short to be signing up to beta programs to find out whether something will be useful or not.

 

 

I am left to suspect (partly from experience) that it may be that GUI is one of those things it is difficult to really get "right".

 

I really don't think this is the case. We have several reasonable GUIs that exist for C++ apps and they look pretty good. We have decades of experience all the way back from Smalltalk through MFC up to Qt and WxWidgets about how GUIs can be written and made effective (to a greater or lesser extent), and a large number of developers now working with HTML/CSS/Javascript to create and use GUIs. In theory the only difference between these GUIs and game GUIs is the rendering aspect, which itself can often be abstracted away, but for some reason few people are attempting to get this right.

Edited by Kylotan

Share this post


Link to post
Share on other sites
You mention libRocket and Python - have you tried out libRocket and python? It's designed to use python in the same way that browsers use JavaScript.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!