Об этом проекте

Godot RL Agents — полностью открытый пакет, который соединяет Godot Engine и алгоритмы машинного обучения на Python, позволяя разработчикам игр, ИИ-исследователям и энтузиастам обучать сложному поведению неигровых персонажей (NPC) или агентов. Репозиторий предоставляет: - Интерфейс между играми, созданными в Godot Engine, и алгоритмами машинного обучения, работающими в Python. - Обёртки для четырёх известных RL-фреймворков: StableBaselines3, Sample Factory, Ray RLLib и CleanRL. - Поддержку агентов с памятью с использованием LSTM или интерфейсов на основе внимания. - Поддержку как 2D-, так и 3D-игр. - Набор ИИ-датчиков для расширения возможностей агента по наблюдению за игровым миром. - Godot и Godot RL Agents полностью бесплатны и открыты под разрешительной лицензией MIT. Проект подробно описан в статье семинара AAAI-2022 (arXiv:2112.03636). ## Краткое руководство Краткое руководство помогает пользователям начать работу с серверной частью StableBaselines3, которая поддерживает Windows, Mac и Linux. Также доступно видеообучение. ### Установка и первое обучение 1. Установите библиотеку: `pip install godot-rl` 2. Скачайте примеры сред из хаба, например: `gdrl.env_from_hub -r edbeeching/godot_rl_JumperHard` 3. При необходимости добавьте разрешения на запуск исполняемому файлу игры. 4. Обучите и визуализируйте с помощью примера скрипта Stable Baselines 3: python examples/stable_baselines3_example.py --env_path=examples/godot_rl_JumperHard/bin/JumperHard.x86_64 --experiment_name=Experiment_01 --viz ### Интерактивное обучение в редакторе Пользователи также могут обучать агентов прямо в редакторе Godot без экспорта исполняемого файла игры. Шаги включают скачивание версии Godot 4 .NET, импорт примера проекта и запуск обучающего скрипта. ### Руководства - Руководство по собственной среде - Руководство по простой среде с использованием новых датчиков - Руководство по мини-игре Cross the road - Руководство по имитационному обучению ### Экспорт и загрузка обученных агентов в формате ONNX Последняя версия предоставляет экспериментальную поддержку моделей ONNX для Stable Baselines 3, RLLib и CleanRL. Пользователи могут экспортировать обученную модель и загрузить её в редакторе Godot, используя mono-версию и плагин. ## Расширенное использование Godot RL Agents поддерживает четыре различных фреймворка RL-обучения, для каждого из которых есть подробные руководства: - StableBaselines3 (Windows, Mac, Linux) - SampleFactory (Mac, Linux) - CleanRL (Windows, Mac, Linux) - Ray RLLib (Windows, Mac, Linux) ## Участие в разработке Вклад приветствуется, включая новые среды, улучшения readme и дополнения к кодовой базе на Python. Процесс включает создание форка репозитория, клонирование, создание виртуальной среды и редактируемую установку. Тесты можно запустить командой `make test`, а форматирование кода — командами `make style` и `make quality`. ## FAQ - **Зачем разработан Godot RL Agents?** Чтобы предоставить бесплатный и открытый инструмент для исследований Deep RL и разработки игр, обеспечить уникальное поведение NPC и автоматическое тестирование игрового процесса. - **Как внести вклад?** Попробуйте инструмент, находите ошибки, создавайте issues или отправляйте pull requests. - **Поддержка Mac?** Теперь должна работать. - **Сходство с Unity ML Agents?** Проект вдохновлён Unity ML Agents, но стремится быть более компактным, кратким и удобным для доработки, с меньшим уровнем абстракции. - **Периодические зависания во время обучения?** Это нормально для стандартного скрипта SB3 во время обновления модели; экспорт в ONNX обеспечивает более быстрый инференс. ## Лицензия Godot RL Agents распространяется под лицензией MIT. Ресурс «Cartoon Plane» доступен по лицензии Creative Commons Attribution. ## Цитирование Для цитирования статьи предоставлена запись BibTeX. ## Благодарности Благодарим авторов Godot Engine, разработчиков Sample Factory, CleanRL, Ray и Stable Baselines, а также создателей Unity ML Agents Toolkit за вдохновение.