The University of Adelaide
Assignment 2: General Games – Part 1
Core Body of Knowledge classification (http://tinyurl.com/acscbok): Abstraction
(5), Design (5), Teamwork concepts & issues (3), Data (5), Programming (5), Systems
development (3)
Due date: Week 8, Weight: 10 % of the course
1 Overview
Assignments should be done in groups consisting of five to six (5–6) students. Please use
the Groups feature in myUni. If you have problems finding a group use the Discussions
forum to search for group partners.
Each student has to take major responsibility for one of the exercises and collaborate
with the team members on the remaining exercises. Each exercise needs 1–2 students
taking major responsibility. For Exercise 4, you should have 2–3 students taking major
responsibility. The group has to make sure that the workload is evenly distributed.
2 Assignment
This assignment uses the General Video Game AI framework (GVGAI). Detailed infor-
mation about the competition and GVGAI is given at http://www.gvgai.net/. You
have to use the framework to design and execute different game playing controllers. You
can get the code at https://github.com/GAIGResearch/GVGAI. You can only use
Java for this assignment.
Assignment 2 requires that you test existing controllers and develop and improve your
own controller based on techniques covered during this course. We only consider the
Single Player Planning Track in this assignment. For a quick start, take a look at
src/tracks/singlePlayer/Test.java for an example on how to use the framework.
In this assignment, we only consider games from Training Set 1 (http://www.gvgai.
net/training_set.php?rg=1). For each exercise, you have to evaluate the considered
controllers on the following 4 games: Aliens, Boulderdash, Butterflies, Chase. Note
that each game includes 5 levels (from “lvl0” to “lvl4”), so you will be looking at 20 game
levels in total.
1
http://tinyurl.com/acscbok
http://www.gvgai.net/
https://github.com/GAIGResearch/GVGAI
http://www.gvgai.net/training_set.php?rg=1
http://www.gvgai.net/training_set.php?rg=1
The University of Adelaide
Exercise 1 Team work: who has done what? (zero points)
Just like in Assignment 1, we’d like each team member to write one paragraph about
what he or she has contributed to this assignment. We will not mark this, and it will not
have any effect on the marking of the other exercises. You might now ask, “why do this
then?” – well, through this no-stakes approach, we’d like to encourage self-regulation
within the group and cooperative learning. You can’t lose; you can only win.
Exercise 2 Existing Controllers (30 points)
For this exercise, you have to run the existing controllers “Random”, “One Step Look-
Ahead”, and “Genetic Algorithm” available at http://www.gvgai.net/sampleControllers.
php.
1. Run each of the three controllers 10 times on each of the 5 levels of each game
(20 levels in total) and report for each game level the average score and standard
deviation.
2. Change the “One Step Look-Ahead” Controller such that it looks more than 1 step
ahead. Make sure that it does not exceed the time out and try to obtain a high
performing controller.
3. Run your new “several steps ahead”-controller on each game 5 times and report
the average score and standard deviation. In the report, you must briefly describe
and justify the changes that you have made.
Exercise 3 Genetic Algorithm Controller (20 points)
Consider the “Genetic Algorithm” Controller
1. Design an evolutionary algorithm to optimise the parameter setting (GAMMA,
SIMULATION DEPTH, POPULATION SIZE, RECPROB, MUT) for the “Ge-
netic Algorithm” Controller for all levels of a considered game (5 levels). The
objective is to maximise the scores this controller achieves on these games. In the
report, you must briefly describe the algorithm and justify its design.
2. Give the best obtained parameter settings for each of the 4 games together with
the results obtained for each game and compare it to the default parameter setting
tested in Exercise 2. The comparison should be statistically meaningful (i.e. using
statistical testing methods).
Exercise 4 Your own controller (50 points)
Design your own approach for a controller. You can use any techniques that we have
covered in the lectures of the course.
• The controller should not exceed the time out, and achieve good scores. While
there is no hard requirement, it should outperform other controllers considered in
Exercise 2 and 3 on all or most games.
• As part of your final submission, in the report, provide a 1-2 page description of
your controller summarising your main design ideas. You should also report the
results it achieves on all games, including average scores and standard deviations.
2
http://www.gvgai.net/sampleControllers.php
http://www.gvgai.net/sampleControllers.php
The University of Adelaide
3 Procedure for handing in the assignment
Work should be handed in using the course website. The submission must include:
• pdf file of your solutions for theoretical assignments
• all source files (if you created any): if your code does not compile or if it is not
sufficiently well documented, we will cap the code-related marks at 50%
• descriptions and additional files as required in the statement of the exercises
• a file name README.txt that contains instructions to run the code (if any), the
names, student numbers, and email addresses of the group members
• for each group, there should be only 1 submission
Failure to meet all requirements of the ’General procedure for handing in
the assignment’ will lead to a reduction by twenty (20) marks.
Note: there will be a progress presentation session for this assignment. This is a big
opportunity for you to get feedback on your progress, and to make last adjustments for
the final submission. In these progress presentations, we are expecting each group to
briefly outline their achievements. You should not repeat what the assignment is about –
we all should know this by then. Outline your approach, your results (screenshots), and
tell us about your challenges – maybe we can help you right away.
The following link contains general information that can be helpful:
• Feedback that we have given in the past:
https://cs.adelaide.edu.au/~markus/teaching/feedback.txt
(not everything is applicable here)
3
Overview
Assignment
Procedure for handing in the assignment