-
Notifications
You must be signed in to change notification settings - Fork 432
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
Multiagent CPP API #584
base: master
Are you sure you want to change the base?
Multiagent CPP API #584
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it necessary to change the actions? I don't see where that is necessary?
Could you add tests that PettingZoo can work with this?
@pseudo-rnd-thoughts Roger on the PZ tests. |
@jjshoots I took your PR and worked out the issue, pybind is a mess - https://github.com/pseudo-rnd-thoughts/Arcade-Learning-Environment/tree/multiagent_api-new |
This updates the CPP interface to allow a 2 player interface. Work for the 4 player interface is left as a future PR because that's quite a bit more complicated.
AFAICT, these are the 2 player games available:
And these are games with 4 players:
I believe we should be able to just copy the games that support multiplayer from the MALE repo since they already have the modifications required. I have modified Surround to support 2 player mode for the testing script below.
The more difficult question is how the Python interface for this should look, since, I presume, the gymnasium API is not sufficient.
Testing
Expected Behaviour:
Since the gymnasium API by default makes player B's actions NOOP, setting
mode=4
means that player B won't have any actions.Conversely, setting
mode=2
would mean that player B will be controlled by the emulator, therefore moving in random directions.