Godot 101
What a game engine is, what Godot can do and how your own character from Blender walks in Godot 4. Eight boxes, like a building plan.
Version v0.001 · as of 03.11.2026 · responsible: Groot 01 for Mikey · facts from the official Godot and Blender docs, retrieved on 03.11.2026 (box 8).
0 / 8boxes done. Ticks are only saved in this browser.
Box 1: What is Godot
The engine brings ready-made building blocks. You build the game on top.
Like a kit: wheels, motor and steering are already there. You decide what kind of vehicle it becomes.
- 1.1Godot is an open-source game engine.
- 1.2A game engine is a software framework that serves as the foundation and toolbox for making video games.
- 1.3Instead of programming every basic part of a game from scratch, the engine already provides ready-made building blocks and systems for the technical work.
- 1.4Godot is lean and open source, and people like to use it for both 2D and 3D. Box 3 shows which building blocks Godot brings along.
Box 2: Engines compared
All three can do 2D and 3D. They differ in language, cost and licence.
| Engine | Ideal for | Language | Cost and licence (as of 03.11.2026) |
|---|---|---|---|
| Unity | Very versatile, widely used for 2D, 3D and mobile games and by indie developers (e.g. Ori and the Will of the Wisps). | C# | Proprietary. “Unity Personal” is free for individuals and small organisations with less than USD 200,000 in revenue and funds raised in the last 12 months; above that, paid plans. |
| Unreal Engine | Known for photorealistic 3D graphics and high computing power, e.g. for AAA games or virtual production in film. | C++ and Blueprints (visual, with nodes) | Proprietary, source code available. Free to learn and develop; for games a 5% royalty on gross revenue per product above USD 1 million. |
| Godot | Lean and open source, for 2D and 3D. Ideal for 2D games, light 3D projects and less powerful PCs. | GDScript (very similar to Python), C# (in the .NET version), C++ | Completely free and open source: MIT licence, commercial use without fees too (box 4). |
Costs and licences can change. The details come from the makers’ official pages, retrieved on 03.11.2026 (box 8). Always read the current licence before you sell anything.
Box 3: Main parts
In the editor you build scenes out of nodes. Scripts give the nodes their rules.
The main parts of a game engine
| Graphics engine (rendering) | Draws 2D and 3D graphics, lighting, shadows and visual effects (shaders). |
| Physics engine | Calculates physical laws such as gravity, impacts and collisions between objects. In the mini project your character falls to the floor with get_gravity(). |
| Audio engine | Controls sound effects, background music and spatial sound (3D audio). |
| Scripting and logic | Lets you program game rules, enemy behaviour and interactions. In Godot usually with GDScript. |
| Input/output | Handles input from keyboard, mouse, touchscreens or gamepads, plus vibration. |
| Resource management (asset management) | Organises 3D models, textures and sounds, and saves game progress. |
| Development environment (editor) | A user interface where you put the game world together, test it and adjust it. |
What Godot adds
- 3.1Scenes and nodes: everything in Godot is a node (a building block, e.g. light, camera, character). Several nodes together form a scene. A scene can be placed inside another scene, like the character in the mini project.
- 3.2GDScript: Godot’s own language. It feels very familiar to anyone who knows JavaScript or Python. Godot officially supports GDScript, C# and C++.
- 3.3Editor: build scenes, write scripts and start the game with one click, all in the same program.
Note: there are also community extensions for JavaScript and TypeScript in Godot. They are not official, and this tutorial does not use them.
Box 4: Why Godot
Godot is free. Your game belongs to you.
If you pass on a game, include Godot’s copyright notice, for example in the credits.
- 4.1MIT licence: Godot is free, open-source software under the MIT licence. You may use Godot for any purpose, commercially too, without fees or a share of revenue.
- 4.2Your game is yours: whatever you build with Godot, characters, images, sounds and code, stays your property.
- 4.3For beginners: if you are a complete programming beginner and love 2D games, start with Godot. Its own language GDScript is so intuitive that you see first results quickly. The official Godot docs also recommend GDScript to start with.
- 4.4Advantages at a glance: completely free, lightweight, easy to learn and open source.
Not legal advice: read the exact text at godotengine.org/license (box 8).
Box 5: Platforms
The editor exists for five platforms. You can export to even more.
Editor (where you build)
- Windows, macOS, Linux: official downloads, editor and exported games.
- Android: the editor as an app, still experimental according to the docs.
- Web editor in the browser: at an early stage according to the docs, good for learning, not for serious projects. It cannot export, has no C# and only the “Compatibility” renderer.
Export (where your game runs)
- Windows, macOS, Linux, Android, Web (browser) and iOS. iOS is an export target only, not an editor.
- According to the docs, C# projects cannot be exported to the web with Godot 4 yet. With GDScript it works.
- Consoles: information is on the Godot website (console support), not in this tutorial.
As of: Godot 4.7.2 (released 18.08.2026), docs “List of features” and “Using the Web editor”, retrieved on 03.11.2026.
Box 6: Mini project
figur.glb comes from Blender. In Godot it gets a body, keys and two animations.
figur.glbfrom Blender 101welt.tscnfloor, light, camera, playerspieler.gdCharacterBody3DNames must match exactly: actions “links”, “rechts”, “vor”, “zurueck”, node “Figur”, animations “idle” and “walk”.
- Godot 4 (tested with 4.7.2)
figur.glbfrom Blender 101- keyboard
Tip: import .blend files directly
Godot has a very good Blender link. You can drag your .blend files straight into the project folder; Godot imports models, materials and animations automatically in the background. To do this, Godot calls Blender and converts the file to glTF.
Requirement: Blender must be installed on the same computer (Blender 3.0 or later, 3.5 or later recommended, ideally the official version from blender.org). If Godot cannot find Blender by itself, enter the path: Editor → Editor Settings → FileSystem → Import → Blender → Blender Path.
In this mini project you use figur.glb. That works without Blender on the Godot computer too. figur.blend stays your source.
Your character from Blender 101
This is how the character comes out of Blender 101. If any of this is off, it will lie crooked in Godot, be too big or walk backwards.
figur.glb: glTF 2.0 binary, exported with “Apply Modifiers” and “+Y Up”- 1 Blender unit = 1 metre, character about 1.8 m tall, origin between the feet
- Facing -Y in Blender. In Godot the front then points to +Z, as the Godot docs expect for characters.
- Actions
idleandwalkmeant as loops,jumpoptional
Step by step
- 6.1Create a project: start Godot 4, click Create in the Project Manager, enter a name, keep the “Forward+” renderer, create.
- 6.2Bring in the character: drag
figur.glbinto the project folder (the FileSystem dock, bottom left). Godot imports it straight away. - 6.3Set the keys: Project → Project Settings → Input Map. Add four actions and give each two keys:
links(left) = A and ←,rechts(right) = D and →,vor(forward) = W and ↑,zurueck(back) = S and ↓. - 6.4Build the world: new scene with a
Node3Dcalled “Welt”. Below it:DirectionalLight3D(sun),Camera3D(position 0 / 4 / 6, rotated about -30° around X) and aStaticBody3D“Boden” (floor) withCollisionShape3D(BoxShape3D 20 × 1 × 20) andMeshInstance3D(BoxMesh 20 × 1 × 20), position Y = -0.5. Save aswelt.tscn. - 6.5Player: under “Welt” add a
CharacterBody3Dcalled “Spieler” (player). Below it aCollisionShape3Dwith aCapsuleShape3D(radius 0.3, height 1.8, position Y = 0.9). Then dragfigur.glbonto “Spieler” and rename the new node to “Figur”. - 6.6Script: select “Spieler”, Attach Script, name it
spieler.gdand paste this code:
spieler.gd · Godot 4extends CharacterBody3D
## Player: walks with WASD or the arrow keys, plays idle and walk.
const TEMPO := 3.0 # metres per second
const DREH_TEMPO := 10.0 # how fast the character turns
@onready var figur: Node3D = $Figur
@onready var anim: AnimationPlayer = figur.find_child("AnimationPlayer", true, false)
func _ready() -> void:
# glTF has no loop setting. We switch it on here.
for anim_name in ["idle", "walk"]:
if anim and anim.has_animation(anim_name):
anim.get_animation(anim_name).loop_mode = Animation.LOOP_LINEAR
spiele("idle")
func _physics_process(delta: float) -> void:
# Gravity: only while the character is not standing on the floor.
if not is_on_floor():
velocity += get_gravity() * delta
# Read the keys: left/right and forward/back, each from -1 to 1.
var eingabe := Input.get_vector("links", "rechts", "vor", "zurueck")
var richtung := Vector3(eingabe.x, 0.0, eingabe.y)
if richtung != Vector3.ZERO:
velocity.x = richtung.x * TEMPO
velocity.z = richtung.z * TEMPO
# The character faces where it walks. Its front is +Z (from Blender: -Y).
var ziel := atan2(richtung.x, richtung.z)
figur.rotation.y = lerp_angle(figur.rotation.y, ziel, DREH_TEMPO * delta)
spiele("walk")
else:
velocity.x = move_toward(velocity.x, 0.0, TEMPO)
velocity.z = move_toward(velocity.z, 0.0, TEMPO)
spiele("idle")
move_and_slide()
func spiele(anim_name: String) -> void:
if anim and anim.has_animation(anim_name) and anim.current_animation != anim_name:
anim.play(anim_name)
- 6.7Run: F5 (Run Project). The first time, Godot asks for the main scene: choose
welt.tscn. With W A S D or the arrow keys the character walks, turns towards where it is going and playswalk. Let go and it stops and playsidle.
How the code works
get_gravity()takes gravity from the project settings. It only acts while the character is not on the floor (is_on_floor()).Input.get_vector()reads four actions at once, so walking diagonally is not faster than walking straight.move_and_slide()moves theCharacterBody3Dand lets it slide along walls and the floor.atan2()andlerp_angle()turn the character smoothly towards where it walks.
loop_mode = Animation.LOOP_LINEARin_ready()turnsidleandwalkinto loops. Without this line Godot plays each animation only once and then stops.
Looping: where and how you set it in Godot
A glTF file (.glb) has no loop setting. After import, Godot therefore plays idle and walk only once. You set the loop in Godot, in one of two ways:
Way 1, in code (this is what the mini project does): in spieler.gd, _ready() sets loop_mode = Animation.LOOP_LINEAR for both animations. You do not need to do anything else.
Way 2, on import: in the FileSystem dock, double-click figur.glb. This opens Advanced Import Settings. On the left choose the animation idle, on the right under Settings set Loop Mode to Linear, do the same for walk, then Reimport. The setting is kept the next time you export from Blender.
If it does not work
Character does not move: are the actions called exactly links, rechts, vor, zurueck? Is the script attached to “Spieler”?
No animation: are the actions in Blender called exactly idle and walk (not e.g. walk.001)? The glTF export only takes actions that are active or stashed in an NLA track (Blender 101).
Character walks backwards: in Blender it is not facing -Y. Turn it in Blender and export again.
Checked and not checked
Checked (03.11.2026): the script ran in Godot 4.7.2 (Linux, without a screen) with the real figur.glb from Blender 101 (Blender 5.2.3, 7 bones), built step by step as above: import without errors, height 1.8 m, feet on the floor, front facing the direction of travel, falling onto the floor, WASD and arrow keys, diagonal not faster, switching idle/walk, looping. Way 2 for the loop was checked via the import file, not in the interface.
Not checked: in the Godot editor with a screen, on real devices and with real beginners. The menu names come from the English Godot interface; in other languages they may differ.
Next you could add jump: an action “springen” on Space, and when the character is on the floor, set velocity.y upwards. This is not worked out here yet and not checked.
Box 7: On to Blender 101
The most important thing is the pipeline: how the character and its animations land cleanly in the engine.
figur.glbglTF 2.0 export- 7.1Focus on the pipeline (Blender → engine): what matters is not just modelling itself, but how the animations land cleanly in the engine.
- 7.2Rig and actions: learn in Blender how to build a so-called rig (skeleton, called an “armature” in Blender) and how to organise animations as actions in the Dope Sheet’s Action Editor. Blender 101 shows you how.
- 7.3Install Godot 4 and import the character: as
figur.glbas in box 6, or directly as.blendwith the Blender import (tip in box 6).
Margin note: for 3D straight in the browser there are libraries such as Three.js or React Three Fiber. For more complex games outside the browser that use the PC’s full graphics power for your Blender assets, a classic engine like Godot is the right place. That is what this is about.
Box 8: Sources
Only the makers’ official pages, all retrieved on 03.11.2026.
- Godot: License (MIT, commercial use without fees, copyright notice)
- Godot: download, version 4.7.2 of 18.08.2026, also .NET version with C#
- Godot docs: List of features, Platforms section (editor and export)
- Godot docs: Using the Web editor (early stage, limitations)
- Godot docs: Using the Android editor
- Godot docs: FAQ (languages GDScript, C#, C++; GDScript for beginners)
- Godot docs: Available 3D formats (.blend import, Blender 3.0 or later, Blender Path)
- Godot docs: Model export considerations (front +Z, -Y in Blender)
- Godot docs: Import configuration (Import dock, Advanced Import Settings by double-click)
- Godot docs: CharacterBody3D (move_and_slide)
- Blender manual: glTF 2.0 (exporting actions and NLA tracks)
- Blender manual: Action Editor
- Blender manual: Armatures (skeleton)
- Unity: Unity Personal (USD 200,000 limit)
- Unity manual: programming with C#
- Unreal Engine: License (5% above USD 1 million per product)
- Unreal docs: Programming and Scripting (C++ and Blueprints)
The Unreal Engine pages could not be opened directly on 03.11.2026; the details come from the search excerpt of the official pages and should be checked again at the next update.
Based on: text by Mikey (03.11.2026), arranged into these eight boxes. © Michaelangelo Zünd · Knowledge is free, finished work costs.