Учебник Разработка игр на Godot для начинающих
Godot 4 — это бесплатный движок с открытым кодом, на котором делают настоящие коммерческие игры. Здесь нет подписок, водяных знаков и закрытого ядра: ты скачиваешь редактор весом в пару десятков мегабайт и сразу строишь игру.
Этот курс ведёт тебя от первого окна редактора до собственной 2D-игры, которую можно запустить и отдать друзьям. По пути ты разберёшься в дереве узлов, напишешь логику на GDScript, заставишь персонажа двигаться и прыгать, настроишь столкновения, свяжешь объекты сигналами, добавишь интерфейс и звук, а в конце соберёшь и экспортируешь готовый билд.
GDScript синтаксически очень близок к Python, поэтому игровую логику мы будем разбирать на запускаемых Python-врезках прямо в браузере — это помогает понять идею до того, как ты перенесёшь её в движок.
Курс «Разработка игр на Godot» состоит из 6 разделов и 20 уроков: Знакомство с Godot: узлы и сцены, Основы GDScript, Движение и управление в 2D, Физика, коллизии и сигналы, Интерфейс, звук и счёт и Собираем игру и экспортируем. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Знакомство с Godot: узлы и сцены
- Что такое Godot и зачем он нужен
Знакомство с движком Godot 4: бесплатный, открытый, лёгкий. Чем движок отличается от обычного кода и почему с него удобно начинать геймдев.
- Узлы — кирпичики игры
Что такое узел (Node) в Godot 4: типы узлов, их свойства и поведение. Sprite2D, Node2D, Label как примеры кирпичиков игры.
- Сцены и дерево узлов
Что такое сцена в Godot 4 и дерево узлов: родитель и потомки, как узлы собираются в иерархию, корневой узел сцены.
- Что такое Godot и зачем он нужен
2 Основы GDScript
- Первый скрипт: переменные и функции
Первый скрипт на GDScript в Godot 4: переменные var, типы, функции func, отступы и наследование extends. Сходство с Python.
- Условия, циклы и типы данных
Управление в GDScript: if/elif/else, циклы for и while, базовые типы int, float, String, bool, Vector2, массивы и словари.
- Жизненный цикл узла: _ready и _process
Жизненный цикл узла в Godot 4: функции _ready, _process(delta) и _physics_process(delta). Когда движок вызывает каждую и зачем нужен delta.
- Настройки в инспекторе: @export
Аннотация @export в Godot 4 GDScript: как вынести переменную в инспектор, настраивать скорость, урон и ссылки на узлы без правки кода.
- Первый скрипт: переменные и функции
3 Движение и управление в 2D
- Чтение ввода с клавиатуры
Ввод в Godot 4: карта действий Input Map, Input.is_action_pressed и Input.get_vector, превращение клавиш в вектор направления.
- Движение персонажа: CharacterBody2D
CharacterBody2D в Godot 4: свойство velocity и move_and_slide без параметров. Топ-даун движение персонажа на скорости и направлении.
- Гравитация и прыжок: платформер
Платформер в Godot 4: гравитация, прыжок через is_on_floor и is_action_just_pressed, отрицательная скорость по y для прыжка вверх.
- Чтение ввода с клавиатуры
4 Физика, коллизии и сигналы
- Формы столкновений и слои
CollisionShape2D в Godot 4: задание формы столкновения, прямоугольник и круг, слои и маски коллизий для управления, кто с кем сталкивается.
- Зоны-триггеры: Area2D
Area2D в Godot 4: зоны-триггеры без физического отталкивания, сигналы body_entered и area_entered, сбор монет и зоны урона.
- Сигналы: объекты общаются
Сигналы в Godot 4: объявление signal, emit и connect, паттерн наблюдатель, слабая связанность узлов. Как объекты общаются, не зная друг о друге.
- Формы столкновений и слои
5 Интерфейс, звук и счёт
- Интерфейс: Control и Label
UI в Godot 4: узлы Control, CanvasLayer и Label, разница между миром игры и слоем интерфейса, обновление текста очков из кода.
- Очки, здоровье и состояние игры
Состояние игры в Godot 4: счёт и здоровье, автозагрузка (singleton) для глобального состояния, сигналы об изменении и проигрыше.
- Звук и таймеры
Звук и таймеры в Godot 4: AudioStreamPlayer для эффектов и музыки, узел Timer, сигнал timeout, спавн врагов по таймеру.
- Интерфейс: Control и Label
6 Собираем игру и экспортируем
- Враг с простым ИИ: конечный автомат
ИИ врага в Godot 4: конечный автомат (FSM), состояния патруль/преследование/атака, переключение по условиям, match по состоянию.
- Условия победы и поражения
Условия победы и поражения в Godot 4: проверка здоровья и очков, экран Game Over и победы, сигналы game_over и level_complete, пауза игры.
- Генерация уровня и расстановка объектов
Генерация уровня в Godot 4: инстансирование сцен через instantiate и add_child, расстановка монет и врагов по сетке или случайно, циклы спавна.
- Меню, рестарт и экспорт игры
Главное меню и экспорт в Godot 4: смена сцен через change_scene_to_file, рестарт reload_current_scene, экспортные шаблоны и билд под Windows, Linux, веб.
- Враг с простым ИИ: конечный автомат