Exploring the AI Problem
Where online learning could help
Background
I am curious about what it would take to make "good" (competitive with dedicated humans) commercial turn-based strategy game AI. My impression is that this problem is fantastically complex, probably orders of magnitude more complex than chess or go for a litany of reasons. In go for instance, you can only do one thing in a move, place a stone on a board against a single opponent. But in FE there are way more complexities: multiple opponents, it is possible to make dozens of moves within a turn, far more complex rules, the stochastic elements (the gameboard, placement, and events are random), enormous variety of game "pieces" (spells, units, champions, monsters, resources ect), and the fact the number of things that can happen and the number of things you can do in a turn increases as the game goes on.
Problems with Current Approach
I can see from the XML that the current approach uses weights on game concepts to determine the best course of action, but these weights appear to be hard-coded by the developers. So the AI is essentially the foresight of the developers, where the learning happens in the developers and changes are made when the developers change the weights themselves. This means there is no statistical learning (that I can find at least) going on during the game or from game to game (online learning).
Learning is something that comes light and easy to us. To translate the difficulty to similes: our learning is like walking, translating what we learned in to weights on ideas and coming up with algorithms to do it well is like transporting a quarry of rocks, having the machine learn statistically is like doing a whole lot of walking beforehand and then moving a pile of rocks.
Incorporating statistical learning algorithms like artificial neural networks or support vector machines to handle weighting variables can be more precise and flexible than weighting them by hand. One way to look at it is the developer (AI) does not have to play all their moves beforehand and blindfolded, which is what applying a non-learning algorithm in a complex, stochastic game is equivalent to.
Looking for Solutions, Where to Apply Online Learning
My interest is in machine learning in general. This is a reinforcement learning problem, which is a very complex area of machine learning. Knowing what features to learn from and where to assign blame or praise (raise or lower weights) is not a straightforward matter. It is a very hard conceptual problem.
I was wondering if people would be willing to think about these questions and offer ideas which would nail down where learning algorithms could be helpful. The idea is that what a human player has to learn either the developers have to learn and translate it in to a algorithm or the AI must learn itself.
1. What do you always do because the rules of the game make it always the best idea (strong strategy or no opportunity cost)? This is where not to apply online learning.
2. What do you try to figure out during the course of the game? In other words, what are the important features that you cannot know ahead of time? (what is especially important are strategies that change in value due to factors you discover in game) This is where to apply online learning.
3. What do you take away game to game to improve your play? This is online learning as well.
4. What do you see that you do from 2 and 3 that the AI does not do well?
Please don't feel like you need to answer any or all of the questions to offer input. I just wanted to throw them out there to suggest target areas to apply machine learning.