Russian AI Cup 2016 Participants to Code Ingame-Strategies for MOBA Games

In the last days of autumn Russian AI Cup is steaming forward to the bright future full of intelligent robots. In case you haven’t heard about the Cup – It is the annual championship on programming of an artificial intelligence organized by Mail.Ru Group and

It’s made in the form of a game for the sake of clearness and simplicity. Briefly, participants create an algorithm that describes a game strategy. The resulting bot is fighting with other bots. The best of them wins the round. And all these rounds are organized into one tournament.

On the one side, the main mechanics of a game is so simple that it allows to develop a working strategy in a couple of hours (for a quick start in the championship you can look here for finding a small tutorial). On the other side, it can be described with popular phrase “easy to learn, hard to master”. It is possible to improve the algorithm endlessly to achieve perfection, and so will do your rivals. So let us invite you to become a magician and battle on the medieval battlefield in the AI MOBA game CodeWizards!

About everything in sequence.

Classical battlefield of a MOBA game. Yellow selected “lines” where occur the main action of a game; Points designated the “towers” protecting these lines; In the corners – the base of the two teams.

Two teams battle against each other on a map of a special design. Each player controls one character. The ultimate goal of the game is to destroy the main building of the opposing team by using characters and units controlled by the computer. We created our own battlefield, buildings, jungles and textures inspired by Riot Games and Valve. The most important assets in the game are champions (wizards) and minions!

Champion (above) and minions (below).
Champion (above) and minions (below).

The tournament schedule

This year we have added an extra week between the first and second round. Rules of the second round differ from the first one, so it is necessary to revise your algorithm.

The schedule looks this way:

  • the first stage — from November 26, 2016 to November 27, 2016;
  • the second stage — from December 10, 2016 to December 11, 2016;
  • the third stage (final) — from December 17, 2016 to December 18, 2016.

Between the rounds “sandbox” comes online where you can sharpen your game strategy.

The rules

The main innovation this year is a cooperative game mechanics. It means that participants fight in teams, and therefore they need to consider not only the actions of the enemies, but also the actions of the allies of the round.

To understand the mechanics of the process more clearly read the short version of the rules of the championship. The full version you can watch on our website.

The game world is two-dimensional. All units have a shape of a circle. Playground area is limited by a square, the top-left corner has coordinates (0.0, 0.0), and side length is 4000.0. No living unit may leave this area.

Time in game is discrete and is measured in “ticks”. At the beginning of each tick, the game receives desired actions of magicians in this tick from the strategies and updates the status of the magicians in accordance with these desires and constraints of the world. Then the changes of the world and objects are calculated in this tick, and the process is repeated with updated data. The maximum duration of any game is 20000 ticks. But the game can be terminated early if a team achieved the goal of one of the factions or strategies of all the participants “fell”. “Fallen” strategy can no longer be controlled by the magician.

Detection of the units on the map is limited by the fog of the war. Participant’s strategy will receive the data about those units who are located within the range of view of the magician or any other unit of his faction only.

In the world of CodeWizards there are 6 classes of units, some of which are divided into types: magicians; missiles (magic missile, ice arrow, fireball and dart); bonuses (enhancement, acceleration and shield); buildings (the base of the faction and guard tower); minions (orc-cleaver and fetish with darts); trees.

Magicians, buildings, minions and trees are the living units. The main characteristics of each living unit are current and maximum amount of vital energy. In general, when the vital energy equals zero, the unit is considered dead and is removed from the game world. Magicians are the only living units that have health regeneration. Each tick they automatically regain a certain amount of vital energy. The rate of regeneration is a real number, as a rule, smaller than unit. The magicians are considered dead if the integer part of his vital energy drops to zero.

Every 750 ticks the base of each faction generates 3 minion units: one on each lane. Each unit consists of three orcs and one fetish. The unit immediately rushes through its path towards the base of the opposing faction, attacking all enemies on the way. Magicians use minions as cannon fodder. They try to stay in the safe zone and attack the enemy at a distance.

In forest zones neutral minions may sometimes appear. In general they are not aggressive, but in the case of damage to one of them all neutral minions nearby rush to the abuser, attacking anyone on the way.

Every 2500 ticks a bonus may appear on the map. If there is at least one bonus on the map, the new does not get created. The bonus appears at a randomly selected point from the two available: (1200, 1200) or (2800, 2800). If any of these spawn points is already occupied by a magician, the simulator attempts to create a bonus in other point from the list. In case of failure, the creation of the bonus will be deferred until the end of the interval.

Collision of living units among themselves and also with the map limits is not allowed by game simulator. If the distance from the center of the living unit to the center of the missile is less or equal to the sum of their radiuses, then a living unit takes damage, and the missile is removed from the game world. If the missile is the fireball, it explodes and damages to all living units nearby. If the distance from the center of the magician to the centre of the bonus is less or equal to the sum of their radiuses, then a magician acquires a magical status, depending on the type of bonus, for 2400 ticks.

How to participate

Anyone who knows one of these languages: C (pros and #), Java, JavsScript, Python (2 and 3), Ruby, D, Scala and Pascal can participate. See more on our website.

In addition, this time we have translated the rules and documentation into English. That’s why we will announce the championship among English-speaking programmers. We hope it will make battles even more diverse.

New graphics

This Championship has anniversary this year – it is the fifth one. This means we tried to make everything perfect. Last year we had only two fundamentally different models of cars. This time we have three different characters, each of which has at least five unique animations. We have added dynamic lighting, which added some beauty to the picture. We focused on the world in which the events occur. The championship immerses the viewer in a dark forest inhabited by magicians, orcs and magic towers which fire, explode and crumble under the pressure of player’s strategies… But see it for yourself.



And for dessert

This year the winner will receive a MacBook Pro. The second and the third places will receive the MacBook Air and the Apple Ipad. In addition, the fourth, the fifth and the sixth places will receive memorable prizes. Also memorable prizes will be given out to the participants, who will be the best in “sandbox” mode during the championship. According to the tradition, all finalists will receive hoodies with symbols of the championship, and all the participants of the second round will receive T-shirts.

We put the soul in the CodeWizards 2016. We hope that you are interested in our little preview, and you will try your force in writing the strategies. On the website of the championship you will find a complete version of the rules and guidelines for creating algorithm. Also you can register on this website. See you on the battlefield!