Brain
Lost in thought
Some very good ideas presented here. I like a lot of the suggestions, but being a programmer, I'm always concerned with how to actually implement all these ideas.
@Theoden: Your suggestion of deducing what strategy the human player uses is a sound one, and for countering AI strategies it should be fairly straightforward, but for humans this is tricky. One way I can think of is by adding another step to the goal/strategy picking algorithm where the system analyzes the current position and attempts to find patterns that match known strategies. The strategy that fits in best would be elected as the opponent's suspected strategy. We could then assign a high score to goals/strategies that counter the opponent's suspected strategy. Also, we could add a larger random factor for human players, because humans can be considered much less predictable.
@Old Lion: Your ideas are good too and I agree that we have to consider all these things. But what I'm proposing is a generic system that can take any goal/strategy into account. Once we have this we can define exactly what kinds of goals exist, what kinds of strategies, what parameters these strategies have, what are the sub-goals, and so forth. In other words, I would like to make a system that can address all of the things that you said with an elegant model that has a minimal amount of messy details.
@SenJarJar: The AI mode that I suggested is not necessarily just one global mode such as "war mode". This is just an example. Remember that my algorithm works recursively. Every strategy can have sub-strategies, which in turn can have more sub-strategies. These strategies can have multiple steps. Every step of every strategy is one AI mode.
Another thing that has been mentioned in another thread is a way to address AI cheating. I think this shouldn't be too hard to do as long as the AI SDK allows us to limit the information available to the AI. We can construct a system made of several layers, as follows:
higest layer - AI
middle layer - analysis engine
lower layer - information gathering engine
The lowest layer only sees whatever information is available using the usual methods that human players have such as visible tiles, known civilizations, and known resources. Once we gather this information we pass it over to a higher layer that analyzes it and transforms it to something that the AI can use to make decisions.
@Theoden: Your suggestion of deducing what strategy the human player uses is a sound one, and for countering AI strategies it should be fairly straightforward, but for humans this is tricky. One way I can think of is by adding another step to the goal/strategy picking algorithm where the system analyzes the current position and attempts to find patterns that match known strategies. The strategy that fits in best would be elected as the opponent's suspected strategy. We could then assign a high score to goals/strategies that counter the opponent's suspected strategy. Also, we could add a larger random factor for human players, because humans can be considered much less predictable.
@Old Lion: Your ideas are good too and I agree that we have to consider all these things. But what I'm proposing is a generic system that can take any goal/strategy into account. Once we have this we can define exactly what kinds of goals exist, what kinds of strategies, what parameters these strategies have, what are the sub-goals, and so forth. In other words, I would like to make a system that can address all of the things that you said with an elegant model that has a minimal amount of messy details.
@SenJarJar: The AI mode that I suggested is not necessarily just one global mode such as "war mode". This is just an example. Remember that my algorithm works recursively. Every strategy can have sub-strategies, which in turn can have more sub-strategies. These strategies can have multiple steps. Every step of every strategy is one AI mode.
Another thing that has been mentioned in another thread is a way to address AI cheating. I think this shouldn't be too hard to do as long as the AI SDK allows us to limit the information available to the AI. We can construct a system made of several layers, as follows:
higest layer - AI
middle layer - analysis engine
lower layer - information gathering engine
The lowest layer only sees whatever information is available using the usual methods that human players have such as visible tiles, known civilizations, and known resources. Once we gather this information we pass it over to a higher layer that analyzes it and transforms it to something that the AI can use to make decisions.