01-27-2021, 02:36 AM
What does "Generate Random Game" do?
01-27-2021, 02:36 AM
What does "Generate Random Game" do?
Hi,
It literally generates a random game, i.e. it assembles random collections of ludemes according to the grammar until it finds a combination that makes a "playable" game. A game is deemed playable if it: 1. Conforms to the grammar. 2. Compiles without error. 3. Creates its Game object without error. 4. Allows each player to move at least once. This doesn't mean that the game is any good! We've found that about 1 in 10,000 random games deemed "playable" are actually what humans would deem to be a proper game. Of those, only a very small number (one in a million?) would actually be interesting games worth playing. So random game generation is mostly for testing and debugging purposes; there's nothing like a few thousand randomly assembled rule sets to test your code! To generate interesting games, it's best to start with existing games and evolve them. Regards, Cameron
01-27-2021, 11:18 AM
01-27-2021, 01:59 PM
It just loads the current game in the app. You can copy and paste the description from the Ludeme panel when it does.
Note that it can take a while to find a "playable" game.
Hi Cameron,
is there a way to abort the game generation, other than killing the app? It seems that the app freezes while it is working. By the way, I didn't find it in the Ludeme panel, but in the console output (I run Ludii from the command line) along with some Java exceptions: Code: Terminal constant 'false' is lowercase. Then it stopped, after many more such lines, but with no game it considered playable. Best, Manuel
01-28-2021, 03:18 PM
Hi,
No, you have to kill the app. We can move the process to a background thread that prints the game when ready, but ultimately we'll have game generation dialogs that give more control over the generation process. Note that it can take a long time to find a "playable" randomly generated game, depending on how lucky you are. In the meantime I'll move "Generate Random Game" to the Developer menu until it's ready for public consumption. Regards, Cameron
01-28-2021, 03:50 PM
(This post was last modified: 01-28-2021, 03:57 PM by slimy_asparagus.)
(01-28-2021, 03:18 PM)cambolbro Wrote: .....ultimately we'll have game generation dialogs that give more control over the generation process. I am wondering what sort of control you are thinking of here. Two obvious things that occur to me are: 1. Starting from a particular game. 2. Allowing certain parts of a game to be kept constant. (01-27-2021, 07:23 AM)cambolbro Wrote: We've found that about 1 in 10,000 random games deemed "playable" are actually what humans would deem to be a proper game.I am curious how you arrived at that figure. It sounds like the most boring way of playing games! And I wonder if that filter is not too lax. Maybe if you added the following criteria: * A game that goes on for at least X moves or of the trials that end in less than X moves, each player wins at least Y% of the time. I think that would filter out a lot of degenerate games.
Hi,
Quote:I am wondering what sort of control you are thinking of here. Exact format to be decided, but one approach will be through a "reconstruction syntax" that lets the user annotate degrees of freedom directly in the .lud descriptions. This will be the primary mechanism for generating the reconstructions that will be a major part of the DLP. Quote:I am curious how you arrived at that figure. By running the random game generator several times and observing how often it threw up a "playable" game. Quote:Maybe if you added the following criteria: We've already implemented the equivalents of those metrics (see the "Game Evaluation" dialog) but they're not very useful for random game generation. You'd be waiting a looong time between rule sets that satisfy this test. Regards, Cameron |
|