Artificial War: Multiagent-Based Simulation of Combat

EINSTein is written, and compiled, using Microsoft s Visual C++, [*] uses Pinnacle Publishing Inc. s Graphics Served [ ] for displaying time-series plots and three-dimensional renderings of fitness-landscapes, and currently consists of about 150K lines of object-oriented (see below) source code.
The source code is divided into three basic parts: (1) the combat engine, (2) the graphical user interface (GUI), and (3) data collection and data visualization functions. These parts are essentially machine (i.e. CPU and/or operating system) independent and may be compiled separately. EINSTein s source code base is thus highly portable and is relatively easy to modify to suit particular problems and interests. For example, an EINSTein-based combat environment may be developed as a standalone program on a CPU platform other than the original MS Windows target machine used for EINSTein s original development. Any developer/analyst interested in porting EINSTein over to some other machine and/or operating system is tasked only with providing his own machine specific GUI as a wrap-around to the stand-alone combat and data-visualization engines (that may be provided as DLLs). Moreover, it is very easy to add, delete and/or change the existing source code, including making complicated changes that significantly alter how agents decide their moves.
At the heart of EINSTein lies the combat engine (the most important parts of which are discussed in detail below). The combat engine processes all run-time, combat-related logical decisions, and is the core script upon which multiple...