Sobre el proyecto

Godot RL Agents es un paquete totalmente de código abierto que conecta el motor Godot con algoritmos de aprendizaje automático basados en Python, permitiendo a desarrolladores de juegos, investigadores de IA y aficionados entrenar comportamientos complejos para personajes no jugables (NPCs) o agentes. El repositorio proporciona: - Una interfaz entre juegos creados en el motor Godot y algoritmos de aprendizaje automático que se ejecutan en Python. - Envoltorios para cuatro marcos de RL conocidos: StableBaselines3, Sample Factory, Ray RLLib y CleanRL. - Soporte para agentes basados en memoria mediante interfaces LSTM o basadas en atención. - Soporte tanto para juegos 2D como 3D. - Un conjunto de sensores de IA para mejorar la capacidad del agente de observar el mundo del juego. - Godot y Godot RL Agents son completamente gratuitos y de código abierto bajo la licencia permisiva MIT. El proyecto se detalla en un artículo del taller AAAI-2022 (arXiv:2112.03636). ## Guía de inicio rápido La guía de inicio rápido pone a los usuarios en marcha con el backend StableBaselines3, que admite Windows, Mac y Linux. También hay disponible un tutorial en video. ### Instalación y primer entrenamiento 1. Instale la biblioteca: `pip install godot-rl` 2. Descargue entornos de ejemplo desde el hub, por ejemplo, `gdrl.env_from_hub -r edbeeching/godot_rl_JumperHard` 3. Agregue permisos de ejecución al ejecutable del juego si es necesario. 4. Entrene y visualice usando el script de ejemplo de Stable Baselines 3: ```bash python examples/stable_baselines3_example.py --env_path=examples/godot_rl_JumperHard/bin/JumperHard.x86_64 --experiment_name=Experiment_01 --viz ``` ### Entrenamiento interactivo en el editor Los usuarios también pueden entrenar agentes directamente en el editor de Godot sin exportar el ejecutable del juego. Los pasos incluyen descargar la versión .NET de Godot 4, importar el proyecto de ejemplo y ejecutar el script de entrenamiento. ### Tutoriales - Tutorial de entorno personalizado - Tutorial de entorno simple usando nuevos sensores - Tutorial de minijuego de cruzar la calle - Tutorial de aprendizaje por imitación ### Exportar y cargar agentes entrenados en formato ONNX La última versión proporciona soporte experimental para modelos ONNX con Stable Baselines 3, RLLib y CleanRL. Los usuarios pueden exportar un modelo entrenado y cargarlo en el editor de Godot usando la versión mono y el complemento. ## Uso avanzado Godot RL Agents admite cuatro marcos de entrenamiento de RL diferentes, cada uno con guías detalladas: - StableBaselines3 (Windows, Mac, Linux) - SampleFactory (Mac, Linux) - CleanRL (Windows, Mac, Linux) - Ray RLLib (Windows, Mac, Linux) ## Contribuciones Las contribuciones son bienvenidas, incluidos nuevos entornos, mejoras en el readme y adiciones al código base de Python. El proceso implica bifurcar el repositorio, clonarlo, crear un entorno virtual y realizar una instalación editable. Las pruebas se pueden ejecutar con `make test` y el formato del código con `make style` y `make quality`. ## Preguntas frecuentes - **¿Por qué desarrollar Godot RL Agents?** Para proporcionar una herramienta gratuita y de código abierto para la investigación de RL profundo y el desarrollo de juegos, permitir comportamientos únicos de NPC y permitir pruebas automatizadas de jugabilidad. - **¿Cómo contribuir?** Pruébelo, encuentre errores, plantee problemas o envíe solicitudes de extracción. - **¿Soporte para Mac?** Ahora debería funcionar. - **¿Similitud con Unity ML Agents?** Inspirado en Unity ML Agents, pero busca ser más compacto, conciso y modificable con menos abstracción. - **¿Congelaciones periódicas durante el entrenamiento?** Normal con el script SB3 predeterminado mientras el modelo se actualiza; exportar a ONNX permite una inferencia más rápida. ## Licencia Godot RL Agents tiene licencia MIT. El activo "Cartoon Plane" está bajo Creative Commons Attribution. ## Cita Se proporciona una entrada BibTeX para citar el artículo. ## Agradecimientos Gracias a los autores del motor Godot, a los desarrolladores de Sample Factory, CleanRL, Ray y Stable Baselines, y a los creadores de Unity ML Agents Toolkit por la inspiración.