I have done something similar to Capcom's RE engine solution (at least based on godofpen's explanation, they require you to login to download the document and, meh). My editor is a WinForms application that starts up and connects to an instance of the game running in a special editor mode. The game then renders to a panel in the editor window, making it look like everything happens inside the same program. Technically the editor and the game are two different processes, but they keep track of each other reacting if the other one crashes etc.
You can see the editor in action in this development video: https://www.youtube.com/watch?v=fUFVh-2Aefg (video-production-wise not that great I know, working on getting better)
There are pros and cons to doing it like this:
Pros:
-
The editor is true WYSIWYG since the game's native renderer is used to render the scene, as opposed to having a separate editor.
-
The editor UI is quite easy to keep responsive as most of the heavy stuff is performed by the game side. It does mean you have to manually block the user from doing stuff while the back-end is busy though.
-
You get to use the large library of ready-to-use components available for WinForms (also true for WPF and, I assume, Qt)
-
In my case, since I actually run the game exe through the editor, I can add editor-side functionality on the game side. Eg. if I have an object type in a game which needs to behave in a special way in the editor, I can put that code into the game exe and the core engine libraries aren't touched.
Cons:
-
Many things that are simple in a single-process editor become much more complicated. Eg. changing the name of an object in the scene involves a step on the editor side, a step on the game side and finally a step on the editor side to keep everything in sync.
-
Debugging the editor becomes a lot trickier since you are working with two different processes.
My case is complicated further by the fact that the editor functionality wasn't planned from the beginning. Instead, the editor was bolted onto the engine at a later point. Because of this I still don't have "Play in editor" functionality, ie. the kind of thing you get by hitting Play in Unity. It is certainly possible to do but I would require me to re-architect some core parts of the engine. Another issue is that parts of my engine runtime never expects there to be any issues with missing resources or the like. Most editors show an error message in these cases. Depending on the case, my editor might just crash because the loading code hasn't had to handle these cases until the editor part was bolted onto the core engine. Most of these things are fairly simple to fix though...
If you are thinking about using web technology for your editors it might be worth reading through Insomniac's postmortem about their experiences: https://deplinenoise.files.wordpress.com/2017/03/webtoolspostmortem.pdf They switched away from web tech some time ago and it sounds like they weren't having that much fun going that route after all.