Sobre o projeto

Godot RL Agents é um pacote totalmente de código aberto que conecta o Godot Engine a algoritmos de aprendizado de máquina baseados em Python, permitindo que desenvolvedores de jogos, pesquisadores de IA e entusiastas treinem comportamentos complexos para personagens não jogáveis (NPCs) ou agentes. O repositório fornece: - Uma interface entre jogos criados no Godot Engine e algoritmos de aprendizado de máquina executados em Python. - Wrappers para quatro frameworks de RL conhecidos: StableBaselines3, Sample Factory, Ray RLLib e CleanRL. - Suporte para agentes baseados em memória usando interfaces LSTM ou baseadas em atenção. - Suporte para jogos 2D e 3D. - Um conjunto de sensores de IA para melhorar a capacidade do agente de observar o mundo do jogo. - Godot e Godot RL Agents são totalmente gratuitos e de código aberto sob a licença permissiva MIT. O projeto é detalhado em um artigo do Workshop AAAI-2022 (arXiv:2112.03636). ## Guia de Início Rápido O guia de início rápido ajuda os usuários a começar com o backend StableBaselines3, que suporta Windows, Mac e Linux. Um tutorial em vídeo também está disponível. ### Instalação e primeiro treinamento 1. Instale a biblioteca: `pip install godot-rl` 2. Baixe ambientes de exemplo do hub, por exemplo, `gdrl.env_from_hub -r edbeeching/godot_rl_JumperHard` 3. Adicione permissões de execução ao executável do jogo, se necessário. 4. Treine e visualize usando o script de exemplo do 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 ``` ### Treinamento interativo no editor Os usuários também podem treinar agentes diretamente no editor Godot sem exportar o executável do jogo. As etapas incluem baixar a versão Godot 4 .NET, importar o projeto de exemplo e executar o script de treinamento. ### Tutoriais - Tutorial de ambiente personalizado - Tutorial de ambiente simples usando novos sensores - Tutorial de minijogo de atravessar a rua - Tutorial de aprendizado por imitação ### Exportando e carregando agentes treinados em formato ONNX A versão mais recente fornece suporte experimental para modelos ONNX com Stable Baselines 3, RLLib e CleanRL. Os usuários podem exportar um modelo treinado e carregá-lo no editor Godot usando a versão mono e o plugin. ## Uso Avançado Godot RL Agents suporta quatro frameworks de treinamento de RL diferentes, cada um com guias detalhados: - StableBaselines3 (Windows, Mac, Linux) - SampleFactory (Mac, Linux) - CleanRL (Windows, Mac, Linux) - Ray RLLib (Windows, Mac, Linux) ## Contribuindo Contribuições são bem-vindas, incluindo novos ambientes, melhorias no readme e adições ao código Python. O processo envolve fazer um fork do repositório, clonar, criar um ambiente virtual e realizar uma instalação editável. Os testes podem ser executados com `make test`, e a formatação de código com `make style` e `make quality`. ## FAQ - **Por que desenvolver Godot RL Agents?** Para fornecer uma ferramenta gratuita e de código aberto para pesquisa em Deep RL e desenvolvimento de jogos, permitir comportamentos únicos de NPCs e permitir testes automatizados de jogabilidade. - **Como contribuir?** Experimente, encontre bugs, abra issues ou envie pull requests. - **Suporte para Mac?** Deve estar funcionando agora. - **Semelhança com Unity ML Agents?** Inspirado no Unity ML Agents, mas visa ser mais compacto, conciso e hackeável com menos abstração. - **Congelamento periódico durante o treinamento?** Normal com o script SB3 padrão enquanto o modelo atualiza; exportar para ONNX permite inferência mais rápida. ## Licença Godot RL Agents é licenciado sob MIT. O asset "Cartoon Plane" está sob Creative Commons Attribution. ## Citação Uma entrada BibTeX é fornecida para citar o artigo. ## Agradecimentos Agradecimentos aos autores do Godot Engine, aos desenvolvedores de Sample Factory, CleanRL, Ray e Stable Baselines, e aos criadores do Unity ML Agents Toolkit pela inspiração.