Список возможностей

На этой странице перечислены все функции, поддерживаемые Godot в настоящий момент.

Примечание

Эта страница содержит список всех функций, которые поддерживаются в стабильной версии Godot (3.2). `Дополнительные функции <https://docs.godotengine.org/en/latest/about/list_of_features.html>`присутствуют в последней разрабатываемой версии (4.0).

Возможности

Платформы

Может запустить как редактор, так и экспортированные проекты:

  • Windows 7 и выше (64-битная и 32-битная).

  • macOS 10.12 и выше (64-битная, x86 и ARM).

  • Linux (64-битная или 32-битная, x86 или ARM).

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

Запускает экспортированные проекты:

  • Android 4.4 и выше.
  • iOS 10.0 и выше.
  • HTML5 с помощью WebAssembly (Firefox, Chrome, Edge, Opera).
  • Консоли.

Godot стремится быть максимально независимым от платформы и его относительно легко переносить на новые платформы.

Редактор

Возможности:

  • Редактор дерева сцены.

  • Редактор скриптов.

  • Поддержка внешних редакторов скриптов, таких как Visual Studio Code или Vim.

  • GDScript debugger.

    • Пока не поддерживается отладка в потоках.
  • Инструменты мониторинга производительности.

  • Живая перезагрузка скриптов.

  • Редактирование сцены налету.

    • Изменения будут отражены в редакторе и будут сохранены после закрытия запущенного проекта.
  • Удаленный инспектор.

    • Изменения не будут отражены в редакторе и не будут сохранены после закрытия запущенного проекта.
  • Репликация камеры в реальном времени.

    • Переместите камеру в редакторе и посмотрите результат в запущенном проекте.
  • Используйте редактор на десятках языках, предоставленных сообществом.

Плагины:

  • Плагины редактора можно загрузить из библиотеки ресурсов для расширения функциональности редактора.
  • Создайте свои собственные плагины, используя GDScript, чтобы добавить новые функции или ускорить рабочий процесс.
  • Загрузите проекты из библиотеки ресурсов в диспетчер проектов и импортируйте их напрямую.

2D графика

Доступны два рендерера:

  • OpenGL ES 3.0 рендерер (на настольных платформах используется OpenGL 3.3).
    • Высококачественное изображение. Рекомендуется для настольных платформ.
  • OpenGL ES 2.0 рендерер (на настольных платформах используется OpenGL 2.1).
    • Рекомендуется на мобильных и веб-платформах.

Возможности:

  • Спрайт, полигон и линейный рендеринг.

    • Инструменты высокого уровня для рисования линий и полигонов, такие как Polygon2D и Line2D.
  • AnimatedSprite в качестве помощника для создания анимированных спрайтов.

  • Слои параллакса.

    • Поддержка псевдо-3D путем автоматического дублирования слоя несколько раз.
  • 2D освещение с картами нормалей.

    • Твердые или мягкие тени.
  • Рендеринг шрифтов с использованием растровых изображений (BitmapFont) или растеризация с использованием FreeType (DynamicFont).

    • Растровые шрифты можно экспортировать с помощью таких инструментов, как BMFont.
    • DynamicFont поддерживает как монохромные, так и цветные шрифты. Поддерживаются форматы TTF и OTF.
    • DynamicFont поддерживает дополнительные контуры шрифтов с регулируемой шириной и цветом.
    • Поддержка передискретизации шрифтов для сохранения резкости шрифтов при более высоком разрешении.
  • Частицы на базе GPU с поддержкой пользовательских шейдеров частиц.

  • Частицы на базе процессора.

2D инструменты

  • 2D-камера со встроенной функцией сглаживания и перетаскивания полей.

  • Узел Path2D для представления пути в 2D пространстве.

    • Может быть нарисовано в редакторе или сгенерировано процедурно.
    • Узел PathFollow2D, чтобы заставить узлы следовать по Path2D.
  • 2D вспомогательный класс геометрии.

  • Узел Line2D для рисования текстурированных 2D линий.

