Skip to content
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

Added Middle-Eastern dominoes as independent game #1211

Merged
merged 8 commits into from
May 31, 2024

Conversation

Brunozml
Copy link
Contributor

Added 2v2 dominoes, also known as ME dominoes, to the repo as an independent game.

The current PR could be modified so that this is just a separate configuration of block dominoes instead of a whole new game. The game implementations vary sufficiently as to require different State classes in my opinion, but it could be done in a manner similar to tiny_bridge.

If this second course of action is suggested, I would appreciate advice on how to implement it correctly according to OpenSpiel's guidelines.

@Brunozml Brunozml marked this pull request as ready for review April 18, 2024 16:34
Copy link
Collaborator

@lanctot lanctot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great thanks!

A few quick things:

Can you add the test to the Python CMakeLists.txt ([here](Here:

games/block_dominoes_test.py
))

so that it runs on Github Actions CI?

Copy link
Collaborator

@lanctot lanctot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, can you add it to the list of games pyspiel_test.py here:

"python_block_dominoes",

(That is needed for general simulation tests and to check the list of games matches what is registered.)

@lanctot
Copy link
Collaborator

lanctot commented Apr 19, 2024

The current PR could be modified so that this is just a separate configuration of block dominoes instead of a whole new game. The game implementations vary sufficiently as to require different State classes in my opinion, but it could be done in a manner similar to tiny_bridge.

I think it's fine as a separate game since they were developed separately and also it means the complexity of each game doesn't get out of hand with all the handling of separate logic cases for each variant.

Copy link
Collaborator

@lanctot lanctot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add the game to the games list?

This one: https://github.com/google-deepmind/open_spiel/blob/master/docs/games.md

Copy link
Contributor Author

@Brunozml Brunozml left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have updated the boilerplate code and made a few changes to the references (the Middle Eastern version is slightly different from the Latin American version so I referenced the latter).

@lanctot
Copy link
Collaborator

lanctot commented Apr 23, 2024

I have updated the boilerplate code and made a few changes to the references (the Middle Eastern version is slightly different from the Latin American version so I referenced the latter).

Ok, thanks. I have now triggered the tests on Github Actions.

If this is a specific variant of the more popular game, we should probably not call it just dominoes unless it supports the most widely-known "default" version of the game. What do you think about calling it latin_america_dominoes or la_dominoes or team_dominoes? (I'm referring the the main filename, e.g. changing it to latin_america_dominoes.py and the short name to python_latin_america_dominoes)

@Brunozml
Copy link
Contributor Author

You're right, and I like team_dominoes ! I will change that as soon as the tests are done.

On a separate note, I'm now trying to work on training the best possible agent based on available OpenSpiel algorithms (or expand to other algorithms if necessary). Due to the size of the game, I'm a bit overwhelmed as to how to go about this process. Do you have any tips/resources that could be useful?

I developed tiny_dominoes locally (with two domino blocks per player instead of 7) for OpenSpiel to perhaps perform some more rapid testing, but even basic algorithms such as CFR are incredibly slow when being run locally. I'm thinking of using Google Colab's GPU service, but I haven't managed to install my local OpenSpiel version so that I can test algorithms on tiny_dominoes. Any advice helps!

Copy link
Contributor Author

@Brunozml Brunozml left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated name to team_dominoes.

@Brunozml Brunozml requested a review from lanctot April 29, 2024 07:40
@lanctot lanctot added imported This PR has been imported and awaiting internal review. Please avoid any more local changes, thanks! merged internally The code is now submitted to our internal repo and will be merged in the next github sync. labels May 27, 2024
@lanctot lanctot merged commit 74a2674 into google-deepmind:master May 31, 2024
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
imported This PR has been imported and awaiting internal review. Please avoid any more local changes, thanks! merged internally The code is now submitted to our internal repo and will be merged in the next github sync.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants