• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
kolarz3

Easy GUI for 3D engine

15 posts in this topic

I search easy GUI library for DirectX (vs2010). I looking for wxwidgets and qt but they seem complexity. Do you known some other ?

1

Share this post


Link to post
Share on other sites

There is CEGUI (lots of features but also more on the complex side and a bit dependency heavy) and libRocket (rather lightweight and simple but the project seems to have stalled for a long time now - what is there seems to be working though).
 
If by "GUI library" you mean basic window management and context creation though, I would suggest SFML or GLFW.

 

Edit: nevermind, missed the DirectX part.

Edited by BitMaster
2

Share this post


Link to post
Share on other sites

wxWidgets generally supports OpenGL rendering much better than DirectX and the library is simple but unfortunately it is messy as hell with years of cruft. It was also based on the design of MFC in the early days (when two stage construction was "a good idea") making it a bit horrid.

 

Since Qt requires an external parser to compile (it isnt 100% standard C++), people don't realize this yet but in ~10 years it is going to be as hard as Borland VCF C++ projects to compile.

 

So my suggestions...

 

There is a version of GLUT for DirectX called DXUT (in the DirectX SDK Samples). If you are confident enough to load your own textures / sounds / shaders etc... without SDL or other frameworks, then I highly recommend it. Since DXUT (and GLUT) is extremely small, it also keeps your software portable to other platforms at a later date (such as that crippled Windows 8 Metro stuff). If you don't want to write your own texture loading stuff then you can still use standalone libraries (FreeImage, DevIL/OpenIL, even SDL just for images).

 

Since you are using DirectX (with a GUI toolkit), you are probably only interested in the Windows platform. Since C++/CLI or C++/CX are "Microsoft standards" then perhaps you might want to try using Winforms to create the DX rendering context using those compilers? The rest of your code can remain 100% standard C++. If you don't mind constantly asking Microsoft (every 30 days) for a developer license, then you might want to use the Windows 8 Metro framework as a GUI / rendering context too.

Edited by Karsten_
1

Share this post


Link to post
Share on other sites


If by "GUI library" you mean basic window management and context creation though, I would suggest SFML or GLFW.
 
Edit: nevermind, missed the DirectX part.

I agree with GLFW (OpenGL only), but why not SFML? Like SDL, it's capable of managing a window with attached DirectX device/context. Basically every framework will do, as long, as you can acquire a valid handle pointer - that's all what is required to properly initialize a direct3d device. 

1

Share this post


Link to post
Share on other sites

I have no experience in using SFML in combination with DirectX. I felt it safer to just redact that piece of uncertain information than offer pure speculation. However, while we are doing speculation: at least GLFW 3 seems to be able to return the native window handle. If it's possible to prevent the GL context creation (with the appropriate window hints), using GLFW for DirectX should be doable too with little extra work.

1

Share this post


Link to post
Share on other sites

Qt is non-standard garbage and going the way of the dinosaur fast. Best bet is to use a Microsoft approved offering, like DXUT.


Considering a whole OpenSource community lives around Qt (KDE), I find such a flamebaity post without any evidence to back it up ... extremely difficult to believe.
2

Share this post


Link to post
Share on other sites

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?
1

Share this post


Link to post
Share on other sites

 

Qt is non-standard garbage and going the way of the dinosaur fast. Best bet is to use a Microsoft approved offering, like DXUT.


Considering a whole OpenSource community lives around Qt (KDE), I find such a flamebaity post without any evidence to back it up ... extremely difficult to believe.

 

 

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. For Linux Qt is the one-eyed man in the land of the blind. Everywhere else its just a one-eyed man smile.png

 

I meant also that mouse-based GUIs are going the way of the dinosaur fast.

 

http://www.kde.org/community/history/qtissue.php

Edited by Steve_Segreto
1

Share this post


Link to post
Share on other sites

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. Edited by BitMaster
2

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

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).

Edited by BitMaster
0

Share this post


Link to post
Share on other sites

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.

Edited by cdoty
0

Share this post


Link to post
Share on other sites

 

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.

0

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  
Followers 0