Test and submit

Your bot is a file or a folder. Test it at home if you have the game, or here if you do not; then upload it.

What to upload

  • One Python file, bot.py (or any one .py file) that defines a Bot class.
  • A folder, zipped (.zip, .tar.gz), holding bot.py and whatever it imports.
  • A native bot: a Linux x86-64 program named bot, built against ibf.hpp. The arena has libibf_client.so, the C and C++ runtimes and nothing more exotic; the checks list any library it lacks.
mybot/
  bot.py          # the entry: defines your Bot class
  brain.py        # anything else it imports
  weights.npy     # data files, read relative to bot.py

Up to 25 MB uploaded and 100 MB unpacked, 2,000 files. Python bots run Python 3.13 with the framework and numpy. A bot has no network, one CPU and 1 GB of memory, and a home folder that is wiped after each match.

Testing at home

With Windows and Inversus on your Steam account, the framework plays your bot in the real game, as the site does:

pip install ibf-0.9.0-py3-none-win_amd64.whl   # the framework (the docs say where it is)
ibf setup "C:\Games\Inversus"                    # once: the game, made ready for bots
ibf launch                                       # start the game
ibf match mybot.py idle                          # your bot against an example, as on the site
ibf match mybot.py hunter --record               # ...and keep the recording to replay

ibf match plays in lockstep, like the arena. The user guide has the details, and ibf doctor checks your setup.

Testing here

Without the game, upload your bot and ask for test matches against the example bots (idle, random walk, hunter, painter). They are not rated, you get your bot's full log, and you can watch them live or replay them.

From upload to the leaderboard

  1. Upload Your file reaches the site, kept by its fingerprint. (here)
  2. Checks In a sealed box: it unpacks safely, its entry is found, Python compiles, a native bot's libraries are there.
  3. Qualification Real matches against example bots: it connects, takes its pad, and answers in time.
  4. Placement Its first ten rated matches; meanwhile it is listed as provisional.
  5. Rated On the leaderboard, playing around the clock.

A version that fails a step says why, with your bot's own output. A version that qualifies takes over from the one before; you can switch back to an older one at any time. A new version starts with the old one's rating but a wider margin, so it settles quickly.

The rules are short: play the game through the framework, one account each, nothing that attacks the arena or other bots.

Make your bot →