Coming from Unity, you just opened Godot for the first time and you can’t find where are the Game Objects and Components? Not only that, where are the Prefabs and Levels? All you can see are four buttons under a label: “Create Root Node”. What are Nodes? Where do I even add my custom scripts? How different are Godot Scenes from Unity’s Scenes (Levels)?
With this short guide, learn how to contextualize the Unity’s concepts of Game Objects, Components, Prefabs and Nested Prefabs in Godot with Nodes, Scenes, Node Trees and Scene Trees.
Unity Building Blocks
In Unity, Game Objects are the main building blocks of scenes. But Game Objects by themselves do not do anything. They need Components. Components add behaviours and properties to Game Objects. A Game Object can contain any amount of Components, defining multiple behaviours, thus Game Objects are containers for components.
Unity has many built-in Components and to build your own components, you write C# scripts that inherit from MonoBehaviour. After writing a script, you attach it to a Game Object as a Component.
Nodes aka Godot’s Game Objects and Components
Nodes are the building blocks of Godot. But as opposed to Game Objects, Nodes are not absent of behaviours, Nodes are the actual behaviours, just like Unity’s Components.
Every Godot Node is a class type (as in objected oriented programming “class”), for that reason the Node behaves as per its class implementation, with its own sets of methods, properties and signals (events).
But since Nodes are Components, how do you compose Nodes together in order to combine all the needed behaviours like a Game Object?
For example, a Third Person 3D Character needs at least four different components:
- A Skeletal Mesh
- One or more Colliders
- A Camera
- A script that defines the…