Feature Request: more gui.

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
Post Reply
JPulham
Posts: 320
Joined: Sat Nov 19, 2005 12:06 pm

Feature Request: more gui.

Post by JPulham »

I know that it may not be the main purpose of Irrlicht, but could you make the GUI more... game like?

Tha ability to use tectures for borders/backgrounds, as well a texture buttons would make the GUI so much better for games. One idea I had was this:

Skin can be image based
The image is mapped to a polygon like this:

Code: Select all

 _ __ _
|_|__|_|
| |  | |
|_|__|_|
|_|__|_|
The skin has a border - set by the user, and after that the center cell stretches, where as the border cells stay the same. This could be used for tha back ground on ALL controls and create a user interface that is styleised to the game, needing only a 32x32 or even 16x16 image for ALL GUI controls.

Does this make sense? Does any one agree the GUI needs upgrading and does this system look doable?

JPulham
pushpork
Kamazy
Posts: 24
Joined: Tue Oct 11, 2005 12:16 pm

Post by Kamazy »

Well, texture menus and all taht stuff is completly possible. Just not done with 1-3 lines of code. :P

Slam Soccer <- This is a game made with irrlicht that had a rather nice main menu with textures and stuff.
Cheerz! I'm new don't shoot! Image
Image
JPulham
Posts: 320
Joined: Sat Nov 19, 2005 12:06 pm

Post by JPulham »

I appreciate it can be done with custom GUI nodes... but what I meant was... Should it be integrated into Irrlicht?

Maybe I should post the code, and see if I can get it included into Irrlicht, if its good enough. Then agian. maybe I don't need it, looking at the shots.
pushpork
Kamazy
Posts: 24
Joined: Tue Oct 11, 2005 12:16 pm

Post by Kamazy »

Well, making custom menus and nicer buttons and stuff easier would be very usefull to anyone not just game making.

I would really like it to be in irrlicht but then again i can make it also. :P
Cheerz! I'm new don't shoot! Image
Image
bitplane
Admin
Posts: 3204
Joined: Mon Mar 28, 2005 3:45 am
Location: England
Contact:

Post by bitplane »

I completely agree, the GUI at present is pretty naff looking. however, it does support skins so you can make a new gui skin which uses images and 3d to speed it up. i havent looked at making skins myself yet, but i guess there are a mass of things which are missing, fonts spring to mind, but there are also things like border widths and options for background images
anyway, I plan on extending Irrlicht's GUI a lot in future, here's some things i've got in mind, though i'm not promising to do all of them right away-

serialization: save/load gui, element factories, and an editor control which can edit any element using serialization. (almost done)

image lists instead of using the built-in font for min/max/up/down buttons. possibly an image list editor tool to go with it.

fonts: a new font format, scalable wchar fonts with proper spacing and antialiasing, and a cross-platform font generator (almost done for windows). maybe the new font will be a derived from the image list

skin: multiple fonts with colours and sizes like in windows, image lists for graphics

new controls: file save dialog, font selector, attribute editor, treeview, frames

orientation: align controls to centre/left/right/up/down, automatic resizing and positioning

if you think of things i've missed, this is the place to mention them :)
Submit bugs/patches to the tracker!
Need help right now? Visit the chat room
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

I'm going to go out on a limb and suggest that while it's nice that Irrlicht provides GUI functionality, developing it further may be a distraction from improving the core functionality of the engine. I say that having already submitted a small patch for Irrlicht GUI, but from here on I'm going with CEGUI.

If Irrlicht came with a bundled example showing how to integrate it with CEGUI, do you think we'd have many people still using Irrlicht GUI?
CuteAlien
Admin
Posts: 9930
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Post by CuteAlien »

