Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] add SKRL example #138

Open
edbeeching opened this issue Jul 25, 2023 · 4 comments
Open

[feature] add SKRL example #138

edbeeching opened this issue Jul 25, 2023 · 4 comments
Labels
on hold To be considered for the future, not currently worked on.

Comments

@edbeeching
Copy link
Owner

The skrl lib looks interesting, particularly as they just added multi-agent support. It would be good to add support and an example.

https://skrl.readthedocs.io/en/latest/

@Ivan-267
Copy link
Collaborator

Ivan-267 commented Jul 25, 2023

Sounds interesting, especially the multi-agent support. Might need some plugin and env modifications to differentiate the different agent types, and if making an example using MAPPO, some suitable/cooperative task idea.

@Ivan-267
Copy link
Collaborator

Ivan-267 commented Jul 26, 2023

pycharm64_X5uc3IamGA.mp4

Sharing a small test case from yesterday based on the examples from SKRL.
It's PPO with num_agents set to 1 and only one observation space used, not a proper/full implementation by any means nor a test of the learning performance, just a first attempt to get the framework to start training with Godot-RL environment.

For a full implementation with multi-agents with separate policies, observations, etc., more changes are needed.

@edbeeching
Copy link
Owner Author

Cool. It seems their MARL support is quite limited at the moment. Perhaps we can focus on other things until they have better support?

@Ivan-267
Copy link
Collaborator

Sure, we could work on a potential more complete implementation at any point. Just asking since I'm not that familiar with any MARL implementation yet and not sure what to expect, are there some useful features that are not supported yet?

Regarding the support on our side, I was only just starting to consider what might be needed.
Assigning a name for each AIController and then in sync.gd having a dictionary with all unique names as keys and all agent instances with that name as values is about as far as I got on the Godot side, but whether that's a good approach and the other details could be considered more when/if we start working on a more proper implementation.

@Ivan-267 Ivan-267 added the on hold To be considered for the future, not currently worked on. label Nov 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
on hold To be considered for the future, not currently worked on.
Projects
None yet
Development

No branches or pull requests

2 participants