$ show godotengine/godot-demo-projects
This repository is the official collection of Godot Engine demo projects, maintained by the Godot Foundation. It contains hundreds of self-contained, runnable demo projects that showcase specific engine features across 2D, 3D, audio, GUI, networking, XR, mobile, compute shaders, and editor plugins. Each demo is a standalone Godot project with its own project.godot, scenes, scripts, and assets. The repository serves as both a learning resource for developers and a testbed for engine capabilities. While not a single application, it demonstrates a wide range of game development patterns and engine APIs. Notable highlights include a generic state machine implementation, a 2.5D node system, a virtual joystick for touch input, a custom logger with UI integration, and a JSON-driven dialogue system. The codebase is actively maintained with recent commits, low technical drift, and consistent use of modern Godot 4.x APIs.
The LLM identified 5 files worth highlighting for reuse:
A generic, reusable finite state machine class for Godot. It provides a clean interface for managing states with enter/exit/update methods, and supports hierarchical state machines. This component is isolated from any specific game logic and can be extracted into any Godot project requiring state management. It demonstrates non-obvious skill in decoupling state logic from game objects.
A custom Node2D subclass that projects 3D positions into 2D using configurable basis matrices, enabling 2.5D rendering. It includes editor gizmo support and is part of a larger addon. This component is self-contained and can be reused in any Godot project needing 2.5D visuals. It demonstrates advanced understanding of Godot's coordinate systems and editor integration.
A reusable virtual joystick for touchscreen input. It handles touch events, provides normalized output, and includes visual feedback. The script is self-contained and can be dropped into any Godot project requiring mobile controls. It demonstrates clean input handling and UI interaction patterns.
A custom logger class that extends Godot's Logger to redirect log messages to a RichTextLabel in the UI. It is thread-safe and uses call_deferred for UI updates. This component is self-contained and can be reused in any Godot project for in-game debugging or logging. It demonstrates advanced use of Godot's logging system and deferred calls.
A JSON-driven dialogue system that reads dialogue data from JSON files and displays it through a configurable UI. It uses signals to communicate with other game systems and supports branching dialogue. This component is self-contained and can be extracted for use in any narrative-driven Godot project. It demonstrates a clean separation of data and logic.