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

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

Примечание

Эта страница содержит список возможностей, которые поддерживаются в стабильной версией Godot (3.4). Больше возможностей доступно в последней разрабатываемой версии (4.0).

Возможности

Платформы

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

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

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

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

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

    • Официальные двоичные файлы скомпилированы на Ubuntu 14.04.

  • HTML5 с помощью WebAssembly (Firefox, Chrome, Edge, Opera).

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

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

Редактор

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

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

  • Встроенный редактор скриптов.

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

  • 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, WOFF1 и WOFF2.

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

  • Поддерживает режим Lambert, Lambert Wrap (half-Lambert), Oren-Nayar и Toon diffuse shading.

  • Поддерживает режимы Schlick-GGX, Blinn, Phong, Toon и отключенный specular shading.

  • Использует roughness-metallic рабочий процесс с поддержкой ORM текстур.

  • Использует горизонтальное затенение фона с помощью отражения (модель нити накаливания) для улучшения внешнего вида материала

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

  • Детальное отображение для карт альбедо и нормалей.

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

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

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

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

  • GLES3: преломление с поддержкой шероховатости материала (что приводит к размытому преломлению). На GLES2 рефракция все еще функциональна, но не имеет поддержки шероховатости материала.

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

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

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

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

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

  • Отражаемость может быть изменена для каждого источника.

  • GLES3: Освещение рассчитано в один заход, прямолинейно (Forward Rendering). По умолчанию до 32 всесторонних и 32 точечных источников света могут быть отображены для каждого меш ресурса. Этот лимит может быть увеличен за счёт большего времени требуемого для компиляции шейдеров и меньшей производительности. GLES2 использует Forward Rendering с множеством заходов, что позволяет не иметь лимита на количество источников света, но работает медленнее с множеством источников.

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

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

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

  • SpotLight: Одна текстура.

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

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

    • Поддерживает запекание только непрямого света или запекание как прямого, так и непрямого освещения. Режим запекания можно регулировать в зависимости от освещённости, что позволяет использовать гибридное облегчённое запекание.

    • Поддерживает освещение динамических объектов с помощью автоматической системы на основе октодерева. Установка датчика вручную не требуется.

    • Карты освещения запекаются на процессоре.

  • GLES3: GI зонды (медленнее, полуреальное время). Поддерживает отражения.

Отражения:

  • Быстрые прерассчитанные (baked) отражения или медленные отражение в реальном времени с помощью ReflectionProbe. Параллаксная коррекция может быть включена опционально.

  • Методы отражения могут быть смешаны вместе для большей точности или масштабируемости.

  • GLES3: Отражения на основе вокселей (при использовании зондов GI).

  • GLES3: Отражения в экранном пространстве.

Небо:

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

  • Процедурное небо.

Туман:

  • Глубина тумана с регулируемой кривой затухания.

  • Высота тумана (пол или потолок) с регулируемым затуханием.

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

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

Частицы:

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

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

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

  • Закраска (Linear, Reinhard, Filmic, ACES).

  • Свечение/блум c возможным увеличением разрешения и несколькими доступными режимами смешения: Screen (Экран), Soft Light (Мягкий свет), Add (Добавить), Replace (Заменить).

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

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

  • GLES3: Автоматическая регулировка экспозиции в зависимости от яркости области просмотра.

  • GLES3: Ближняя и дальняя глубина резкости.

  • GLES3: Преграждение окружающего света в экранном пространстве (SSAO).

  • GLES3: Дополнительная отладка во избежание цветовых полос (эффективно, когда включен HDR-рендеринг).

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

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

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

  • WebP с сжатием с потерями или без (не сохраняет VRAM; лишь уменьшает объем хранимых данных).

  • GLES3: S3TC (поддерживается лишь на настольных компьютерах).

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

  • GLES3: BPTC для высококачественного сжатия (не поддерживается на macOS).

  • GLES3: ETC2 (не поддерживается на macOS).

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

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

  • Быстрое приблизительное сглаживание (FXAA).

