Manuals
Manuals




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

Это руководство содержит общее описание и ссылки на отдельные руководства по каждой теме.

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.

Цикл автоматизации

Надёжный процесс автоматизации образует замкнутый цикл:

  1. Инспекция — чтение файлов проекта, актуального описания интерфейса и соответствующей документации.
  2. Изменение — использование транзакций редактора, скриптов редактора либо файловых инструментов и инструментов оболочки.
  3. Проверка — сборка, запуск целевых тестов и сбор журналов, отчётов, состояний или изображений.
  4. Оценка — сравнение свидетельств с критериями приёмки, после чего процесс завершается или повторяется.

Цикл автоматизации: инспекция, изменение, проверка и оценка

Проверка должна предоставлять свидетельства из фактического окружения. Подходящие свидетельства включают:

  • успешный результат сборки;
  • явно завершённый набор тестов;
  • ожидаемое состояние запущенной игры;
  • сгенерированный бандл или отчёт о сборке;
  • детерминированное сравнение изображений;
  • снимок экрана, удовлетворяющий заданным визуальным критериям.

Определите ожидаемый результат до внесения изменений. Также задайте тайм-аут и максимальное число попыток исправления. Автоматический процесс не должен продолжаться бесконечно, если он не может удовлетворить критериям приёмки.

Дальнейшие шаги

Дополнительную информацию о конкретных темах автоматизации можно найти в следующих руководствах: