Which tool/framework/engine should i use for a 3D/2D Editor?

Started by
13 comments, last by Servant of the Lord 8 years, 8 months ago

Hi everybody,

i have to create a 3d/2d editor with perspective/orthographic views, i need cross-platform, i was thinking at Unity 5 game engine, but i also need an integrated UI event-driven like Controls of Visual Studio forms (buttons, tables, gridview, textbox, progressbar, etc.).. basically i need Controls cross-platform + 1 or more canvas for rendering 3d (like any other editor) cross platform (Windows, Linux, MAC).

Which technology should I use?

Thanks in advance.

Advertisement
I'm... not sure I understand. Are you looking for a game engine?

Because when you say create... and then Unity... it's counter productive. Just about any publically available engine has what you need already.

Do you want to create an editor that works something like Unity, or use Unity to create an editor for your format?

Or create an editor for creating UIs?

Sounds like a really big project if you want to create the whole thing from nothing but controls.. look into Qt for example. Google for cross platform UI frameworks, and add some more keywords that are relevant to your project. Wikipedia has one listing: https://en.wikipedia.org/wiki/List_of_platform-independent_GUI_libraries

Do you want to create an editor that works something like Unity, or use Unity to create an editor for your format?

Or create an editor for creating UIs?

Sounds like a really big project if you want to create the whole thing from nothing but controls.. look into Qt for example. Google for cross platform UI frameworks, and add some more keywords that are relevant to your project. Wikipedia has one listing: https://en.wikipedia.org/wiki/List_of_platform-independent_GUI_libraries

Basically i need to create an editor, i can't with Unity, (very simple Editor for showing 3d models and some little functions), this editor must works on Windows, Mac, Linux.

I don't want a simple game engine to make this, i want to start from scratch (C++ - framework, or C++ - basic graphic engine) because i need to create an editor (canvas with 3d rendering + controls event driven non-realtime), multiple windows (like any Form).. For this i think that i need some things that allow me to: create windows, create a rendering context (3d) in a portion of my window, create Controls like table, data grid view (like any other Event driven forms of visual c# forms).

Something like this:

f13c01c3cd.png

what approach and tools to use?

Qt and OpenGL. Start by Googling some examples of Qt with OpenGL and see if you like it, and otherwise search for others to try.. it's a matter of personal taste, but Qt is popular.

I like Qt and OpenGL. Here's a screenshot of my WIP editor, to give you an idea of what Qt can do.

(the main editing region and the (disabled) minimap are OpenGL)

Qt provides a comprehensively large collection of general purpose libraries - not just UI - so try not to feel overwhelmed. Just pick and choose the parts you want to use. The documentation is fabulous, and the community is large and active.

Because the libraries are so large, and use some paradigms you might not be familiar with, it can lead you at first to write poor code trying to cram your old way of thinking into Qt's ways, but once you learn how Qt works, you can get alot of work done quickly. And large projects use many paradigms, so you don't need to to feel like you have to translate everything into Qt's style.

One note is, Qt's not designed for games specifically, so though it works excellently for your editor, your actual game will want to use your own architecture. For my own project, I have my engine code shared between my Qt-ran (w/ OpenGL) editor and (eventually) my SFML-ran (w/ OpenGL) game itself, so I isolate Qt to just my editor builds.

I like Qt and OpenGL. Here's a screenshot of my WIP editor, to give you an idea of what Qt can do.

(the main editing region and the (disabled) minimap are OpenGL)

Qt provides a comprehensively large collection of general purpose libraries - not just UI - so try not to feel overwhelmed. Just pick and choose the parts you want to use. The documentation is fabulous, and the community is large and active.

Because the libraries are so large, and use some paradigms you might not be familiar with, it can lead you at first to write poor code trying to cram your old way of thinking into Qt's ways, but once you learn how Qt works, you can get alot of work done quickly. And large projects use many paradigms, so you don't need to to feel like you have to translate everything into Qt's style.

One note is, Qt's not designed for games specifically, so though it works excellently for your editor, your actual game will want to use your own architecture. For my own project, I have my engine code shared between my Qt-ran (w/ OpenGL) editor and (eventually) my SFML-ran (w/ OpenGL) game itself, so I isolate Qt to just my editor builds.

Thanks for the hints!

I want to use Qt, but i saw that it's not free.

I don't want to make an open source project unfortunately.

3f7706a7a1.png

$350/month.. no free alternatives?

https://www.qt.io/download-open-source/

Edit. Oh, and yeah, you don't need to make your project open source by using this. You just have to link to it dynamically.

Derp

https://www.qt.io/download-open-source/

Edit. Oh, and yeah, you don't need to make your project open source by using this. You just have to link to it dynamically.

Thanks, it's perfect for my purpose, i will try to study in depth Qt and implement it in my current engine.

To clarify, Qt is entirely opensource, using LGPL. LGPL permits you to use it for free even in commercial projects, as long as you A) link to the DLL instead of statically compiling, and B) release any modifications you make to Qt's source code (not your own source code).

The licensing issue is ran by a different company (not the one who originally made Qt, and not the community), because they own the rights to license the sourcecode out at different licenses, if a commercial company decides that LGPL is unacceptable to them. Naturally, they try to push the (paid) licensing by making companies think they need the commercial licenses. They also provide services like support and things like that, as well as (probably) commercial-only modules.

Due to the arrangement of this nature, it is impossible for the company to un-opensource it, so as long as you don't mind dynamically-linking to Qt, and as long as you release any modifications to the Qt DLLs, you're fine.

If it helps put you at ease: Qt is used as a basis for many Linux distros (the KDE desktop environment is built heavily on Qt). Because of this, the Linux community pressured the original company (Nokia, the cellphone manufacturer, before Nokia was bought out by Microsoft) to release the code in a Linux-friendly / opensource-friendly library.

This topic is closed to new replies.

Advertisement