

> The second form of criticism I've heard is that type issues become a serious problem as the size of game code growns past a certain point. (Of course "good" needs to be defined but I personally had no problems.) No need for separate tools, Godot comes with everything out of the box. > Does GDScript have good debugging, linting, and profiling tools? But honestly, I usually find a more idiomatic pattern later. PS: I created a virtual node tree a few times to wrap UI components. With an addon, which is just a directory structure for assets, your custom in-editor functionality becomes indistinguishable from native godot behavior. Then you can take it a step further, and convert your tool scripts into an addon. Godot 4 has grown a pre-processy decorator syntax, so it’s the same, but your scripts, you can detect whether you are in the editor by checking `Engine.editor_hint`. In Godot 3, you put `tool` as the first line of a script, and it will be loaded. The answer is that godot will ignore all project scripts by default while you are in the editor, but it offers mechanisms to enable them.

Godot engine is written in Godot engine, so what is the distinction between being in the editor and being in the game? I’ll have to be a little practical and hope it makes sense. Maybe that’s the metaphor you’re looking for? I’m not sure your mental model matches mine, but in my “real job” I deal with the shadow and virtual DOM.
