0
\$\begingroup\$

Basically sometimes I like to try to venture into the world of graphics computing, sometimes I have a project or another that uses opengl plus all the "blind" with opengl, I wanted to be able to create an editor like unreal editor or cry editor, basic functionality like dock widgets, buttons etc, and if it can be integrated with the engine, I've tried to create a windows program with WINAPI but God, that's a torture, a lot of code and in the end it's all blind, you end up having to to guess where each element should be, is usually quite limited having practically no legal content about it, on the other hand it was a hand in the wheel for me, very simple indeed, just the way I wanted it, but it does not give me the freedom that I wanted when it comes to computer graphics, I wanted to do something that was my own, without third-party codes (other than libraries like opengl, vulkan and directx of course).

I've been looking at the banshee code but I'm not sure how they did it to create that WINAPI editor, if companies like capcom and others can, then it should not be difficult.

\$\endgroup\$
  • \$\begingroup\$ Creating a UI framework can take a lot of resources. Have you looked into WPF as a simple solution? Granted it's a framework, but so would say an HTML5 solution which others might push you towards. (Assuming you're comfortable with JS development). \$\endgroup\$ – Sirisian Jul 12 '18 at 18:55
  • \$\begingroup\$ @Sirisian without frameworks, even more those that use .NET, wanted something pure, how to get the context of hwnd etc ... \$\endgroup\$ – Samuel Ives Jul 12 '18 at 19:01
  • 1
    \$\begingroup\$ I am a bit worried that you greatly underestimate the ease of developing an editor. Even the companies that you mentioned typically use frameworks provided to them by the developer of the engine. Now, if you're really set on creating your own, it could help with the answers if you could establish the functionality you want so we can point you in the right direction. \$\endgroup\$ – user39208 Jul 12 '18 at 19:57
  • \$\begingroup\$ It is also good for you to remember that every feature that you want out of your editor will probably require hundreds or thousands of lines of code and dozens of hours of testing. \$\endgroup\$ – user39208 Jul 12 '18 at 20:00
  • \$\begingroup\$ Time is not lacking, games have been around a long time since the time a company had at most 50 people, somehow they did it, I fear the knowledge for this is lost \$\endgroup\$ – Samuel Ives Jul 12 '18 at 20:13
3
\$\begingroup\$

If you don't want to use frameworks like qt, wxWidgets, then you'll have to either:

  1. Use the platform windowing API (WINAPI, XLib, Cocoa).
  2. Write your own widget toolkit and render it yourself using OpenGL/DirectX.

There is no pleasant way around this. (1) is massive pain in the ass. (2) is less pain in the ass, and allows to implement custom game specific widgets easier, but is massive amount of work nevertheless.

What lazy game developers do:

  1. Use WinForms + C# and render into a OpenGLControl / DirectX widget.
  2. Create small, incomplete IMGUI lib or use existing "Dear Imgui" (with C++).
  3. Use Qt, and render into DX/OpenGL widget
  4. Use UI tools in engines (Unity has IMGUI).

Or some variations on this.

The times of easy RAD/WYSIWYG UI programming - in the spirit of Delphi - are essentially long gone (WinForms kind of provides similar experience, but is kind of dated).

Looks like Capcom's MT Framework has done (2) - implemented their own widget toolkit (which they render themselves). It doesn't look very pretty (monospaced bitmap fonts!).RE5 Excuse the JPG artifacts.

Some first party Sony devs use https://github.com/SonyWWS/ATF. Which is WinForms+C# for UI and C++ engine interop stuff. Not quite pretty either.

There is no easy way.

\$\endgroup\$
  • \$\begingroup\$ For some time, I suspect that these frameworks use d3dx to create their widgets. For example, whenever I launched a qt project for production I noticed dlls related to d3dx in my project even using nothing 2d or 3d, if to implement my own widgets will have to use graphical apis so it is better to use qt or wx same, but still thank you. \$\endgroup\$ – Samuel Ives Jul 12 '18 at 22:49
  • \$\begingroup\$ "The times of easy RAD/WYSIWYG UI programming are essentially long gone" You still throw together a form with a bunch of widgets with a bunch of event handlers, just like in the borland delphi days. Or do you mean exact pixel measures for widget positioning, that break horribly when run on the variety of modern screen sizes that are in widespread use? \$\endgroup\$ – Caleth Jul 13 '18 at 15:32
  • \$\begingroup\$ @Caleth using what? There are no modern equivalent of Borland Delphi as far as I'm aware, is there? \$\endgroup\$ – JBeurer Jul 14 '18 at 3:22
  • \$\begingroup\$ Visual Studio? Eclipse? Xcode? Delphi is still developed \$\endgroup\$ – Caleth Jul 14 '18 at 8:20
  • \$\begingroup\$ @Caleth Visual Studio what? Eclipse what? Specific please? Delphi is still developed in the same way Fortran is still being developed. And it costs ridiculous amounts of money. \$\endgroup\$ – JBeurer Jul 14 '18 at 13:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.