Well the nitty certainly, perhaps not the gritty just yet. Due to finding the work I did a decade (or possibly two) ago, I have made more progress on this project than I expected to have done. What I have so far is a mechanism for deciding if the AI army will fight and in general terms how it will fight, it isn't clever and it's definitely not an elegant solution, but it seems to work. It uses a set of factors to arrive at a measure of the base aggression of the army. For the lack of anything else to call it I have termed it a fight or flight test. It uses ten sets of factors some of which measure the difference between the AI and the player's forces while others look at a single variable. Each factor generates a score which when added together give a total which is checked against a table of battlefield grand tactical options. A high positive result shows a high aggression and willingness to attack and a minus a low aggression and more likelihood of fighting defensively (or withdrawing).
Here is the Fight or Fly decision table. The scores are from a set of factors |
I have given you the results table before the ten tables of factors so you can have some sense of how I have weighted each of the following ten sets of circumstances that build up to the total. The maximum and minimum that could be theoretically achieved are higher than plus 25 to minus 31 range represented on the table above. In the tables which follow the green highlighted options are the commonest expected outcomes.
The first two input tables |
Table 4 asks what are the chances of avoiding combat. Not whether either side wants to do so but could they. An infantry heavy army facing a highly mobile opponent would be an example of an army where avoiding combat is impossible, although seeking better ground may be an option.
Table 5. This is considering the effect of the overall strategic position on the AI commanders options. Rather like Rupert at Marston Moor feeling like he had to attack because of Charles' poorly drafted instructions. If there are no overarching orders from High Command use the Fight if victory probable option.
The next two tables look for the effect of different levels of training and combat experience between the two armies.
Table 9 requires some creative thinking as the AI knows what re-enforcements it expects but has to guess whether the opponent will be getting more troops. The scouting rules from your tabletop or campaign rules may help with this otherwise use your judgement.
There is one remaining factor but it isn't a table like those above. Its a random factor created by rolling two D6. One dice is designated plus and one minus add the results together to get a random final figure.
As you can tell from the cut and pasted tables I use a spreadsheet, the factor used boxes are manually calculated and entered but those are picked up and totalled, along with the random factor, by the spreadsheet to give the final score for the fight or flight decision.
What I have here is more like a toolkit and concepts but it allows you guys to tinker with things. If you don't agree with the weighting of the factors I have created change them. Alternatively you can change the results table scores for each action. I tested them against some actual battles treating both sides as if they were the AI side to see how close the result came to the initial plan of the actual commanders. It gives a reasonable but not 100% match to what I think the original plan was, so it's broadly where I want it to be. Its a case of tinkering with the balance now. Have a play and let me know if it seems to work as you would expect.
Thanks, interesting post. I will enjoy having a play around with some of these concepts.
ReplyDeleteA simpler version of something like this can be found on the excellent 'Grid-based Waraming, but not always...' blog:
ReplyDeletehttps://gridbasedwargaming.blogspot.com/search/label/ECW?updated-max=2023-06-24T13:53:00%2B10:00&max-results=20&start=30&by-date=false
Simple has much to recommend it.
Thanks for the heads up Rob, I shall head over and take a look at it
Delete