Artificial Intelligence for Computer Games
Homework #3: Arena

Due: Monday, November 25 at 23:59

Instructions

In this assignment you will develop an agent that plays the game Arena. Follow the link to the game's page on GitHub. The README at that page will tell you about how to run the game and write an agent.

To submit your agent, send your source file(s) to me by email at adam.dingle@mff.cuni.cz. You will need to modify the file agent.gd in your implementation. You may write and submit additional source files if you like, but may not modify any source files provided with the game.

I will test your agent by running it at least 3 times, using a different random seed for each game. To be fair, I will use the same random seeds when testing the agents submitted by all students.

To pass the assignment, you need to write an agent that scores at least 300 points on average in my testing games.

In your agent, you may use any Godot features you like except A* and navigation classes (i.e. the classes Astar2D, NavigationServer2D, or other classes whose names begin with Astar or Navigation).

The game runs at 60 frames per second. Your agent must always return an action before the current frame ends, i.e. within about 17 ms. If your agent takes longer than that, it will cause visible lag and I will not accept it.

You may create background thread(s) and run code there if you like, as long as they do not lag the game.

I expect that most students will write all code in GDScript. However, there is a Godot build that also supports C#. If you want to write C# code and call it from your top-level GDScript code, that is OK with me (and could potentially give you a performance boost).

Competition

The students with the top 3 average scores over my testing games will receive a bonus point on the exam.

Additionally, I will publish a list (e.g. by email) of all students whose agents scored in the top 30%, along with their average score.

Good luck with the assignment, and have fun!

Useful links