TricksterCards / TricksterBots

Suggest methods for bots used in Trickster Cards.
MIT License
9 stars 8 forks source link

Adjust bot difficulty based on player experience level #23

Open antross opened 2 years ago

antross commented 2 years ago

I generally like this list, but I'm unsure about how "good" the bots should play. On the Account Setup page there is an option to specify Experience Level as Beginner, Average or Expert. I wonder if this should be used when a bot is deciding whether to use certain options.

Originally posted by @RussCranberry in https://github.com/TricksterCards/TricksterBots/issues/17#issuecomment-1054307588

antross commented 2 years ago

We had considered this long ago but at the time didn't feel like there were enough variations in the bot behavior to be worth it. Since then, we have indeed been reluctant to make certain bots "too good" to avoid discouraging new players, so I think this deserves another look.

I suspect influencing how well a bot "remembers" past plays and counts cards (like inferring void suits, knowing which card is high, etc.) may be the most direct way to affect this without having to add a bunch of conditions throughout the code. For example, we could alter the suggested state passed into the bot to strip certain "memory" related information when targeting an easier difficulty level, so the bot has less detail to work with.

antross commented 2 years ago

Another thought, folks are more sensitive to poor behavior by bots when the bot is their partner so in adjusting difficulty, we may still need to keep a "smarter" bot active when it's partnered with a real player. This would actually be somewhat consistent with making the "game" easier for those players.

As for cases with multiple real players I'd suggest bots use the higher skill level selected by the players (especially in partnership games).

drittich commented 2 years ago

Do you keep data for all games played? If so, you could create an engine that suggests how the current player has responded to the same situation in the past and have the partner bot play the same way (option appears after N number of games have been played). I'm thinking of 3 general profiles for bots:

RussCranberry commented 2 years ago

You could also consider using probabilities to control when certain things happen. The users Experience levels could be used in conjunction with a particular behavior to decide whether or how to do it.