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

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

Примечание

This page lists features supported by the current stable version of Godot (3.3). More features are available in the latest development version (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 отладчик.

    • Пока не поддерживается отладка в потоках.

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

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

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

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

  • Удалённый инспектор.

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

  • Репликация камеры в реальном времени.

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

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

Плагины:

  • Плагины редактора можно загрузить из библиотеки ресурсов для расширения функциональности редактора.

  • Создайте свои собственные плагины, используя 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 текстур.

  • Карты нормалей.

  • GLES3: Карты parallax/relief с автоматическим определением уровня детализации в зависимости от расстояния (LOD).

  • GLES3: Подповерхностное рассеяние и пропускание.

  • GLES3: Proximity fade (мягкие частицы).

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

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

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

  • Направленные источники света (солнце/луна). До 4-х в сцене.

  • Всенаправленный свет.

  • Точечные светильники с регулируемым углом конуса и затуханием.

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

  • DirectionalLight: Ортогональный (самый быстрый), PSSM 2-сегментный и 4-сегментный. Поддерживает смешивание между разделениями.

  • OmniLight: Двойной параболоид (быстрый) или кубическая карта (медленнее, но точнее). Поддерживает цветные текстуры проектора в виде панорам.

  • 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 (Заменить).

  • Коррекция цвета с использованием одномерной рамп-функции (линейно-временной функции).

  • Регулирование яркости, контрастности и насыщенности.

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

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

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

  • 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>.

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

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

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

Общее:

  • Объектно-ориентированный шаблон проектирования со скриптами, расширяющими узлы.

  • Сигналы и группы для обмена данными между скриптами.

  • Поддержка межъязыковых сценариев.

  • Многие типы данных 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.

  • Непозиционное и позиционное воспроизведение в 2D и 3D.

    • Дополнительный эффект Доплера в 2D и 3D.

  • Поддержка перенаправляемых audio buses и эффектов с десятком внесённых изменений.

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

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

  • MIDI вход.

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

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

  • Windows: WASAPI.

  • macOS: CoreAudio.

  • Linux: PulseAudio или ALSA.

Импорт

Форматы:

  • Изображения: Cмотреть Импортирование изображений.

  • Аудио:

    • WAV с дополнительным сжатием IMA-ADPCM.

    • Ogg Vorbis.

    • MP3.

  • 3D сцены:

    • glTF 2.0 (рекомендуется).

    • ESCN (прямой экспорт из Blender).

    • FBX (экспериментально).

    • Collada (.dae).

    • Wavefront OBJ (только статические сцены, могут быть загружены непосредственно как сетка).

Ввод

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

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

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

  • Сочетания клавиш.

    • Клавиши могут быть назначены в "физическом" режиме, для независимости от раскладки клавиатуры.

  • Управление мышью.

    • Курсор мыши может быть видимым, скрытым, фиксированным или ограниченным в пределах окна.

    • После захвата необработанный ввод будет использоваться в Windows и Linux, чтобы обойти настройки ускорения мыши ОС.

  • Геймпад (до 8 контроллеров одновременно).

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

Сеть

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

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

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

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

    • Поддержка HTTPS прямо из коробки с использованием связанных сертификатов.

  • Многопользовательский API высокого уровня с использованием UDP и ENet.

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

    • Поддержка ненадёжных, надёжных и заказанных переводов.

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

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

  • Поддержка 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.

Разное

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

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

    • Экспорт и развёртывание проектов с использованием платформ непрерывной интеграции.

    • Сценарии завершения доступны для Bash, Zsh и Fish.

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

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

    • Может быть скомпилирован с использованием GCC, Clang и MSVC. Также поддерживается MinGW.

    • Дружелюбно относится к упаковщикам. В большинстве случаев можно использовать системные библиотеки вместо тех, которые предоставляет Godot. Система сборки ничего не загружает. Сборки могут быть полностью воспроизводимыми.

    • Godot 4.0 будет написан на C++17.

  • Имеет разрешительную лицензию MIT.

См.также

В репозитории roadmap (дорожная карта) задокументированы функции, которые уже были согласованы и могут быть реализованы в будущих выпусках Godot.