Obviously, creating a good AI player would be a huge undertaking, and I can see it happening eventually, but it's definitely a ways off and for this reason is probably not something we'll be seeing here for a while. So that's not really the intentional point of this thread, though folks could take it there if it seems appropriate.
On a different thread I made a suggestion that WG could have an AI player specifically designed to play only for booted players, and so in an effort not to hijack that sub-discussion, I thought I'd move the idea here.
My idea is not to create a "smart" player, but rather one that equitably addresses the problem of the holdings of a booted player. My proposed bot doesn't play strategically or to win, but I have a sneaking suspicion that using nothing but these very simple rules, a bot wouldn't make a complete fool of itself.
Here's a controversial twist. All playing stats apply. It's unlikely, but if for whatever reason, the AI wins, the originating player gets the win!
With the exception of the considerations of rule #5, this bot doesn't play much differently than most players do on the first 2 or 3 moves on the standard Risk board. Obviously, gaining and protecting continental bonuses will be one of the more complicated parts of making a "smart" bot, and it is completely ignored in my proposed bot, but I'll bet this dumb one would be a major improvement over the alternative where it comes to dealing with a booted player's holdings.
Actually sir I made the suggestion in relation to AI players that thread but it's been mentioned several times before I believe.
I agree with your rules and considerations though, except for the cashing the cards, I would have it cash cards only when it maxed them. We need something that will take a basic turn and take over for a player if they get booted, surrender/quit, whatever, so as not to completely disrupt the game for everyone else. Something that is also completely optional when you start/create a game.
I was thinking that the bot should cash early as a defensive maneuver meant to prevent it from becoming too much of a target.
Edit: Just re-read the thread ..and yes, V, you did mention it first in that thread. Hmm.. I knew I got the brilliant idea from somewhere.
Cashing early and late are both valid strategies, so whether to cash or not would be a nice option for randomness. Or a simple calculation (I have less than X armies, I should cash early) would be appropriate.
IRoll11s wrote:Or a simple calculation (I have less than X armies, I should cash early) would be appropriate.
While I agree with your point about early and late cashing in general, late cashing can be the more dangerous strategy and I would suggest that the bot plays on the conservative side. Also, there are certain boards where a cashing threshold should necessarily be lower than it should be for others. Setting this number could be a designer option, but designer options are numerous enough as it is.
If a mix is the popular choice, I like random. All in all, this aspect of the bot's play is not that critical for the purpose of playing a game out for a booted player.
Regarding Rule #1: Additional algorithms for dealing with multiple "optimal" targets might need to be worked out (like prefer the one that will secure a bonus), but even here, 'random' may do the trick just fine. At this point, there's no need to go nuts with this. I think just getting a down and dirty "boot bot" up and running would be cool.
If a down-and-dirty Boot-Bot could be created, there are features that it could have that would make useful for a a number of things. A number of these take advantage of the fact that bots play FAST. Some of them are obvious. I'm just starting a list of the possibilities.
Once in place, the quality of play of B-Bots will be improved over time. Theres no doubt that at some point BBs will play smarter than a good many players (Heck, I wonder that the one as proposed wouldn't play better than some players) We may actually have to make it such that in public games BBs only play at a certain level of expertise (for instance, we might not want them to play much better than the proposed stock model with its 4 or 5 simple rules. As for #3 above, if Neutral started to win games, stats would go hay-wire.
I'm wondering. Where does this idea sit on people's "Importance Meter"? Is it viable? Is it worth Tom's time?
IRoll11s wrote:Cashing early and late are both valid strategies, so whether to cash or not would be a nice option for randomness. Or a simple calculation (I have less than X armies, I should cash early) would be appropriate.
Some simple decisions could be: I'm in risk of being eliminated (cash now). I can eliminate a player without the extra armies, and I can double cash after elimination (cash later). I want to guarantee I eliminate this player (cash now). I have 3 cards, one of which is a wild (cash later).
Mongrel wrote:Some simple decisions could be:
..I can eliminate a player without the extra armies, and I can double cash after elimination (cash later). I want to guarantee I eliminate this player (cash now)...
Rule #1. Take one and only one territory.
So unless an opponent is down to one territory, the above rules will rarely be invoked. Now if you are suggesting that rule #1 should be trumped if any of the above conditions exist, then I would argue that these are are not "simple" decisions (or at least I don't think they are). All of them require development of a sophisticated and subjective set of rules to determine their eligibility, not to mention that if even if their algorithms could be easily developed, additional algorithms would need to be developed to give the bot a plan of attack (assuming multiple attacks are required), which would then necessitate contingency plans in the event of failure .
I think the criteria for the BBs design should not be to get it to win. I think that initially, the level of BB play should be viewed as a consequence for not taking one's turn on time. A short list of "rules" that anyone can understand (so there can be no complaining about BB play) might be preferable to a long complicated list, not to mention that it would make Tom's job much easier.
I have 3 cards, one of which is a wild (cash later).
This one's fine. It's simple to determine.
I'm in risk of being eliminated (cash now).
In my mind, this one sits on the fence of the simplicity rule. What constitutes being at risk? I suppose being down to one territory would qualify, but other than that situation, things get complicated. For instance, what if the bot is down to two territories that are not adjacent to the same opponents? It might not be necessary (or even wise) to cash.
I suppose we could pile on a bunch of simple rules, but I'm thinking that when it comes to developing a smart bot with an aggressive style of play down the road, it won't be in the form of a hodgepodge of rules, and we'd have to start from scratch anyways.
Dice odds -> elimination odds -> incentive for elimination (ease of elimination, cards, elim bonus, plus the constant of having an opponent removed, all of which will be hedged against the strength of other players).
Though I'll agree developing an AI will be tough- mainly, because typical greedy algorithms won't be the best (What's good for me this turn might not be the best long-turn decision ).
A good place to start would be running some statistical analysis, to quantify a winning player's intuition (who's feuding, who's allied, my strength vs others, elimination incentive, luck of winner, luck of winner on the winning turn, aggression, response from a big attack, etc.).
Could be fun.
I like the idea of having a dead simple bot that takes over when players get booted. That would definitely be more fair for the remaining players. All the other stuff is great as it gets more advanced, but I think that can happen gradually and better to shoot for a simple goal and then evolve.
M57 wrote:I'm in risk of being eliminated (cash now).In my mind, this one sits on the fence of the simplicity rule. What constitutes being at risk? I suppose being down to one territory would qualify, but other than that situation, things get complicated. For instance, what if the bot is down to two territories that are not adjacent to the same opponents? It might not be necessary (or even wise) to cash.
In terms of keeping it simple & conservative and stupid, I suggest the usual behavior is to cash as soon as you have a set and that we have a pretty simple heuristics that makes decisions conservatively. Something like:
if (# of territories on board + my units > unit count of strongest opponent + their bonus + value of a set of cards)
Then you are safe and can wait to turn in cards, otherwise cash as soon as possible.
O, not bad ..but worthless in fogged games. My vote(s) in order of preference:
Cash Early
Cash Randomly
Dead simple bots prefer two word commands.
Yeah, I didn't think about fogged games, and those are a lot trickier. You could still have some simple rule for unfogged games, and then just always/random cash on fogged, but it doesn't make much difference to me.
Re: always vs. random - In terms of a stronger bot, I think having some randomness to it is better, because being easy to predict makes for a weaker opponent. Even something like if you have cards cash 80% of the time, and wait 20% of the time.
I've added some mods to the rules below.
I'm against an AI winning for a player.
I'm not against an AI winning (and getting the stats possibly).
"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 agree with Yertle, the AI shouldn't be able to secure a win for the player it took over for.
M57 - Isn't rule #6, redundant (see #4). And for #4, I think spreading the armies evenly would make it harder to continue getting cards. Some simple alternatives:
Spread evenly between territories that border an enemy.
Spread 50% evenly between all territories, put other 50% on a random border territory.
The thing that instantly crossed my mind is that if we create a bot that follows simple playing rules, then once I figure out those rules I can manipulate the bot to take the actions I want it to take. Also, the bit about a player being able to return and kick the bot off is a very bad idea if you think it the whole way through.
BlackDog wrote:The thing that instantly crossed my mind is that if we create a bot that follows simple playing rules, then once I figure out those rules I can manipulate the bot to take the actions I want it to take.
Good point. Two perspectives on that:
#1 - Manipulating the simple-bot is part of the game now.
#2 - Make simple-bot non-deterministic. Every decision is a probability & is then decided randomly.
For example, for rule #1, instead of:
The Bot's one goal is to take a single territory on any given turn. It simply looks for the highest attacking to defending army ratio.
use:
Calculate attack/defense ratio for each border. Total all ratios over the threshold (call this TR). Pick a random real number between 0 & TR, and use that to pick which border to attack. Borders with best ratio will get attacked most often, but not all the time.
This definitely is getting into the more complicated realm, but basically fuzzy instead of binary logic and is not really that much more complicated.
Ozyman wrote:I agree with Yertle, the AI shouldn't be able to secure a win for the player it took over for.
M57 - Isn't rule #6, redundant (see #4). And for #4, I think spreading the armies evenly would make it harder to continue getting cards. Some simple alternatives:
Spread evenly between territories that border an enemy.
Spread 50% evenly between all territories, put other 50% on a random border territory.
Yes, Rule 6 is not necessary. I forgot that it's already covered in rule 4.
As for spreading armies evenly, my original intent was to make the bot play poorly enough that it loses and to have the demise of the booted/surrendering player not create an inequitable situation for the other players. E.g. I didn't want the bot to win as a disincentive to the booted/surrendering player, but how it allocated its armies can be whatever we want I suppose. The question we should always be asking is "will this be fair to all players"?
The problem with giving the win to the bot is -- what does the losing player get? A loss? How can the stats possibly manage this? I suppose you could give the win to the bot and score the entire game as if the bot played it - in which case the player gets off the hook for being booted. Actually, the more I think about it, the more I like this solution. In the event that the bot wins, the player gets nothing for whatever efforts they put into the game.
Just to be clear. Imagine you're playing lights out in a great game and you're about to win but you get booted by the clock. The bot kicks in and finishes off the job. Bot gets credit for everything. You get nada for all your brilliant work. Works for me.
As for being able to manipulate your position knowing how the bot plays, I see no problem with that.
Everyone else has the same information and will be doing the same thing. This is another reason that the rules for bot play should be uncomplicated and easy to understand. It's also an argument for completely random army placement (it makes it harder to forecast what the bot will do. On the other hand, I like Ozy's 50-50 rule.
M57 wrote:I suppose you could give the win to the bot and score the entire game as if the bot played it - in which case the player gets off the hook for being booted. Actually, the more I think about it, the more I like this solution. In the event that the bot wins, the player gets nothing for whatever efforts they put into the game.
That just promotes getting out a loss even more! I know I'm going to lose so let the bot take over rather than lose my points. Not good at all. The player has to lose points.
M57 wrote:
Everyone else has the same information and will be doing the same thing.
That's probably not good enough reason. I would say the majority of people wouldn't know the bot information.
"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!
Yertle wrote:M57 wrote:I suppose you could give the win to the bot and score the entire game as if the bot played it - in which case the player gets off the hook for being booted. Actually, the more I think about it, the more I like this solution. In the event that the bot wins, the player gets nothing for whatever efforts they put into the game.
That just promotes getting out a loss even more! I know I'm going to lose so let the bot take over rather than lose my points. Not good at all. The player has to lose points.
No. If the bot loses, the player takes the loss! Only if the bot wins does the player get away with not taking a loss. This is why the bot shouldn't be a strong player. The insult to injury is that the dumb bot gets the win.