Still don't know what GUI system to choose

An interface is still a class.  :stuck_out_tongue:

is not! :stuck_out_tongue:


Take a look at your build directory and see if there's a "MyInterface.interface" or if it's "MyInterface.class". :wink:

frogs are stupid, ugly and they stink.  :stuck_out_tongue:


Don't forget the warts. :wink:

not to be a total noob but is a GUI suppose to be something that helps make things like clickable icons and tex boxes? or is that something else?

That's a pretty good definition. :wink:

so i was right?

Yes, but for further clarification:

Take a look at Substance and the built in Synth look and feel.

Between the two of them you can pretty much do any kind of swing based gui you can think of.

  • Substance gives you some nice looking active buttons and such with just one - three extra lines of code for an entire application:

  • Synth allows you to customize almost everything with your own description based on an xml file.

Both are currently be used in various projects around here.

I would point out that I started down the path of creating a gui library for jME awhile back (search for references to NUI) based on Ogre's most well known gui plugin. IMHO being able to use Swing for in-game gui is one of the strongest reasons to use jME over any other 3D engine, period, Java/C++/.NET or whatever.

I've never noticed any perceptible performance degredation.

I've done a significant amount with Swing and have noticed serious performance issues using it in-game.  Galaxies Beyond uses Swing for the menus and such, but in-game I simply can't use it because of the performance hit I take.

If you really want slow, try using JavaFX in-game.  (I haven't actually tried it with jME, but the repaint latency is noticeable in JavaFX on my machine at work at times).  For now JavaFX runs in an interpreter.  They will make it "compile" to Java bytecode at some point, and then its performance probably won't be worse than Swing by itself.

JavaFX would be a really cool way to make a UI for a game, but probably not yet.

I’m currently using BUI.  I tried FengGUI for a few minutes - as it seemed like the best choice - , but gave up after I had some issues.  I reluctantly started on BUI today, and have a nice GUI so far IMO!

Seems easier to understand, to me, although I’m unsure as to how active development is on it (I see scattered posts about it being inactive, and others about it being very active because it’s in a commercial product, etc).

How much time do you want to spend dealing with a GUI system? Wouldn't you rather just right the game? Swing gives you so many more options. Not to mention good wysiwyg tools.

Any kind of strategy game would almost require it since there are so many more dialogs/buttons… options.

The GUI system is very important: it defines the majority of the game that the user is going to interact with; I know I wouldn't slack on it!  I haven't tried swing yet, but BUI didn't take me that long to write my GUI in (so far)…maybe 1-2 hours, including learning.

The issue I would have would be ease of customization for the game.  I've worked with Swing quite a bit, but have yet to really set foot in customizing the graphics (other than simple button icon setting).  I'm unsure of it, so please let me know.  If I could do everything in Swing instead of BUI, I'd probably rather do that (as long as it doesn't negatively affect performance).

In regards to wysiwyg tools: I hate them and the code they produce.  Being familiar with working with swing directly via code, I do all of my normal app GUIs manually.  Plus, there are places you can optimize code size and logic manually where the tool cannot.

Just a quick note, that FengGUI is under active development. We have a quite vivid forum where feature requests, questions and bugs come in every day. FengGUI is not restricted to jME only, that's why we are not so active on the jME forum (it's a shame actually because a strong part of our user base uses jME). As for performance and customization, FengGUI comes with its own XML theming language that enables users to easily skin and design their GUIs. FengGUI renders per design directly and entirely in openGL which should give it some advantage over Swing, but I havent done any serious benchmarking yet… documentation and usability of some widgets are still an issue though…

Couple of days ago, Whackjack rolled in his first SVG code, that allows to map SVGs on textures. Direct SVG-to-gl rendering is still under development.

We are planing to pull the jME binding for FengGUI in the official FengGUI repository so that setting up FengGUI with jME will become piece of cake.


using SVG as textures would be one of the nicest features a GUI framework can provide  8)

Schabby, if you do pull in that to make it more easily usable on the jME side I would most likely switch to trying FengGUI again.  I believe I may have had issues with that code, I am unsure…

In any case, I haven't gotten fully into BUI yet; I still need to try quite a few things to determine whether I'll stick with it (I'm starting to create playable demos…first a structure for creating demos easily, then the demos themselves to test more functionalities).

using SVG as textures would be one of the nicest features a GUI framework can provide

That's already possible with FengGUI. SVGs can be loaded and displayed as textures. Check out the SVG Example :)

Schabby, if you do pull in that to make it more easily usable on the jME side I would most likely switch to trying FengGUI again.

Cool! I will start working on it as soon as I got some free time to catch my breath. I am totally occupied with my diploma thesis these days, but I hope to get it done somewhere in October. I hope you guys bear with me for major upgrades on FengGUI until then :) Smaller patches will do of course.