Что такое Godot и зачем он нужен

Godot — это бесплатный движок, на котором можно собрать настоящую игру, ничего не платя и не устанавливая гигабайты.

Суть: движок берёт на себя рутину — отрисовку, физику, звук, окно игры — а ты описываешь только правила своего мира.

Представь, что ты хочешь сделать игру про космический корабль. Без движка тебе пришлось бы вручную писать код, который открывает окно, рисует пиксели, считает, куда сдвинулся корабль, проверяет столкновения с астероидами и проигрывает звук взрыва. Это месяцы работы ещё до того, как появится хоть что-то играбельное. Движок — это готовый набор всех этих кирпичей. Ты не пишешь отрисовку с нуля: ты ставишь спрайт корабля на сцену и говоришь «двигайся вот по этим правилам».

Godot выделяется среди движков тем, что он по-настоящему бесплатный и с открытым исходным кодом. Нет подписки, нет процента с продаж, нет водяного знака на экране. Скачанный редактор весит около сотни мегабайт и запускается мгновенно — это особенно приятно, если у тебя не самый мощный компьютер. При этом на Godot выпускают коммерческие игры, которые продаются в Steam, так что это не игрушечный инструмент, а рабочий движок.

В этом курсе мы делаем 2D-игру — плоскую, как старые платформеры. Godot одинаково хорошо умеет 2D и 3D, но 2D проще для старта: меньше математики, понятнее, что происходит на экране.

Стоит сказать пару слов и про сообщество. Godot — открытый проект, его развивают тысячи людей по всему миру, а исходный код лежит на GitHub. Это значит, что движок не исчезнет вместе с какой-то компанией и не введёт внезапно платную подписку. Вокруг него выросли горы бесплатных туториалов, ассетов и готовых примеров. Если ты застрял, почти наверняка кто-то уже решал ту же задачу и описал решение. Для новичка такая открытость — огромный плюс: ты учишься на живых проектах, а не на закрытой коробке, в которую нельзя заглянуть.

Как работает под капотом

Когда ты запускаешь игру, движок входит в так называемый игровой цикл. Это бесконечный круг: обработать ввод игрока, обновить состояние мира, нарисовать кадр — и снова с начала, десятки раз в секунду. Один проход круга называется кадром (frame). Если круг успевает повториться 60 раз в секунду, игра идёт плавно — это и есть заветные 60 FPS.

Игровой цикл (один кадр):

[ Ввод игрока ] -> [ Обновить мир ] -> [ Нарисовать кадр ]
       ^                                          |
       |__________________________________________|
                  и так 60 раз в секунду

Твоя задача как разработчика — не управлять этим циклом вручную, а вписать в него свою логику. Движок сам зовёт твой код в нужный момент каждого кадра. Ниже — простая модель такого цикла на Python: мы крутим его несколько кадров и печатаем, что происходит. GDScript устроен почти так же.

FPS = 60
frame = 0
ship_x = 0.0
speed = 120.0  # пикселей в секунду

for _ in range(5):
    frame += 1
    delta = 1.0 / FPS          # сколько секунд прошло за кадр
    ship_x += speed * delta    # сдвигаем корабль
    print(f"Кадр {frame}: корабль на x = {ship_x:.1f}")

print("За 5 кадров корабль уехал вправо, не дёргаясь.")

Та же логика на Python ▶. Запусти врезку: ты увидишь, как объект плавно смещается кадр за кадром. Умножение скорости на delta — фундамент любого движения в играх, и мы вернёмся к нему ещё много раз.

Частые ошибки

Новички часто думают, что движок «сам сделает игру». Это не так: движок даёт кирпичи, но дом из них строишь ты. Ещё одна ловушка — сразу хвататься за 3D, потому что оно выглядит круче. В 3D добавляется камера, свет, третья координата и куча математики, и новичок тонет в настройках вместо того, чтобы доделать игру. Начни с 2D. И последнее: не путай Godot 3 и Godot 4 — между ними много отличий в коде, и старые туториалы под Godot 3 часто не работают. Весь этот курс — про Godot 4.

Best practices

Скачивай движок только с официального сайта godotengine.org. Бери стабильную (stable) версию, а не альфа или бета. Заведи отдельную папку под все свои проекты, чтобы потом не искать их по всему диску. И самое важное правило новичка: делай маленькие игры до конца, а не одну огромную, которую забросишь на середине. Законченная крошечная игра учит большему, чем недоделанный шедевр.

Итоги: движок — это готовый набор кирпичей для игры. Godot 4 бесплатный, лёгкий и подходит для коммерческих проектов. Игра — это бесконечный цикл «ввод → обновление → отрисовка», и твоя логика встраивается в него. Движение в играх строится на умножении скорости на delta — времени одного кадра.

Проверьте себя
1. Зачем нужен игровой движок вроде Godot?
AЧтобы заменить программиста полностью
BЧтобы взять на себя рутину (отрисовку, физику, окно) и дать готовые кирпичи
CЧтобы игра запускалась только в браузере
DЧтобы рисовать графику вместо художника
2. Что такое один кадр (frame) в игровом цикле?
AКартинка из папки проекта
BОдин проход круга «ввод → обновление → отрисовка»
CГраница вокруг окна игры
DЕдиница измерения размера спрайта