> Godot doesn’t fight you when you’re building scenes. Making a scene feels a lot like creating a class using composition, and scenes can even inherit from other scenes (using another scene as the the root node of a scene allows you to inherit from it and override its properties in the editor and in code), allowing you to express patterns you’re intimately familiar with from object-oriented programming.<p>I personally find the approach of nodes everywhere a bit odd.<p>In my mind, you'd typically use nodes for objects that are supposed to represent some sort of an object or concept within the scene, whereas the scripts would be the ones that actually give said object any number of behaviors, such as a certain group of functionality per script.<p>So you might have something like the following:<p><pre><code> EnemyObject
PathfindingBehavior
ShootingBehavior
TalkingBehavior
</code></pre>
Unity kind of vaguely got that "right" (e.g. in a way that's subjectively intuitive to me) with its component system.<p>Whereas in Godot you can only have one script per node, which would mean that in practice I'd have something like:<p><pre><code> EnemyObject
PathfindingObject
PathfindingBehavior (attached script)
ShootingObject
ShootingBehavior (attached script)
TalkingObject
TalkingBehavior (attached script)
</code></pre>
It kind of feels like it would be nicer to be able to attach a number of scripts to the object that I actually want to control, instead of having Nodes that I don't really see much of a use for, apart from them being script containers.<p>Of course, maybe that's just because I'm used to the GameObject pattern that Unity uses, an entity-component system (of sorts), though that implementation has gotten a bunch of critique as well, with DOTS apparently being a better ECS approach, though also unfinished in certain aspects.<p>Just felt like sharing my thoughts on that particular aspect, which some might find curious and which might take a bit of getting used to (though personally not having a separate "prefab" concept and instead having more or less everything be a node is also pretty freeing, I have to say).<p>With a bit of love, using C# could also be pretty amazing, since GDScript does have certain limitations (performance comes to mind, for when you need it to be decent for number crunching but don't want to/can't use C++ due to knowledge or other restrictions, C# has your back there) and curious design choices (the integration with the engine is super nice and the Python like syntax is great, but having to define singletons in the editor IIRC is a bit silly <a href="https://docs.godotengine.org/en/stable/tutorials/scripting/singletons_autoload.html" rel="nofollow">https://docs.godotengine.org/en/stable/tutorials/scripting/s...</a>).