It'd be smashing if you could play bots that were specifically trained on you, allowing for both a challenge and a teacher. My goal with the topic is discussion / getting resources for learning how to aid a bot or player using machine learning (ML) techniques, inspired by the amount of demos available.

There's multiple related ML-y things that could be tried:
-Train a bot specifically on a player such that it will exploit strategies the player is weak against
-Train a bot specifically on a player to replicate their behaviour to practice against them
-Give the player on-screen hints based on what the bot that would beat the player would do in that situation
-Predicting tournament/matchup results
-Quantifying some of the recurring tactics/style of a player (frequent itemset mining? less related)

Such a system would ideally have the following basic requirements
-At least two components: long term planning and short term.
-Each of these components probably needs a different representation of the current game state mined from the demo that is invariant to irrelevant information.
-An online algorithm (that is, one that can take new training examples while already running), probably pretrained on a lot of matchups between bots, that adapts to the current skill and style of the player. Preferably learning during every game of the player, not necessarily requiring storage of all demos.
-Should be able to learn in the background; most time a player will spend is ingame/in between games. Preferably can handle all input, or otherwise can decide what new information is 'surprising' and should be learned from.
-The actual decision process should be fast enough to run in the background while at least one instance of the bot is playing.
-Different possible degrees of difficulty. This could be achieved by introducing noise in the training measurements, but in order to only need one representation that will work on several difficulty settings the noise should probably be applied during the decision process (inaccurately represent where the player is standing etc).

Some of this may seem infeasible, but at the least it'd be interesting.

The complexity of the long term planning system will depend on the map / mode. For a complex one I could see it benefitting from some (slow) 'deep' representation learning (such as a convolutional neural net), though the obvious start would be in a small duel map.


I can't be the first person to think of something like this, but I don't know a lot about game AI programming, so I was wondering if people had some cool online resources for learning or thoughts to add to this.