Category Archives: Wargames

Schwerpunkt: Calculating the Optimal Point of Attack

MATE’s analysis of Blue (Union) position at Antietam. NB: Unable to outflank Red’s position, MATE has calculated the Schwerpunkt, or optimal point of attack on Red’s lines. Click to enlarge.

The holy grail of military science is an algorithm that calculates the optimal point of attack upon an enemy’s lines. In German, the word is Schwerpunkt and is commonly translated as “the point of maximum effort.” I have written extensively about Schwerpunkt previously in this blog, in academic papers and in my doctoral thesis.

MATE (Machine Analysis of Tactical Environments 2.0, the AI behind General Staff: Black Powder) is now able to calculate Schwerpunkt to a new, substantially greater, degree of accuracy. There are a number of reasons why this is now possible, but the primary cause must be the ability to analyze the battlefield in 3D and to accurately map where every unit on the map can project its force. Indeed, for many years now I have looked at the problem of computational military reasoning (AI for tactical situations) as a force projection problem.

Below, is a visual representation of the total force projection of all units at Gettysburg, Day 3 (July 3, 1863 0600 hours):

Visual representation of the total force projection (Range of Influence, or ROI) for all units at Gettysburg Day 3. Note: normalization and alpha values affect color output. Also, note how the terrain (woods, depressions, hills) shape the projection of force. Also, all projections are independent of unit facing. Click to enlarge.

If we ask MATE to determine the Schwerpunkt for the Confederates in the above situation, it responds with:

MATE’s selection (labeled OBJECTIVE) for Red Schwerpunkt. Click to enlarge.

And adds the following commentary (edited for brevity, the numbers are the Premise Statement ID#s. This is basically a logic trace of MATE’s thinking):

8|∴ The enemy does not need to capture more Victory Points.
9|∴ The enemy will be on the defensive.
...
22|The enemy's flanks are anchored.
23|[9] + [22] ∴ Frontal assault is the only remaining option.
...
25|COA: Battle Group #1 (Mixed) assigned objective Weak Point Calculated by ROI coords: 551,232
...
33|Red Battle Group #1 is opposed by Blue Battle Group #6
34|Red Battlegroup # 1's strength = 21,663
35|Blue Battlegroup # 6's strength = 13,635
36|Red Battlegroup # 1 has a numerical advantage of 8,028. Red has a 1.59 / 1 advantage over Blue Battle Group #6.
37|Distance to objective is 1,029.86 meters.
38|The maximum slope along the line of attack will be on an upward slope of 3.64%.
39|The attacking avenue of approach will be in enemy ROI for 541.18 meters.
40|The greatest enemy ROI along the avenue of approach is: 1,276.00 .
41|There is an unrestricted avenue of attack.

In other words, MATE has found a path to its objective that encounters the least amount of enemy projection of force. MATE would much prefer to flank the enemy position but it has calculated that this is impossible (#22, above).

ROI (Range of Influence) is calculated using values set up for each unit in the General Staff Army Editor and running a 3D Bresenham line algorithm to ensure that there is direct Line of Sight (LOS) to that point.

Screen shot of the General Staff Army Editor showing the interface for entering values for a typical artillery unit. Note that the accuracy curve is user editable (there are also default curves for various common weapons). Click to enlarge.

It is because every unit has an accuracy curve attached to it we can exactly map out the overlapping fields of fire (see above) and we can precisely calculate how long each attacking unit will be under fire and its intensity. That is how MATE chooses the optimal attack point: the path where its troops will be under the least amount of fire.

When MATE is presented with a tactical problem it first determines what it needs to do to win; is it on the offense or defense? On the offense, MATE will next check to find the enemy’s open flank and, if there is one, are there any crucial choke points on the flanking route? If MATE is unable to ‘fix and flank’ the enemy, and it has determined that it must be on the offensive, MATE then calculates Schwerpunkt (above). With this new Schwerpunkt algorithm the last big piece of the offensive AI puzzle is in place. Ironically, much of MATE’s defensive calculations involve first figuring out how to attack itself and then countering what it determines are its own optimal moves against itself (see this blog).

As always, please feel free to contact me directly with comments or questions.

A Human-Level Intelligence at Antietam

“Map of the battlefield of Antietam,” by William H. Willcox. Published in Philadelphia. Lithograph of P. S. Duval and Son, 1862. From the US Library of Congress.

There are many reasons that I am intensely interested in this particular American Civil War battle fought on less than twenty square miles wedged in between the Potomac River and Antietam Creek. The battle of Antietam (September 17, 1862) exhibits a number of significant battlefield attributes which I use as base line cases to test algorithms used in creating a human-level tactical artificial intelligence 1)MATE: Machine Analysis of Tactical Environments. Specifically, Antietam definitively demonstrates 2)see http://riverviewai.com/download/SidranThesis.pdf the following attributes:

  • Choke Points
  • Anchored Flank
  • Interior lines of communication
  • Exterior lines of communication
  • Restricted Avenue of Retreat
  • Restricted Avenues of Attack

