Warning: Some posts on this platform may contain adult material intended for mature audiences only. Viewer discretion is advised. By clicking ‘Continue’, you confirm that you are 18 years or older and consent to viewing explicit content.
Unreal is what I have the most experience in. It’s very strict and structured. Everything in Unreal is a UObject. There are Actors and Actor Components. Every feature has a requirement, such as, some of the AI features require you to have your AI as Pawns which are Actors that can have a Controller (an actor that manages the connection to a player) which then there is a PlayerController and an AI Controller which can hold a behavior tree to tell the AI how to control their pawn.
In Godot, things are far less structured. Godot has everything based on Nodes like Unreal but it expects you to build out whatever you want. So it doesn’t come with Behavior Trees or the concept of a player. It expects you to build these things. Mainly because it’s a budding engine that hasn’t had the maturity or time put into it like Unreal.
Unity is a mix of both. Unity has a huge freeform nature to it. Again Unity starts with a class, everything in Unity is an Object. It has the concepts of Components that attach to a GameObject (which GameObject and Object are different). There is no Actor class, and no defined way to move an actor across a floor, a controller object in Unity is seen as the place where all the logic to control the actor is. So Unity has its own structure but it’s also less built out like Godot. As such the AssetStore in Unity has taken the task of providing whatever the developer needs. So a Behavior Tree system on Unity differs from project to project from whatever they made or bought off of the store. Unreal allows you to, of course, use something else for behavior trees but no one does because their base implementation works and works well. It’s standardized.
So overall, Unreal is standardized, strict, and gives you a ton of features. Unity is less strict, provides less standardized features, and forces developers to make their own things. Godot furthermore is less strict, has very little built-out, and the standardization it’s attempted to create gets changed in the next major update because it’s very new.
I don’t know a lot of game dev, care to educate me on the rights and wrongs of each of the engines?
Unreal is what I have the most experience in. It’s very strict and structured. Everything in Unreal is a UObject. There are Actors and Actor Components. Every feature has a requirement, such as, some of the AI features require you to have your AI as Pawns which are Actors that can have a Controller (an actor that manages the connection to a player) which then there is a PlayerController and an AI Controller which can hold a behavior tree to tell the AI how to control their pawn.
In Godot, things are far less structured. Godot has everything based on Nodes like Unreal but it expects you to build out whatever you want. So it doesn’t come with Behavior Trees or the concept of a player. It expects you to build these things. Mainly because it’s a budding engine that hasn’t had the maturity or time put into it like Unreal.
Unity is a mix of both. Unity has a huge freeform nature to it. Again Unity starts with a class, everything in Unity is an Object. It has the concepts of Components that attach to a GameObject (which GameObject and Object are different). There is no Actor class, and no defined way to move an actor across a floor, a controller object in Unity is seen as the place where all the logic to control the actor is. So Unity has its own structure but it’s also less built out like Godot. As such the AssetStore in Unity has taken the task of providing whatever the developer needs. So a Behavior Tree system on Unity differs from project to project from whatever they made or bought off of the store. Unreal allows you to, of course, use something else for behavior trees but no one does because their base implementation works and works well. It’s standardized.
So overall, Unreal is standardized, strict, and gives you a ton of features. Unity is less strict, provides less standardized features, and forces developers to make their own things. Godot furthermore is less strict, has very little built-out, and the standardization it’s attempted to create gets changed in the next major update because it’s very new.
Oh mate thanks for the detailed write up, it makes sense with my very little experience too.