Currently with DeepMind. Formerly Bullfrog, Big Blue Box, Lionhead, No Man's Sky.
Co-creator of Dungeon Keeper and Fable.
Billionaire playboy. Pathological liar.
I’m in C#-land, and I’m mostly rolling a Unity-like solution. But you still end up fighting your root node a bit.
I’m in C#-land, and I’m mostly rolling a Unity-like solution. But you still end up fighting your root node a bit.
For me, ‘components’ are not much more opinionated than ‘nodes’.
It’s slightly tricky to roll your own component system in Godot because of inheritance - a root node usually needs to be a canonical type (Node3d/Rigidbody/etc), which makes adding an Entity API tricky.
For me, ‘components’ are not much more opinionated than ‘nodes’.
It’s slightly tricky to roll your own component system in Godot because of inheritance - a root node usually needs to be a canonical type (Node3d/Rigidbody/etc), which makes adding an Entity API tricky.
Which is fine! It’s just a bit more friction and a bit more ad-hoc (for me, at least).
Which is fine! It’s just a bit more friction and a bit more ad-hoc (for me, at least).
You can do that in Godot with nodes - but there’s no canonical way to get a component; communicate from one component to another; broadcast an event to components, etc.
You can do that in Godot with nodes - but there’s no canonical way to get a component; communicate from one component to another; broadcast an event to components, etc.
Before I answer, to clarify - I also like Godot, and I don’t want an ECS per se (an ECS adds various other elements as well as ‘components’, which I’m not considering here).
Before I answer, to clarify - I also like Godot, and I don’t want an ECS per se (an ECS adds various other elements as well as ‘components’, which I’m not considering here).
But fundamentally you need an organising principle, or you end up with random node hierarchies with ad-hoc signal wiring.
But fundamentally you need an organising principle, or you end up with random node hierarchies with ad-hoc signal wiring.
A game engine shouldn’t be a hammer or a pickaxe, it should be a Swiss Army knife. Godot does this well, but lacks a bottle opener, so I keep opening my beer with a knife.
A game engine shouldn’t be a hammer or a pickaxe, it should be a Swiss Army knife. Godot does this well, but lacks a bottle opener, so I keep opening my beer with a knife.