For example, in a blind survey of Subject Matter Experts (SMEs), it was overwhelmingly agreed that the RED (Confederate) left flank at the battle of Antietam exhibited the attribute of ‘anchored flank3)a flank that is attached to or protected by terrain, a body of water, or defended fortifications. and other positions, such as RED’s (Russian and Austrian) left flank at Austerlitz SMEs overwhelmingly agreed that the flanks do not exhibit the attribute of ‘anchored’ and are, therefore, unanchored. Once we have an example of an anchored flank and another example of an unanchored flank we can begin testing algorithms to detect the attribute of an anchored flank.

In my doctoral thesis (above) I demonstrated the algorithm 4)see pages 45-6 http://riverviewai.com/download/SidranThesis.pdf  for detecting the attribute of anchored and unanchored flanks. I have made a number of substantial improvements to the original algorithm since then which are now incorporated into the current MATE.

We have recently posted analyses of other battles that did not exhibit the attribute of an anchored flank (Ligny and 1st Bull Run, or Manassas). MATE correctly recognized that Ligny and Manassas do not have these attributes.

The tactical situation for Blue at Antietam is quite different than Blue’s positions at Ligny and Manassas (is it not curious how often Blue is the attacker in wargames?). The key difference, of course, is the lack of an open flank to attack. MATE will always attack an open flank if it can. Without an obvious objective, like an exposed flank, MATE will next look at opportunities to fulfill victory conditions. For Antietam, as Blue, MATE sees the situation like this:

MATE Analysis of Antietam from the Blue position. Screen shot. Click to enlarge.

Below is a list of statements, predicates and conclusions generated by MATE during the above analysis with my commentary added on the right:

MATE analysis of Antietam. Click to enlarge.

I recently added a set of algorithms that recognize the composition of battle groups and exploits any possible advantages. For example:

Screen shot showing MATE analysis of BLUE position at Ligny. NB: Battle Group #3 (Pajol’s and Exelmans’ cavalry divisions) are, “snatching the pawn,” at Balatre. Click to enlarge.

At Ligny, above, MATE has recognized that Battle Group #3 and Battle Group #4 are uniquely cavalry (and horse artillery) battle groups and are to be used differently. While Battle Group #4 is held in reserve, Battle Group #3 will snatch Balatre. Though it is valued at only 10 Victory Points, MATE realized that no enemy force could oppose it. That said, I can still hear the voice of my old chess tutor, Mr. Selz,  warning me against ‘pawn snatching’; that is grabbing a minor point that can lead to defeat because the position was not thoroughly analyzed. MATE, however, is correct in this analysis and can safely seize the objective.

While, at Antietam, Battle Group #1 (all the cavalry of the Army of the Potomac commanded by Brigadier General Alfred Pleasonton) is frozen ‘in reserve’. This is not a case where MATE can snatch a pawn. MATE looked at the situation and said, ‘nope’, there are no unattended Victory Points to snatch and there is not an open flank to exploit so, the default setting is ‘in reserve’.

This leads to the interesting conundrum: what exactly was the Union cavalry at Antietam doing? Honestly, I had never really thought of it before. Now, when I look into the question I find, Was McClellan’s Cavalry Deployment at Antietam Doctrinally Sound? This monograph argues that McClellan massing his cavalry in the center for a great coup de grâce exploitation of a breakthrough across the Middle Bridge was acceptable within the framework of Jomini’s theories as taught at West Point before the Civil War. But, then it is countered with this:

In Landscape Turned Red, Stephen Sears has this to say: Shortly before noon, McClellan had ventured to push several batteries across the Middle Bridge, supported by Pleasonton’s cavalry and a force of regulars from George Syke’s Fifth Corps. He was nervous about the move-it was taken against the advice of Porter and Sykes-and he cautioned Pleasonton not to risk the batteries unduly. As an afterthought, he asked, “Can you do any good by a cavalry charge?” Pleasonton wisely ignored the suggestion. – Sears, Stephen, Landscape Turned Red: The Battle of Antietam, New York: Ticknor and Fields, 1983. page 271. (as cited in above)