2D физика

Физические тела:

  • Статические тела.
  • Жесткие тела (rigid bodies).
  • Кинематические тела (kinematic bodies).
  • Суставы.
  • Области для обнаружения тел, входящих или выходящих из него.

Обнаружение столкновений:

  • Встроенные фигуры: линия, коробка, круг, капсула.
  • Полигоны столкновения (могут быть нарисованы вручную или сгенерированы из спрайта в редакторе).

3D-графика

Доступны два рендерера:

  • OpenGL ES 3.0 рендерер (на настольных платформах используется OpenGL 3.3).
    • Высококачественное изображение. Рекомендуется для настольных платформ.
    • HDR рендеринг с sRGB.
  • OpenGL ES 2.0 рендерер (на настольных платформах используется OpenGL 2.1).
    • Рекомендуется на мобильных и веб-платформах.
    • LDR рендеринг для большей совместимости.
    • Не все функции доступны. Функции, доступные только при использовании рендера OpenGL ES 3.0, помечены GLES3 ниже.

Камера:

  • Перспективные, ортографические и фрустум-офсетные камеры.

Физически корректный рендеринг:

  • Следует модели Disney PBR.
  • Использует roughness-metallic рабочий процесс с поддержкой ORM текстур.
  • Normal mapping.
  • GLES3: Карты parallax/relief с автоматическим определением уровня детализации в зависимости от расстояния (LOD).
  • GLES3: Подповерхностное рассеяние и пропускание.
  • GLES3: Proximity fade (мягкие частицы).
  • Уменьшение расстояния, при котором можно использовать альфа-смешение или сглаживание, чтобы избежать прохождения прозрачного конвейера.
  • Сглаживание может быть определено на уровне пикселей или отдельных объектов.

Освещением в реальном времени:

  • Направленные источники света (солнце/луна). До 4-х в сцене.
  • Всенаправленный свет.
  • Точечные светильники с регулируемым углом конуса и затуханием.

Теневая карта

  • DirectionalLight: Ортогональный (самый быстрый), PSSM 2-сегментный и 4-сегментный. Поддерживает смешивание между разделениями.
  • OmniLight: Dual paraboloid (fast) or cubemap (slower but more accurate). Supports colored projector textures in the form of panoramas.
  • SpotLight: Одна текстура.

Глобальное освещение с непрямым освещением:

  • Запечённые карты освещения (быстро, но не могут быть обновлены во время выполнения).

    • Карты освещения запекаются на процессоре.
  • GLES3: Зонды GI (GI probes) (медленнее, в режиме полуреального времени(semi-real-time)). Поддерживает отражения.

Отражения:

  • GLES3: Отражения на основе вокселей (при использовании зондов GI).
  • Быстрое запеченное отражение или медленное отражение в реальном времени с помощью ReflectionProbe. Параллаксная коррекция может быть включена опционально.
  • GLES3: Отражения в экранном пространстве.
  • Методы отражения могут быть смешаны для большей точности.

Небо:

  • Панорамное небо (с использованием HDRI).
  • Процедурное небо.

Туман:

  • Глубина тумана с регулируемой кривой затухаения.
  • Высота тумана (пол или потолок) с регулируемым затуханием.
  • Поддержка автоматического цвета глубины тумана в зависимости от направления камеры (чтобы соответствовать цвету солнца).
  • Дополнительный коэффициент пропускания, чтобы сделать свет более заметным в тумане.

Частицы:

  • GLES3: Частицы на базе графического процессора с поддержкой пользовательских шейдеров частиц.
  • Частицы на базе процессора.

