Friday, April 28, 2017

microRTS, a very simple Java implementation of an RTS game

https://github.com/santiontanon/microrts/wiki

microRTS is a very simple Java implementation of an RTS game designed to test AI techniques. The motivation to create microRTS was to be able to test simple AI techniques without having to invest the high development time that is required to start working with Wargus or Starcraft using BWAPI. Also, for some AI techniques, one needs to know the exact details of the transition function used in the game, which is not available for some of those games.
microRTS is deterministic, fully-observable and real-time (i.e. players can issue actions simultaneously, and actions are durative). For that reason, it is not adequate for evaluating techniques designed to address non-determinism or partial observability. I created it for testing, in particular, game-tree search techniques such as Monte Carlo search algorithms.
Although microRTS is designed to run without the need for a visualization (since it is not meant to be for a human to play, but for AIs), it comes with a simple visualization panel that can be used to see games in real-time. Here's a screenshot of a game in progress:
microRTS
The image shows some of the features of microRTS (more details in the GameDefinition page): the game map is a grid (that can have walls), all the units are 1x1 tiles big. The green boxes are resources, the white/grey squares are buildings, and the circles are moving units. The screenshot shows a scripted LightRush AI (that implements a quick melee unit rush) against a random AI, that just executes actions at random (as can be seen, since it simply trained a collection of workers and moved them to random places).
Maps can be defined directly in code, or using xml files.

No comments:

Post a Comment