Sign in to follow this  
Singulus

GUI framework for game/engine tools?

Recommended Posts

I've just skimmed all threads here containing "mfc", but I didn't find what I'm looking for. So, here is what it is: - As a side project (with a mid-range plan to become the base of my mISV), I plan to begin to develop a level/scene/ai/physics editor supplementing a game engine. The similar applications are Radiant (Quake/Doom engines - Id Software), UnrealEd (Unreal Engine - Epic Games), Sandbox - CryEngine, Crytek), etc. The main features of this kind of windows application are: - main view window, rendering a 3d scene with the same code that is the renderer part of the game engine - one or more tree views on the side, for example representing the hierarchical structure of the scene graph, physics entities, etc. - numerous dialog boxes OR panels in the fore-mentioned side panel Nothing fancy, just a useful functionality, in the beginning only for us, the developers of the engine, in the long-term the application might become the official level editor of the game engine. There is no need for some sort of "brand" or "recognizable" GUI (like Adobe apps for example). Just to get the work done easily and without quirks. One of my core concerns - interoperability of the unmanaged C++ code in the engine DLLs and the front end application (the editor). The main candidates are: - MFC: my personal favorite. I'm relatively proficient with it, nothing spectacular, but I have fairly good knowledge of its overall structure (MVC, messages, etc.). Recently I've read a thread here ("Microsoft is pushing C++"), where I've read many optimistic things about the near future of MFC as a GUI framework for Windows with Visual Studio. Now the cons: I have a small doubts that the speed of GUI development will be far slower compared for example with .NET framework, but this is not tested, only an assumption. Correct me if I'm wrong. - WTL: Previously abandoned by Microsoft GUI framework, now somewhat resurrected, I've read numerous post around the net that it is used commercially in many game development studios. Pros: lightweight, native C++, Microsoft based (I'm not sure whether this is a pro or cons?!?) Cons: not officially supported by Microsoft, insufficient documentation, lack of numerous tutorials and samples on the internet. - .NET framework: Pros: The newest GUI technology for Microsoft platforms, easy to implement fairly featurefull GUI applications Cons: Managed code, what bugs me most is how painless will be the integration of the native C++ code (the engine) within a .NET GUI application. - Borland C++ VCL (part of Borland Developer Studio/C++ Builder): Pros: As a predecesor of .NET framework, I have ~3 months working experience with Borland C++ Builder doing GUI programming and I have to say that it is a breeze to develop that kind of stuff (especially the lack of experience with VCL prior that). Cons: What bugs me here is again integration of game engine DLLs, developed in Visual Studio within a VCL app. Another concern is that apparently Borland are abandoning the C++ Builder. - Some other GUI frameworks/toolkits: wxWidgets, GTK, etc. I don't know anything about these, only the names and their platform independence. What concerns me is the stability of the libraries and again the integration and some issues for using rendering module within them. - Doing the GUI stuff as a part of GUI elements directly with the game engine. This is an extreme, but not impossible at all. Pros: the development of various GUI elements renderable with the game engine will make a base for GUI for the game itself, which is a very good thing. Cons: the development of the needed GUI elements will take a lots of time, I prefer instead to work on core engine functionality. Thanks, all useful replies are appreciated.

Share this post


Link to post
Share on other sites
Quote:
Original post by Singulus
- MFC: my personal favorite. I'm relatively proficient with it, nothing spectacular, but I have fairly good knowledge of its overall structure (MVC, messages, etc.).
MFC was written at a time when people were still figuring out how to write good idiomatic C++. As a result, much of MFC is hideous, hard to debug, slow to write, incompatible with other code, and buggy. You can do a hell of a lot better.
Quote:
- WTL: Previously abandoned by Microsoft GUI framework, now somewhat resurrected, I've read numerous post around the net that it is used commercially in many game development studios.
WTL is actually kinda nice. It's more a WinAPI wrapper than a GUI framework, but if that's what you want it does a better job than MFC. I wouldn't use it for tools development, though.
Quote:
- .NET framework:
Ahhhhh. Finally we're getting to languages which make sense for tools development. Windows Forms is great. BTW, integrating existing C++ DLLs into .NET applications is fairly straightforward.
Quote:
- Borland C++ VCL (part of Borland Developer Studio/C++ Builder):
Don't have experience with this one. Sorry.
Quote:
- Some other GUI frameworks/toolkits: wxWidgets, GTK, etc. I don't know anything about these, only the names and their platform independence. What concerns me is the stability of the libraries and again the integration and some issues for using rendering module within them.
Of varying quality. FLTK and Qt are good. I wouldn't suggest them if you aren't specifically looking for cross-platform compatibility.
Quote:
- Doing the GUI stuff as a part of GUI elements directly with the game engine. This is an extreme, but not impossible at all.
The tradeoffs between game GUI and tools GUI are far too different for this to be a good idea under most circumstances.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this