🌍 Game Development · subject
Game Development GODOT Syllabus
The GODOT syllabus for Game Development in full: 5 chapters, 15 topics and 69 sub-topics, every one listed below, plus 51 GODOT flashcards with answers.
GODOT syllabus: all 5 chapters
Expand any chapter to see its topics and sub-topics.
-
Introduction to Godot
3 topics- Overview
- What is Godot?
- History of Godot
- Why Choose Godot?
- Installation
- System Requirements
- Downloading Godot
- Installing Godot on Windows
- Installing Godot on macOS
- Installing Godot on Linux
- Setting Up the Development Environment
- Getting Started
- Godot Interface Overview
- Creating a New Project
- Understanding the Scene System
- Navigating the Editor
- Overview
-
Basic Concepts
3 topics- Nodes and Scenes
- Understanding Nodes
- Types of Nodes
- Creating and Managing Scenes
- Instancing Scenes
- Scripting
- Introduction to GDScript
- Basic Syntax and Structure
- Variables and Data Types
- Functions and Methods
- Signals and Events
- Using Built-in Functions
- User Interface
- UI Nodes
- Creating UI Elements
- Handling User Input
- Customizing UI Appearance
- Nodes and Scenes
-
Intermediate Concepts
3 topics- 2D Game Development
- 2D Nodes
- Sprites and Textures
- Tilemaps
- 2D Physics
- Collision Detection
- Animating 2D Characters
- 3D Game Development
- 3D Nodes
- 3D Models and Materials
- 3D Physics
- Lighting and Shadows
- Camera Control
- Animating 3D Characters
- Audio
- Playing Sounds
- Background Music
- 3D Spatial Audio
- Audio Effects
- 2D Game Development
-
Advanced Concepts
3 topics- Advanced Scripting
- Advanced GDScript Techniques
- Using C# in Godot
- GDNative and C++ Integration
- Multithreading in Godot
- Optimization
- Performance Profiling
- Reducing Memory Usage
- Optimizing Graphics
- Optimizing Physics
- Networking
- Introduction to Networking
- Multiplayer Setup
- Syncing Game State
- Handling Latency
- Advanced Scripting
-
Publishing Your Game
3 topics- Exporting
- Exporting for Windows
- Exporting for macOS
- Exporting for Linux
- Exporting for Android
- Exporting for iOS
- Exporting for Web
- Marketing
- Creating a Press Kit
- Building a Community
- Social Media Strategies
- Approaching Game Publishers
- Monetization
- In-App Purchases
- Ads Integration
- Premium Sales
- Crowdfunding
- Exporting
Game Development GODOT flashcards — 51 questions with answers
What is Godot, and what kind of software license does it use?
Godot is a free, open-source, cross-platform game engine for creating 2D and 3D games. It is released under the permissive MIT license, meaning games made with it are owned entirely by their creators with no royalties or fees.
What organization stewards the Godot Engine project, and how is development funded?
Development is stewarded by the not-for-profit Godot Foundation. It is funded through community donations, patrons, and grants rather than by selling licenses or charging royalties.
What are the two official scripting languages bundled with Godot?
GDScript (a Python-like language built specifically for Godot) and C# (via .NET). C++ is also supported through GDExtension for native performance.
What is the fundamental architectural philosophy of Godot's scene system?
Everything is built from Nodes organized in a tree. A Scene is just a reusable tree of nodes, and scenes can be nested inside other scenes (composition), forming the whole game.
During installation, what makes the standard Godot editor uniquely portable compared to other engines?
The standard editor ships as a single self-contained executable (around 100 MB) with no installer or external dependencies required. You download, unzip, and run it directly.
What is the difference between the standard Godot build and the Mono/.NET build at installation time?
The standard build supports only GDScript (and GDExtension). The Mono/.NET build additionally supports C# scripting but requires the .NET SDK installed on the system.
In Godot's Getting Started workflow, what is the difference between the 2D, 3D, and Script workspaces?
The 2D workspace edits the scene in a flat orthographic view, the 3D workspace edits in a perspective 3D viewport, and the Script workspace is the code editor. You switch between them via buttons at the top center of the editor.
What is the root node of a scene, and what constraint applies to it?
Every scene has exactly one root node from which all other nodes descend. When a scene is instanced into another scene, that root node becomes the entry point of the branch.
What is the difference between a Node and a Scene in Godot?
A Node is the basic building block (a single object with a specific function). A Scene is a tree of one or more nodes saved together as a reusable unit (.tscn file) that can be instanced.
What does it mean to 'instance' a scene in Godot?
Instancing creates a copy of a saved scene inside another scene as a subtree. Each instance is independent, and edits to the original scene propagate to all instances unless locally overridden.
In the Node2D coordinate system, what does the global_position property represent versus position?
position is the node's location relative to its parent, while global_position is its location in world/global coordinates independent of the parent hierarchy.
What node type is the base class for all 2D objects that have a transform (position, rotation, scale)?
Node2D is the base class for 2D transformable objects. Its 3D counterpart is Node3D (formerly Spatial), and the base for all UI is Control.
What are the four main callback methods in a GDScript node's lifecycle that developers commonly override?
_ready() (called once when the node enters the tree and is ready), _process(delta) (called every rendered frame), _physics_process(delta) (called every physics frame at fixed rate), and _input(event) (called on input events).
In GDScript, how do you declare a variable that is exported to the Inspector, and why is it useful?
Use the @export annotation before a var, e.g. @export var speed: float = 200.0. It exposes the variable in the editor Inspector so designers can tweak it without editing code.
What is the difference between _process(delta) and _physics_process(delta)?
_process runs once per rendered frame (variable rate tied to FPS), used for general logic and visuals. _physics_process runs at a fixed timestep (default 60 Hz), used for physics and movement to keep behavior frame-rate independent.
What is the 'delta' parameter passed to _process and _physics_process, and how is it used for frame-independent movement?
delta is the elapsed time in seconds since the previous frame. Multiplying movement by delta makes speed frame-rate independent: $\text{distance} = \text{speed} \times \Delta t$.
In Godot's signal system, what is a signal and how does a node react to one?
A signal is an event a node emits (e.g. a button's 'pressed' signal) implementing the observer pattern. Another node connects a callback function to the signal, which runs when the signal is emitted.
How do you emit a custom signal in GDScript, and how do you declare one?
Declare with the signal keyword, e.g. signal health_changed(new_value). Emit it with health_changed.emit(new_value) (Godot 4 syntax).
What is an Autoload (Singleton) in Godot and what is it used for?
An Autoload is a script or scene registered in Project Settings that is loaded automatically and persists across scene changes. It is used for global state, managers, and data that must survive scene transitions.
What is the base class of all UI elements in Godot, and what unit system does it use?
Control is the base class of all UI nodes. UI is laid out using anchors and margins/offsets so elements reposition and resize relative to their parent container and the screen.
Show the other 31 GODOT flashcards
What are Container nodes in Godot's UI system, and give two examples?
Container nodes automatically arrange their child Control nodes according to layout rules. Examples: VBoxContainer (vertical stack), HBoxContainer (horizontal stack), GridContainer, and MarginContainer.
In Godot UI, what do anchors control versus offsets?
Anchors define the reference points (as fractions 0 to 1 of the parent's size) to which a Control's edges are pinned. Offsets define the pixel distance of each edge from its anchor. Together they enable responsive resizing.
What node draws sprites in 2D, and what property controls its image?
Sprite2D draws a 2D image; its texture property holds the image. For animated sprites you use AnimatedSprite2D with a SpriteFrames resource.
What are the three main physics body types in Godot 2D and how do they differ?
StaticBody2D (immovable, e.g. walls), RigidBody2D (fully simulated by the physics engine with forces/gravity), and CharacterBody2D (moved manually via code using move_and_slide(), ideal for player characters).
What method does CharacterBody2D use to move while handling collisions and sliding along surfaces?
move_and_slide(). It uses the body's velocity property and automatically slides along collision surfaces rather than stopping dead.
What node defines the collision shape for a physics body, and why must it be a child?
CollisionShape2D (or CollisionPolygon2D) defines the collidable area and must be a child of the physics body. Without it the body has no shape to detect collisions.
What is an Area2D used for, and how does it differ from a physics body?
Area2D detects when other bodies or areas enter/exit its region and can override physics properties (gravity, damping) in a zone. Unlike bodies, it does not provide solid collision by default; it is used for triggers, pickups, and detection zones.
In 3D game development, what node replaced 'Spatial' as the base 3D transform node in Godot 4?
Node3D (renamed from Spatial in Godot 4). It is the base class for all 3D objects that have a Transform3D.
What camera nodes are used in 2D versus 3D, and what does the current property do?
Camera2D for 2D and Camera3D for 3D. Setting a camera as current (or calling make_current()) makes it the active viewpoint rendered to the screen.
What are the main light node types available in Godot 3D?
DirectionalLight3D (parallel rays like the sun), OmniLight3D (point light radiating in all directions), and SpotLight3D (cone-shaped light). Environments also use ambient and sky lighting.
What node provides an environment/world background and post-processing in 3D, and what resource does it hold?
WorldEnvironment holds an Environment resource that controls the sky/background, ambient light, tonemapping, glow, fog, and other post-processing effects for the whole scene.
What is a MeshInstance3D, and what does it require to be visible?
MeshInstance3D displays a 3D mesh in the scene. It requires a Mesh resource assigned and typically a Material to define its surface appearance.
In Godot, what two node types play audio, and how do they differ?
AudioStreamPlayer plays non-positional audio (music, UI sounds). AudioStreamPlayer2D and AudioStreamPlayer3D play positional/spatialized audio that attenuates with distance from the listener.
What is the Audio Bus system in Godot used for?
Audio buses route and process sound. You can group players onto buses (e.g. Master, Music, SFX), apply effects (reverb, EQ, compressor) per bus, and control volume/muting independently.
The Godot audio mixer displays volume in decibels. What is the decibel formula relating a linear amplitude ratio to dB?
$\text{dB} = 20 \cdot \log_{10}\left(\frac{A}{A_0}\right)$, where $A/A_0$ is the linear amplitude ratio. Godot provides linear_to_db() and db_to_linear() helper functions.
What is the purpose of coroutines with await in advanced GDScript?
await pauses a function until a signal is emitted or a coroutine completes, then resumes execution. It enables asynchronous sequences (e.g. await get_tree().create_timer(1.0).timeout) without blocking the main thread.
In advanced GDScript, what is the difference between preload() and load()?
preload() loads a resource at compile/parse time (path must be a constant string), embedding it when the script loads. load() loads at runtime, allowing dynamic paths but incurring a runtime cost.
What is duck typing in GDScript, and how does it relate to has_method()?
Duck typing means code works with any object that has the needed method/property regardless of its class. has_method("take_damage") checks at runtime whether an object supports an operation before calling it, enabling flexible polymorphism.
What is a Resource in Godot, and why are custom Resources useful in advanced projects?
A Resource is a reference-counted data container (like textures, scripts, or custom data) that can be saved to disk (.tres/.res) and shared between nodes. Custom Resources (via extends Resource with @export vars) create reusable, editable data objects such as item or stat definitions.
What are the two main performance metrics to watch when optimizing, and what causes bottlenecks in each?
Frame time is split between CPU (scripts, physics, node processing) and GPU (rendering, shaders, fill rate). Profiling identifies whether a bottleneck is CPU-bound or GPU-bound so you optimize the correct one.
How is target frame time computed from a target FPS, and what is the budget for 60 FPS?
$t_{\text{frame}} = \frac{1000\ \text{ms}}{\text{FPS}}$. For 60 FPS the budget is $\frac{1000}{60} \approx 16.67$ ms per frame; exceeding it causes dropped frames.
What is occlusion culling, and how does it improve rendering performance?
Occlusion culling skips rendering objects hidden behind other opaque objects (occluders). This reduces GPU draw calls and overdraw by not processing geometry the camera cannot see.
What are two common draw-call reduction techniques in Godot?
MultiMesh/MultiMeshInstance for rendering many identical objects in one call, and using shared materials/texture atlases so batches are not broken. Reducing unique materials and using static batching also lowers draw calls.
In Godot's high-level networking, what is the difference between an RPC that is 'reliable' versus 'unreliable', and when is each used?
Reliable RPCs guarantee ordered delivery (used for important, infrequent events like spawning). Unreliable RPCs may drop or reorder packets but are faster (used for frequent updates like position). Set via rpc annotations/config.
What node manages the multiplayer peer connection in Godot 4, and what class creates a server/client?
The SceneTree's MultiplayerAPI (accessed via multiplayer) manages peers. ENetMultiplayerPeer is commonly used, calling create_server(port) or create_client(address, port).
What is the MultiplayerSpawner and MultiplayerSynchronizer used for in Godot 4 networking?
MultiplayerSpawner automatically replicates the creation/deletion of nodes across peers, and MultiplayerSynchronizer automatically replicates selected node properties (like position) from the authority to other peers.
What does 'network authority' mean in Godot multiplayer?
Network authority is the peer that has control over a given node (decides its state). By default the server (peer ID 1) is the authority, but authority can be assigned per node with set_multiplayer_authority() so a client owns its own player.
When exporting a Godot game, what are 'export templates' and why are they required?
Export templates are precompiled engine binaries for each target platform (Windows, macOS, Linux, Android, iOS, Web). They must be downloaded/installed matching the editor version so the exporter can package your game for that platform.
What technology does Godot use to export games to run in a web browser, and one key limitation?
Godot exports to the web using WebAssembly (WASM) plus HTML5/WebGL (or WebGPU). A key limitation is that browsers require cross-origin isolation headers for threads, and some features (like certain networking) are restricted in the browser sandbox.
In game monetization, how is ARPU (Average Revenue Per User) calculated, and how does it differ from ARPPU?
$\text{ARPU} = \frac{\text{Total Revenue}}{\text{Total Users}}$, while ARPPU (per paying user) is $\frac{\text{Total Revenue}}{\text{Paying Users}}$. ARPPU is higher since it excludes non-paying (free) players from the denominator.
In game marketing, what are the freemium and premium monetization models, and how do they differ from a pay-to-win concern?
Premium charges an upfront price for the full game. Freemium is free to play with revenue from in-app purchases/ads/cosmetics. 'Pay-to-win' is a criticized freemium variant where paying grants gameplay advantages rather than only cosmetic or convenience items.
Game Development GODOT FAQ
What is in the Game Development GODOT syllabus?
Game Development GODOT is split into 5 chapters: Introduction to Godot, Basic Concepts, Intermediate Concepts, Advanced Concepts and Publishing Your Game. Together they contain 15 topics and 69 sub-topics.
How many chapters are in Game Development GODOT?
5 chapters, containing 15 topics and 69 sub-topics. The largest chapter is Introduction to Godot, with 3 topics.
Are there flashcards for Game Development GODOT?
Yes — a 51-card GODOT deck, printed in full in the flashcards section of this page and available in the Examius app with spaced repetition. The free plan covers one exam of your choice, including its flashcards; Examius Pro, a one-time purchase, unlocks every other exam and deck.