Would a great massed cavalry attack across Middle Bridge have been suicide? Or brilliant? For the first time in memory I took the 1st edition of McClellan’s Own Story off the shelf and discovered… nothing. McClellan died suddenly of heart failure just as he was writing about Antietam and his memoirs end abruptly with very little insight into his side of the story. But, using cavalry to support horse artillery – rather than the other way around – seemed a bit odd.

I do not know of any other great cavalry charge in the American Civil War than Sheridan at Five Forks (above). Is this what McClellan envisioned at Antietam? Would it have worked? Could American Civil War regiments have formed square against a massed cavalry charge?

Moving on, let’s drill down to the Course of Action (COA) for Blue Battle Group #3 (Burnside’s IX Corps) at Antietam:

MATE tactical analysis for Blue Battle Group #3 at Antietam (Burnside’s IX Corps). Screen shot. Click to enlarge.

The author walking across Burnside’s Bridge in 1966 (age 12).

The above is MATE’s output that concludes with the COA for Burnside’s IX Corps. Perhaps, the greatest mystery of the battle of Antietam is what took Burnside so long to take this bridge (now forever linked with his name)? It is true that there were numerous, futile and bloody attempts to cross it. Note that MATE, above, recognizes the bridge as a critical Choke Point. When MATE sees a Choke Point that is within the enemy’s control (see statement #8, above, “Chokepoint (bridge) is under Red’s Range of Influence ROI = 5958″ and 5,998 is very high ROI value) it brings up artillery (see statements #9, #10, #11, #12, above). All the artillery in the IX Corps is to be within 630 meters of the objective. Why 630 meters? Because at that distance it is guaranteed a 50% accuracy rate. This rate, by the way, was set in the Army Editor:

The accuracy curve for the 1st Division, IX Corps artillery as set in the Army Editor. Screen capture. Click to enlarge.

So, MATE says 5)I apologize but I find it easier to describe how the AI works using such phrases as ‘thinks’, ‘says’, and ‘decides’. It’s not worth straining over. Trust me, “My objective is a Choke Point. I’m not sending my units into a meat grinder. I’m sending artillery to a point where they are guaranteed a 50% accuracy per volley and have a clear 3D Line of Sight to the target. This is how I’m going to project as much force as I can at the objective.” War is about force projection. MATE knows this. Is this a better plan than what Burnside actually did? Yeah, it is a lot better with a far greater probability of success. I’ve stood on that plain just east of Burnside’s Bridge and thought that nine batteries of 12 lb. Napoleons aimed at the crest of that hill just beyond the bridge would provide a substantial amount of force projection and covering fire. About half an hour of force projection followed up with an infantry assault would probably take the bridge.

I once described good AI as: Don’t do anything stupid, fast. MATE is doing that. I think MATE is on the way to beat most human opponents because humans do stupid things, fast.

We’ll see. Should be an interesting journey.

References

References
1 MATE: Machine Analysis of Tactical Environments
2 see http://riverviewai.com/download/SidranThesis.pdf
3 a flank that is attached to or protected by terrain, a body of water, or defended fortifications.
4 see pages 45-6 http://riverviewai.com/download/SidranThesis.pdf
5 I apologize but I find it easier to describe how the AI works using such phrases as ‘thinks’, ‘says’, and ‘decides’. It’s not worth straining over. Trust me

A Human-Level Tactical Artificial Intelligence at Ligny

Map 159 from the superb, “West Point Atlas of the Napoleonic Wars,” (Esposito & Elting, 1999, Stackpole). Scanned from the author’s collection. Click to enlarge.

The seeds of Napoleon’s defeat at Waterloo were sown two days earlier at his victory near Ligny. Napoleon needed to surround and completely remove the Prussian army as a viable force on the battlefield. Instead, they escaped to Wavre in the north and resurfaced at the worst possible time on Napoleon’s right flank two days later at Waterloo.

MATE1)Machine Analysis of Tactical Environments 2.0 is now capable of analyzing the battle of Ligny, June 16, 1815 from both the Blue (L’Armée du Nord on the offensive) and Red (Prussian on the defensive) positions. (MATE is the AI behind General Staff: Black Powder. For more information about MATE see these links).

