Глава 1 - Настройка окружения

Прежде чем писать код, нужно настроить окружение. В этом разделе мы скачали движок, создадим проект и сделаем первые шаги в редакторе.

Загрузка движка

Получить Godot очень просто — достаточно выполнить несколько шагов.

  1. Скачайте архив на официальном сайте: https://godotengine.org/download.

    Страница загрузки Godot Engine 4.0 для Windows
    Рисунок 1.1 — Страница загрузки Godot Engine 4.0 для платформы Windows

    Обычно сайт автоматически определяет вашу операционную систему и предлагает большую синюю кнопку. Если этого не произошло, прокрутите страницу вниз и выберите платформу вручную.

    Страница загрузки Godot Engine 4.0 для Windows
    Рисунок 1.2 — показывает, где выбрать платформу, если определение не сработало
  2. Страница загрузки также должна определить, 64- или 32-разрядную систему вы используете. При неудаче откройте раздел All downloads, где собраны альтернативные версии.

    Раздел All Downloads
    Рисунок 1.3 — Раздел All Downloads со всеми вариантами движка
  3. Скачанный архив имеет формат ZIP. Распакуйте его, чтобы получить программу:
    • Windows: щёлкните правой кнопкой мыши по архиву и выберите Extract All…, затем укажите папку.
    • macOS: дважды щёлкните по архиву — система распакует файлы автоматически.
    • Linux: выполните команду

      unzip Godot_v4.2.1-stable_linux.x86_64.zip -d Godot
  4. Переместите распакованные файлы в безопасное место (например, на рабочий стол или в папку приложений), а не в каталог Downloads. Иначе можно случайно удалить редактор, наводя порядок среди загрузок.

В книге используется версия 4.0.0, но любая ветка 4.x подойдёт. Нужно помнить, что проекты с открытым исходным кодом развиваются быстро, поэтому некоторые изменения возможны.

Godot очень компактный — всего 30–100 МБ в зависимости от платформы. Этого достаточно, чтобы создавать серьёзные игры. Для сравнения: редактор Unity занимает около 10 ГБ, а Unreal Engine — 34 ГБ без ассетов.

Создание нового проекта

Перейдём к практическим шагам.

  1. Запустите редактор, дважды щёлкнув по файлу Godot. Появится менеджер проектов.

    Менеджер проектов
    Рисунок 1.5 — Окно настройки нового проекта
  2. Нажмите + New.
  3. Задайте имя проекта, например Hello World.
  4. Укажите папку для проекта. Лучше создать отдельный каталог (кнопка Create Folder), чтобы структура оставалась чистой.
  5. В списке Renderer выберите Compatibility. Этот рендер поддерживает максимальное количество платформ и старые видеокарты. Forward+ предназначен для современной графики и требует мощного GPU, а мобильный рендер оптимизирован под смартфоны.
  6. Нажмите Create & Edit. Через пару секунд редактор откроет новый проект.

С первого взгляда интерфейс может показаться сложным: окна, панели и огромная 3D-сцена.

Окно редактора Godot

Не волнуйтесь — к концу книги вы освоите практически каждый элемент.

Светлая тема (необязательно)

В печатном виде тёмные скриншоты выглядят не всегда чётко, поэтому для иллюстраций используется светлая тема. Если хотите следовать примерам, выполните такие шаги:

  1. Откройте Editor → Editor Settings….

    Переход к Editor Settings в Godot
    Рисунок 1.7 — Переход к Editor Settings
  2. Перейдите к разделу Theme.
  3. В выпадающем списке Preset выберите Light.

    Выбор светлой темы в Godot
    Рисунок 1.8 — Выбор светлой темы
Редактор Godot с применённой светлой темой
Рисунок 1.9 — Редактор Godot с применённой светлой темой

Создаём основную сцену

