Список возможностей¶
На этой странице перечислены все функции, поддерживаемые 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 текстур.
- Обычная карта.
- 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(Заменить).
- Коррекция цвета с использованием одномерной рамп-функции (линейно-временной функции).
- Регулирование яркости, контрастности и насыщенности.
Фильтрация текстур:
- Ближайшая, билинейная, трилинейная или анизотропная фильтрация.
Сжатие текстур:
- 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 линейной алгебры, такие как векторы и трансформации.
- Высокоуровневый интерпретируемый язык с необязательно статической типизацией.
- Синтаксис, вдохновленный Python.
- Подсветка синтаксиса предусмотрена на GitHub.
- Использовать потоки для выполнения асинхронных действий или использования нескольких процессорных ядер.
Упакован в отдельный двоичный файл для уменьшения размеров файлов и зависимостей.
Использует Mono 6.x.
- Полная поддержка синтаксиса и возможностей C# 7.0.
Поддерживает все платформы.
Для использования функциональных возможностей IDE рекомендуется использовать внешний редактор.
- Язык визуальных сценариев на основе графов.
- Лучше всего работает при использовании для определенных целей (например, логики для конкретных уровней), а не в качестве языка для создания целых проектов.
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.
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, доступные на всех платформах.
Клиент и сервер WebSocket, доступные на всех платформах.
Поддержка UPnP для обхода требования пересылки портов при размещении сервера за NAT.
Локализация¶
Окна и интеграция в ОС¶
Перемещайте, изменяйте размер, минимизируйте и увеличивайте окно, созданное проектом.
Изменение заголовка и значка окна.
Запрос внимания (на большинстве платформ приведет к миганию шкал с надписями).
Полноэкранный режим.
- Не использует эксклюзивный полноэкранный режим, поэтому разрешение экрана не может быть изменено таким образом. Вместо этого используйте область просмотра с другим разрешением.
Окно без полей (полноэкранное или не полноэкранное).
Возможность держать окно всегда сверху.
Прозрачное окно с попиксельной прозрачностью.
Интеграция глобального меню в macOS.
Выполнять команды блокирующим или неблокирующим образом.
Открытие пути к файлам и URL-адреса, используя обработчики протоколов по умолчанию или пользовательские (если они зарегистрированы в системе).
Анализ пользовательских аргументов командной строки.
Мобильный¶
- Внутриигровые покупки на Android и iOS.
- Поддержка рекламы с использованием сторонних модулей.
Поддержка XR (AR и VR)¶
- Поддержка ARKit на iOS из коробки.
- Поддержка API OpenXR и OpenVR.
- Популярные шлемы виртуальной реальности, такие как Oculus Quest и HTC Vive, поддерживаются благодаря плагинам.
Система графического интерфейса¶
Графический интерфейс Godot построен с использованием тех же узлов управления, которые используются для создания игр в Godot. Пользовательский интерфейс редактора можно легко расширить многими способами с помощью надстроек.
Узлы:
- Кнопки.
- Флажки, кнопки-переключатели, переключатели.
- Ввод текста с помощью LineEdit (одна строка) и TextEdit (несколько строк).
- Выпадающие меню с помощью PopupMenu и OptionButton.
- Полосы прокрутки.
- Метки.
- RichTextLabel для текста, отформатированного с использованием BBCode.
- Деревья (также могут использоваться для представления таблиц).
- Контейнеры (горизонтальные, вертикальные, сетка, центр, поля, перетаскиваемый разделитель, ...).
- Элементы управления можно вращать и масштабировать.
Размеры:
Якоря для удержания элементов графического интерфейса в определенном углу, краю или по центру.
Контейнеры для автоматического размещения элементов графического интерфейса в соответствии с определенными правилами.
- Stack-компоновка.
- Grid-компоновка.
- Margin и centered-компоновка.
- Макеты Переносимого разделителя.
Масштабирование до нескольких разрешений с помощью режимов растяжения
2d
илиviewport
.Поддержка любого соотношения сторон с помощью якорей и соотношения растяжения
expand
.
*Тематизация:*
Встроенный редактор тем.
- Создание тем на основе текущих настроек темы редактора.
Процедурные векторные темы, использующие StyleBoxFlat.
- Поддержка закруглённых/скошенных углов, теней и толщины границ.
Темы на основе текстур с использованием StyleBoxTexture.
Небольшой размер дистрибутива Godot может сделать его подходящей альтернативой таким фреймворкам, как Electron или Qt.
Анимация¶
- Прямая кинематика и обратная кинематика.
- Поддержка любого свойства анимации с настраиваемой интерполяцией.
- Поддержка методов вызова в дорожках анимации.
- Поддержка воспроизведения звуков в анимационных дорожках.
- Поддержка кривых Безье в анимации.
Форматы¶
Сцены и ресурсы могут быть сохранены в текстовом или двоичных форматах.
- Текстовые форматы удобочитаемы и более удобны для контроля версий.
- Двоичные форматы быстрее сохранять/загружать для больших сцен/ресурсов.
Чтение и запись текстовых или двоичных файлов с помощью File.
- При необходимости могут быть сжаты или зашифрованы.
Чтение и запись файлов JSON.
Чтение и запись конфигурационных INI-файлов с помощью ConfigFile.
- Может (де)сериализовать любой тип данных Godot, включая Vector, Color, ...
Чтение файлов XML с помощью XMLParser.
Упаковка данных игры в файл PCK (пользовательский формат, оптимизированный для быстрого поиска), в ZIP-архив или непосредственно в исполняемый файл для распространения в виде одного файла.
Экспорт дополнительных файлов PCK, которые могут быть прочитаны движком для поддержки модов и DLC.
Разное¶
Низкоуровневый доступ к серверам, который позволяет, при необходимости, обойти накладные расходы дерева сцены.
Интерфейс командной строки для автоматизации.
- Экспорт и развёртывание проектов с использованием платформ непрерывной интеграции.
- `Сценарии завершения <https://github.com/godotengine/godot/tree/master/misc/dist/shell>>__ доступны для Bash, Zsh и Fish.
Поддержка модулей C ++, статически связанных с двоичным файлом движка.
Движок и редактор написаны на C++03.
- Может быть скомпилирован с использованием GCC, Clang и MSVC. Также поддерживается MinGW.
- Дружелюбно относится к упаковщикам. В большинстве случаев можно использовать системные библиотеки вместо тех, которые предоставляет Godot. Система сборки ничего не загружает. Сборки могут быть полностью воспроизводимыми.
- Godot 4.0 будет написан на C++17.
Имеет разрешительную лицензию MIT.
- Открытый процесс разработки с помощью вкладов приветствуется.
См.также
Дорожная карта (план разработки) <https://github.com/godotengine/godot-roadmap>`__ репозиторий документации функций, которые были согласованы и могут быть реализованы в будущих выпусках Godot.