https://habr.com/en/company/mailru/blog/531374/- Mail.ru Group corporate blog
- Abnormal programming
- Entertaining tasks
- Programming
- Artificial Intelligence
This year, many processes transformed, with traditions and habits being modified. The rhythm of life has changed, and there's more uncertainty and strain. But IT person's soul wants diversity, and many developers have asked us if annual
Russian AI Cup will be held this year. Is there going to be an announcement? What is the main theme of the upcoming championship? Should I take a vacation?
Though some changes are expected, it will be held in keeping with the best traditions. In the run-up, we will announce one of today's largest
online AI programming championships —
Russian AI Cup. We invite you to make history!
The championship's history started in 2012. Every year, we at Mail.ru Group in collaboration with Codeforces invent a game problem for developers from all over the world. The goal is to implement a bot in any programming language which will play for its creator in the virtual world against other bots. Around 2,000 people take part every year.
Those who have participated once will never want to miss a new event. There are no one-time participants. As there is a one year's break between Russian AI Cup events, developers take part in similar initiatives, such as Mini AI Cup, or in other international forums, such as CodinGame. A whole culture has emerged already.
Now about
Russian AI Cup (or RAIC): CodeCraft — this year's competition.
Competition schedule
You can join on any championship day, but there are several rounds:
- Beta Week (28 November)
- Sandbox (5 December and till the end of competition)
- First Round (12–13 December)
- Second Round (19–20 December)
- Final Round (26–28 December)
The championship traditionally starts with a trial (Beta Week). During this time, competitors examine the competitive game problem, and we make sure everything is working well: correct errors, adjust the game balance and fix any issues found. All that is needed is to load the strategy code in the system. The launch system will search for an opponent for your strategy, visually display the game process and determine the winner in battle.
The sandbox starts just after the Beta and lasts until the end of competition. Competitors for the First Round are selected according to the first week's results. If you couldn't make it to the First Round, you can still refine your strategy and compete for prizes in the Sandbox until the end of championship. Moreover, the best Sandbox strategies also get to the Final Round.
Game difficulty increases after each round. More objects, interrelations between them and rules are added. Everything is described in manuals in advance.
Those who get to the First Round will need to improve their strategies before the round starts. Top competitors of the First Round get to the Second and, similarly, from the Second Round to the Final.
Thus, there are two possible ways to get to the Final Round: via the main path or via the Sandbox. The choice is yours!
Prizes
In past years, our winners received various hardware (MacBooks, iPads, watches and hard disk drives). Additionally, we presented 60 sweatshirts and 360 T-shirts as souvenirs.
Unfortunately, participants in the last year's RAIC received their T-shirts after almost a year (but we did deliver the hardware). During the pandemic, we were unprepared and could do nothing.
As such, we were considering not offering merch this time, but then we faced a storm of protest. «We don't want promo codes or other virtual prizes, we want tees and hoodies!» — that's what the community said.
Change 1: There will be cash awards instead of physical prizes. This year, the winners will get:
- 1st place: RUB 250,000
- 2nd place: RUB 200,000
- 3rd place: RUB 150,000
- 4th place: RUB 125,000
- 5th place: RUB 100,000
- 6th place: RUB 75,000
Top Sandbox players (6 players as well) get RUB 10,000 each. All amounts are after taxes. We have considerably grown our prize fund.
Change 2: There will be tees and sweatshirts, but delivery is expected not earlier than in February. If you don't want to wait, you will be able to exchange your recognition gift for a promo code applicable to Mail.ru Group's services (cloud, etc.).
All who compete in the Second Round will receive T-shorts, and sweatshirt will go to Final Round participants.
CodeCraft
In 2017, we attempted to make a game similar to StarCraft. The competition was called CodeWars that time. Finally, we made a kind of Total War with nuclear strikes on sandwiches (those who played it will understand).
Two years later, we revisited the idea of making a strategy, but that time it should have some elements of economics. As for me, for example, I was inspired by Stronghold Crusader, Empire Earth and other classic strategy games.
In our game CodeCraft, you are to control a set of units, build structures, harvest resources and attack adversaries. We hope you'll like the new game.
Full game rules will be available at time of the launch of the beta, so I'm just going to summarize the main scenario and key game objects here.
You will be able to download the game and play locally. Versions for Linux, MacOS and Windows are available.
It will be possible to code strategies in most programming languages, such as: C#, C++, D, F#, Go, Java, JavaScript, Kotlin, Python, Ruby, Rust and Scala.
Main entities
The game has a fixed set of entities, and entities of the same type have the same properties:
- Resource — the only entity which can't be controlled. It can only be harvested.
- Builder unit. Its main purpose is to harvest resources and build structures.
- Close combat unit. Basic unit that causes damage in close quarters combat.
- Long-range unit. Causes damage at a distance.
- Close combat / long-range / builder units' bases: these buildings allow you to buy new units of the corresponding type. Bases can be built by a builder unit.
- Wall — a small structure that blocks access for the adversary.
- House — a structure that generates food.
- Turret — a structure that is able to attack enemies. It's immobile.
Our decision was not to add too many different units or objects on the map as this would only complicate the game rather than diversify it.
The map
We use a space theme. The playing area represents a rectangular grid split into cells. All in-game entities are square in shape and are located at integral coordinates.
The distance between any two cells is assumed to be the number of cells which should be passed to reach the target while moving only over adjacent cells.
It might seem that every object has a height. This is not the case. No 3D this time again.
The main idea
The idea is generally simple: to destroy the enemy base. Feed the population, build structures, buy units, and you will also need to defend and conquer other territories.
The first things you will do are harvesting resources (farming) and building structures (or buying units), and you will engage in fights right away. The player is to decide where to invest in — development or troops — as early as at this stage.
If your base has been attacked and damaged, you can repair the remaining buildings.
Each unit or building has its health points, and attacking entities have a limited attack range.
The population needs to be fed! A House generates food, and some structures use it. Be aware of this.
The last thing: visibility range. If the fog of war is enabled, your strategy will only be able to see those entities which are located at the specified distance to an entity controlled by you.
Specifics
The fog of war will become available only in Round 2.
There will be 1 on 1 fights in the Final Round, and 1 on 3 fights before the Final.
All the rules and entities will be available in the Sandbox.
And yes, — remember
A* path search algorithm. It will be useful to you.
Community
Join our friendly community on
Telegram. We socialize and answer each other's questions. Have fun, play with excitement, and — good luck!