Прежде чем писать код, нужно настроить окружение. В этом разделе мы скачали движок, создадим проект и сделаем первые шаги в редакторе.
Загрузка движка
Получить Godot очень просто — достаточно выполнить несколько шагов.
-
Скачайте архив на официальном сайте: https://godotengine.org/download.
Рисунок 1.1 — Страница загрузки Godot Engine 4.0 для платформы Windows Обычно сайт автоматически определяет вашу операционную систему и предлагает большую синюю кнопку. Если этого не произошло, прокрутите страницу вниз и выберите платформу вручную.
Рисунок 1.2 — показывает, где выбрать платформу, если определение не сработало -
Страница загрузки также должна определить, 64- или 32-разрядную систему вы используете. При неудаче откройте раздел All downloads, где собраны альтернативные версии.
Рисунок 1.3 — Раздел All Downloads со всеми вариантами движка -
Скачанный архив имеет формат ZIP. Распакуйте его, чтобы получить программу:
- Windows: щёлкните правой кнопкой мыши по архиву и выберите Extract All…, затем укажите папку.
- macOS: дважды щёлкните по архиву — система распакует файлы автоматически.
-
Linux: выполните команду
unzip Godot_v4.2.1-stable_linux.x86_64.zip -d Godot
- Переместите распакованные файлы в безопасное место (например, на рабочий стол или в папку приложений), а не в каталог Downloads. Иначе можно случайно удалить редактор, наводя порядок среди загрузок.
В книге используется версия 4.0.0, но любая ветка 4.x подойдёт. Нужно помнить, что проекты с открытым исходным кодом развиваются быстро, поэтому некоторые изменения возможны.
Godot очень компактный — всего 30–100 МБ в зависимости от платформы. Этого достаточно, чтобы создавать серьёзные игры. Для сравнения: редактор Unity занимает около 10 ГБ, а Unreal Engine — 34 ГБ без ассетов.
Создание нового проекта
Перейдём к практическим шагам.
-
Запустите редактор, дважды щёлкнув по файлу Godot. Появится менеджер проектов.
Рисунок 1.5 — Окно настройки нового проекта - Нажмите + New.
-
Задайте имя проекта, например
Hello World. - Укажите папку для проекта. Лучше создать отдельный каталог (кнопка Create Folder), чтобы структура оставалась чистой.
- В списке Renderer выберите Compatibility. Этот рендер поддерживает максимальное количество платформ и старые видеокарты. Forward+ предназначен для современной графики и требует мощного GPU, а мобильный рендер оптимизирован под смартфоны.
- Нажмите Create & Edit. Через пару секунд редактор откроет новый проект.
С первого взгляда интерфейс может показаться сложным: окна, панели и огромная 3D-сцена.
Не волнуйтесь — к концу книги вы освоите практически каждый элемент.
Светлая тема (необязательно)
В печатном виде тёмные скриншоты выглядят не всегда чётко, поэтому для иллюстраций используется светлая тема. Если хотите следовать примерам, выполните такие шаги:
-
Откройте Editor → Editor Settings….
Рисунок 1.7 — Переход к Editor Settings - Перейдите к разделу Theme.
-
В выпадающем списке Preset выберите Light.
Рисунок 1.8 — Выбор светлой темы
Создаём основную сцену
Настроим базовую сцену для проекта.
-
В панели Scene нажмите 2D Scene, чтобы создать 2D-заготовку.
Рисунок 1.10 — Выбор 2D Scene В дереве появится корневой узел
Node2D, а рабочее окно переключится в двумерный режим. -
Переименуйте узел в Main (правый клик → Rename).
Рисунок 1.11 — Переименовываем узел в Main -
Сохраните сцену (Scene → Save Scene или Ctrl/Cmd + S).
Рисунок 1.12 — Сохранение сцены -
Сохраните файл как
main.tscnв корне проекта.
Рисунок 1.13 — Выбор пути и имени файла сцены
В Godot всё является узлом: изображения, звуки, меню, спецэффекты. Узлы — строительные блоки, из которых состоит сцена. Сцена — это совокупность узлов, например уровень с игроком, врагами и монетами. Узлы можно представить как краски, а сцену — как холст. Эта идея будет сопровождать нас всю книгу.
Краткий обзор интерфейса
Главные элементы интерфейса:
- Scene Tree — показывает все узлы текущей сцены.
- FileSystem — доступ ко всем файлам в проекте.
- Главное окно редактора — текущий режим (2D, 3D или Script). Сейчас активен 2D-редактор для размещения узлов.
- Inspector — панель справа со свойствами выбранного узла. Например, в разделе Transform находятся координаты и масштаб.
Узлы предоставляют базовые функции (показ изображения, проигрывание звука и т. п.), но чтобы превратить их в игру, нужно добавить логику. Этим займёмся с помощью скриптов.
Первый скрипт
Скрипт добавляет узлу поведение: двигает объект, обрабатывает входные данные или управляет звуком. Прикрепим скрипт к нашему узлу Main.
-
Щёлкните правой кнопкой по Main и выберите Attach Script.
Рисунок 1.15 — Прикрепление скрипта к узлу Main -
В открывшемся окне оставьте настройки по умолчанию: язык — GDScript, имя файла совпадает с именем узла. Нажмите Create.
Рисунок 1.16 — Нажимаем Create
Это окно Script Editor. В первой части книги мы будем проводить здесь большую часть времени. Главное окно редактора контекстно: существуют 2D-, 3D- и Script-режимы. Переключаться между ними можно кнопками сверху.
Исходный код шаблона
Сейчас скрипт выглядит так:
extends Node2D
# Вызывается, когда узел впервые входит в дерево сцены.
func _ready():
pass # Замените на содержимое функции.
# Вызывается каждый кадр. delta — время между кадрами.
func _process(delta):
pass
Не переживайте о незнакомых командах: мы вернёмся к ним позднее. Важно понимать, что это GDScript — язык сценариев Godot. Чтобы написать классический «Hello, World», заменим строку pass # Replace with function body. на print("Hello, World") и удалим ненужный код:
extends Node2D
func _ready():
print("Hello, World")
Обратите внимание: перед командой print должна стоять табуляция — так мы показываем, что строка принадлежит функции _ready. Добавление табов в начале строк называется отступом (indentation).
Все строки внутри функции _ready выполняются, как только узел готов к использованию. На рис. 1.19 показано, как функция образует блок кода.
Скрипт-шаблон также содержит функцию _process, но она нам пока не нужна, поэтому мы её удалили. К функциям вернёмся в четвёртой главе. Помните: все строки внутри _ready выполняются при запуске игры, и перед ними должен быть таб. Вставляйте его клавишей Tab (символ ↹).
Последняя важная строка — extends Node2D. Она указывает, что скрипт расширяет функциональность узла Node2D, который мы добавили в сцену. Мы ещё поговорим о наследовании и классах в четвёртой главе.
Запуск проекта
-
Нажмите кнопку Play в правом верхнем углу. Появится диалог выбора главной сцены — выберите текущую (Select Current).
Рисунок 1.21 — Назначение главной сцены - На экране появится пустое серое окно — это нормально, мы ещё ничего не отрисовывали. Основное происходит в панели Output редактора.
Поздравляем! Мы написали первый скрипт. Попробуйте изменить текст внутри кавычек и снова запустить игру — в окне Output появится новая строка.
Это были наши первые шаги по созданию сцены и скрипта в игровом движке Godot. В течение всей книги мы изучим всё необходимое, чтобы создать полноценную игру с нуля, но пока остановимся на этом. Далее мы кратко рассмотрим, как присоединиться к сообществу разработчиков игр.
Документация Godot Engine
Если вы чувствуете себя неуверенно, всегда есть официальная документация Godot Engine. Это исчерпывающий источник информации по всем классам и узлам, а также по подсистемам, связанным с движком.
Перейти к документации можно здесь: https://docs.godotengine.org/.
Всякий раз, когда вы ищете способ использовать определённую часть движка или какие-то моменты книги остаются не до конца понятны, обратитесь к документации.
Присоединяйтесь к нашему сообществу!
В завершение главы приглашаю вас вступить в наше сообщество! Если вам нужна помощь, вы столкнулись с багом или просто хотите пообщаться с другими разработчиками игр, загляните на платформы, перечисленные на странице https://godotengine.org/community.
Делитесь своим прогрессом в 𝕏, Facebook, Instagram, Mastodon или на любой другой площадке. Получать отзывы и свежий взгляд на проекты всегда полезно! Если решите опубликовать результаты, не забудьте про хештеги #GodotEngine, #indiedev и #gamedev.
В последней части этой книги я подробно расскажу о сообществе и о том, как к нему присоединиться и даже помочь. А пока сосредоточимся на том, чтобы самим освоить ремесло!
Итоги
В этой главе мы познакомились с Godot Engine, скачали движок и создали свой первый проект. Наконец, узнали, что встроенный язык программирования — GDScript, и написали первый скрипт «Hello, World».
В следующей главе мы начнём путь в программирование. До встречи!