Постобработка:

  • Закраска (Linear, Reinhard, Filmic, ACES).
  • GLES3: Автоматическая регулировка экспозиции в зависимости от яркости области просмотра.
  • GLES3: Ближняя и дальняя глубина резкости.
  • GLES3: Преграждение окружающего света в экранном пространстве.
  • Свечение/блум c возможным увеличением разрешения и несколькими доступными режимами смешения: Screen (Экран), Soft Light(Мягкий свет), Add(Добавить), Replace(Заменить).
  • Color correction using an one-dimensional ramp.
  • Регулирование яркости, контрастности и насыщенности.

Фильтрация текстур:

  • Ближайшая, билинейная, трилинейная или анизотропная фильтрация.

Сжатие текстур:

  • GLES3: BPTC для высококачественного сжатия (не поддерживается на macOS).
  • GLES3: ETC2 (не поддерживается на macOS).
  • ETC1 (рекомендуется при использовании рендерера GLES2).
  • GLES3: S3TC (не поддерживается на мобильных/веб-платформах).

Сглаживание:

  • Множественная выборка сглаживания (MSAA).

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

3D инструменты

  • Встроенный сетки: куб, цилиндр/конус, (полу)сфера, призма, плоскость, квад.

  • Инструменты для генерации процедурной геометрии.

  • Конструктивная твердотельная геометрия (предназначена для прототипирования).

  • Узел Path3D для представления пути в 3D пространстве.

    • Может быть нарисовано в редакторе или сгенерировано процедурно.
    • Узел PathFollow3D, чтобы заставить узлы следовать по Path3D.
  • Вспомогательный класс 3D геометрии.

3D физика

Физические тела:

  • Статические тела.
  • Жесткие тела (rigid bodies).
  • Кинематические тела (kinematic bodies).
  • Корпуса транспортных средств (предназначается для аркадной физики, не симуляций).
  • Суставы.
  • Мягкие тела.
  • Система Ragdolls.
  • Области для обнаружения тел, входящих или выходящих из него.

Обнаружение столкновений:

  • Встроенные формы: куб, сфера, капсула, цилиндр (только с физикой Bullet).
  • Создание треугольных форм столкновения для любой сетки из редактора.
  • Создание одной или нескольких выпуклых форм столкновения для любой сетки из редактора.

Шейдеры

  • 2D: Пользовательские вершинные, фрагментные и световые шейдеры.

  • 3D: Пользовательские вершинные, фрагментные, световые и шейдеры неба.

  • Текстовые шейдеры, использующие язык шейдеров, вдохновленные GLSL <doc_shading_language>.

  • Визуальный редактор шейдеров.

    • Поддержка плагинов визуальных шейдеров.

Написание скриптов

Общее:

  • Объектно-ориентированный шаблон проектирования со скриптами, расширяющими узлы.
  • Сигналы и группы для обмена данными между скриптами.
  • Поддержка :ref:'кросс-языкы сценариев <doc_cross_language_scripting>'.
  • Многие типы данных 2D и 3D линейной алгебры, такие как векторы и трансформации.

GDScript:

C#:

  • Упакован в отдельный двоичный файл для уменьшения размеров файлов и зависимостей.

  • Использует Mono 6.x.

    • Полная поддержка синтаксиса и возможностей C# 7.0.
  • Поддерживает все платформы.

  • Для использования функциональных возможностей IDE рекомендуется использовать внешний редактор.

VisualScript:

GDNative (C, C++, Rust, D, ...):

  • Если это необходимо, ссылка на родные библиотеки для более высокой производительности и сторонних интеграций.

    • Для написания сценариев игровой логики рекомендуется GDScript или C#, если их производительность подходит.
  • Официальные привязки для C и C++.

    • Используйте любую систему сборки и языковые возможности по вашему желанию.
  • Поддерживаются привязки D, Kotlin, Python, Nim и Rust, предоставленные сообществом.

Аудио

