This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Это руководство содержит общее описание и ссылки на отдельные руководства по каждой теме.
Defold поддерживает автоматизацию на нескольких уровнях. Выбор интерфейса, подходящего для задачи, — один из важнейших аспектов эффективной автоматизации. Приведённая ниже таблица поможет выбрать простейший интерфейс для конкретного действия:
| Уровень | Назначение |
|---|---|
| Скрипты редактора | Пользовательские команды и рабочие процессы или интеграции редактора для ускорения тестирования и разработки, например создания уровней и ассетов |
| UI-скрипты редактора | Пользовательские визуальные инструменты, всплывающие окна, конфигураторы или интерфейсы, использующие скрипты редактора |
| HTTP API редактора | Управление открытым игровым проектом в редакторе Defold с помощью операций OpenAPI, ресурсов проекта, сборок, команд редактора, предпросмотров, настроек, вывода консоли или скриптов редактора для пользовательских операций, внешних инструментов, интеграций с IDE и контроллеров тестирования |
| Bob CLI | Сборка проекта, создание архивов данных или автономных бандлов из командной строки, отчёты, CI |
| Хуки жизненного цикла | Проверка или генерация до и после сборки или создания бандла в редакторе |
| HTTP-сервис движка | Инспекция запущенного игрового движка Defold (dmengine), сервисы разработки, профилирование, сообщения среды выполнения, API автоматизации среды выполнения, предоставляемые расширениями, запросы внешних инструментов, отправка команд запущенной отладочной сборке |
| Automation Bridge | Официальное расширение Defold, предоставляющее дополнительные эндпоинты автоматизации среды выполнения движка |
| Автоматизированные тесты | Тестирование игровой логики, сообщений, компонентов, ввода, физики и поведения движка, инспекция сцен, визуальная обратная связь, например через предпросмотр в редакторе, внедряемый ввод, состояние работающего приложения, запущенные тестовые коллекции |
| Скрипты оболочки или средства запуска задач | Генерация, форматирование, проверка и повторяемые задачи, обычные операции с файлами |
| Внешние платформенные инструменты и инструменты автоматизации браузера | Инструменты тестирования настольных приложений, тесты взаимодействия с HTML5, снимки экрана, веб-интеграции |
| ИИ-агенты для программирования и мультимодальные модели | Задачи, для которых трудно или невозможно реализовать детерминированный подход, семантический анализ сцен, макетов GUI или снимков экрана среды выполнения |
Самое важное различие — между редактором Defold и запущенной игрой. Это отдельные процессы с отдельными HTTP-серверами.
Отдавайте предпочтение детерминированному решению, когда последовательность операций уже известна, например для валидатора уровней, форматтера, задания сборки или регрессионного теста. Обычно такие решения должны иметь стабильные входные и выходные данные, тайм-ауты и коды завершения. Они хорошо подходят для автоматизированных хуков и тестов, которые можно надёжно запускать в CI. Детерминированное решение также предпочтительно для процедурного создания ресурсов проекта, например инструмент для преобразования объектов glTF в модели с заданным материалом, заполнения уровня деревьями и т. п. Такие процедуры легко создавать отдельно для каждого проекта с помощью скриптов редактора и UI. Подробнее о них читайте в руководстве.
Агент может быть полезен, когда задача требует исследования или мультимодального анализа (например, визуального): поиска подходящих ресурсов, выбора реализации, изменения нескольких файлов, интерпретации ошибок и итеративного достижения заданных критериев приёмки. При этом агент всё равно должен вызывать детерминированные интерфейсы и получать те же свидетельства, что локальный скрипт или исполнитель CI. См. руководство по использованию ИИ-агентов для программирования с Defold.
Надёжный процесс автоматизации образует замкнутый цикл:

Проверка должна предоставлять свидетельства из фактического окружения. Подходящие свидетельства включают:
Определите ожидаемый результат до внесения изменений. Также задайте тайм-аут и максимальное число попыток исправления. Автоматический процесс не должен продолжаться бесконечно, если он не может удовлетворить критериям приёмки.
Дополнительную информацию о конкретных темах автоматизации можно найти в следующих руководствах: