google-deepmind / lab

A customisable 3D platform for agent-based AI research
Other
7.11k stars 1.37k forks source link

Is Deepmind Lab support for multi agent to play in one environment. #153

Open zhandongdong opened 5 years ago

zhandongdong commented 5 years ago

Currently I can train agent against build-in AI in DeepMind Lab, but I don't know how to put multi agents in same environment. It seems to support that according to the Paper (Human-level performance in first-person multiplayer games with population-based deep reinforcement learning ). How should I change the code to make training multi agents available? Does anyone know that?

alex-petrenko commented 5 years ago

I'd be interested in that too. Basically this means rendering multiple viewpoints in the same environment within the same engine. This is typically not what engines are designed for, but I think in principle should definitely be possible.

I don't know what DeepMind people are using though, they might just use a locally deployed multiplayer setup with different instances of DmLab per agent. Feedback from the team would be very helpful!

CodeGrinder96 commented 5 years ago

Does someone from the team have updates regarding this topic? It would indeed be very helpful

alex-petrenko commented 5 years ago

Or you can just switch to VizDoom! https://github.com/mwydmuch/ViZDoom/issues/391

timtody commented 2 years ago

Any news on this? Any comment from the devs would be super helpful!

charlesbeattie commented 2 years ago

"they might just use a locally deployed multiplayer setup with different instances of DmLab per agent." Yes this is what we are doing. We create a headless server and then get other players to connect to it with their own settings but they all share the same temp directory so when the map is loaded they all load the same map. We pass the networking settings as part of the environment settings for each agent. We then spin on connect until all agents are connected. It is complicated for us to release this as it relies on different environment wrappers we use internally. I wish we had time to make multi-agent set up easier for people.

alex-petrenko commented 2 years ago

Thanks for feedback @charlesbeattie

Another option for anyone looking: https://github.com/alex-petrenko/megaverse Multi-agent immersive environments 70 times faster than DMLab! (shameless self-promotion)

DanielRobertFranklin commented 1 year ago

@charlesbeattie thanks for this info - it would be great if you can share some sort of minimal working example - even how to programatically run Deepmind Lab as a server is not documented as far as I can see. I'm trying to figure it out based on engine/code/deepmind/dmlab_connect.c, but no luck so far - it seems you can specify a server port but not a server address (?) but even manually running a server on localhost using the 'game' binary on port 27960, I am not able to connect to it from a python client. One instance of 'game' can connect to a second without issues so I'm sure it is possible...

Any guidance would be most appreciated!