Game AI, Summer 2013:
Project 2. microRTSx

Due: 6/10/13 at 11:55pm

Your second assignment for Game AI will be to focus on team AI for a simple RTS game called microRTSx. You can download the latest version of the microRTSx game here: http://code.google.com/p/micrortsx/. Startup documentation is included in microRTS/documentation to point to relevant classes, the architecture setup, how to run agent code or tournaments, etc.

This is intentionally an open--ended assignment; your goal is to write 'the best' AI possible - where 'best' means achieving the highest success rate possible in 1v1 battles. A good pointer for AI building can be personality modeling according to Richard Bartle's four types of players (http://en.wikipedia.org/wiki/Bartle_Test) in which the AI can follow certain patterns explained by this model. While generalization is expected in this assignment goal motivation can be used by the designer to drive its AI in order to reach optimality and victory in games. For instance the AI can be more oriented towards economic/resource gathering based victories, 'brute force' victories, or specific tactics that can work on a general scale. It is up to the designer to determine what is the optimal goal for victory in general scenarios and to model its AI accordingly.

You will be tested against an AI bot in maps with several conditions. Do not make assumptions about map size, fog of war, or allowed units; your approach should be general for both the easiest condition (1 unit type, small map, no fog of war) and difficult (all unit types available, large map, fog of war). We will only test in the 1v1 case (no 1v1v1 or team battles). While the microRTSx package contains an example bot to show how the engine works, it should be used as reference only. We highly encourage you to test against it, but you should not copy the code or wrote design. Originality in your design and implementation is expected for this assignment.

We will be testing your code with the native XML files; so do not make any assumptions about new units, changes in the game conditions, etc.

One of the skills involved in this class is learning how to deal with integration issues with pre-existing engines. You are responsible for obtaining the code and using the resources provided with the competition. Please use Piazza for all online conversations and questions for the class community.

You will be given a little over 2 weeks for this assignment with suggested milestones:

Hints

Writeup

Include a .txt or .pdf file that describes the following:

Submission

Submit via T-Square your entire microRTS folder in a zip file with your writeup (in .txt or .pdf format). The zip file should be named <last name>.<first name>.GAIsu2013.zip (e.g. 'lee-urban.s.GAIsu2013.zip'). No late submissions will be accepted (see the policy in the syllabus).

Grading

This project is worth 20% of your final grade.