Настроим базовую сцену для проекта.

  1. В панели Scene нажмите 2D Scene, чтобы создать 2D-заготовку.

    Выбор 2D Scene в Godot
    Рисунок 1.10 — Выбор 2D Scene

    В дереве появится корневой узел Node2D, а рабочее окно переключится в двумерный режим.

  2. Переименуйте узел в Main (правый клик → Rename).

    Переименовываем узел в Main в Godot
    Рисунок 1.11 — Переименовываем узел в Main
  3. Сохраните сцену (Scene → Save Scene или Ctrl/Cmd + S).

    Сохранение сцены в Godot
    Рисунок 1.12 — Сохранение сцены
  4. Сохраните файл как main.tscn в корне проекта.

    Выбор пути и имени файла сцены в Godot
    Рисунок 1.13 — Выбор пути и имени файла сцены

В Godot всё является узлом: изображения, звуки, меню, спецэффекты. Узлы — строительные блоки, из которых состоит сцена. Сцена — это совокупность узлов, например уровень с игроком, врагами и монетами. Узлы можно представить как краски, а сцену — как холст. Эта идея будет сопровождать нас всю книгу.

Краткий обзор интерфейса

Основные области редактора Godot
Рисунок 1.14 — Основные области редактора Godot

Главные элементы интерфейса:

  1. Scene Tree — показывает все узлы текущей сцены.
  2. FileSystem — доступ ко всем файлам в проекте.
  3. Главное окно редактора — текущий режим (2D, 3D или Script). Сейчас активен 2D-редактор для размещения узлов.
  4. Inspector — панель справа со свойствами выбранного узла. Например, в разделе Transform находятся координаты и масштаб.

Узлы предоставляют базовые функции (показ изображения, проигрывание звука и т. п.), но чтобы превратить их в игру, нужно добавить логику. Этим займёмся с помощью скриптов.

Первый скрипт

Скрипт добавляет узлу поведение: двигает объект, обрабатывает входные данные или управляет звуком. Прикрепим скрипт к нашему узлу Main.

  1. Щёлкните правой кнопкой по Main и выберите Attach Script.

    Прикрепление скрипта к узлу Main в Godot
    Рисунок 1.15 — Прикрепление скрипта к узлу Main
  2. В открывшемся окне оставьте настройки по умолчанию: язык — GDScript, имя файла совпадает с именем узла. Нажмите Create.

    Создание скрипта в Godot
    Рисунок 1.16 — Нажимаем Create
Открытый редактор скриптов в Godot
Рисунок 1.17 — Открытый редактор скриптов

Это окно Script Editor. В первой части книги мы будем проводить здесь большую часть времени. Главное окно редактора контекстно: существуют 2D-, 3D- и Script-режимы. Переключаться между ними можно кнопками сверху.

2D-, 3D- и Script-режимы в Godot

Исходный код шаблона

Сейчас скрипт выглядит так:

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 показано, как функция образует блок кода.

Схема функции
Рисунок 1.19 — Функция как блок кода

Скрипт-шаблон также содержит функцию _process, но она нам пока не нужна, поэтому мы её удалили. К функциям вернёмся в четвёртой главе. Помните: все строки внутри _ready выполняются при запуске игры, и перед ними должен быть таб. Вставляйте его клавишей Tab (символ ↹).

Последняя важная строка — extends Node2D. Она указывает, что скрипт расширяет функциональность узла Node2D, который мы добавили в сцену. Мы ещё поговорим о наследовании и классах в четвёртой главе.

Запуск проекта

Окно запуска проекта
Рисунок 1.20 — Кнопка запуска проекта
  1. Нажмите кнопку Play в правом верхнем углу. Появится диалог выбора главной сцены — выберите текущую (Select Current).

    Окно выбора главной сцены
    Рисунок 1.21 — Назначение главной сцены
  2. На экране появится пустое серое окно — это нормально, мы ещё ничего не отрисовывали. Основное происходит в панели Output редактора.
Пустое окно игры
Рисунок 1.22 — Окно игры пока пустое
Вывод Hello, World
Рисунок 1.23 — В окне Output отображается «Hello, World»

Поздравляем! Мы написали первый скрипт. Попробуйте изменить текст внутри кавычек и снова запустить игру — в окне 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».

В следующей главе мы начнём путь в программирование. До встречи!

 

Lady Godot Post Apocalypse