Возможности:

  • Выход моно, стерео, 5.1 и 7.1.

  • Non-positional and positional playback in 2D and 3D.

    • Дополнительный эффект Доплера в 2D и 3D.
  • Support for re-routable audio buses and effects with dozens of effects included.

  • Узел Listener3D для прослушивания с позиции, отличной от позиции камеры в 3D.

  • Аудио вход для записи микрофонов.

  • MIDI вход.

    • Поддержки выхода MIDI пока нет.

Используемые API:

  • Windows: WASAPI.
  • macOS: CoreAudio.
  • Linux: PulseAudio или ALSA.

Импорт

Форматы:

  • Images: See Импортирование изображений.

  • Аудио:

    • WAV с дополнительным сжатием IMA-ADPCM.
    • Ogg Vorbis.
  • 3D сцены:

    • glTF 2.0 (рекомендуется).
    • ESCN (прямой экспорт из Blender).
    • FBX (экспериментально).
    • Collada (.dae).
    • Wavefront OBJ (только статические сцены, могут быть загружены непосредственно как сетка).

Вход

  • Система сопоставления ввода с использованием жестко запрограммированных событий ввода или переназначаемых действий ввода.

    • Значения осей могут быть сопоставлены с двумя различными действиями с настраиваемой мертвой зоной.
    • Используйте один и тот же код для поддержки клавиатур и геймпадов.
  • Сочетание клавиш.

    • Keys can be mapped in "physical" mode to be independent of the keyboard layout.
  • Входящие события.

    • Курсор мыши может быть видимым, скрытым, фиксированным или ограниченным в пределах окна.
    • После захвата необработанный ввод будет использоваться в Windows и Linux, чтобы обойти настройки ускорения мыши ОС.
  • Геймпад-вход (до 8 симуляторных контроллеров).

  • Ввод пера/планшета с поддержкой давления.

Сеть

  • Низкоуровневая сеть TCP с использованием StreamPeer и TCP_Server.

  • Низкоуровневая сеть UDP с использованием PacketPeer и UDPServer.

  • Низкоуровневые HTTP-запросы с использованием HTTPClient.

  • Высокоуровневые HTTP-запросы с использованием HTTPRequest.

    • Поддержка HTTPS прямо из коробки с использованием связанных сертификатов.
  • Многопользовательский API высокого уровня с использованием UDP и ENet.

    • Автоматическая репликация с использованием удаленных вызовов процедур (RPC).
    • Поддержка ненадёжных, надёжных и заказанных переводов.
  • Клиент и сервер WebSocket, доступные на всех платформах.

  • Клиент и сервер WebSocket, доступные на всех платформах.

  • Поддержка UPnP для обхода требования пересылки портов при размещении сервера за NAT.

Локализация

  • Полная поддержка Unicode, включая эмодзи.
  • Сохранение строк локализации, используя CSV или gettext.
  • Используйте локализованные строки в своем проекте автоматически в элементах графического интерфейса или с помощью функции tr().
  • Поддержка письма справа налево и вёрстка текста планируется в Godot 4.0.

Использование окон и интеграция в ОС

  • Перемещайте, изменяйте размер, минимизируйте и увеличивайте окно, созданное проектом.

  • Изменение заголовка и значка окна.

  • Запрос внимания (на большинстве платформ приведет к миганию шкал с надписями).

  • Полноэкранный режим.

    • Не использует эксклюзивный полноэкранный режим, поэтому разрешение экрана не может быть изменено таким образом. Вместо этого используйте область просмотра с другим разрешением.
  • Окно без полей (полноэкранное или не полноэкранное).

  • Возможность держать окно всегда сверху.

  • Прозрачное окно с попиксельной прозрачностью.

  • Интеграция глобального меню в macOS.

  • Выполнять команды блокирующим или неблокирующим образом.

  • Открытие пути к файлам и URL-адреса, используя обработчики протоколов по умолчанию или пользовательские (если они зарегистрированы в системе).

  • Анализ пользовательских аргументов командной строки.

Мобильный

  • Внутриигровые покупки на Android и iOS.
  • Поддержка рекламы с использованием сторонних модулей.

