This guide describes how we run and evaluate the agents you submit to the Geometry Friends Game AI competitions.
If you are interested in knowing how to participate, please check out our guide on how to participate.
This guide is for those who:
Participants are allowed to build their agents with the aid of third party libraries. However, these may be platform specific, which is why we have two different virtual machines available:
Windows Server 2019. Uses MSBuild 15.6.85.37198 (unavailable)
This is why you need to select the platform when submitting your agent. If you don't use platform specific libraries, then it shouldn't matter which platform you choose.
Moreover, they are both configured to use the following resources:
The virtual machine based system offers great benefits in terms of fairness, such as:
After sending your submission zip file to the appropriate machine, we extract its contents using:
Windows Server 2019: the 'Expand-Archive' powershell utility (unavailable)
Afterwards, we clean up part of your submission in case you included your copy of the game. This is so we can then use our own up-to-date and untampered version of the game. This is also why we advise you not to place any additional files in game folders like "Content', "Levels" and "Results".
At this point, it is assumed that there is a ".sln" and/or a ".csproj" file in the same directory as the zip file.
To compile, 'msbuild' is called in the mentioned directory.
If nothing failed so far, a '.dll' should have been generated from the previous step, and placed automatically in the Agents folder.
Then we move to the GeometryFriends/Release directory, which will be the simulation's working directory. If you use auxiliary files and which to specify their relative path, their path should be relative to the GeometryFriends/Release directory.
To actually run your agent we use the command:
./GeometryFriends.exe -st 0 'level_number' -a 'path_to_generated_dll'
To know more about how the Geometry Friends command line utility works, head over to our guide on our parent site.
Short note: we can always use '0' as the world identifier on our machines because there will only be the world of the competition you submitted to.
After extracting the results from the machine, we compute your score using a formula described in here.
We update our database after evaluating your agent on each level, which means that you may observe your score going up (hopefully) if you manage to catch your submission in the 'Processing...' status. Just spam that refresh button!