← Back to context

Comment by zoky

9 months ago

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.