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:
- M1: BY 5-28. Download & familiarize with codebase. Read documentation. Understand XML file specs.
- M2: BY 6-3. Have an agent that can gather resources & use units without fog of war.
- M3: BY 6-7. Support fog of war & iteratively develop tactics for resource harvesting, unit production, and attack / defense.
- M4: BY 6-9. Iterate on tactics & finish writeup.
Hints
- game/gamedef.xml has all unit and resource information
- Documentation is your friend. See
- microRTS documentation
- documentation/microRTSxDocumentation.pdf
- documentation/html/namespaces.html
Writeup
Include a .txt or .pdf file that describes the following:
- Exact instructions for how to run your agent.
- The major challenges you met during the project and how you overcame them.
- Cover the following:
- Justify the design decisions and any assumptions (related to the AI modeling) made.
- The algorithmic approach to the design and implementation of the AI.
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.
- Write-up (clarity, coverage): 5 points
- Agent design & execution (absence of bugs, rationale & execution of agent design): 5 points
- Bonus: We will conduct a round--robin tournament at the end of grading to determine the top three agents in the class. Bonus points will be given (3 pts. for #1, 2 pts. for #2, 1 pt. for #3) to the tourney winners.