Let's assume a common game scenario of several characters in a combat arena. Each character has different strengths and weaknesses. The arena has traps and tools. Suppose the characters had only very basic moves such as step in a direction, shoot, climb, duck, pick up item, use item, drag heavy object. Each move has a chance of success based on the context (e.g. range to target). What AI, machine learning, or evolutionary approach could be used to generate personalized tactics for each character based on repeated runs of the scenario?
The first step is to increase the abstraction level of the game. Instead of storing the game characters with absolute position on a pixel level, a text-adventure-like layer above the game has to be established. In the literature this concept is called “knowledge containers” and is described under the topic of case-based reasoning. Now, it is possible to record the repeated trials with a RDF-based vocabulary, and it is also possible to run machine learning algorithm for feature detection against the game-logs.
Unfortunately, the high-level textadventure like game-description has to be grounded to the original game. That means, if one of the player is doing a low level move, this has to be converted into the vocabulary of the knowledge-container. For the game Wargus some literature is available, the Darmok2 AI-engine can play other Real time strategy games with this approach. The Darmok2 AI engine was written in Java and is not available as sourcecode. The system is documented in Learning from Human Demonstrations for Real-Time Case-Based Planning
"textual case-based reasoning" can be seen in action at Artificial Intelligence plays puzzle game (Solomon's key) Which algorithm was used in the example is unknown. From the screenshot i would guess it is a cognitive architecture, perhaps SOAR or ACT-R.
There are a few ways to tackle this. You could make an AI that is simply a series of IF statements, or you could actually make an AI that would actually take in the situation and come up with a sensible solution.
IF Approach - You make a series of IF statements that come up with a sensible action to execute. This is the method that Minecraft uses. The resulting action were recorded from some of the best players.
True AI - Have your Character execute random actions and learn the consequences of them. The, train it to execute various actions for certain scenarios.
The main difference between these two approaches is that IF statements have a constant and predictable behavior, while the AI approach has a very bad startup value but ends up improving over time.
There is no "best" method, it is up to you to choose one or the other or a mix of both.