Список возможностей¶
На этой странице перечислены все функции, поддерживаемые 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).
Запускает экспортированные проекты:
Android 4.4 и выше.
iOS 10.0 и выше.
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, 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 текстур.
Использует горизонтальное затенение фона с помощью отражения (модель нити накаливания) для улучшения внешнего вида материала
Карты нормалей.
Detail mapping для albedo и карты нормалей (normal maps)
Уменьшение расстояния, при котором можно использовать альфа-смешение или сглаживание, чтобы избежать прохождения прозрачного конвейера.
Сглаживание может быть определено на уровне пикселей или отдельных объектов.
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).
Корпуса транспортных средств (предназначается для аркадной физики, не симуляций).
Суставы.
Мягкие тела.
Система Ragdolls.
Области для обнаружения тел, входящих или выходящих из них.
Обнаружение столкновений:
Встроенные формы: куб, сфера, капсула, цилиндр.
Создание треугольных форм столкновения для любой сетки из редактора.
Создание одной или нескольких выпуклых форм столкновения для любой сетки из редактора.
Шейдеры¶
2D: Пользовательские вершинные, фрагментные и световые шейдеры.
3D: Пользовательские вершинные, фрагментные, световые и шейдеры неба.
Текстовые шейдеры, использующие язык шейдеров, вдохновлённый GLSL <doc_shading_language>.
Визуальный редактор шейдеров.
Поддержка плагинов визуальных шейдеров.
Написание скриптов¶
Общее:
Объектно-ориентированный шаблон проектирования со скриптами, расширяющими узлы.
Сигналы и группы для обмена данными между скриптами.
Поддержка межъязыковых сценариев.
Многие типы данных 2D и 3D линейной алгебры, такие как векторы и трансформации.
Высокоуровневый интерпретируемый язык с необязательной статической типизацией.
Синтаксис, вдохновлённый Python.
Подсветка синтаксиса предусмотрена на GitHub.
Применение потоков для выполнения асинхронных действий или использования нескольких процессорных ядер.
Упакован в отдельный двоичный файл для уменьшения размеров файлов и зависимостей.
Использует Mono 6.x.
Полная поддержка синтаксиса и возможностей C# 7.0.
Поддерживает все платформы.
Для использования функциональных возможностей IDE рекомендуется использовать внешний редактор.
Лучше всего работает при использовании для определенных целей (например, логики для конкретных уровней), а не в качестве языка для создания целых проектов.
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.
macOS: CoreAudio.
Linux: PulseAudio или ALSA.
Импорт¶
Поддержка пользовательских плагинов импорта.
Форматы:
Изображения: Cмотреть Импортирование изображений.
Аудио:
WAV с дополнительным сжатием IMA-ADPCM.
Ogg Vorbis.
MP3.
3D сцены:
glTF 2.0 (рекомендуется).
ESCN (прямой экспорт из Blender).
FBX (экспериментально, лишь статичные меши).
Collada (.dae).
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.
Локализация¶
Окна и интеграция в ОС¶
Перемещайте, изменяйте размер, минимизируйте и увеличивайте окно, созданное проектом.
Изменение заголовка и значка окна.
Запрос внимания (на большинстве платформ приведет к миганию шкал с надписями).
Полноэкранный режим.
Не использует эксклюзивный полноэкранный режим, поэтому разрешение экрана не может быть изменено таким образом. Вместо этого используйте область просмотра с другим разрешением.
Окно без полей (полноэкранное или не полноэкранное).
Возможность держать окно всегда сверху.
Прозрачное окно с попиксельной прозрачностью.
Интеграция глобального меню в 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 режимами.
Контейнеры (горизонтальные, вертикальные, сетка, поток, центр, отступ, аспектное соотношение, перетаскиваемый разделитель, ...).
Элементы управления можно вращать и масштабировать.
Размеры:
Якоря для удержания элементов графического интерфейса в определённом углу, краю или по центру.
Контейнеры для автоматического размещения элементов графического интерфейса в соответствии с определёнными правилами.
Stack-компоновка.
Grid-компоновка.
Макеты Переносимого разделителя.
Масштабирование до нескольких разрешений с помощью режимов растяжения
2d
илиviewport
.Поддержка любого соотношения сторон с помощью якорей и соотношения растяжения
expand
.
Тематизация:
Встроенный редактор тем.
Создание тем на основе текущих настроек темы редактора.
Процедурные векторные темы, использующие StyleBoxFlat.
Поддерживает закруглённые/скошенные углы, тени, толщину и сглаживание отдельных границ.
Темы на основе текстур с использованием StyleBoxTexture.
Небольшой размер дистрибутива Godot может сделать его подходящей альтернативой таким фреймворкам, как Electron или Qt.
Анимация¶
Прямая кинематика и обратная кинематика.
Твин узел для легкого создания процедурных анимация через код.
Поддержка любого свойства анимации с настраиваемой интерполяцией.
Поддержка методов вызова в дорожках анимации.
Поддержка воспроизведения звуков в анимационных дорожках.
Поддержка кривых Безье в анимации.
Форматы файлов¶
Сцены и ресурсы могут быть сохранены в текстовом или двоичных форматах.
Текстовые форматы удобочитаемы и более удобны для контроля версий.
Двоичные форматы быстрее сохранять/загружать для больших сцен/ресурсов.
Чтение и запись текстовых или двоичных файлов с помощью File.
При необходимости могут быть сжаты или зашифрованы.
Чтение и запись файлов JSON.
Чтение и запись конфигурационных INI-файлов с помощью ConfigFile.
Может (де)сериализовать любой тип данных Godot, включая Vector2/3, Color, ...
Чтение файлов XML с помощью XMLParser.
Упаковка данных игры в файл PCK (пользовательский формат, оптимизированный для быстрого поиска), в ZIP-архив или непосредственно в исполняемый файл для распространения в виде одного файла.
Экспорт дополнительных файлов PCK, которые могут быть прочитаны движком для поддержки модов и DLC.
Разное¶
Низкоуровневый доступ к серверам, который позволяет, при необходимости, обойти накладные расходы дерева сцены.
Интерфейс командной строки для автоматизации.
Экспорт и развёртывание проектов с использованием платформ непрерывной интеграции.
Скрипты автозаполнения терминала доступны для Bash, zsh и fish.
Поддержка модулей C++, статически связанных с двоичным файлом движка.
Движок и редактор написаны на C++03.
Может быть скомпилирован с использованием GCC, Clang и MSVC. Также поддерживается MinGW.
Дружелюбно относится к упаковщикам. В большинстве случаев можно использовать системные библиотеки вместо тех, которые предоставляет Godot. Система сборки ничего не загружает. Сборки могут быть полностью воспроизводимыми.
Godot 4.0 будет написан на C++17.
Имеет разрешительную лицензию MIT.
Открытый процесс разработки с помощью вкладов приветствуется.
См.также
В репозитории предложений Godot перечислены функции, которые были запрошены сообществом и могут быть реализованы в будущих выпусках Godot.