Производительность:

  • Отбраковка окклюзии с помощью :ссылка: `комнаты и порталы <doc_rooms_and_portals>'. Поддерживает уведомления о игровом процессе с первичной и вторичной видимостью, чтобы отключить обработку искусственного интеллекта / физики для узлов, которым это не нужно.

  • Замкнутые формы в режиме реального времени (сферы и многоугольники). Не столь эффективны, как комнаты и порталы (и не поддерживает уведомления о геймплее), но проще в настройке.

Примечание

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

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

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

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

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

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

    • Пути могут быть нарисованы в редакторе или сгенерированы процедурно.

    • Узел PathFollow3D, чтобы заставить узлы следовать по Path3D.

  • Вспомогательный класс 3D геометрии.

  • Поддержка экспорта текущей сцены как glTF 2.0 файла из редактора.

3D физика

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

  • Статические тела.

  • Жёсткие тела (rigid bodies).

  • Кинематические тела (kinematic bodies).

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

  • Суставы.

  • Sоft bodies.

  • Система Ragdolls.

  • Области для обнаружения тел, входящих или выходящих из них.

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

  • Встроенные формы: куб, сфера, капсула, цилиндр.

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

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

Шейдеры

  • 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, предоставленные сообществом.

Предупреждение

`В Godot 4.0 из ядра будет убрана поддержка VisualScript.<https://godotengine.org/article/godot-4-will-discontinue-visual-scripting>`__Так, создание новых проектов с использованием визуального программирования не рекомендуется. В будущем VisualScript может быть интегрирован в Godot 4.x только как расширение.

Пока что Godot 3.x поддерживает VisualScript, но рекомендуется использовать GDScript, особенно если планируется дальнейший переход проекта на Godot 4.

Аудио

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

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

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

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

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

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

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

  • MIDI вход.

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

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

  • Windows: WASAPI (Windows API для управления звуком).

  • macOS: CoreAudio.

  • Linux: PulseAudio или ALSA.

Импорт

Форматы:

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

  • Аудио:

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

    • Ogg Vorbis.

    • MP3.

  • 3D сцены:

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

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

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

    • Collada (.daе).

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

  • 3D-модели используют Mikktspace для создания касательных при импорте, что обеспечивает совместимость с другими 3D-приложениями, такими как Blender.

Вход

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

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

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

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

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

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

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

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

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

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

  • Поддержка ввода с помощью геймпада, клавиатуры и мыши также доступна на Android.

Сеть

  • Низкоуровневая сеть 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-адреса, используя обработчики протоколов по умолчанию или пользовательские (если они зарегистрированы в системе).

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

  • Headless/server binaries. Любой бинарный файл можно использовать, не открывая окно, используя аргумент командной строки --no-window :ref:`.

Мобильные устройства

  • Внутриигровые покупки на Android и iOS.

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

  • Поддержка внедрения подвида на Android.

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

  • Поддержка ARKit на iOS из коробки.

  • Поддержка API OpenXR.

    • Включает поддержку популярных гарнитур, таких как Meta Quest и Valve Index.

  • Поддержка API OpenVR.

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

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

Узлы:

  • Кнопки.

  • Флажки, кнопки-переключатели, переключатели.

  • Ввод текста с помощью LineEdit (одна строка) и TextEdit (несколько строк).

  • Выпадающие меню с помощью PopupMenu и OptionButton.

  • Полосы прокрутки.

  • Метки.

  • RichTextLabel для текста, отформатированного с использованием BBCode.

  • Деревья (также могут использоваться для представления таблиц).

  • Подборщик цвета с RGB и HSV режимами.

  • Контейнеры (горизонтальные, вертикальные, сетка, поток, центр, отступ, аспектное соотношение, перетаскиваемый разделитель, ...).

  • Элементы управления можно вращать и масштабировать.

Размеры:

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

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

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

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

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

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

    • Создание тем на основе текущих настроек темы редактора.

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

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

  • Темы на основе текстур с использованием StyleBoxTexture.

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

Анимация

  • Прямая кинематика и обратная кинематика.

  • Твин узел для легкого создания процедурных анимация через код.

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

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

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

  • Поддержка кривых Безье в анимации.

Форматы файлов

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

    • Текстовые форматы удобочитаемы и более удобны для контроля версий.

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

  • Чтение и запись текстовых или двоичных файлов с помощью File.

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

  • Чтение и запись файлов JSON.

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

    • Может (де)сериализовать любой тип данных Godot, включая Vector2/3, Color, ...

  • Чтение файлов XML с помощью XMLParser.

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

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

Разное

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

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

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

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

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

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

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

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

См.также

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