Введение в разработку редактора

На этой странице вы узнаете:

  • Дизайн-решения, лежащие в основе редактора Godot.

  • Как эффективно работать с C++-кодом редактора Godot.

Это руководство предназначено для текущих и будущих разработчиков движка. Чтобы создать плагины редактора в GDScript, см. Создание плагинов.

См. также

Если вы новичок в Godot, рекомендуем вам ознакомиться с документом Философия дизайна Godot, прежде чем продолжить. Поскольку редактор Godot — это проект Godot, написанный на C++, значительная часть философии движка применима и к нему.

Технические решения

Редактор Godot отрисовывается с использованием рендерера Godot и UI system. Он не использует такие инструменты, как GTK или Qt. Это похоже на программы вроде Blender. Хотя использование инструментов упрощает достижение "родного" внешнего вида, они также довольно громоздки, а их лицензирование несовместимо с Godot.

Редактор полностью написан на C++. Он не может содержать код GDScript или C#.

Структура каталога

Код редактора полностью автономен и находится в папке editor/ в исходном репозитории Godot.

Некоторые функции редактора также реализованы через modules. Некоторые из них доступны только в сборках редактора для уменьшения размера двоичного файла шаблонов экспорта. См. папку modules/ в репозитории исходного кода Godot.

Некоторые важные файлы в редакторе:

Зависимости редактора в файлах scene/

При работе над функцией редактора вам, возможно, придется изменить файлы в узлах графического интерфейса Godot, которые вы можете найти в папке scene/.

Важно помнить одно правило: не добавлять новые зависимости к editor/ в других папках, например, scene/. Это правило действует даже при использовании #ifdef TOOLS_ENABLED.

Чтобы сделать кодовую базу более понятной и замкнутой, допустимый порядок зависимостей следующий:

  • editor/ -> scene/ -> servers/ -> core/

Это означает, что файлы в каталоге editor/ могут зависеть от включений из каталогов scene/, servers/ и core/. Но, например, хотя scene/ может зависеть от включений из каталогов servers/ и core/, он не может зависеть от включений из каталога editor/.

В настоящее время существуют некоторые зависимости от editor/, включаемые в файлы scene/, но они находятся в процессе удаления.

Советы по разработке

Для быстрой итерации в редакторе рекомендуем создать тестовый проект и открыть его из командной строки после компиляции редактора. Таким образом, вам не придётся каждый раз запускать Godot через менеджер проектов.