I really want to like Godot, but it has made some design decisions that I don't like very much. These complaints are pretty opinionated though. I don't like that they made their own scripting...
I really want to like Godot, but it has made some design decisions that I don't like very much. These complaints are pretty opinionated though.
I don't like that they made their own scripting language, rather than using a pre-existing one. GDScript has some weird issues like https://github.com/godotengine/godot-proposals/issues/162, or a strange mixture of stringly typed values and regular types. In theory, GDExtension should be an alternative, but it's very limited (https://github.com/godot-rust/gdextension/issues/1). Also the C# docs weren't great the last I checked.
I'm disappointed they decided to go with a node/inheritance based architecture. I prefer the ECS architecture, personally (and composition over inheritance in general). In general I'm not a fan of this approach mainly because you end up needing to implement composition anyway, but instead of doing it at a language level (ECS) you do it at an engine level (NodePaths). I've also read about performance problems dealing with large numbers of nodes, but I don't know if this is still a problem.
It seems they are dividing their effort by implementing their own physics engine, which doesn't seem smart for a project like this. On the other hand, I love that they have put a serious effort into adding good GI support, which is a huge bonus, and something not easy in Unity (for example).
I really want to like Godot, but it has made some design decisions that I don't like very much. These complaints are pretty opinionated though.
I don't like that they made their own scripting language, rather than using a pre-existing one. GDScript has some weird issues like https://github.com/godotengine/godot-proposals/issues/162, or a strange mixture of stringly typed values and regular types. In theory, GDExtension should be an alternative, but it's very limited (https://github.com/godot-rust/gdextension/issues/1). Also the C# docs weren't great the last I checked.
I'm disappointed they decided to go with a node/inheritance based architecture. I prefer the ECS architecture, personally (and composition over inheritance in general). In general I'm not a fan of this approach mainly because you end up needing to implement composition anyway, but instead of doing it at a language level (ECS) you do it at an engine level (NodePaths). I've also read about performance problems dealing with large numbers of nodes, but I don't know if this is still a problem.
It seems they are dividing their effort by implementing their own physics engine, which doesn't seem smart for a project like this. On the other hand, I love that they have put a serious effort into adding good GI support, which is a huge bonus, and something not easy in Unity (for example).
Edit: There's also Bevy, which is just about done with 0.10.
I've been hearing good things about Fyrox as well (0.29, also written in Rust)