Coder Social home page Coder Social logo

boyquotes / godot_rl_agents Goto Github PK

View Code? Open in Web Editor NEW

This project forked from edbeeching/godot_rl_agents

0.0 0.0 0.0 259.14 MB

An Open Source package that allows video game creators, AI researchers and hobbyists the opportunity to learn complex behaviors for their Non Player Characters or agents

License: MIT License

Shell 0.57% Python 98.16% Makefile 1.27%

godot_rl_agents's Introduction

Godot RL Agents

Feel free to join our Discord for help and discussions about Godot RL Agents.

Godot RL Agents is a fully Open Source package that allows video game creators, AI researchers and hobbyists the opportunity to learn complex behaviors for their Non Player Characters or agents. This repository provides:

  • An interface between games created in the Godot Engine and Machine Learning algorithms running in Python
  • Wrappers for four well known rl frameworks: StableBaselines3, Sample Factory, Ray RLLib and CleanRL.
  • Support for memory-based agents, with LSTM or attention based interfaces
  • Support for 2D and 3D games
  • A suite of AI sensors to augment your agent's capacity to observe the game world
  • Godot and Godot RL Agents are completely free and open source under the very permissive MIT license. No strings attached, no royalties, nothing.

You can find out more about Godot RL agents in our AAAI-2022 Workshop paper.

godot_rl_agents_trailer_v01_20211008.mp4

Quickstart Guide

This quickstart guide will get you up and running using the Godot RL Agents library with the StableBaselines3 backend, as this supports Windows, Mac and Linux. We suggest starting here and then trying out our Advanced tutorials when learning more complex agent behaviors.

Installation and first training

  1. Install the Godot RL Agents library: (if you are new to python, pip and conda, read this guide)
pip install godot-rl
  1. Download one, or more of examples, such as BallChase, JumperHard, FlyBy.
gdrl.env_from_hub -r edbeeching/godot_rl_JumperHard 
  1. Train and visualize
gdrl --env=gdrl --env_path=examples/godot_rl_JumperHard/bin/JumperHard.x86_64 --viz

In editor interactive training

You can also train an agent in the Godot editor, without the need to export the game executable.

  1. Download the Godot 4 Game Engine from https://godotengine.org/
  2. Open the engine and import the JumperHard example in examples/godot_rl_JumperHard
  3. Start in editor training with: gdrl

Creating a custom environment

There is a dedicated tutorial on creating custom environments here. We recommend following this tutorial before trying to create your own environment.

If you face any issues getting started, please reach out on our discord or raise a github issue.

Advanced usage

README_FPS.mp4

Please ensure you have successfully completed the quickstart guide before following this section.

Godot RL Agents supports 4 different RL training frameworks, the links below detail a more in depth guide of how to use a particular backend:

FAQ

Why have we developed Godot RL Agents?

The objectives of the framework are to:

  • Provide a free and open source tool for Deep RL research and game development.
  • Enable game creators to imbue their non-player characters with unique behaviors.
  • Allow for automated gameplay testing through interaction with an RL agent.

How can I contribute to Godot RL Agents?

Please try it out, find bugs and either raise an issue or if you fix them yourself, submit a pull request.

When will you be providing Mac support?

This should now be working, let us know if you have any issues.

Can you help with my game project?

If the README and docs here not provide enough information, reach out to us on github and we may be able to provide some advice.

How similar is this tool to Unity ML agents?

We are inspired by the the Unity ML agents toolkit and aims to be a more compact, concise ad hackable codebase, with little abstraction.

Licence

Godot RL Agents is MIT licensed. See the LICENSE file for details.

"Cartoon Plane" (https://skfb.ly/UOLT) by antonmoek is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).

Citing Godot RL Agents

@article{beeching2021godotrlagents,
  author={Beeching, Edward and Dibangoye, Jilles and
    Simonin, Olivier and Wolf, Christian},
title = {Godot Reinforcement Learning Agents},
journal = {{arXiv preprint arXiv:2112.03636.},
year = {2021},
}

Acknowledgments

We thank the authors of the Godot Engine for providing such a powerful and flexible game engine for AI agent development. We thank the developers at Sample Factory, Clean RL, Ray and Stable Baselines for creating easy to use and powerful RL training frameworks. We thank the creators of the Unity ML Agents Toolkit, which inspired us to create this work.

godot_rl_agents's People

Contributors

edbeeching avatar visuallization avatar aleryberry avatar yaelatletl avatar ryash072007 avatar austeretriceratops avatar mischkadb avatar r0nk avatar yizhangliu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.