Easy GUI for 3D engine

Started by
14 comments, last by GameDev.net 10 years, 9 months ago

It's not really flamebaity, Qt is very difficult to compile/build for Windows platform, has many non-standard tools and code, looks like crap compared to officially approved GUI technologies for Windows and seems to have compatibility issues with Windows 7 and above.


I have built the commercial and OpenSource version of Qt using MSVC and MinGW. I have even built and successfully linked Qt statically using the static runtime even though that's not officially supported. It's not the simplest of builds but far from the worst I have seen and much simpler than some I had to deal with.
One part of my day job is looking after a Qt-based application. I have not experienced any compatibility issues with either Windows 7 or Windows 8 so far. Maybe in the more arcane corners, but all the normal stuff works without issues.
The only 'non-standard' tool you usually have to deal with is the moc'er. Especially using CMake it integrates into the build process absolutely seamlessly. I don't see much chance for problems down the future either: the C++ standard committee seems extremely reluctant to add anything to the language that breaks existing code, so the worst thing you might have to deal with is that you cannot use some C++XY constructs in your headers you need to moc. And even that is doubtful because parsing the moc'er does is rather lazy and accepts a lot of things that are obviously not valid C++.

While the look of Qt4 is nothing to write home about I haven't really found anyone complaining about it either, unless of course you force a non-native look on it. Qt5 is on a completely different page but I don't have enough experience there yet to comment about it.
Advertisement

All this stuff is rendering by Direct3D. Can you give some library that operates on rendered texture (like Unity3D)?

So, if I understand you correctly you look for some in-game UI? You are not looking for something to create and manage the application window?

In that case, both CEGUI and libRocket still appear reasonable solutions. CEGUI comes directly with a DirectX renderer, you might have to implement one for libRocket, not sure (but that should be rather simple).

DXUT

I checked out libRocket in the past but it always looked inactive to me. The last news on their web page is from 2011 and the forum is not exactly active but not completely dead either. Do you have any more experience with that project? Are they still actively developing?

I started using libRocket, with SFML/OpenGL rendering, two weeks ago, and I like a lot of the features and available controls. It's also fairly easy to add custom controls and expand existing controls.

The initial learning curve was a bit steep, it's a bit incomplete in places (ie I had to add a row selection indicator to the data grid), and similar to using HTML & CSS, it takes some trial and error to get things laid out correctly.

Data and event binding are really easy to setup, and it's easy to customize the look of the data. The code is well organized, so it's easy enough to add additional functionality. And, once you understand the paradigm, it's fairly easy to layout a dialog or UI.

I've only ran into one significant snag, and that was trying to use two data grids in a single window. I could easily use a data grid and a data selection element. I could have done something wrong, or there might be some formatting requirements that I didn't understand. I ended up not really needing it, so I didn't spend much time trying to figure it out.

I looked at a lot of the GUI libraries available, and can't find one with an advanced data grid control. Many have a list control, but very few have a data grid control, and only libRocket had support for data binding.

Check out Super Play, the SNES inspired Game Engine: http://www.superplay.info

libRocket for the gui.


I checked out libRocket in the past but it always looked inactive to me. The last news on their web page is from 2011 and the forum is not exactly active but not completely dead either. Do you have any more experience with that project? Are they still actively developing?

It definitely seems like the library dev has slowed down if not stopped completely. On the other hand, there are a number of branches with useful fixes and modifications on github where others have continued the work. So, while the main branch may seem pretty well dead, go snoop around the other branches, there's some interesting stuff.

This topic is closed to new replies.

Advertisement