Comment by Llamamoe
9 months ago
> The real meat & potatoes is all the tooling and content and asset pipelines around the engine. If you think about it, you need to implement:
I wonder if there'd be any value in someone making a FOSS engine-agnostic editor designed to be as easy and powerful to adapt to any other engine/framework/etc as possible.
The problem is that the type of assets you need to design varies tremendously depending on the type of game you’re making. A 2D pixel-art platformer, a multiplayer FPS, a top-down strategy sim, and a puzzle game are all going to require completely different types of assets with unique design requirements. You’d need an all-singing-and-dancing tool that probably wouldn’t be as good at any one thing as the existing specialized tools, FOSS or otherwise.
Although come to think of it, you could probably do most of that in Blender, so maybe such an thing already exists.
There's basically two paths:
(1) Build a generic and extensible UI tool which at the core is a 3D scene viewer, object outliner and an asset browser (similar to how VSCode is such a tool for 'mostly text data' for 3D scenes). Implement anything else as engine specific plugins - Blender can be that tool, but it would be important to do a complete UI overhaul to get the modelling and animation features out of the way.
(2) Integrate the editor UI right into your engine, which is quite trivial with Dear Imgui - the tricky part here is that game state data should either be organized for editing, or for runtime performance. Mixing both isn't a good idea (unless moddability is a priority).
About a decade ago I would probably have opted for option (1), nowadays I tend towards option (2).
I feel like path #1 would also run into the same problems as #2 as soon as there was any need for real-time editing of scenes.
> The problem is that the type of assets you need to design varies tremendously depending on the type of game you’re making
Unity, Godot, Unreal, Defold and others kind of get away with it, by having editors that work for most game types.
But also: a tool doesn't have to cover all bases, especially a free/FOSS one.
To some degree subsets of this exist.
For example for 2d games it is possible to use Tiled as a level editor if you build your game (or some tool) to parse out tiled's file format and turn it into in-game levels.
A more general purpose editor in line with Unity or Godot's that includes the ability to attach functionality to everything would be much harder since the specifics of that will be much more engine specific.
Some of the other commenters have pointed this out. But this just doesn’t quite work.
I’ve been doing Game Dev for the better part of 15 years now which is almost all of my career. I’ve been almost solely focused on building Tools and almost always building Editor internals and the interactions with the engine/assets systems.
There’s just so so much nuance to how editing works. You also want to be as close to how the engine will render so there’s also the need to either embed or have an api on your game to edit content live. People need hot reloading, people need things to look and act correct.
Just rendering a model accurately can be a challenge. Don’t get me started on animations
> I wonder if there'd be any value in someone making a FOSS engine-agnostic editor designed to be as easy and powerful to adapt to any other engine/framework/etc as possible.
I see one problem (there very likely exist a lot of others) in the fact that a lot of frameworks and engines are "deep ecosystems" that take a lot of effort to get deeply into. Once inside the engine ecosystem, a lot of concepts are "very integrated/intertangled" (though not necessarily in the "best possible way").
So, a lot of implementation time will have to be invested for each individual supported engine so that the editor properly integrates with it.
As a "potential customer" for such thing:
I would really love something like it.