Sunday, January 9, 2011

Recommend a game engine with 2D GUI for a UI-intensive strategy game

Yes, this is another recommend game engine request; the 'twist' is I am doing a strategy game and on top of sprites, animation and abstraction of input controls, it has to have GUI support for rather complex controls, such as scroll-bars, select boxes, buttons and such.

I have tried XNA with various GUI libraries, but the problem is that those libraries was not 'completed'. I am just wondering if there are other engines which I can look at?

  • I don't know any free game engines that come with a Windows-level UI library, but CEGUI is a mature solution for those using OGRE.

    Another option would be to use GTK+ or your platform's native widget set on Win32 / OS X, and embed an OpenGL context inside one of those widgets. Those are generally the "best" UIs if you're looking for a long feature list.

    If your target platform is XNA you won't find much useful. The key selling point of XNA is cross-platform compatibility, which means heavy mouse control is not a priority for people using it.

    Extrakun : I have been wondering about using Qt 4.5, to be honest, though I would like to find out if anyone has any experience with skinning it to be like a in-game environment, or running it on top of say, SDL.
    Klaim : CEGUI can also be used directly in OpenGL and other rendering engines...
  • You may consider immediate mode GUI method which is available in Unity 3D. Unity 3D is an awsome game engine which does very well 3-D, 2-D and GUI among other things.

    Joe Wreschnig : As I mentioned in another UI question, I have never seen IMGUI scale up to multiple windows, combo boxes, and columned list controls. You hit efficiency walls and API design walls fairly quickly. Unity's current GUI library definitely does not scale well, in performance or features.
    Jason Kozak : It might be interesting to note that Unity's own GUI is implemented using the IMGUI system they provide.
    Joe Wreschnig : @Jason: That's a half-truth. The Unity editor (http://unity3d.com/support/documentation/ScriptReference/EditorGUILayout.html) provides many more primitive widgets than the normal GUILayout. You'll also see that those widgets are vastly underpowered compared to a normal GUI library. And frankly if a game had a UI that felt like the Unity editor's does - in terms of responsiveness, focus behavior, activation rules, etc, not referring to the look - I'd hate it.
    Jason Kozak : @Joe A fair point if you're developing games in Unity; my intention though was only to point out an example of a more complex IMGUI in action. Since Unity is free, it's quite easy to download and evaluate.
    Extrakun : IMHO Unity3D's GUI has to be augmented with some third party libraries if you wish to do OOP programming, such as GUIX. However, Unity3D has an annoying bug where you can click through UI elements onto colliders attached to entities. This touted to be fixed in the next release. However, I am thinking of 2D at the moment, and doing 2D in Unity3D requires some hoops to jump through. It's otherwise a good rapid engine for 3D stuff.
    From Wernight
  • libRocket recently went open source.

    It's not a game engine. They describe themselves as middleware. But the library is pretty well done, with focus on removing boilerplate code from you GUI design. It's based on XHTML and CSS, so if you're already familiar with Web developoment it might be a great fit.

    But it is not a game engine you'll still need to solve those issues separately. You might find some guidance with this question.
    Recommended 2D Game Engine for prototyping

    Extrakun : Does libRocket renders the GUI elements, or just provide a description? Sorry if this is a dumb question, but the feature list doesn't really state if it does actually render.
    caspin : It uses an abstract rendering backend. It's up to the user to define their own. However, the samples directory has a concrete renderer for Ogre3D, DirectX, and OpenGL.
    From caspin
  • If you don't mind making some controls yourself and whish to have many custom controls and looks check out Scaleform. It's one of the leading in games menus UI.

    You may think of it like a in-game Flash player.

    From Wernight
  • XPF is still early in development, but it's progressing pretty quickly. It's based loosely on WPF and Silverlight, but it's developed for XNA.

  • Well, if you don't mind moving away from C# to C++ you could check out HGE. It's a little on the old side but is very easy to use and extend. If you're willing to search the forums a bit you will find ports of it to DirectX 9 and maybe OpenGL (it has been a while). By default it doesn't support things like shaders. It does include sound and input, but no physics or collision detection. For that there is always Bullet or Box2D. For a turn based game or simple real time game that may not even be necessary.

    As far as GUI goes its built in GUI is garbage, but you can integrate CEGUI into it. CEGUI is actually pretty easy to extend to different rendering systems, even if skinning it can be cumbersome. The implementation for HGE is two files and they are pretty short.

    Clanlib may also be something you want to look into. I haven't used it personally but it appears to be quite powerful and includes a pretty straightforward GUI component. It is also actively developed while HGE hasn't been updated for a couple of years.

    From Owen
  • As for XNA, have you tried FlatRedBall combined with Neoforce?

    Extrakun : I have tried FlatRedBall, but haven't heard of Neoforce. Will check it out! On checking out Neofroce: Alas, like many XNA GUI projects, they are not being maintained by their developers. If only Microsoft will make GUI a part of the XNA core.
    Oskar Duveborn : Neoforce doesn't have a developer anymore but it's free for anyone to pick up and maintain ;p
  • You could give Squid a try. It's an engine independent gui sdk for .net (written by me :P). Over here: http://www.ionstar.org/?page_id=4

    From chl

0 comments:

Post a Comment