qfwfq
New Member
Posts: 29
|
Post by qfwfq on Jun 25, 2014 18:16:46 GMT -8
[The announcements section has a "Stanford is looking for GDL game ideas " thread, but it doesn't look like it's possible to post replies there, so posting here.]
Nice map, what game is it?
Not sure whether it may be interesting for competitions, but I was thinking that I would like to play card games with my player (or are there already?), e.g. a simple two-player card game. You could have a third player named Chance that runs in between the two players and has the job of drawing the cards from the deck. Chance would have a constant goal for every state, e.g. 0, so the 'concept' is that the other two players should expect it to play randomly because of that (I would expect most players to already correctly model that, though). Of course, if actually using such a game in a competition you would want to really use the Random player for the Chance role to ensure it doesn't favor any of the two players (even though it has no incentive doing so), and because it's not an interesting role to play. For games where the players start with some cards in hand, the game can have a startup phase where Chance deals the cards.
|
|
|
Post by bertrand on Jun 25, 2014 21:23:41 GMT -8
Hello, [Sorry about that, I created a discussion thread for this news, but also decided to keep your post in its own thread.] The game itself is Bonaparte, a simplification of the game Diplomacy. Regarding the card games, you are entirely right, currently, GDL is totally able to simulate randomness via this additional player (called Chance in your post, but also Nature in some articles). Personally, I am a bit unsure about most card games that we, human, actually play. Poker, for example, has a really high randomness that I don't think current general game players can overcome. However, something I strongly support is using this Chance player to randomize the beginning of a game, but after that, the game reverts back to the "normal" state where everything is deterministic. But perhaps I don't trust the current players enough. I mean, it cost nothing to test it!
|
|
|
Post by Steve Draper on Jun 27, 2014 4:21:53 GMT -8
There are a couple of issues with using a Random player as the chance generator in a GDL 1 game:
1) Without indication in the GDL via some sort of extension, that a role is Random it is not possible for an automated game manager (Tiltyard say) to schedule such a game (since it can assign a non-random player to the random role)
2) Without indication in the GDL other players have no way to know that the role is intended to be played randomly and will apply whatever opponent modelling they may use to the random role.
Both of these are simply addressed with a small decoration to the role definitions in GDL (say by adding a randomRole keyword that can be used wherever role can). However, without this, it remains problematic, so IMO we'd need a GDL 1.1, which would be a smaller step than GDL 2.0 to add this capability.
|
|
|
Post by bertrand on Jun 27, 2014 13:44:05 GMT -8
There are a couple of issues with using a Random player as the chance generator in a GDL 1 game: 1) Without indication in the GDL via some sort of extension, that a role is Random it is not possible for an automated game manager (Tiltyard say) to schedule such a game (since it can assign a non-random player to the random role) 2) Without indication in the GDL other players have no way to know that the role is intended to be played randomly and will apply whatever opponent modelling they may use to the random role. Both of these are simply addressed with a small decoration to the role definitions in GDL (say by adding a randomRole keyword that can be used wherever role can). However, without this, it remains problematic, so IMO we'd need a GDL 1.1, which would be a smaller step than GDL 2.0 to add this capability. I entirely agree with both points. I was thinking about the research going here, but not about the current state of GDL.
|
|
qfwfq
New Member
Posts: 29
|
Post by qfwfq on Jun 27, 2014 13:51:46 GMT -8
Yes, a randomRole keyword should work. Players could declare themselves as "GDL 1.0" if they don't want to participate in those games.
Thinking more about it, though, one problem with randomness is that luck may play too big of a role. Ability is still important in most games and would be visible over many repetitions of the game, but GGP players are pretty slow, so for example in a direct elimination competition you may not want to have to repeat the same game 10 times between the same two players before being able to declare a winner.
|
|
|
Post by Steve Draper on Jun 27, 2014 15:43:46 GMT -8
Yes, a randomRole keyword should work. Players could declare themselves as "GDL 1.0" if they don't want to participate in those games. Thinking more about it, though, one problem with randomness is that luck may play too big of a role. Ability is still important in most games and would be visible over many repetitions of the game, but GGP players are pretty slow, so for example in a direct elimination competition you may not want to have to repeat the same game 10 times between the same two players before being able to declare a winner. You can get around this with meta-game techniques like duplicate bridge (teams of two pairs compete, and one pair plays each hand the opposite way, so all card luck is eliminated). Similar techniques should be possible in most pre-randomized games (migth rely on either a guarantee of no memory [so that the same two players can play the game both ways around] or teams of players though.
|
|
levb
New Member
Posts: 18
|
Post by levb on Jun 27, 2014 21:08:06 GMT -8
This sounds like going halfway to GDL-ii. I suggest instead to write a game with deterministic rules but random initialization. This initialization can be added to the rules. The only examples of such games I can think of are solitaire card games. I think in some solitaire games all cards are opened at the beginning.
|
|
|
Post by womendezuguo on Jul 18, 2014 21:03:34 GMT -8
Why not simply hardcode the sequences of cards drawn at each round into GDL? Since it is assumed that players don't know the rules before the game starts, I suppose this is as good as random initialisation or GDL-II.
EDIT: I think I made a mistake. It is not the same as GDL-II, since if the cards drawn in future rounds are coded in the GDL, then the players can know about future states of the game, but in real-life card games the players have no way of knowing this other than cheating.
|
|
|
Post by womendezuguo on Jul 18, 2014 21:12:34 GMT -8
There are a couple of issues with using a Random player as the chance generator in a GDL 1 game: 1) Without indication in the GDL via some sort of extension, that a role is Random it is not possible for an automated game manager (Tiltyard say) to schedule such a game (since it can assign a non-random player to the random role) 2) Without indication in the GDL other players have no way to know that the role is intended to be played randomly and will apply whatever opponent modelling they may use to the random role. Both of these are simply addressed with a small decoration to the role definitions in GDL (say by adding a randomRole keyword that can be used wherever role can). However, without this, it remains problematic, so IMO we'd need a GDL 1.1, which would be a smaller step than GDL 2.0 to add this capability. I think if we set in the GDL that the only possible goal value for Random is a fixed value, say 0, then any opponent modelling process would in effect just behave like the actions are chosen randomly. Since normally opponent modelling uses the outcome or expected outcome of the opponent to model its behaviour, so there is no way to differentiate between actions using goal values.
|
|
wat
New Member
Posts: 32
|
Post by wat on Jul 30, 2014 17:26:01 GMT -8
Poker, for example, has a really high randomness that I don't think current general game players can overcome. Randomness can be readily addressed with MCTS. Actually, randomness helps MCTS. You can simply do a greedy depth charge, always using the highest score, without concerns about exploration/exploitation balance. And it will still work. As was done in Backgammon, long before MCTS was adapted for deterministic games like Go.
|
|
wat
New Member
Posts: 32
|
Post by wat on Jul 30, 2014 17:30:47 GMT -8
This sounds like going halfway to GDL-ii. I suggest instead to write a game with deterministic rules but random initialization. This initialization can be added to the rules. The only examples of such games I can think of are solitaire card games. I think in some solitaire games all cards are opened at the beginning. Random initialization can also be simulated as a simultaneous sub-game in the beginning of the game. Do a Rock-Paper-Scissor style game in the beginning, and use the result to initialize the rest.
|
|
wat
New Member
Posts: 32
|
Post by wat on Jul 30, 2014 17:36:48 GMT -8
Using a random player makes complete information games possible. But they are only a subset of all imperfect information games. Incomplete information games still need the GDL-II seems rule. i.e. card games where each player holds cards in their hands, not showing them to others.
Backgammon is possible. Poker is not.
|
|