This is a repository for the paper Pow-Wow: A Dataset and Study on Collaborative Communication in Pommerman.
This repository contains a set of tools that we used to collect dialogue and game-play data.
We assume there are three machines. One is for a central server that runs a game engine (Server), and other two are for clients that participants use to play the game (Client A and Client B). It's also possible to only have 2 machines, where one of them works as the server and a client at the same time.
Pre-requisites:
- Python 3.6.0+
- Docker (used to run the enemy agents)
- (Server, ClientA, ClientB): Install the modified Pommerman environment
$ git clone -b multi-play-over-network https://github.com/takuma-ynd/pommerman-network.git ~/pommerman-network
$ cd ~/pommerman-network
$ pip install -U .
- (Server): Pull the docker image for enemy agents
$ docker pull takumaynd/hakozakijunctions-notest
- (Server): Run
python message_server.py
on the server.
This script delivers messages between chat consoles and synchronize them with game engine. - (Server): Run
python facilitator.py --client_ports 9000 9001
- (Client A): Forward a client port and messaging port (default: 8000) from server to client.
For example,ssh -L 9000:localhost:9000 -L 8000:localhost:8000 server.com
- (Client B): In a similar way, an example port forwarding is:
ssh -L 9001:localhost:9001 -L 8000:localhost:8000 server.com
- (Client A): Run
python client/client.py --port 9000
and openclient/htdocs/chat_9000.html
with a web browser
The web page works as a text-based chat console whose information is synchronized with game engine. - (Client B): Run
python client/client.py --port 9001
and openclient/htdocs/chat_9001.html
Once both players input username and click "Play", the game will automatically start.
Coming soon...