Guide: How to participate on a Geometry Friends Game AI competition?


Card image cap
Pick a competition from the competitions page!

  1. The name of the competition. Clicking it will lead you to a page showing you additional details of the competition.
  2. You can only submit to Open competitions, which means before their end date.
  3. If you don't have a copy of the Geometry Friends game, you can download the pack. This includes the game, a starting agent for you to build upon and the specific public levels (world) of the selected competition. (Note that even when downloading a pack from an old competition, the downloaded game will always be the most recent version, which may result in inconsistent results when testing old levels)
  4. If you already have an up-to-date copy of the game, you can simply download the world file and place it in the GeometryFriendsGame/Release/Levels folder.
  • Please note that every competition is divided into two main stages, and that the final score is the sum of the scores obtained in both stages:
    • before the competition ends, every submission will only be evaluated on the competition's public levels, and the score will be only an indication of the agent's performance. Participants may submit as many times as they like during this stage;
    • after the competition ends, every submission will be automatically evaluated on the remaining levels, that is, on the competition's private levels. The obtained score will be the final score. No further submissions are allowed.
  • Public levels are levels you have access to before the competition ends. Private levels are made publicly available afterwards. Private levels prevent rewarding of overfitting agents.
  • All dates are in Lisbon time.

Card image cap
Create your first agent!

  • After extracting the competition pack, go ahead and open the solution file (.sln) in your favourite C# editor (e.g. Visual Studio, Monodevelop).
  • Be sure to add the GeometryFriends.exe as an existing project to your solution by right clicking your solution in your IDE and selecting Add... Add Existing Project.
  • Afterwards, set the newly added GeometryFriends project as a startup project by right clicking on it and selecting Set As Startup Project.
  • Even without making any changes, you should be able to build and run your solution.
  • Inside the game, select your agents in the Options and test them in the Agents Only section.
  • While developing an agent, make sure not to put any additional files in the 'Content', 'Levels' or 'Results' folders.
  • Visit our parent's site knowledge base to know more details on how you can build and run your agents.

Card image cap
Prepare your submission!

  • If you think you have what it takes to destroy your opponents, it's time to zip your source code.
  • Create a zip file containing your agent's files: '.sln', '.proj', '.cs', etc. Make sure your ".sln" and ".proj" are in the root directory of the ZIP file.
  • If you have a simple solution and didn't place any additional files anywhere inside the GeometryFriendsGame folder, then you can exclude the folder from your zip file.
  • Don't worry about your agent's '.dll' file because we are going to compile your solution ourselves!
  • On the other hand, if you have a more complex solution where you needed to place files anywhere inside the GeometryFriendsGame folder (e.g. dll's of dependencies) then you can include everything in your zip file. Just make sure everything can be built as is.
  • If you are unsure, you can always use one of the provided packaging scripts:
    • "windows_packaging_script.bat" on Windows (requires 7zip installed and on the PATH environment variable)
    • "linux_and_macos_packaging_script.sh" on a Bash shell, in Linux or MacOS
  • The script will generate a zip for you that you can use to submit. You can open the scripts and see what they are doing ;)

Card image cap
Submit!

  • Go back to the competition you wanted to submit to in the competitions page and this time click on 'Submit an agent'.
  • If you aren't logged in, the above action will lead you to a login page. If you don't have an account yet, be sure to Sign Up.
  1. Pick the platform you used when developing your solution. This is to avoid problems with platform specific dependencies. Mac users should be fine selecting Linux
  2. Browse for the zip file you created in the previous step and select it for upload
  3. Also upload a 2-4 pages report (in pdf format) containing a description of your solution using the IEEE Manuscript Templates for Conference Proceedings
  • Both of these files will be made publicly available after the competition ends.
  • Remember that you may submit multiple times to a given competition BEFORE ITS END DATE, but only your last (most recent) submission will matter for your final score.

Card image cap
Check your performance!

  • Going back to the competition you submitted to in the competitions page, click on 'Scoreboard'.
  • Note that the results of your submission will not be made available instantly. You might even have to wait hours to see your updated results, so don't panic if you see a big fat zero after your name.
  • For more details on the status of your submission, go to your profile page by clicking on your username in the top right corner of the navigation bar.
  • Your submission may have one of the following status messages:
    • 'new': this means the server hasn't processed your submission yet, so your score will be zero (for now)
    • 'processing': the server has picked up your submission! Hit that refresh button to see your score increasing over time
    • 'handled public': the server has evaluated your agents on the public levels of the competition. You may come back later when the competition ends to know how your agent fairs in the private levels. Note that this doesn't mean you didn't have any runtime errors. If you did, an error log will be available to download right next to the status message
    • 'handled all': the competition is finished and your agent has been fully evaluated. Whatever score you have is your final score
    • 'overridden': if you placed another submission for the same competition, the previous submission will be marked as overridden. Remember that you can submit multiple times, but only your last submission will count for the final score
    • '* error': your submission failed completely. This can include the extraction, compilation, etc. Make sure to check how the server processes your submission. If you experience a 'server error', try to re-submit. If you keep getting the 'server error', contact the competition organizers.
  • Check two sample error logs that may show up:

Card image cap
Generating submission videos (OPTIONAL)

  • The system is also capable of generating videos of any handled submissions that didn't fail (e.g. that didn't get an error such as an extraction error, compile error, etc.)
  • This is done in the scoreboard by clicking on the button marked in the picture above. It is only possible to request videos of your own submissions.
  • Once a video is requested, it will take some time for the videos (one for each level of the competition) to be available in the expanded scoreboard of the submission.
  • If the competition isn't finished yet, only videos corresponding to the public levels will be made, which is why most of the time it will only make sense to request videos at the end of a competition.
  • Currently, this can only be done once per submission. This means that if you request videos before the competition ends, you'll only get videos of the public levels and will NOT have the videos for the private levels. However, if a competition hasn't finished yet, you can simply re-submit, wait for the results and then request another video.
  • Note that the videos may have very low framerate. This is normal.

Card image cap
Want to know more?

  • Be sure to check out our parent site.
  • It has more information and details on:
    • how you can write your agents
    • run them using the command line
    • create your own levels
    • view results of competitions held before 2018
    • and much more!