There are four concepts you really need to understand to get started with Godot.
Moving forward, you will learn more tools and features, but these four are at the core of every game you will make with the engine.
In short, these are:
- Nodes, which are like the base Lego blocks you use to build your game. They are a base object type defined in the engine.
- Scenes are templates made of multiple nodes, which you can save and create reproductions of in your game.
- A Godot game is a tree of scene instances, which is called the scene tree.
- To make multiple nodes communicate within or across scenes, Godot provides a built-in tool named signals, its version of the popular Observer programming pattern.
We will look at each of these core features in detail later in the course.
The difference between nodes and scenes
In the video, I explain that when you create a scene instance, Godot presents it as a node.
But they are not the same thing.
The presentation is similar because, as you will learn working with Godot, it can be useful for a developer to think of a scene instance as if it was just one entity, like nodes.
The point of Godot’s design is to help you think of your game in terms of your characters, weapons, houses, doors, and so on, rather than in programming terms.
Scenes and the way the editor presents them helps you structure your game in an intuitive way.
A key takeaway here is that a node is like a Lego block, a small object that doesn’t do much in itself, but that’s really useful when combining multiple into a scene.
To make a concrete game entity like a character, you need multiple nodes. You save them into a scene, a template you can instantiate. In programming, to instantiate means “creating reproductions of.”
And then, you get to reason about your game in terms of those scenes.
How do you use scenes and when? We’ll answers those later in the series when you get to use them hands-on.
It’s not something you’ll learn just with lessons but rather through practice, as you need to build an intuition for it.
GDQuest founder. Courteous designer with a taste for Free Software. I promote sharing and collaboration.