I've been tossing around the idea of how a pre-programmed opponent might work. This would essentially be an AI that could be used to just mess around solitaire.
The basic idea would be that the opponent would choose some pre-determined and random actions based on the current positioning and relative health levels of the planes on the board.
So there's an evaluation of the overall tactical picture, the elimination of certain types of intentionally harmful actions (flying off board, collisions, etc.) and then some random element that helps keep the opponent somewhat unpredictable.
There is no substitute for a human opponent for many reasons, but this is more of an exercise in logical planning.
Basically the evaluation of the tactical conditions break down to a posture choice for the AI. Will it be aggressive, defensive, or balanced.
The more points the more aggressive:
1 point for each yes answer:
__ Enemy plane is in front of the AI plane
__ AI planes have a numbers advantage
__ AI plane has less than half its damage already taken
__ AI plane can complete a series of 3 maneuvers that would result in an enemy plane being in firing range & arc
__ AI plane has no special damage currently affecting it
0-1 = Defensive
2-3 = Balanced
4 or 5 = Aggressive
The AI then removes all possible illegal moves from the maneuver deck in the following order:
- Move against rules
- Move that would result in a collision or have a high chance of collision
- Move that would take the plane off the board
The AI then evaluates a possible scenario that may require immediate action and takes top priority:
- Avoid a collision (Right or Left move determined at random by die roll (even = Left & odd = Right if there is a non-illegal choice)
- Take a shot Must take all potential shots at planes regardless of range
- Check for Tailing and play by tailing rules
- If being fired upon, or likely to be fired upon, immediate evasive action.
- If firing advantage can be had, maneuver into it
Barring any choice of appropriate action beyond that I need ideas on how to actually build out the AI sequence. It should be somewhat random. I have an idea to create various strategies that can be employed (altitude change, S Turn, Favor Immelman, weave, etc.)
In terms of setting target priority, I think it best to have the AI pilots always focused on the target with the most damage cards (not damage, but cards) to try to create some kind of imbalance in their favor.
The game sequence would be:
1 - Planning Human
2 - Planning AI
3 - Execution
In this way the Human player(s) would always be at a knowledge disadvantage to the AI and the "randomness" of playing against another human could help be preserved.
Bookmarks