Wanted to throw out a suggestion for somebody to develop an AI engine. Here are the two uses I can think of off the top of my head where AI players would be useful:
1) If I want to try out a board, practice different strategies, etc. without instantly losing 100s of points.
2) Filling up a game that already has 4 of 5 players and just can't seem to attract that 6th.
Thoughts?
I would love to work on this, and have thought about it some, but I don't know how to get started. If Tom can give me some tips as to how to interface with the game engine, I would be willing to put in a crack at it.
This is a very difficult task and I have thought about it quite a lot.
First, it is reasonable to program a board specific (or style specific) bot to play with, but one that can take in the different board designs and handle all of the options is challenging. An AI for five/seven would be amazing to train with (as long as it wasn't too good/bad to be fun).
I jointly developed an AI for Prion4 back in 2004 (which is where that board came from, a home made video game), and could even set levels for aggression, friendliness, empire building, vengeance, protection to produce different style play from the same bot. I would be happy to share my ideas and can only wish the best of luck to whomever takes this on.
Yes, though this would be a monumental undertaking. I'd love to work on this too. There's one on landgrab, but after trying a couple games with it, I left the site, unimpressed.
Those games wouldn't be rated either, right?
This is a very difficult task
I should be clear that I don't really expect anything I could come up with to be competitive in any sense. But I figured start with a bot that does random play, and gradually improve it. Even randomBot would be good for testing maps against, and as it gets better it could at least fill a few empty slots in a game. Any sort of bot that played well on multiple maps (especially something like seven) would probably be many years off, and would probably require specific tuning for each new map.
I was working toward a PhD in AI, and took a few classes in that area before dropping out with an MS, so I'm not a complete noob in this area.
Ozyman wrote:This is a very difficult task
I should be clear that I don't really expect anything I could come up with to be competitive in any sense. But I figured start with a bot that does random play, and gradually improve it. Even randomBot would be good for testing maps against, and as it gets better it could at least fill a few empty slots in a game. Any sort of bot that played well on multiple maps (especially something like seven) would probably be many years off, and would probably require specific tuning for each new map.
I was working toward a PhD in AI, and took a few classes in that area before dropping out with an MS, so I'm not a complete noob in this area.
I really wasn't suggesting that you were a noob since I know you have programming skills and we discussed some other stuff previously. As I said I will be more than willing to share my thoughts and I think having a randomBot would be great for testing. It does sound like you have the credentials.
Tom, would this be possible to interface into the site?
M57 - I believe any of these games would be un-ranked, probably private/dev only to begin with.
Alpha wrote:Ozyman wrote:I was working toward a PhD in AI, and took a few classes in that area before dropping out with an MS, so I'm not a complete noob in this area.This is a very difficult task
I really wasn't suggesting that you were a noob
No worries, I didn't think you were suggesting that. I just felt like I should be clear that I have some idea what I'm doing, and I do realize the complexity/impossibility of this task.
I just wanted to make sure we were all clear that it was a complex and impossible task. Now that we are all on the same page, I wish you the best of luck.
You know this may all be for naught if there is not an easy interface to integrate the AI into. Step 1.
Alpha wrote:I just wanted to make sure we were all clear that it was a complex and impossible task. Now that we are all on the same page, I wish you the best of luck.
You know this may all be for naught if there is not an easy interface to integrate the AI into. Step 1.
Tom really has enough other features that I think are more important than making this interface available. If everything off the wish/bug lists was done, then it might be worth trying to do this, but I think players & mapmakers would get a lot more enjoyment out of things like barren territories, than they would out of a not-very-good AI. I would certainly enjoy hacking away at it, but I think I'm in a minority.
I should have been clear, I meant that if there was no usable interface, then the idea would need to be shelved. I agree, everything else (bugs, often requested features, anticipated add-ons) would have a precedence.
I would definitely enjoy seeing you hacking away at the AI and will hate the day that I lose to the AI (it would really be mixed as I would be in awe of the creativity expended to have allowed the occurrence).
I like the idea of allowing AI players, I think it should be on the roadmap but it would be fairly low on the list priority-wise I should think. Big questions to answer for me would be where would the AI code run and what language would be supported?
Are you making this an even better suggestion, allowing players to upload and use their own AI in game testing and such? That would be awesome.
That is way to big of a task, so forget I suggested it.
Really I was just asking if there were any mechanics for passing a game to the AI when it is their/its turn (really a game object), are there functions for reading useful information, territory counts, continents, bonus next turn, possible continents, ..., and are there functions for playing a turn, declare attack here, attack with 3, fortify there ...
If all of the stuff of that nature is not passable in a "Game Object", then I would think this would be a very hard thing to integrate into the site soon, if ever. The AI should not be using or have access to anything that could potentially mess up the site or other people's games by accident. This would require quite a bit of work on the back end of the site.
Anyway, this is a great idea, but I would imagine it is just something that will need to be look at again in the future. Thanks for all of your hard work tom.
tom wrote:I like the idea of allowing AI players, I think it should be on the roadmap but it would be fairly low on the list priority-wise I should think. Big questions to answer for me would be where would the AI code run and what language would be supported?
I honestly have no idea. My experience with web programming is very limited. I know HTML & a bit of javascript, but haven't really kept up with the last few years of web technologies. I would be willing to learn whatever language is necessary, but if possible my preference would by python, just because I have started using that a lot recently, and I really like it.
Anyway, it sounds like we all agree this isn't something that should be worked on in the near (or even medium) term, so probably worth putting off these decisions until it is closer.
I'm happy to see the programming guys have run with this idea. If it helps, my original thinking is that the AI would essentially play the following way:
Mission 1 --> Acquire Continent bonuses
Mission 1a --> Attack based on odds. Basically maximise 3 v 2 attacks vs. 2 v 2.
Mission 2 --> Respond to attacks against it. i.e. if attacked by player X, then Y% more likely to attack X the following turn.
I'm not sure if this makes this project any less complex, but thought it would be a good idea to provide a boundary to the AI project. I think these missions would make the AI a good way to test the map while at the same time being a suitable substitute for filling up partially-filled games.
ATH
AttilaTheHun wrote:Mission 1 --> Acquire Continent bonuses
Mission 1a --> Attack based on odds. Basically maximise 3 v 2 attacks vs. 2 v 2.
Mission 2 --> Respond to attacks against it. i.e. if attacked by player X, then Y% more likely to attack X the following turn.
These considerations make less and less sense once the game has developed to more entrenched player positions. For instance, I can imagine that one of the more complex strategic concerns might involve protecting other players from easy elimination based, among other things, on the potential value of their cards. Often this is accomplished by not weakening them too much.
Maybe tom can just link in to the IBM Watson thingy
"But many who are first will be last, and many who are last will be first." Matthew 19:30 - Good strategy for life and WarGear!
I too have been thinking of simple strategies that could be programmed in along the lines of Attilla's. We're aways from one that isn't easily beat my most of us, but It would be a ton of fun to have such things as a side intellectual exercise - have different ones play each other, etc.
I hadn't thought of Attila's Mission 2 idea. That reminds me of Tit for Tat, which was the programmed strategy that won a computer run Prisoner's Dilemma competition.