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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.