Поддержка XR (AR и VR)

  • Поддержка ARKit на iOS из коробки.
  • Поддержка API OpenXR и OpenVR.
  • Популярные шлемы виртуальной реальности, такие как Oculus Quest и HTC Vive, поддерживаются благодаря плагинам.

Система графического интерфейса

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

Узлы:

  • Кнопки.
  • Флажки, кнопки-переключатели, переключатели.
  • Ввод текста с помощью LineEdit (одна строка) и TextEdit (несколько строк).
  • Выпадающие меню с помощью PopupMenu и OptionButton.
  • Полосы прокрутки.
  • Метки.
  • RichTextLabel для текста, отформатированного с использованием BBCode.
  • Деревья (также могут использоваться для представления таблиц).
  • Контейнеры (горизонтальные, вертикальные, сетка, центр, поля, перетаскиваемый разделитель, ...).
  • Элементы управления можно вращать и масштабировать.

Размеры:

  • Якоря для удержания элементов графического интерфейса в определенном углу, краю или по центру.

  • Контейнеры для автоматического размещения элементов графического интерфейса в соответствии с определенными правилами.

  • Масштабирование до нескольких разрешений с помощью режимов растяжения 2d или viewport.

  • Поддержка любого соотношения сторон с помощью якорей и соотношения растяжения expand.

*Тематизация:*

  • Встроенный редактор тем.

    • Создание тем на основе текущих настроек темы редактора.
  • Процедурные векторные темы, использующие StyleBoxFlat.

    • Поддержка закруглённых/скошенных углов, теней и толщины границ.
  • Темы на основе текстур с использованием StyleBoxTexture.

Небольшой размер дистрибутива Godot может сделать его подходящей альтернативой таким фреймворкам, как Electron или Qt.

Анимация

  • Прямая кинематика и обратная кинематика.
  • Поддержка любого свойства анимации с настраиваемой интерполяцией.
  • Поддержка методов вызова в дорожках анимации.
  • Поддержка воспроизведения звуков в анимационных дорожках.
  • Поддержка кривых Безье в анимации.

Форматы

  • Сцены и ресурсы могут быть сохранены в текстовом или двоичных форматах.

    • Текстовые форматы удобочитаемы и более удобны для контроля версий.
    • Двоичные форматы быстрее сохранять/загружать для больших сцен/ресурсов.
  • Чтение и запись текстовых или двоичных файлов с помощью File.

    • При необходимости могут быть сжаты или зашифрованы.
  • Чтение и запись файлов JSON.

  • Чтение и запись конфигурационных INI-файлов с помощью ConfigFile.

    • Может (де)сериализовать любой тип данных Godot, включая Vector, Color, ...
  • Чтение файлов XML с помощью XMLParser.

  • Упаковка данных игры в файл PCK (пользовательский формат, оптимизированный для быстрого поиска), в ZIP-архив или непосредственно в исполняемый файл для распространения в виде одного файла.

  • Экспорт дополнительных файлов PCK, которые могут быть прочитаны движком для поддержки модов и DLC.

Разное

  • Низкоуровневый доступ к серверам, который позволяет, при необходимости, обойти накладные расходы дерева сцены.

  • Интерфейс командной строки для автоматизации.

  • Поддержка модулей C ++, статически связанных с двоичным файлом движка.

  • Движок и редактор написаны на C++03.

    • Может быть скомпилирован с использованием GCC, Clang и MSVC. Также поддерживается MinGW.
    • Friendly towards packagers. In most cases, system libraries can be used instead of the ones provided by Godot. The build system doesn't download anything. Builds can be fully reproducible.
    • Godot 4.0 будет написан на C++17.
  • Имеет разрешительную лицензию MIT.

См.также

Дорожная карта (план разработки) <https://github.com/godotengine/godot-roadmap>`__ репозиторий документации функций, которые были согласованы и могут быть реализованы в будущих выпусках Godot.