mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-08 17:00:08 +01:00
This leads to code that is easier to understand and runs faster thanks to GDScript's typed instructions. The untyped declaration warning is now enabled on all projects where type hints were added. All projects currently run without any untyped declration warnings. Dodge the Creeps and Squash the Creeps demos intentionally don't use type hints to match the documentation, where type hints haven't been adopted yet (given its beginner focus).
Hierarchical Finite State Machine
This example shows how to apply the State machine programming pattern in GDscript, including Hierarchical States, and a pushdown automaton.
Language: GDScript
Renderer: Compatibility
Check out this demo on the asset library: https://godotengine.org/asset-library/asset/516
Why use a state machine
States are common in games. You can use the pattern to:
-
Separate each behavior and transitions between behaviors, thus make scripts shorter and easier to manage.
-
Respect the Single Responsibility Principle. Each State object represents one action.
-
Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.
You can read more about States in the excellent Game Programming Patterns ebook.
