|
Keldon Jones
United States Fort Collins Colorado
|
Kosmos has granted permission to distribute the Blue Moon card images, so I've released the source code of my AI project: http://keldon.net/bluemoon/Currently it's only available as source code, so you'll need to compile it yourself. I realize most people will want a Windows executable, and another BGGer is in the process of making that. But in the meantime, this will be of interest to Linux users or people with a C compiler and some skill with it. If you try it out, I'm very interested in any bugs you find, especially rules implementation errors. EDIT: I've built a Frankenstein-ish Windows binary and put it on the web page. It seems to work for me. Let me know if it doesn't, and if and when a better Windows package is made, it'll replace mine.
Last edited on 2008-01-10 13:36:59 CST (Total Number of Edits: 1)
|
Brandon Pennington
United States Springfield Missouri
|
Well I hope an EXE comes out b/c I have no idea how to compile or whatever it takes to play.
This is probably my fav two player game!!!
|
Hide the cleavage. Ⓦ Ⓢhubert
United States Portland Oregon
|
Let me say, I've been playing this like crazy, and it is excellent.
I've been playing at least two 5-crystal matchups per day. The AI plays quite well, and with a little fiddling you can "tune" it to be dumber if it beats you too much.
|
John W
United States Sacramento California
|
I just want to say - from what it reads like, you've some excellent work with this AI, especially on the deck analysis.
And now it may be a playable AI??
I'm shocked this hasn't been pounced on and praised by more Blue Moon fans (?!)
|
Al C
United Kingdom Croydon, Surrey
|
Wow, can't wait for an exe ! Sweet.
|
(The Artist formerly known as) Arnest R
Germany Munich Bavaria
|
|
Indiana Jones
Canada Vancouver British Columbia
|
mrkeldon wrote: Kosmos has granted permission to distribute the Blue Moon card images, so I've released the source code of my AI project: http://keldon.net/bluemoonCongrats, Keldon! I'm glad this is officially out. One question: you've kindly let me tryout an earlier windows executable version, and it didn't have a way to ramp-up or ramp-down the AI's difficulty, is such a feature present on this Linux version? Thanks again for a program that's provided a lot of fun gaming!
|
Indiana Jones
Canada Vancouver British Columbia
|
wmshub wrote: The AI plays quite well, and with a little fiddling you can "tune" it to be dumber if it beats you too much. Will, are you playing with the Linux version?
|
Hide the cleavage. Ⓦ Ⓢhubert
United States Portland Oregon
|
Indiana wrote: Will, are you playing with the Linux version? Yes. I use Linux for my job, so I don't even have a Windows computer. It's always nice when a good piece of software like this is actually usable by me.
|
Keldon Jones
United States Fort Collins Colorado
|
Indiana wrote: One question: you've kindly let me tryout an earlier windows executable version, and it didn't have a way to ramp-up or ramp-down the AI's difficulty, is such a feature present on this Linux version?
Thanks again for a program that's provided a lot of fun gaming!
It's not a bundled feature. I'm guessing William has trained new neural nets with fewer games than the ones I included. With less training they wouldn't play as well, or at least that's the idea. If there's interest I could provide a set of networks with less training. Unfortunately I didn't make copies of the networks as training progressed, or I'd already have them. I'll take it as a compliment that an "easier" option is wanted!
|
Hide the cleavage. Ⓦ Ⓢhubert
United States Portland Oregon
|
mrkeldon wrote: It's not a bundled feature. I'm guessing William has trained new neural nets with fewer games than the ones I included. With less training they wouldn't play as well, or at least that's the idea. That's exactly what I did. I found your shell script that does the training. When I'm first learning a deck, playing against neural nets with only 100 rounds of training is fun; I can win easily, so it lets me see how my cards work when they succeed. Then I ramp up the training until I have to really work at it to win. Interestingly, some decks seem to play better with less training than others, and not always the ones I expect. I find that playing against a 400-round Vulca is still pretty easy, but Hoax (which I would expect would be a harder deck to learn to play) gets pretty tough around that level. Doing the short-round training is also very fast, of course, because there are fewer rounds, so I can basically make them on the fly when I want one.
|
Douglas S
United States Orange County California
|
Thanks Keldon, for all of your hard work in making this for everyone to enjoy! Thank You VERY VERY much!
|
Robert C Kalajian Jr
United States Torrington Connecticut
|
AWESOME!
|
Jeffrey McBeth
United States Rochester New York
|
Hmm, maybe I'm doing the retraining wrong, but it seems to me that even 100 is taking forever. It is too bad the Mac OSX native port of GTK isn't done so we could compile it easily there too.
Last edited on 2008-01-09 15:29:32 CST (Total Number of Edits: 1)
|
Martin Pettersson
Sweden Uppsala
|
sweet! works like a charm... time to read some rules
|
Keldon Jones
United States Fort Collins Colorado
|
mcbeth wrote: Hmm, maybe I'm doing the retraining wrong, but it seems to me that even 100 is taking forever. It is too bad the Mac OSX native port of GTK isn't done so we could compile it easily there too. Each time you run the learning program, it plays 100 games, so 100 sets would be 10,000. I'd expect that to take roughly an hour, maybe a bit less, depending on your CPU speed and the decks used (Khind and Pillar take longer). The stuff under the "learn" directory doesn't link against GTK, so it should compile natively on just about anything. If it doesn't, let me know what the problem is. I always like to have portable code. I'll add some documentation for the learning stuff. If you can read a shell script, the "do_matchup" script lays out the process for training new networks.
|
Jeffrey McBeth
United States Rochester New York
|
Guess I should have looked at the code. That would imply that those nets are trained with 2e6 games?
|
Hide the cleavage. Ⓦ Ⓢhubert
United States Portland Oregon
|
mrkeldon wrote: Each time you run the learning program, it plays 100 games, so 100 sets would be 10,000. I'd expect that to take roughly an hour, maybe a bit less, depending on your CPU speed and the decks used (Khind and Pillar take longer). H'mmm. I must have a faster computer than you; I just timed it, Aqua v. Pillar can do just over 10 rounds of learning (apparently 1,000 games) per minute. For me, that's fast enough to be doable on a whim, which is quite nice! I just kick off a learning run, browse BGG or whatever for a few minutes, then it's done and I can play. My system isn't even top of the line, it's a 2.4GHz Intel dual core (the 6600 model, forgot the exact name), with 4MB of on-chip cache. If your system is much slower, I'd say it's probably the cache, perhaps the working set of the learning app fits completely in 4MB. That would give a big speedup.
Last edited on 2008-01-09 16:00:35 CST (Total Number of Edits: 1)
|
Timo
Germany
North Rhine-Westphalia
|
Wow, amazing!
I thought that this kind of game is quite hard to implement because you have all those different abilities on the cards that change the whole game.
You don't even did the game itself, you even managed to get an AI for it. That really grew my interest! Sadly I don't know much about neural nets so I can't hope to easily understand or (which is more I would want) implement one myself for a game.
I'm looking forward to test the game on my notebook tomorrow, today is a bit late for that.
|
Keldon Jones
United States Fort Collins Colorado
|
wmshub wrote: H'mmm. I must have a faster computer than you; I just timed it, Aqua v. Pillar can do just over 10 rounds of learning (apparently 1,000 games) per minute. Whoops, that was the speed it was when I was doing all the matchups. Recently Dean and I optimized some of the slower parts of the neural net code and got a significant boost. I do about 1,000 games in 80-90 seconds or so now (my machine is about 3-4 years old). Of course by then I had mostly finished so I still remember the old speed. Quote: My system isn't even top of the line, it's a 2.4GHz Intel dual core (the 6600 model, forgot the exact name), with 4MB of on-chip cache. If your system is much slower, I'd say it's probably the cache, perhaps the working set of the learning app fits completely in 4MB. That would give a big speedup. I did some calculations a while back and figured that 512k-1MB would be enough cache to fit the working set (both neural nets, mainly). Having less than that would probably kill performance, I agree.
|
Jeffrey McBeth
United States Rochester New York
|
yup, 256kb cache on an old Athlon 2200. Getting about 4.5 minutes for 10x100
|
Keldon Jones
United States Fort Collins Colorado
|
One more thought for those who are retraining networks: try increasing the "alpha" parameter in ai.c. It's a constant applied to the amount of change in each network weight. It's set pretty low (0.0001) by default, which equates to slow learning. If you're doing quick runs (100,000 games or less) I'd increase that by a factor of 10 or so.
One thing I've been meaning to try for a long time is to start with a high alpha (to get "rough ideas" worked out), then gradually lower it as the training run progresses (to "fine-tune", if you will). Hopefully that would mean we could get by with less than 2 million games.
And another tip: make sure you rename or delete the old neural nets before starting a new run (there are 2 files, one for each side), or you'll just be doing further training on them. The program creates new ones only if the old ones don't exist.
|
Jeffrey McBeth
United States Rochester New York
|
Hadn't found the constant yet, but had the rest figured out. Thanks for all your hard work on this. Your trainer compiles/runs just fine on my wife's G4 iMac. Going with text files for everything was a good choice on that.
|
John Harley
Canada Toronto Ontario
|
I would like to thank Kosmos for giving the ok on this, they can be sure that I will buy a variety of Kosmos games as a direct show of support for this. Hopefully others will too...
Just a few of the notable games in the Kosmos line... Babel Balloon Cup Cities and Knights of catan Hellas Ingenious Jambo and Expand Lord of the rings the confrontation Seafarers of Catan Catan Card Starfarers of Catan Through the desert Lost Cities
and of course I will thank Keldon in advance for gifting the community his work without cost.
Hopefully someone can make an exe out of it soon.
Thanks again all
JH
|
(The Artist formerly known as) Arnest R
Germany Munich Bavaria
|
Anyone got an .exe yet ? I just realised I'm checking this thread every hour or so
|
|
|