The Ligny map was donated by Glenn Frank Drover. Jared Blando is the artist. Ed Kuhrt did the elevation, roads and mud terrain overlays. The unit positions are from the West Point Atlas of the Napoleonic Wars (above) and from David Chandler’s Waterloo: The Hundred Days. If any one has a better source for unit positions, please contact me directly.

Screen capture of the Ligny scenario in General Staff. Elevation and slope layers enhanced.

Below is MATE’s analysis from the Blue (L’Armée du Nord) perspective. MATE correctly identifies the key positions and realities of the battlefield:

  • Red is on the defensive
  • Red has an exposed flank
  • There are two key choke points on the route to Red’s exposed flank

MATE then creates an appropriate Course of Action (COA) for Blue:

  • Battle Group #1 (The French III Corps) is assigned the flanking maneuver.
  • Battle Group #0 (The Imperial Guard) is assigned the objective of St. Amand with the support of Battle Group #4 (IV Corps cavalry and reserve artillery).
  • Battle Group #2 (IV Corps) demonstrates against Ligny.
  • Battle Group #3 (The Cavalry Reserve) seizes Balatre and a crucial bridge located there.

MATE’s analysis of Blue’s position at Ligny. Screen capture. Click to enlarge.

A log of MATE’s thought processes, with my commentary, follows:

Text output of MATE’s analysis of Blue’s position at Ligny. Click to enlarge.

MATE also analyzed Ligny from the Prussian (Red) perspective:

Screen capture of MATE’s analysis of Ligny for Red (Prussian army). MATE recognizes the two choke points on the route of the enemy’s flank attack and dispatches cavalry units to cover these critical areas. Click to enlarge.

MATE, analyzing the Prussian (Red) position correctly recognizes that it is on the defensive, it has an exposed flank, there are two crucial choke points on the route that Blue will take on its flanking maneuver and dispatches two cavalry units to cover the bridges. A log of MATE’s thought processes, with my commentary, follows:

Text output of MATE’s analysis of Red’s position at Ligny. Click to enlarge.

Critique of MATE’s analysis:

As the author of MATE any critique I have of its performance should be taken with a grain of salt (also, see this video). If I was back in academia I would put together twenty or thirty Subject Matter Experts (SMEs), set up a double blind web site, get all the SME’s solutions to the problem, and compare their solutions to MATE’s. If they match to a statistical significance it proves the ‘human-level’ part. But, I’m not in academia anymore and you’ll just have to take my word for it. That said, MATE did what I expected it to do.

It first sussed out if it was on offense or defense and what it had to do to win.

Then, as Blue, MATE discovered a back door to Red’s position and ordered a classic enveloping maneuver. MATE assigned Blue Battle Group #1 the task of implementing the flanking maneuver. Blue Battle Groups #0, #4 and #2 are the fixing force. See my paper, Implementing the Five Canonical Offensive Maneuvers in a CGF Environment (free download here) for details and algorithms.  The Blue Cavalry Reserve is given the COA to seize the town of Balatre. This, in my opinion, is a pretty good tactical plan.

When MATE finds itself on defense, as it does as Red at Ligny, one of the first things it does is ask itself, “how would I attack myself?” So, of course it finds the back door right away. Then it compiles a list of available units that are not actively engaged in holding crucial parts of a defensive line, selects the optimal (fastest) units and assigns them orders to defend the crucial choke points. This was a better plan than Field Marshal Gebhard Leberecht von Blücher had. So, again, I’m going to argue that MATE is operating at a ‘human-level’.

As always, please feel free to write me with the questions or comments. MATE is going to take a look at Antietam next.

References

References
1 Machine Analysis of Tactical Environments

A Human-Level Tactical Artificial Intelligence at Bull Run

West Point Atlas Map 20; the situation near Manassas & Centreville, July 20, 1861. Click to enlarge. From the Library of Congress; original source.

I‘ve been looking for interesting tactical problems for MATE1)Machine Analysis of Tactical Environments 2.0 to solve and I found a good one after reading William C. Davis’s Battle at Bull Run.2)1995, Stackpole Books,  Mechanicsburg, PA The actual battle (called 1st Bull Run by the Union who named battles after nearby waterways and 1st Manassas by the Confederates who labeled battles from nearby geographic features and cities) was a tragicomedy fought on July 21, 1861 in which both commanders (Irvin McDowell for the Union and P. G. T. Beauregard for the Confederates) had little control of their own forces after their initial battle orders were given. Indeed, the battle came down to a series of charges up and down Henry Hill with units committed piecemeal as they arrived on the field. Large elements of both armies were never committed. All in all, not a particularly interesting tactical situation for MATE to analyze.

