Open lanctot opened 2 years ago
Could be good additions
We already have Othello (Reversi), but I will add the others, thanks!
What are your thoughts on adding 2048? The original repo https://github.com/gabrielecirulli/2048 is under an MIT license, so I hope there shouldn't be any problems regarding copyright..
What are your thoughts on adding 2048? The original repo https://github.com/gabrielecirulli/2048 is under an MIT license, so I hope there shouldn't be any problems regarding copyright..
Great idea, I'll add it to the list!
Is anyone working on Cribbage? I'd be willing to take on that one
Is anyone working on Cribbage? I'd be willing to take on that one
I would really, really love to see Cribbage in the code base! I had some interactions with a redditor who said they would look into it, but have not heard from them in a while. I'll touch base with them and point them to this conversation and let you know soon.
@dipplestix Ok heard back from them: they got replied saying they had been busy and was thinking of getting back to it in the fall, but it shouldn't stop someone else. If you finish it before the summer ends then maybe they could even help (they are thinking of doing research in the game). So, it sounds like you should go for it :) If you'd like to contact them, contact me by email and can give their reddit contact.
Hi, I would like to work on the Pursuit-Evasion game played by 2 competitors say for instance: a company that employs an outside consultant and is receptive to recommendations and a company that makes decisions in-house as a canonical model deploying game theory. I will use the multi-armed bandit algorithm in which the company that employs an outside consultant will receive pricing recommendations based on historical moves to facilitate its decision making whereas the company that primarily takes decisions in-house can decide on the probability distribution for the choices available to it and the corresponding value attached to such a distribution.
Hi @PrashantPD, ok I'm not seeing the actual game itself. Is there an example you can point to in e.g. a game theory text or Wikipedia? We're always welcoming of new games. It always helps if they are well-known in the MARL or game theory literature, but they are welcome either way (for now though, I'm curious about the structure of the game in extensive-game format). However, maybe let's continue this on the other thread you opened. I'll follow-up there.
Hi @PrashantPD, ok I'm not seeing the actual game itself. Is there an example you can point to in e.g. a game theory text or Wikipedia? We're always welcoming of new games. It always helps if they are well-known in the MARL or game theory literature, but they are welcome either way (for now though, I'm curious about the structure of the game in extensive-game format). However, maybe let's continue this on the other thread you opened. I'll follow-up there.
Hi @lanctot, Absolutely - thanks see you there - will be on it and detail the structure of the game and point to the relevant literature. You should see it first thing tomorrow in the morning as you log in. The multi-armed bandit comprising of a player and the environment which can comprise of the competition struck a cord in a pursuit-evasion context where the competitive game ends in an equilibrium.
Hi @lanctot I am working on the game for the other thread today - will message tomorrow on both the formats.
Hi @lanctot I am working on the game for the other thread today - will message tomorrow on both the formats.
Thanks for letting me know, but there is no rush. And I may not replay for a day or two depending on how busy I am.
Hi Marc,
on Gravon, Mahjong already is implemented. I could try to port the code to C++/OpenSpiel, if nobody else volunteers.
Best regards, Thorsten
On 12/15/22 16:02, lanctot wrote:
Hi all,
I'm starting a thread to collect requests for new games and plans for upcoming games. We will keep this updated as new games get released, and as requests come in (please feel free to comment on this thread to add a request).
Games we would like to add to OpenSpiel:
- Capture-the-Flag on a gridworld (or other team adversarial games)
- Chinese Checkers https://en.wikipedia.org/wiki/Chinese_checkers
- Chinese Chess https://en.wikipedia.org/wiki/Xiangqi (see #802 https://github.com/deepmind/open_spiel/issues/802)
- Chinese Dark Chess https://en.wikipedia.org/wiki/Banqi
- Cribbage https://en.wikipedia.org/wiki/Cribbage
- Dominoes
- EinStein würfelt nicht! https://en.wikipedia.org/wiki/EinStein_w%C3%BCrfelt_nicht!
- Latent Tic-Tac-Toe (see description in this paper http://mlanctot.info/files/papers/nips09mccfr.pdf)
- Mahjong https://en.wikipedia.org/wiki/Mahjong
- Nine Men's Morris https://en.wikipedia.org/wiki/Nine_men%27s_morris
- Pursuit-evasion game played on a graph or grid
- Shogi https://en.wikipedia.org/wiki/Shogi
- Yacht https://en.wikipedia.org/wiki/Yacht_(dice_game)
Implementing one of these games is a great way to get involved with contributing to OpenSpiel. If you would like to volunteer to implement one, please contact us and let us know as we might already be working on them.
Games that have been added since posting this thread:
- 2048 https://en.wikipedia.org/wiki/2048_(video_game) (Thanks @Jazeem https://github.com/Jazeem. PR now merged: #894 https://github.com/deepmind/open_spiel/pull/894)
- Checkers (thanks @Jazeem https://github.com/Jazeem! PR now merged: #861 https://github.com/deepmind/open_spiel/pull/861)
- Euchre (thanks @jhtschultz https://github.com/jhtschultz! Added in a3dbb1b https://github.com/deepmind/open_spiel/commit/a3dbb1b7483b3b02077a92bb3a84389907afb79b)
- Mancala (Kalah) (thanks @Jazeem https://github.com/Jazeem! see
841 https://github.com/deepmind/open_spiel/pull/841)
- Nim https://en.wikipedia.org/wiki/Nim (thanks @acforvs https://github.com/acforvs! PR merged: #868 https://github.com/deepmind/open_spiel/pull/868)
- Phantom Go (thanks @Syor https://github.com/Syor! PR now merged:
867 https://github.com/deepmind/open_spiel/pull/867)
- Dou dizhu https://en.wikipedia.org/wiki/Dou_dizhu: (Thanks @rezunli96 https://github.com/rezunli96! PR merged: #969 https://github.com/deepmind/open_spiel/pull/969)
- Mensch-Ärgere-Dich-Nicht https://en.wikipedia.org/wiki/Mensch_%C3%A4rgere_Dich_nicht (Thanks @thorsten-j https://github.com/thorsten-j ! PR merged:
915 https://github.com/deepmind/open_spiel/pull/915)
With these additions, OpenSpiel now has 97 games. Can we make up to 100 in 2022?
— Reply to this email directly, view it on GitHub https://github.com/deepmind/open_spiel/issues/843, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2WECR3ZQERJW4DW7CEI5ETWNMXIHANCNFSM5WVLIH4Q. You are receiving this because you were mentioned.Message ID: @.***>
Hi Marc, on Gravon, Mahjong already is implemented. I could try to port the code to C++/OpenSpiel, if nobody else volunteers. Best regards, Thorsten
Cool!
@rezunli96 suggested that we was going to look into it after hus last PR which we just merged a few days ago; Zun, have you already started?
@thorsten-j: do you know if there would be any license incompatibilities?
Hi @thorsten-j do you know which version of Mahjong Gravon has? The one I am currently looking into is Riichi Mahjong.
Hi @rezunli96 , Gravon implements Hong Kong Mahjong. Hi @lanctot , afaik there is no license needed for Mahjong.
@thorsten-j Sounds great! Then I think we do not really have a conflict here and we can work on our own versions of Majong separately. Maybe there is a unified implementation that can include all versions. But I guess this is not the primary concern for now?
Hi @lanctot , afaik there is no license needed for Mahjong.
Right, that should be fine .. what I meant is, is the code on Gravon have a license like e.g. GLPv3? (Oh, maybe the Gravon code is not open sourced? Is it your own personal implementation?)
Gravon's code is not open source but it's written by myself.
@dipplestix I am thinking of implementing Cribbage (as a slow side project). Just wondering if you plan to finish/contribute yours?
Gravon's code is not open source but it's written by myself.
Hong Kong Mahjong would be a great addition. And it seems like @rezunli96 is working on a different game anyway. Does it have any "interruptions" as mentioned in https://github.com/deepmind/open_spiel/issues/979 ? If so, I'm curious: how did you deal with them in a discrete turn-based API?
Does it have any "interruptions" as mentioned in #979 ? If so, I'm curious: how did you deal with them in a discrete turn-based API?
On Gravon, after a player discarded a tile, all other players have to either call that tile or pass. This way Gravon makes sure that no one misses a tile. For implementation that means that there is no interrupt but the game still is completely turn based.
Are there any war gamers, especially hex-grid style with dice or some other randomization factor such as card draw/play, to be found here? I reviewed the list of games and didn't notice any similar to the types I mention. I am just getting started in the AI/ML realm for a variety of reasons (after decades of consulting the SQL Server database applications realm) and have set myself a Bucket List item to build an AI opponent for the Advanced Squad Leader Starter Kit game. Having a (semi-)similar game already done in Open Spiel would obviously GREATLY benefit my pursuit! :-D
It is amazing that this project exists, and even more amazing is the number of games and algorithms that have been implemented in just 3 years!! I truly look forward to the time when I can understand and dig into the how's and why's of all that Open Spiel has to offer!
Hi @TheSQLGuru
(after decades of consulting the SQL Server database applications realm)
Username checks out! :-p
OpenSpiel does not have any games in this category. It'd be a great addition to the library, but they are fairly complex to implement and sometimes it can be hard to include due to copyrights if it's a commercial game. But if there are any smaller ones that are non-commercial that can be used as an example, it'd be great to have in the repos. I think there are some good ideas of games that could fit this, and happy to brainstorm here or in a separate thread.
Hello @lanctot - thanks for the quick reply! HAH, funny that you checked me out. I don't have much out there on the intertubz because I don't blog, stopped using twitter years ago, have had some major health issues since 2017 that drastically cut both my work volume and my travel to present at conferences around the world. Actually, I don't even have a website for my business, nor even a resume/CV, and I have been consulting since the mid-90's and started my company in 1999. But I do have several C-level references that will state that I saved/made their company. :-D
On to business: Let's start another thread somewhere/how. I will leave that to you - just let me know where to show up. I will collect some basic information from you (and from some of this project's files), especially concerning the various types of information, metadata, states and transitions, mechanics/decisions/rules/etc. and the potential ease/difficulty with which each element may be translated to Open Spiel. I will hit up various gaming forums and ask for inputs about the simplest games of the genre. I will review them and pick a few, and then distill enough info from them that you and I can have an informed decision about which might be the easiest/best to pursue first.
I'd like to extend/add the most popular version of dominoes in Latin America, played with 4 players instead of two. There's already a great library under MIT license (see Dominoes library). I'd be interested in adapting it for OpenSpiel in Python and potentially also in C++.
Please let me know if that's okay, and point me to some useful resources if you can :) I've been trying to follow the guide in the docs but I haven't fade much headwind yet, I guess its normal since I'm not used to working on projects of this size.
I'd like to extend/add the most popular version of dominoes in Latin America, played with 4 players instead of two. There's already a great library under MIT license (see Dominoes library). I'd be interested in adapting it for OpenSpiel in Python and potentially also in C++.
Please let me know if that's okay, and point me to some useful resources if you can :) I've been trying to follow the guide in the docs but I haven't fade much headwind yet, I guess its normal since I'm not used to working on projects of this size.
That would be great! I assume you mean as a python game which would wrap that Dominoes library.
I know the project has gotten quite big and can be intimidating, but we are happy to help you with this. Probably the best place to start is to follow-up on the other thread you started (https://github.com/google-deepmind/open_spiel/issues/1204) where I asked a few questions that need to be answered and also gave general advice.
Since most of the games are in C++, how to add new Python game is not overly well-documented, and we will add extra bits of missing documentation as we go along.
Hi @lanctot , I'm trying to take a stab at implementing Spades.
Since Bridge is somewhat similar, I'm using its implementation as a starting point, but may periodically have some questions/need some help. The game rules and such are easy enough to change, but I'm still pretty new to RL related stuff.
Is it ok to make a help thread for making Spades here?
I would absolutely love to see Spades in OpenSpiel! Yes, by all means feel free to start a thread for Spades. If you are new to OpenSpiel, the best place to start would be the video tutorial to get familiar with the API: https://youtu.be/8NCPqtPwlFQ?si=GiFg3x6P9Lm6McGX
Hello, I want to implement the Chinese Dark Chess game. Have you already working on this game? Is this game type Non-deterministic and with Imperfect information? Can I refer to Kriegspiel for implementation? If I can implement this game, I am willing to contribute the source code and look forward to your answer.
Hi @jin404861445lan,
We are not working on this game. It is easier to think of this game as a perfect information game with chance events (where every time a piece is revealed, a chance event determines which one it is). This would make it easier for search methods like MCTS and expectiminimax to play this games. Something like backgammon should be a good starting point. Kriegspiel probably uses the underlying chess implementation which you would not want to do -- you'd want to write it from scratch.
Hi all,
I'm starting a thread to collect requests for new games and plans for upcoming games. We will keep this updated as new games get released, and as requests come in (please feel free to comment on this thread to add a request).
Games we would like to add to OpenSpiel:
Implementing one of these games is a great way to get involved with contributing to OpenSpiel. If you would like to volunteer to implement one, please contact us and let us know as we might already be working on them.
Games that have been added since posting this thread:
With these additions, OpenSpiel now has 95 games.