Hi
The project aims to construct a multi-agent solution accompanied by a learning mechanism. Tasks are spawned depending on the state of the game and each task is assigned a coalition with a composition of unit types. The agents are constantly attempting to fulfill the requirements of a unit composition according to their capabilities. The final result will consist of an AI capable of improving its compositions and agent reactions as new information is learned over the course of multiple matches. This learning process will result in more wins for the AI over time.
What are Coalitions?
A coalition is a group of agents assigned to a common task. Each coalition is assigned a target composition which must be satisfied by the agents before the coalition is activated.
What are Compositions?
A StarCraft player's strategy revolves around achieving a specific unit type composition in order to take advantage of the opponent's weaknesses and win the game. The composition contains information regarding its effectiveness at accomplishing certain tasks or engaging another composition. This information is used to improve the composition across multiple games. Upon failure, a composition is capable of noting the reason for failure and improving itself in that direction.
What are Agents?
Each unit in the game is represented by an agent capable of acting autonomously according to the unit's capabilities. The set of decisions that an agent can make are directly mapped to a unit's possible actions.
What are Tasks?
The most essential aspect of the solution is to formalise a set of tasks capable of representing any abstract intention that a player might have. There are two super-tasks which represent the most abstract intentions.
Attack : An Attack task is initialised with a composition and a target location. The task is complete when the designated location's enemy score is below a certain threshold. The death of all units in the assigned coalition leads to failure of the task.
Defend : If an agent is not assigned to any coalition, it will automatically take part in defending. A Defend task ends when the match is over, with its success depending on whether the player has won or lost the game.
Scout : Sends a unit to gather information from a specified location.
Expand : Expanding is essential in increasing income. Town Hall agents are capable of initiating this task by looking at the worker saturation levels at the respective mining location.
In addition, a set of sub-tasks are used in order to aid the execution of the super-tasks.
CreateCoalition : Creates a new coalition for the specified task with an applicable composition.
CreateUnit : Creates a coalition capable of producing a specified unit and commands the coalition to train the unit.
ResearchTech : Equivalent of CreateUnit but for technology and upgrades.
SatisfyRequirement : Called by CreateUnit and ResearchTech whenever the requirements for the requested game entity have not yet been met.