Этот год трансформировал многие процессы, изменились традиции, привычки. Поменялся ритм, появилась дополнительная неопределенность и напряженность. Но душа IT-специалиста требует разнообразия, и многие разработчики нас спрашивали — будет ли ежегодный чемпионат Russian AI Cup? Будет ли анонс? Какая тема грядущего чемпионата? Брать ли отпуск?
Не без изменений, но в лучших традициях. Накануне старта мы анонсируем один из крупнейших онлайн-чемпионатов современности по программированию искусственного интеллекта — Russian AI Cup. Приглашаем войти в историю!
История чемпионата началась в 2012 году. Каждый год мы в Mail.ru Group совместно с Codeforces придумываем игровую задачу для разработчиков со всего мира. Цель — реализовать на любом языке программирования стратегию или бота, который будет играть в виртуальном мире за своего создателя против других ботов. Ежегодно в чемпионате участвует около 2 000 человек.
Кто один раз участвовал, тот уже не может пропустить новое событие. Бывших участников не бывает. Поскольку между Russian AI Cup перерыв в один год, разработчики участвуют в других подобных инициативах, например, в Mini AI Cup или других международных платформах, таких как CodinGame. Сформирована уже целая культура. Про все прошлые чемпионаты вы можете вспомнить или прочитать в других статьях. Ссылки будут в конце.
Теперь про Russian AI Cup (или RAIC): CodeCraft — соревнование этого года.
Расписание чемпионата
Принять участие можно в любой день чемпионата, но есть этапы:
- Бета-неделя (28 ноября).
- Песочница (5 декабря и до конца соревнования).
- Первый раунд (12 — 13 декабря).
- Второй раунд (19 — 20 декабря).
- Финал (26 — 28 декабря).
Традиционно чемпионат открывается тестовой неделей (бета-неделя). В это время участники пробуют задачу на вкус, а мы проверяем, что всё работает, и исправляем ошибки, баланс и любые другие найденные проблемы. Всё, что нужно — загрузить код со стратегией в систему. Система запуска будет искать соперника для вашей стратегии, покажет визуально, как велась игра, и определит победителя сражения.
Песочница начинается сразу после беты и длится до конца соревнования. По рейтингу за первую неделю отбираются участники в первый раунд. Если не получилось пройти в первый раунд, вы можете продолжить улучшать свою стратегию и бороться за призы Песочницы до конца чемпионата. Кроме того, лучшие стратегии Песочницы тоже попадают в финал.
После каждого этапа сложность игры увеличивается. Добавляются дополнительные объекты, взаимосвязи между ними и правила. Всё это заранее описано в документации.
Тем, кто попал в первый раунд, необходимо будет улучшить свою стратегию до старта раунда. Лучшие участники первого раунда проходят во второй, а из второго — в финал.
Таким образом, в финал можно попасть двумя путями — по основной ветке или через Песочницу. Выбор за вами!
Призы
В прошлые года победители получили от нас технику (макбуки, айпады, часы и жесткие диски). Кроме того, на память мы вручили 60 толстовок и 360 футболок.
К сожалению, участники предыдущего RAIC получили футболки только почти через год (технику мы доставили). В пандемию мы были бессильны и не готовы.
В связи с этим мы думали, чтобы отменить мерч в этом соревновании, но на нас обрушился шквал негодования. «Не нужны промокоды или другие виртуальные призы, нужны футболки и толстовки» — цитирую сообщество.
Изменение 1: призы теперь не физические, а денежные. В этом году победители получат:
- 1-е место — 250 000 руб.
- 2-е место — 200 000 руб.
- 3-е место — 150 000 руб.
- 4-е место — 125 000 руб.
- 5-е место — 100 000 руб.
- 6-е место — 75 000 руб.
Победители песочницы (тоже 6 человек) получат по 10 000 рублей каждый. Суммы указаны после вычета налогов. Мы значительно увеличили призовой фонд.
Изменение 2: футболки и толстовки будут, но доставка будет не раньше февраля. Если вы не хотите ждать, то сможете обменять свой поощрительный подарок на промокод в сервисах Mail.ru Group (облако и др.).
Все участники второго раунда получат футболки, а участники финала — толстовки.
CodeCraft
В 2017 году мы пытались сделать игру, похожую на StarCraft. Называлось соревнование тогда CodeWars. Сделали мы в итоге Total War с ядерными ударами по бутербродам (кто играл, тот поймет).
Через два года вернулись к идее создать стратегию, но уже с элементами экономики. Я, например, вдохновлялся Stronghold Crusader, Empire Earth и другими классическими стратегиями.
В нашей игре CodeCraft вам предстоит управлять набором юнитов, строить здания, собирать ресурсы и атаковать противников. Мы надеемся, что новая игра вам понравится.
Полные правила игры будут доступны в момент открытия беты, поэтому здесь я опишу основной сценарий действий и ключевые объекты в игре.
Игру можно будет скачать и поиграть локально. Версии доступны для Linux, MacOS и Windows.
Программировать стратегии можно будет на большинстве ЯП: C#, C++, D, F#, Go, Java, JavaScript, Kotlin, Python, Ruby, Rust и Scala.
Основные сущности
Есть фиксированный набор типов сущностей в игре, и сущности одинаковых типов имеют одинаковые свойства:
- Ресурс — единственная сущность, которой нельзя управлять. Её можно только собирать.
- Юнит-строитель. Основная цель этого юнита — добывать ресурсы и строить здания.
- Юнит ближнего боя. Базовый юнит, наносящий урон в ближнем бою.
- Юнит дальнего боя. Наносит урон на расстоянии.
- База строителей/юнитов ближнего боя/юнитов дальнего боя — эти здания позволят купить новых юнитов соответствующего типа. Могут быть построены строителем.
- Стена — маленькое здание, блокирующее проход для противника.
- Дом — здание, производящее еду.
- Турель — здание, способное атаковать врагов. Не имеет возможности двигаться.
Мы решили не добавлять много разных юнитов или объектов на карту, поскольку это не разнообразит стратегии, а усложнит игру.
Карта
Тема у нас космическая. Игровое поле представляет собой прямоугольную сетку, разделенную на клетки. Все игровые сущности имеют форму квадрата и находятся в целых координатах.
За расстояние между двумя клетками в игре принимается количество клеток, по которым нужно пройти, чтобы достичь цели, передвигаясь только по соседним клеткам.
Вам может показаться, что у каждого объекта есть высота. Это не так. В этот раз тоже без 3D.
Основная идея
В целом идея простая — уничтожить базу противника. Популяцию надо кормить, здания строить, юнитов покупать, а еще нужно защищаться и завоевывать другие территории.
Первым делом вы начнете собирать ресурсы (фармить) и строить здания (или покупать юниты), и сразу сражаться. Уже на этом этапе игрок выбирает, идти в развитие или в войско.
Если вашу базу атаковали и нанесли урон, то вы можете отремонтировать оставшиеся здания.
У каждого юнита или здания есть здоровье, а атакующие сущности имеют ограниченную дальность атаки.
Население нужно кормить! Дом производит еду, а некоторые ее используют. Следите за этим.
Ну и последнее — это дальность зрения. Если включен туман войны, ваша стратегия увидит лишь те сущности, которые расположены не дальше заданного расстояния от какой-то из сущностей, контролируемой вами.
Специфика
Туман войны будет доступен только в Раунде 2.
В финале игры будут 1 на 1, а до него 1 против 3.
Все правила и сущности будут доступны в Песочнице.
И да — вспоминайте простой алгоритм A*. Он вам пригодится.
Сообщество
Присоединяйтесь к нашему дружному сообществу в Telegram. Мы общаемся и отвечаем друг другу на вопросы. Ждём вас!
Игра, языковые пакеты и полные правила будут доступны 28 ноября в 00:00 МСК.
Желаем веселья, интереса и удачи!
Полезные ссылки
Статьи
Путь к победе на Russian AI Cup 2012
Путь к серебряной медали на Russian AI Cup 2012
Танковые маневры на Russian AI Cup
Видео
Процесс написания стратегии
Russian AI Cup. Tactics Field
Russian AI Cup. Code of tanks
Пример стратегии
Пример стратегии
Статьи
Russian AI Cup: технические детали
Золотая медаль на Russian AI Cup 2013 — как это все было
Видео
Пишем ИИ для Russian AI Cup
Статьи
Russian AI Cup 2014: стратегия победителя
Разработка стратегии игры хоккеистов в рамках конкурса Russian AI Cup
Итоги Russian AI Cup 2014
Видео
Solit 2015. Иван Поляков «Russian AI Cup 2014: создание AI для игры реального времени»
Быстрый старт: разбор от участника
Обзор стратегии
AI Cup 2015 News: выпуск 01, выпуск 02, выпуск 03, выпуск 04, выпуск 05, выпуск 06, выпуск 07.
Статьи
История победы на ежегодном соревновании Russian AI Cup 2015
История 5-го места на Russian AI Cup 2015
Видео
Пример стратегии
Пример заезда
Статьи
Дайджест AI Cup. Пять стратегий Code Wizards 2016
Как создать лучшего бота для игры в стиле Dota — интервью с победителем соревнования Russian AI Cup
История участия (и почти победы) в Russian AI Cup 2016
Видео
Deep Learning Agent for RussianAICup 2016
Статьи
История 3 места Russian AI Cup 2017
Пример стратегии Russian AI Cup 2017
Russian AI Cup: инструментарий участника
Видео
Быстрый старт: разбор от участника
Пример стратегии
Пример стратегии
Game from Russian AI Cup 2017 CodeWizards
Статьи
История участия (и победы) в Russian AI Cup 2018 — CodeBall
История второго места в Russian AI Cup 2018: CodeBall
Russian AI Cup 2018, история 9 места
Создание бота для участия в Russian AI Cup 2018 CodeBall
Как я обучал нейросеть для реализации функции оценки положения на Russian AI Cup CodeBall 2018
Видео
Красивые моменты Russian AI Cup Codeball
Russian AI Cup 2018: My Renderer
Russian AI Cup 2018: CodeBall
Статьи
CodeSide. Новая игра для знаменитого соревнования Russian AI Cup
Мой бот для Russian AI Cup 2019
Участие и победа в Russian AI Cup 2019
2012 CodeTanks
Статьи
Путь к победе на Russian AI Cup 2012
Путь к серебряной медали на Russian AI Cup 2012
Танковые маневры на Russian AI Cup
Видео
Процесс написания стратегии
Russian AI Cup. Tactics Field
Russian AI Cup. Code of tanks
Пример стратегии
Пример стратегии
2013 CodeTroopers
Статьи
Russian AI Cup: технические детали
Золотая медаль на Russian AI Cup 2013 — как это все было
Видео
Пишем ИИ для Russian AI Cup
2014 CodeHockey
Статьи
Russian AI Cup 2014: стратегия победителя
Разработка стратегии игры хоккеистов в рамках конкурса Russian AI Cup
Итоги Russian AI Cup 2014
Видео
Solit 2015. Иван Поляков «Russian AI Cup 2014: создание AI для игры реального времени»
Быстрый старт: разбор от участника
Обзор стратегии
AI Cup 2015 News: выпуск 01, выпуск 02, выпуск 03, выпуск 04, выпуск 05, выпуск 06, выпуск 07.
2015 CodeRacing
Статьи
История победы на ежегодном соревновании Russian AI Cup 2015
История 5-го места на Russian AI Cup 2015
Видео
Пример стратегии
Пример заезда
2016 CodeWizards
Статьи
Дайджест AI Cup. Пять стратегий Code Wizards 2016
Как создать лучшего бота для игры в стиле Dota — интервью с победителем соревнования Russian AI Cup
История участия (и почти победы) в Russian AI Cup 2016
Видео
Deep Learning Agent for RussianAICup 2016
2017 CodeWars
Статьи
История 3 места Russian AI Cup 2017
Пример стратегии Russian AI Cup 2017
Russian AI Cup: инструментарий участника
Видео
Быстрый старт: разбор от участника
Пример стратегии
Пример стратегии
Game from Russian AI Cup 2017 CodeWizards
2018 CodeBall
Статьи
История участия (и победы) в Russian AI Cup 2018 — CodeBall
История второго места в Russian AI Cup 2018: CodeBall
Russian AI Cup 2018, история 9 места
Создание бота для участия в Russian AI Cup 2018 CodeBall
Как я обучал нейросеть для реализации функции оценки положения на Russian AI Cup CodeBall 2018
Видео
Красивые моменты Russian AI Cup Codeball
Russian AI Cup 2018: My Renderer
Russian AI Cup 2018: CodeBall
2019 CodeSide
Статьи
CodeSide. Новая игра для знаменитого соревнования Russian AI Cup
Мой бот для Russian AI Cup 2019
Участие и победа в Russian AI Cup 2019