rogerborg wrote:I'm going to go out on a limb and suggest that while it's nice that Irrlicht provides GUI functionality, developing it further may be a distraction from improving the core functionality of the engine. I say that having already submitted a small patch for Irrlicht GUI, but from here on I'm going with CEGUI.
I think the GUI is already part of the core functionality of this engine. And i see it as an quite important part. Even if you use the GUI only for yourself, for example for debug- or editdialogs, this will usually be a very time consuming programming task. And so far everyone using irrGUI for more than a few basic buttons will have to do stuff like serialization first. My only fear is currently that serialization without caring about multi-language support (i18n), like for example stringtables, will not be that useful for a serious game ui.
rogerborg wrote: If Irrlicht came with a bundled example showing how to integrate it with CEGUI, do you think we'd have many people still using Irrlicht GUI?
Don't know, i tried CEGUI myself and switched back to irrGui after a few days. My main reason was the dll-size, which might not be important to everyone. But i had some more reasons for using irrGui. It's more complicated to use several libraries - especially if you're programming for several platforms. And while CEGUI might be a very good library, it does, like irrGUI, not seem to offer much more than a few basic widgets. So i had to program some stuff for myself anyway - and i'm just used to the irrlicht structures by now.
Saturn
Posts: 418
Joined: Mon Sep 25, 2006 5:58 pm

Post by Saturn »

rogerborg wrote:If Irrlicht came with a bundled example showing how to integrate it with CEGUI, do you think we'd have many people still using Irrlicht GUI?
Yes, I think so. ;)
Don't get me wrong, I agree 100% that energy put into improving the built-in GUI is better spent on Irrlicht's core features. Also clearly cegui is the better full-featured gui library for games, I use it myself.
But it doesn't have the irrlicht kind of api style and many irrlicht users are reluctant to use third party libs.
It takes a bit longer to get warm with cegui, for me at least. And it took me quite a bit to understand all the different kind of data files in cegui. Nevertheless, the results are simply better visually and cegui is much easier to theme and to tweak to your own needs and to use in larger scale. Thanks to ImageSets, uniform dimensions and the general data driven approach.

So, JPulham, look at cegui. :)

Edit: Ha, seems CuteAlien is the first to prove me right here. ;)
JPulham
Posts: 320
Joined: Sat Nov 19, 2005 12:06 pm

Post by JPulham »

I say there be a small project to improve irrGUI
Maybe a small team DEDICATED to this.
I would love to implement my 'Image based Border' idea...
and maybe even write up an image list thingy, or let someone else do it. :D

any one what to join? :? :D
Everyone can be responsible for their own ideas... or get someone else to do it

basically... if the GUI is upgraded and then someone can compile against SVN and There we have it... a new GUI.

Isn't that what Open Source is for? :roll:
pushpork
bitplane
Admin
Posts: 3204
Joined: Mon Mar 28, 2005 3:45 am
Location: England
Contact:

Post by bitplane »

okay I know there's bigger things that need doing than the gui, but i fancied a go at it. I've been enjoying it so far too :)
We've got a good start on a usable gui, so why let it fester?

CuteAlien, although it is a good idea, I don't think we need stringtables to make gui serialization workable, it can be added later and have everything continue working.

JP, I think this is a good idea... after I merge the gui factories, we should start a new sf or google code project for all kinds of irrlicht plugins.. node/element/animator factories, user skins, fonts, material renderers, tools, exporters, etc, then when they're good enough add them into irrlicht. provide patches where changes to irrlicht are required, and add the unavoidable/useful ones to irrlicht afterwards

anyway, if anyones interested, here's a couple of demos of the stuff i've been working on-
gui element factory and serialization- (patch is somewhat out of date, i made some ugly new attributes and it uses stringc- so i recommend you dont merge it). http://bitplane.net/dump/temp/guitest.zip

and a new font tool i've been playing with- (windows binary only, and no way of displaying the fonts yet)
http://bitplane.net/dump/temp/font_test.zip

I'm currently working on creating vector fonts from bitmap ones, for my own pleasure mostly- but they may never make it into irrlicht, depending on how good and useful the finished result is!
Submit bugs/patches to the tracker!
Need help right now? Visit the chat room
CuteAlien
Admin
Posts: 9930
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Post by CuteAlien »

bitplane wrote: CuteAlien, although it is a good idea, I don't think we need stringtables to make gui serialization workable, it can be added later and have everything continue working.
I did it myself while serialization, because it's easy to do there, but there's really no reason why it shouldn't be handled otherwise. You can certainly just do serialization for now and it's possible to exchange all strings after the serialization. I really shouldn't post before my first coffee.

It would be easy to add a stringtable anyway. I put a simple implementation on my website ( http://www.michaelzeilfelder.de/irrlicht.htm ) which could be used for that (it currently needs tinyXml on loading, but i guess that's easy to change).
Post Reply