Myriarch Combat Simulator

Myriarch attempts a precise real-time simulation of pre-gunpowder tactical warfare. Myriarch is © 2012–2017 by Christoph Nahr but available for free download under the MIT license.

Overview

Myriarch simulates tens of thousands of soldiers as independent physical objects, advancing in 100 msec increments. The simulation comprises the following subsystems and features:

  • Physics — Movement with acceleration and turning, distinction of facing and direction, semi-elastic collisions that can cause damage, and accumulation of “push mass” throughout the ranks when two phalanges clash.
  • Combat — Weapon cooldown for repeated attacks, hit chance based on target size, partial body armor, shields that respect facing, and combat bonuses against colliding or routed units.
  • Morale — Gained or lost from successful attacks, then averaged among nearby friendly units, reduced by nearby hostile units that aren’t routed. May generate mass panics or rally fleeing troops.

The entire simulation is recorded in memory and optionally to disk, and can be replayed as desired. Please note that you cannot issue orders or otherwise influence the simulation. Myriarch currently ships with one demo scenario based on the Battle of Leuctra (Sparta vs Thebes, 371 BC).

Although a complete and working application, Myriarch still lacks many desirable features: varied terrains and elevations, multiple unit types and weapons including ranged attacks, documentation of simulation internals, more scenarios, etc.

The following screenshot shows the overstrength Theban left clashing with the Spartan right at the Battle of Leuctra. As you can see, Myriarch is a simple desktop application with abstract graphics.

Leuctra Clash

System Requirements

Myriarch requires Oracle JRE 8 Update 66 with JavaFX 8 or later, or an equivalent Java runtime environment. Windows users should consult Oracle Java on Windows to avoid Oracle’s unfortunate default Windows JRE. Please see the following for more information:

  • The ReadMe file contains usage information and the copyright notice.
  • The WhatsNew file contains the annotated version history of the project.
  • You can also find some Implementation Notes on my weblog.

Copies of the ReadMe & WhatsNew files are included with both download packages. The integrated help system explains the various displays and controls.

Download Files

  • Binary & Source Package: version 2.0.0, released on 18 June 2017

Binary PackageMyriarch.zip (668 KB, ZIP archive)

Myriarch requires no installation. Simply extract the contents to any directory of your liking, then study the enclosed ReadMe file for further instructions.

Source PackageMyriarchSource.zip (1.72 MB)

You need NetBeans 8.2 and Oracle JDK 8u131 to load the included project files. The source package also contains a prebuilt Javadoc class reference.

The source package contains two Myriarch projects, one for the JavaFX GUI and one for the simulation algorithms. This “core” project conforms to the Compact 2 profile of Java 8, and so could be used on any platform that supports a fairly minimal Java 8 installation.

The current version of Myriarch includes version 6.0.1 of my Tektosyne library. Tektosyne is also available as a separate download, but this is not required to run or compile Myriarch.