Entry Name: Stardust
Contact Person Name: Bruce Nielsen
Race in this competition: Protoss
BWAPI Version in this competition: 4.4.0
Bot Type: AIModule
Learns using File I/O: Yes
License: Modified MIT (see src/LICENSE)

Uses the BWEM-community (https://github.com/N00byEdge/BWEM-community) and FAP (https://github.com/N00byEdge/FAP) libraries.

Build instructions
------------------

The Visual Studio solution file is at src/vs/Stardust.sln. Compiling the solution produces src/vs/src/Release/Stardust.dll.

I compile using Visual Studio 2022, but it may also compile correctly in Visual Studio 2017 or 2019 with platform toolset v143 and support for C++20 enabled.

Libraries
---------

Stardust uses the following StarCraft-related libraries:

BWEM-community (see https://github.com/N00byEdge/BWEM-community)
FAP (see https://github.com/N00byEdge/FAP)

Modifications:

BWEM-community:
- Fix some crashes
- Integrate a different base finding algorithm ("jajplacer")

FAP:
- Refactoring to fit into my upgrade tracking system
- Simulate bunker repair
- Simulate kiting
- Simulate collisions
- Simulate combat through narrow chokes
- Allow target preselection
- Use edge-to-edge distance for range calculations
- Simulate cloaked units

Pre-loaded data
---------------

Starting from this tournament, Stardust makes heavy use of pre-trained pathing data for mining optimization.

All of the actual logic used for exploring and writing the path data is part of the source data included in "src", but the orchestration scripts to set up the repeated training runs with full mining saturation are not. I have therefore included a copy of my full OpenBW-based dev environment in the "mining-training" folder to make all of the training logic available to anyone who is interested.

Details about what Stardust is optimizing is available in the src/src/Workers/MiningOptimization/Readme.md file.

Also included are opponent files for the returning opponents. These were also generated by running a series of games against these opponents.