However, the tactical position the day before (see West Point Atlas map #20, above) is quite a different situation. The Union army is massed at Centreville (Washington, D. C. is off the map, about 30 miles to the east). The two armies are separated by Bull Run which can only be crossed at eleven fords and bridges. Confederate general Beauregard is certain that McDowell’s attack will be almost due south from Centreville and will cross Bull Run at Mitchell’s and Blackburn’s fords. He has assembled almost all of his forces there. This is a tactical situation of which avenues of attack are open and which are closed.

Troop positions and topographical data fed to MATE for this analysis come from the McDowell Map, below:

Map of the battlefield of Bull Run, Virginia. Brig. Gen. Irvin McDowell commanding the U.S. forces, Gen. [P.] G. T. Beauregard commanding the Confederate forces, July 21st 1861 from the Library of Congress. Click to enlarge.

MATE’s assessment of this situation from the Confederate (RED) perspective is below. I use a program called the AI Editor (which, ironically, doesn’t actually edit AI) to observe what MATE is thinking and seeing.

Screen shot of the AI Editor. Click to enlarge.

The left window contains a series of predicate statements, conclusions and inferences. Predicate statements to MATE are simple factual statements that MATE knows to be true; e. g. statement #4: The enemy needs 300 Victory Points to win is a basic factual statement. MATE can combine statements (such as #4 and #5: The enemy currently controls 125 Victory Points) to come to a logical conclusion (indicated by beginning the new statement with logical symbol ”∴” or therefore): #6∴ The enemy needs to seize 175 more Victory Points.

The left window is divided into two windows of scrolling text. I printed out the complete list of all statements and conclusions and added commentary (below) so you can follow the thread of MATE’s thought processes:

List of premises and conclusions with commentary from MATE’s analysis of Manassas. Click to enlarge.

The right window shows the graphic output of some of MATE’s views of the battlefield (see Layers: Why a Military Simulation Is Like a Parfait). In the above screen shot it is displaying the terrain and elevation layers of the map plus all RED and BLUE forces. The yellow line is how MATE would attack if it were BLUE. Yes, that is correct. MATE analyzes its own defensive position by planning to attack it from the enemy’s perspective. The yellow line (the path using the road net) is how it would turn its own flank. It was this analysis that triggered the creation of statement #31: I have an exposed flank! To see the complete algorithm click here (PDF). The Red line is the optimal route of the 30th Virginia Cavalry to Sudley Ford indicated on the screen by the black box labeled CHOKE POINT.

MATE’s analysis of Manassas certainly appears to be a reasonable analysis and solution to this tactical problem.  It also generated a COA (Course of Action) ordering a regiment of cavalry to secure a critical choke point. This, in fact, was better than Confederate General Beauregard’s actual performance.

Is there more work to do? Certainly. MATE uses heuristics. Here is the classic definition of heuristics: “A heuristic function, also simply called a heuristic, is a function that ranks alternatives in search algorithms at each branching step based on available information to decide which branch to follow.”

Here is my definition of a heuristic: a function that groks3)to understand profoundly and intuitively from Heinlein’s Stranger in a Strange Land the problem. MATE uses dozens of heuristic algorithms. MATE is pretty good at discovering – and pouncing – on an exposed flank. MATE groks exposed flanks. MATE also groks interior lines, the high ground, the road net, and constricted avenues of attack and retreat. That may not be a long list but it ticks more boxes than most 19th century generals.

References

References
1 Machine Analysis of Tactical Environments 2.0
2 1995, Stackpole Books,  Mechanicsburg, PA
3 to understand profoundly and intuitively from Heinlein’s Stranger in a Strange Land

General Staff will Ship in 2022

A few of Grant’s unsuccessful attempts to take Vicksburg. Map from West Point Atlas of American Wars. Library of Congress. Click to enlarge.

Grant took Vicksburg on his sixth attempt. He first tried a direct movement, east of the Mississippi, against the city but was forced to turn back after Confederate General Van Dorn’s raid destroyed his supply base. Sherman next attempted a direct assault and failed at Champion’s Bluff. Grant then tried to cut Vicksburg off from the Mississippi by digging a great canal across the neck of a giant oxbow. Unusually low water levels in the river that year caused another failure. Grant also tried more canal digging and river clearing at Lake Providence and the Yazoo Pass without luck.

