Launch Mini AI Cup # 3. Battle machines in tight closed spaces
Since 2012, we have held an annual competition in AI programming Russian AI Cup. This year it will start a little later - not in November, but in mid-December. And for those who want to prepare or assess their level, we regularly hold mini Mini AI Cups competitions. The tasks are slightly simpler than those offered by RAIC, but no less exciting.
And today we open registration on Mini AI Cup # 3 based on Drive AHEAD.
Briefly about the previous Mini AI Cup
The last Mini AI Cup was implemented as an analogue of the much-loved game Agar.io, adapted for launching autonomous bots fighting for the opportunity to survive. It turned out to be quite large - more than 1200 new participants registered, and the number of active players exceeded 300 people. While the bots literally ate each other, participants and spectators ate buckets of popcorn. The way a bot tries to dodge, cheat, attack from the most advantageous positions, as he fears for his life and hides from opponents, involuntarily causes fear for his life through decades.
At the end of the article you will find five useful links to parsing strategies from participants.
Separately, we thank everyone for the feedback, as well as our contributors.for assistance in finalizing technical issues. We value our community and each time we try to make the championships more interesting.
Game rules of the new championship
This time the ideological inspiration for the competition was a toy called Drive Ahead - a furious mobile arcade game about battle on typewriters in tight, closed spaces. The mechanics of fighting in this game seemed interesting and non-trivial, and decided to try to repeat it for the championship.
This is what one of the playing field cards looks like. The player is asked to write a strategy for the AI, which will drive the car and try to disable the opponent’s car by pressing a special button on its body. Sounds easy? Good luck in your battle with the Mad Loaf!
A total of three cars are available: Loaf, VAZ 2108 and another secret machine, which you will see in beta test with different skins.
The machine has many parameters that can be changed. For example: drive, maximum speed, weight, wheel parameters (weight, size, position), suspension spring parameters. Currently 6 different maps are available.
Games go up to 5 deaths, the one who survived is the winner. Ties are possible. A limit was placed on top of one gaming session. If within 600 ticks (a tick is a unit of time in the game world) the winner will not be identified, the amount of garbage will start to grow on the map. To whose button the garbage gets first, he will lose.
In order to minimize the risks in developing the basic game mechanics, we decided to use the Chipmunk physics engine as a basis. This is a popular open-source cross-platform engine written in C, it is used in a variety of mobile toys, and other engines are built on it, such as Cocos2D, Apportable and Marmalade.
Chipmunk allows you to make bindings to other programming languages. The full list is presented on the official site . We run in the engine far and wide, it seemed to us quite pleasant.
The mechanics are written in Python 3.4 using the Pymunk engine and the Pyglet visualizer. At the time of the launch of the championship, the localrunner (local simulator) will be immediately available in the Github repository , but you will need to install all the dependencies for it and Python itself. Localrunner is loaded completely from the console, supports recording games, debugging output and playing with the keyboard.
An API was created for you, according to which a player's strategy written in his favorite language reads (from STDIN) changes in the state of the world in a loop and sends his actions (to STDOUT). Thus, the user interacts with the game.
During the competition, participants can create two types of game sessions: rating (a game for points, on which the list of finalists depends) and non-rating (a game “just like that” to try their strategy in action).
Machine control will be simple only at the first stage: left, right and turn off the engine. In the rating and final games to increase the number of strategies will be added new features.
We support work with Go 1.10, Java 1.8, C # Mono 4.3, NodeJS 9, C ++ 11, C ++ 17, Python 2.7 / 3.5, php7, Kotlin, Haskell, Scala, Rust and Elixir.
We tried to make adding new languages as simple as possible - we only need a Docker file with a specific pattern. If you want your favorite language to appear in the list of supported ones, just pull the request and we will test it.
Today, the maximum amount of source code for one strategy is 20 megabytes in archived form. In addition, we have another limit on the number of solutions sent per day - 20 pieces.
The full championship rules will be posted in this repository at the time the competition starts.
August 30 - the beta testing of the competition begins, the players write the first decisions in order to get comfortable and be ready for the rating games;
September 6 - rating games open;
September 20 - rating games stop, N participants with the best decisions go to the final and get a short respite to finalize their decisions (just at the weekend);
September 24 - final matches between the decisions of top players.
First place - a brand new MacBook Air;
Second and third place - Apple iPad;
Fourth, fifth, sixth places - Samsung Gear S3.
We believe that the participant has the right to ask for another gift of equivalent value in return. If you have ideas on how to upgrade the list of prizes, leave them in the comments under the article, we will be grateful.
In addition, our taxi Citimobil will compliment the TOP10 participants in the competition for a discount of 250 rubles * 20 trips / month.
All players who qualify for the final will receive brand T-shirts from our championship.
Registration is open: aicups.ru . For those who want to become part of our friendly community, we have a chat in Telegram - @aicups , the official news channel of the championships - @mrgchamps and VKontakte group .
Useful articles - analyzes from the last championship:
- Alexey Dichkovsky ( @DragoonXen ) - “Mini ai cup 2 or almost AgarIO - what could be done to win”
- Alexander Gusev ( @Geotyper ) - “Creating a bot for participation in the AI mini cup 2018 based on a recurrent neural network” , “(part 2)” , “(part 3)”
- Alexander Gusev ( @Geotyper ) - “Creating a bot to participate in the AI mini cup. Experience using GPU "