Comment by NotGMan

9 months ago

This.

When working on your own engine you also feel as if 90% of the time is spend on user interface creation if you actually want to have an visual editor.

People don't realize that they will spend 95% of the time on the engine and 5% on the game.

Which is ok if you don't want to make a commercial living out of it.

But unless you are making a game with extremely specific needs (eg Factorio) using your own engine will probably kill you commercially.

Visual editors are a waste of time. For 2D, lots of solutions exist (Tiled for example). For 3D, you can use Blender as your editor.

The key to making no engine work is to make only what you actually need.

  • That’s a great idea.

    I have limited experience scripting Blender, but there is a BPY API to add custom panels, so adding metadata to “entities” and simplifying the export workflow is probably feasible to the point it will be very close to an editor.

    • Even without scripting Blender, GLTF is a "scene" format. GLTF files hold information about models, textures, lights, etc... So you can create your scene then import straight into your game with GLTF (open source, super common).

      And of course since Blender is used for movies, it does scenes well already.

  • > For 3D, you can use Blender as your editor.

    Really depends on the team size, composition, and game. If you have designers on the team who aren't dedicated programmers, I don't think blender will cut it for them.

    • ??? Blender has scripting but it's for artists... Like, artists make movies with it... Movies that have scenes with dozens of artists working on it...

      2 replies →

  • Visual editing is how all UI is designed. It's not a waste of time. Visual editing is the primary way to prototype, which means it's heavily used at the beginning and less as development goes forward. Projects have some process to translate the prototypes into scaffolding UI in the Editor, then modify with state where necessary. This pipeline is common across all types of software.

    • Sorry, I thought the context was clear given the parent. Making your own visual editor is a waste of time when ones exist that will output a format you can simply put into your game.

> using your own engine will probably kill you commercially.

No - spending a lot of time making tools you don’t need is the problem. You can write your own engine and leverage existing tools.

Even factorio started out on tried-and-tested libraries before moving away from them primarily because of optimization concerns (right?)

  • Yep, people forget one of the core notions of development which is not to prematurely optimise stuff. Especially something as complex as a game.

    Keep it super simple. Or that game will never come out.

    • Just the other day on reddit I saw someone asking about efficiently removing an item from an array for the game they’re working on. It became this whole CS debate and then someone asked how big the array is and how often do you remove items. The OP responded that it’s just a list of levels in their game, so not more than 20 items or so and is modified once every 5-10 minutes…

      So a day on their game wasted over efficiently removing an item from an array of 20 items every 5-10 minutes.

      2 replies →

    • The full quote is:

      > Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.

      Sometimes the best way to tackle that 3% is upfront when you're deciding on your system architecture.