Col. Theodore Lyman, a staff officer of the Army of the Potomac, wrote of Grant, “He habitually wears an expression as if he had determined to drive his head through a brick wall, and was about to do it. I have much confidence in him.”

Grant finally succeeded with his brilliant amphibious landing south of Vicksburg followed by a series of ‘must win’ battles that concluded with besieging the city on May 22, 1863. Confederate General Pemberton surrendered Vicksburg on July 4, 1863.

The General Staff: Black Powder Wargaming System is comprised of four separate programs: the Army Editor, Map Editor, Scenario Editor and the actual Game Engine, itself. The first three have been done for some time (it’s what I use to produce scenarios for testing the AI). They were written in C# using Microsoft’s Windows Presentation Foundation (WPF) which is often used for creating desktop business applications. This decision made sense because the Army, Map and Scenario Editors function not unlike a suite of business applications that create and share data with a common look and feel. However, while WPF was a good development decision for the Editor programs it turned out not to be a great tool for creating the Game Engine.

A flow chart of the General Staff: Black Powder Wargaming System. Files created in the Army Editor and the Map Editor are combined in the Scenario Editor to create a scenario or simulation. Click to enlarge.

What the Game Engine does is it takes data created in the three Editor programs, displays them in a visually exciting way, enables the user to make input (orders), and simulates those orders (as well as the AI’s orders) and the resulting combat to the highest degree of accuracy possible. That sounds like a lot, but it really isn’t. And the heavy lifting that the Game Engine is being asked to do is all visual: making everything look good on the screen.

Recently, I’ve been looking at Grand Tactician: Civil War which is an immersive voyage into 19th century American typography, cartography, tactics and grand strategy. I eagerly look forward to having the time to do more than gaze upon it in amazement 1)Full disclosure, the developers were kind enough to give me a review copy of Grand Tactician and, damn, it looks fantastic.. I reached out to Ilja on their development team and he convinced me that we should complete the General Staff Game Engine in Unity (which is what they used for Grand Tactician). What they accomplished visually with Grand Tactician was precisely the look and feel that I wanted for General Staff 2)I’m talking about the typography and the UI, not thousands of tiny 3D soldiers on the battlefield; which look really great, but, General Staff is not that kind of a wargame..

Consequently, we are officially announcing that we are abandoning writing the General Staff: Black Powder Game Engine in WPF and, instead, will be creating it using the Unity engine. We believe that this will produce a far superior visual experience 3)Please note: we will not being using Unity to create a 3D simulation with tiny soldiers. I like playing those kind of games, but that’s not what General Staff is..

Because Unity is designed to facilitate the creation of computer games, this move will greatly accelerate the completion of the General Staff Game Engine and will allow us to ship General Staff: Black Powder this year.

I am certainly not U. S. Grant, though I like to think I have some of that bulldog determination. Like Grant before Vicksburg, I’ve had to acknowledge that our first attempt will not succeed and we’re moving on to another plan. I am sorry for the delay in the release of General Staff and am confident that, with Unity, we will soon be reporting some good news.

I am also very excited to announce that my good friend, Damien, will be joining the team to specifically work in Unity completing the General Staff Game Engine. Damien lives in Ireland and has been a devout wargamer since playing Arnhem on the ZX Spectrum. When not enjoying a Guinness or a Jamesons, he’ll be playing tabletop or computer games, whether that means pushing cardboard counters across hex boards, drawing LOS between badly painted miniatures on the tabletop, or day-long sessions in front of a computer – where he particularly enjoys playing against a challenging, non-cheating AI. Damien is a 28 year veteran of the IT industry, having worked on everything from telecoms, healthcare and financial systems, across Mainframes, Linux, Unix and Windows, and co-inventor of two messaging system patents. He has a particular passion for language processing and domain specific languages, originating from his interest in the elegance of recursive descent compiler construction.

References

References
1 Full disclosure, the developers were kind enough to give me a review copy of Grand Tactician and, damn, it looks fantastic.
2 I’m talking about the typography and the UI, not thousands of tiny 3D soldiers on the battlefield; which look really great, but, General Staff is not that kind of a wargame.
3 Please note: we will not being using Unity to create a 3D simulation with tiny soldiers. I like playing those kind of games, but that’s not what General Staff is.