open_spiel icon indicating copy to clipboard operation
open_spiel copied to clipboard

OpenSpiel Implementation of Diplomacy

Open maayanorner opened this issue 3 years ago • 3 comments

Hi,

I was wondering - is there a plan to include Diplomacy in OpenSpiel? Anthony et al. wrote a (beautiful) paper about SBR which cites OpenSpiel - and I was not sure if it means that it was implemented using the framework.

The thing is, I can probably "easily" (nothing is easy but kind of) extend MILA's game engine (https://github.com/diplomacy/diplomacy) or maybe dipcc (SearchBot's) for OpenSpiel (as I partially implemented state encoding, etc. from MILA's engine based on MILA's encoding, to infer using available models) but:

  1. It's Python (at least MILA's), not CPP - therefore slower.
  2. I am not sure about the copyright (it's possible that they don't allow it anyway).
  3. It has "heavy" dependencies currently.

So I guess my main question would be - does it worth thinking about/contracting the creators of the game engine, or are you planning to integrate your version? Are there additional copyright issues that you are aware of regarding that game?

Thanks!

maayanorner avatar Jul 04 '22 16:07 maayanorner

Hi @maayanorner,

There is no plan to include Diplomacy in OpenSpiel.

There are currently some technical blockers, e.g. the core OpenSpiel interface uses flat integer actions. We would have to add support for combinatorial (vector-typed) actions. This is doable and we have been intending to do it for some time, but haven't yet.

For research on Diplomacy, given its complexity, it would seem that a custom code base might make more sense (since you'll need custom algorithms anyway). I'm not sure how much there is to be gained by fitting it to OpenSpiel's purposely generic API? And... is dipcc not a complete C++ version already?

If there was enough interest and the technical hurdles were solvable, then it would be something we would have to discuss with our legal team as the game is protected by copyrights. (see with https://github.com/deepmind/open_spiel/pull/635 and https://github.com/deepmind/open_spiel/pull/674 for similar cases)

lanctot avatar Jul 05 '22 09:07 lanctot

Hi @maayanorner,

There is no plan to include Diplomacy in OpenSpiel.

There are currently some technical blockers, e.g. the core OpenSpiel interface uses flat integer actions. We would have to add support for combinatorial (vector-typed) actions. This is doable and we have been intending to do it for some time, but haven't yet.

For research on Diplomacy, given its complexity, it would seem that a custom code base might make more sense (since you'll need custom algorithms anyway). I'm not sure how much there is to be gained by fitting it to OpenSpiel's purposely generic API? And... is dipcc not a complete C++ version already?

If there was enough interest and the technical hurdles were solvable, then it would be something we would have to discuss with our legal team as the game is protected by copyrights. (see with #635 and #674 for similar cases)

You are right dipcc is CPP already, I have no extensive experience using it yet but it is worth a check.

Personally, I thought that even if the existing algorithms don't work, when there is a standard API, the comparison is much easier. But it might be impractical.

Anyway, I truly appreciate your response and will stay tuned to see if there is a way I can assist.

maayanorner avatar Jul 05 '22 11:07 maayanorner

No problem, makes sense. See also: https://github.com/deepmind/open_spiel/issues/770.

lanctot avatar Jul 06 '22 20:07 lanctot