Nuclex GUI, Anyone?

in

Because my game in development absolutely requires some kind of GUI (and an XBox360-capable one at that -- it would be a shame if all my portability efforts would gone to waste just because of that), I've been looking around for a good GUI library recently.

Thrust
Screenshot of the GUI in the thrust library There's John Sedlak's Thrust library, previously called Xna5D, which does not have licensing terms I'm willing to settle on.

Buttermilk 2D Game Engine
Screenshot of the GUI in the Buttermilk 2D Game Engine Bryan Edds has been working on his Buttermilk 2D game engine seemingly since the beginnings of XNA. Its GUI system is quite extensive (for example, it provides an on-screen keyboard for gaming consoles). The released alpha version was not allowed to be redistributed and now he decided to rewrite his engine to become a 3D game engine, so this projects falls out of the equation as well.

2DNA
Screenshot of the 2DNA GUI Next in line is 2DNA by someone who's only published himself as Hawthorne. While from what he's written in the XNA forums, it could be a well-designed project (and it has a visual form designer, too), the source code is only available on request and he's not advertising his project anywhere (there's not even a website at the time of this writing). So, sadly, I'm not going to bet my money on this one as well.

xWinForms
Screenshot of the xWinForms GUI library Then there's xWinForms 1.0 from Eric Grossinger. The library comes with lots of controls and has a great look and feel, but it doesn't work on gaming consoles and the code is baked together rather tightly with the visuals.

CeGui#
Screenshot of the GUI in CeGuiSharp Of course, CeGui#, the C# CeGui port is also still around. I tried to get it back in sync with the latest CeGui sources last summer, but *sob* it's quite a laborious task and I eventually lost traction (sorry Rob!). If anyone would offer his help to gain some ground, *wink* I'm still willing to get this done! Unfortunately, it also wouldn't work on the XBox 360.

? ? ?
So now I'm thinking about starting my own GUI library. The working title would be (plain and simple) Nuclex.UserInterface. As usual, I'd put some good effort into its design. CeGui# is ok, but I'm sure I can do better. Isolate the visuals from the logic (so you can have skinning or even 3D models as GUI elements), abstract input enough so it works on a gaming console without keyboard or mouse, allow for multiple active GUIs (think of Doom3's in-game computers) and first and foremost, have an elegant API that everyone understands.

Any comments on this? Features you'd be interested in if I pull this off?

pyrokar's picture

nice idea, but i think the

nice idea, but i think the project will be much work for you ;)
i'd like it to be very easy integrateable into XNA.
The less lines code, the better ;)
as you said, an elegant API.

i'm looking forward to seeing your project ;)

rod's picture

Take a look at Aaron's

Take a look at Aaron's XNAWindowsSystem project. It's still in alpha status but maybe it fits your requirements.

http://aaronkm.blogspot.com/

Cygon's picture

Thanks

Aarons XNAWindowSystem indeed looks nicer than all the others I've tested, I'll see if I can modify it for my purposes!

@pyrokar: Look at my Nuclex Engine news, I've done a complete GUI framework with skinning before already :)

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <br> <a> <em> <strong> <u> <i> <b> <cite> <blockcode> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <pre> <span>
  • You can highlight code with any of the following tags: <blockcode>

More information about formatting options