Lately, I’ve read about several UI projects in different forums, such as:
Fengui: http://fenggui.dev.java.net/
Squareheads gui: http://home.halden.net/tombr/gui/gui.html
Banana User Interface toolkit: http://samskivert.com/code/jme-bui/
JMEDesktop: (cant find URL to it right now)
Small Gui System (SGS for short) for Xith: http://www.java-gaming.org/forums/index.php?topic=12185.0
GUI3D: http://gui3d.org/
Now… all of the above projects are great on their own merits, but in general I believe that either their philosophy is wrong, their scope is too limited and/or they have other problems like performance and lock-in to a specific engine.
What would make a good UI system? What functionality must it possible possess to conform to my weird standards?
Ok, for starters, I have a few points which I would consider to be essential for a future-proof UI system.
- Build for both opengl bindings (JOGL/LWJGL), not an engine such as Xith or JMonkeyEngine
- GUI Markup in XML. The future of GUI’s is not in-code, so don’t mimic swing
- Odd interface design should be possible, a-la winamp & co
- Animation-markup. (both animation -of- gui elements as well as support for animated textures) Mouseover / appearance / dissapearance behaviour in XML.
- Easy to get started with, but should allow for complex gui structures. I want Azureus to be on a wall in a maze, where you can shoot the buttons with your plasma gun.
So I’ve been thinking… of course, to start my own project, but that would be silly, with all the effort going on. However, to get every gui author to collaborate on something new, bringing in their knowledge… I can see the grimaces on their faces right now. ‘what? and abandon what we’ve done so far??’. Yet, this is precisely what I’m asking. But not to abandon your projects, but bear with me…
There already is something which would allow me to mostly do what I described above here… however, the scope of the new project will become immense… but the rewards evenly great… what I’m talking about is XUL. The XML UI Markup Language used by mozilla. (see http://www.xulplanet.com/ and http://www.mozilla.org/projects/xul/). The advantage to using XUL as a basis is that it is a proven concept. After the design phase it would be easy to assign diffent tasks to different developers. progress can be easily tracked, and we have tons of interfaces to actually use/test.
What do you think? is it a good idea? are there other properties you would like opengl user interfaces to have?


