Стек Godot и его экосистема
Версии Godot 4.x, GDScript vs C#, рендер-пайплайны и ключевые пакеты.
Версии Godot
Godot работает в ветке 4.x с 2023 года (релиз 4.0 — март 2023). На май 2026:
- Godot 4.6.3 — текущий stable (вышел 20 мая 2026). Минорная ветка 4.6 релизнута в январе 2026, патчи 4.6.1 (фев), 4.6.2 (апр), 4.6.3 (май) — стабилизация Jolt physics, фиксы редактора. Главные новинки 4.6: Jolt стал default-физикой для 3D, IK вернулся как нодовая система (TwoBoneIK3D, FABRIK3D, и ещё 5 солверов), новая editor theme (Modern), unified docking, переписанный SSR, LibGodot (движок как embedded-библиотека).
- Godot 4.7 — в beta с апреля 2026, stable ожидается летом 2026. HDR-output на десктопе/iOS, AreaLight3D, VirtualJoystick для мобильных, ray-tracing improvements, wasm64 для веб-экспорта, встроенный Asset Store в редакторе.
- WebGPU backend — в mainline 4.6 отсутствует / остаётся experimental на уровне proposal.
Существует community-fork
godotwebgpuот David Walter (база — 4.6.2, март 2026), включающий собственную WebGPU-имплементацию для Mobile renderer и compute shaders. Это не Godot Foundation проект. Производственный mainline WebGPU ожидается в 4.7+ или позже. - Godot 5 — будущее. Публичной даты нет; ломающий мажор традиционно “через годы”.
- Godot 3.6 — последний релиз ветки 3.x, в режиме LTS (только багфиксы). Используйте, только если поддерживаете legacy-проект; для нового — 4.x.
Shader Baker (введён в 4.5, не в 4.6) — отдельная фича для precompile shaders при экспорте, снижает stutter при первом запуске сцены до 20× на Metal/D3D12. Действует прозрачно — настройка включения находится в Project Settings.
Godot использует семвер. LTS — только предыдущий major (сейчас 3.x). Внутри 4.x минорные релизы идут вперёд, “сидеть на 4.4 вечно” не получится — кроме case’ов, когда вы шипите и замораживаете версию проекта.
Языки
GDScript — родной язык
Похож на Python синтаксически: отступы, def-style функции (но через func), динамическая
типизация. Главные особенности:
- Опциональная статическая типизация:
var hp: int = 100,func attack(target: Enemy) -> void. Type-check на parse-time, ускоряет код на 28–59% за счёт пропуска Variant-диспетчера. - Typed arrays / dictionaries:
Array[Enemy],Dictionary[String, int](typed dictionaries появились в 4.4). - Аннотации через
@:@export,@onready,@tool,@export_range,@export_enum,@export_file,@export_node_path. - Lambda-функции:
var add = func(a, b): return a + b. awaitвместоyieldдля асинхронности.class_name MyClass extends Node— глобальная регистрация класса (виден в редакторе и из любого скрипта).
class_name Enemy extends Node3D
@export_range(1, 100) var max_hp: int = 50
@onready var sprite: Sprite3D = $Sprite3D
signal died(by: Node)
var hp: int
func _ready() -> void:
hp = max_hp
func take_damage(amount: int, attacker: Node) -> void:
hp -= amount
if hp <= 0:
died.emit(attacker)
queue_free()
C# — для опытных .NET-разработчиков
Поддерживается, но с оговорками:
- Нужна отдельная сборка редактора (“Godot .NET edition”). Скачивается с сайта или через Steam как отдельный SKU.
- Требуется .NET 8 минимум (с Godot 4.4).
- На веб-таргет не экспортируется — давнее ограничение, в работе через NativeAOT/.NET 10.
- Поддерживает NativeAOT-экспорт для нативных платформ.
- Объявлена долгосрочная стратегия “вынести .NET в плагин”, но сроков нет — TODO verify на момент чтения.
using Godot;
public partial class Enemy : Node3D
{
[Export(PropertyHint.Range, "1,100")]
public int MaxHp { get; set; } = 50;
[Signal]
public delegate void DiedEventHandler(Node by);
private int _hp;
public override void _Ready() {
_hp = MaxHp;
}
public void TakeDamage(int amount, Node attacker) {
_hp -= amount;
if (_hp <= 0) {
EmitSignal(SignalName.Died, attacker);
QueueFree();
}
}
}
GDExtension — нативные плагины
Аналог Unity native plugins, но удобнее:
- Динамическая библиотека (
.dll/.so/.dylib) + манифест.gdextension. Не требует пересборки движка. - Официальные C++ биндинги — godot-cpp.
- Зрелые сторонние биндинги: godot-rust (gdext) для Rust, godot-python — для Python.
- Классы из GDExtension в редакторе неотличимы от core-узлов.
Аналога Unity Bolt в Godot 4.x в core нет. VisualScript присутствовал в 3.x, в 4.0 удалён как малоиспользуемый (вынесен в отдельный модуль без поддержки). Если нужна визуальная логика — есть Visual Shader (для шейдеров), а для геймплея — community-плагины.
Рендер-пайплайны
В отличие от Unity, где выбираете один из трёх SRP при создании проекта, в Godot три рендерера переключаются в Project Settings, можно менять и в процессе (но материалы могут требовать адаптации).
| Renderer | API | Когда выбирать |
|---|---|---|
| Forward+ | Vulkan / Metal / D3D12 | Десктоп, консоли, hi-end. Clustered forward+, SDFGI, volumetric fog, SSR, SSAO. |
| Mobile | Vulkan / Metal / D3D12 | Мобильные и desktop VR. Single-pass forward, лимит источников света. |
| Compatibility | OpenGL ES 3 / WebGL 2 | Слабое железо и единственный полностью рабочий путь для веба. |
Compatibility в 4.3 объявлен feature-complete для нужд большинства проектов: lights, shadows, GI (lightmaps), GPU particles работают (с ограничениями).
Если цель — браузер, выбирайте Compatibility renderer с самого старта. Forward+ и Mobile в WebGL не работают в полном объёме; mainline WebGPU-бэкенд пока отсутствует (community-fork godotwebgpu — отдельная история, см. секцию выше).
Ключевые системы и узлы
Vocabulary Godot, который понадобится:
- Scene tree — главное дерево узлов в работающей игре.
- Node — атомарный объект, обычно с одним скриптом. У всех узлов одинаковые жизненные
колбэки (
_ready,_process, …). - PackedScene (.tscn) — сериализованная сцена. Аналог Unity Prefab + Scene в одном файле.
- Resource (.tres / .res) — data-only ассет, рефкаунт. Аналог ScriptableObject.
- Signal — встроенный pub-sub, объявляется на любом узле.
- Group — лейбл для категории узлов. Заменяет Unity-теги в задачах “найти всех врагов”.
- NavigationServer3D, PhysicsServer3D, RenderingServer, AudioServer — низкоуровневые синглтоны, на которые опираются высокоуровневые узлы.
Tooling и экосистема
- Встроенный script editor в редакторе Godot — приличный для GDScript: LSP, autocomplete, multi-cursor, debugger с remote scene tree.
- Внешние редакторы:
- VS Code / Cursor через расширение
godot-vscode-plugin(LSP + DAP-дебаг). - JetBrains Rider — first-class для C#-проектов; для GDScript конфигурируется тем же LSP.
- VS Code / Cursor через расширение
- Asset Library в редакторе (вкладка AssetLib) — старый, фактически deprecated.
- Asset Library (встроена в редактор 4.6 — вкладка AssetLib) — старая система, через которую ставятся community-плагины (Phantom Camera, Dialogic, Terrain3D и др.). Остаётся актуальной в 4.6.
- Godot Asset Store (анонс 2025, развитие 2026) — новый внешний портал с аккаунтами, рейтингами, планируемой поддержкой платных ассетов. Интеграция в редактор намечена на 4.7. На 4.6 это отдельный сайт, не AssetLib-замена.
- Version control через
.gitignore(Godot сам генерирует при включении в настройках). Игнорируйте.godot/,export/,build/. Коммитьте*.tscn,*.tres,*.gd,*.gdshader,*.import,project.godot.
Каждый ассет в Godot получает рядом .import-файл с настройками импорта (compression mode для
текстуры, scale для модели и т.д.). Эти файлы важно коммитить — иначе при клонировании
репозитория на другой машине настройки потеряются.
Главные плагины из Asset Store
В дополнение к встроенному:
- Phantom Camera — Cinemachine-аналог для 2D и 3D: follow, look-at, host-system, triggers. Если нужна сложная работа с камерой — это первый stop.
- Dialogic — система диалогов и квестов.
- Terrain3D — нативный terrain (Godot core не имеет встроенного terrain).
- Beehave или LimboAI — behavior trees / state machines для AI.
- GUT — unit-testing.
- gd-plug — менеджер плагинов через
plug.gd.
В следующей главе — главный материал: всё про 3D-разработку в Godot.