Russian AI Cup 2020 — новая игра-стратегия для разработчиков

lccrpynunbyrcvkh1v7lxtgdhdu.jpeg

Этот год трансформировал многие процессы, изменились традиции, привычки. Поменялся ритм, появилась дополнительная неопределенность и напряженность. Но душа 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 — соревнование этого года.

Расписание чемпионата


Принять участие можно в любой день чемпионата, но есть этапы:

  1. Бета-неделя (28 ноября).
  2. Песочница (5 декабря и до конца соревнования).
  3. Первый раунд (12 — 13 декабря).
  4. Второй раунд (19 — 20 декабря).
  5. Финал (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 с ядерными ударами по бутербродам (кто играл, тот поймет).

xsvwevpfnssomsqt-cjae6cuwb0.gif

Через два года вернулись к идее создать стратегию, но уже с элементами экономики. Я, например, вдохновлялся Stronghold Crusader, Empire Earth и другими классическими стратегиями.

В нашей игре CodeCraft вам предстоит управлять набором юнитов, строить здания, собирать ресурсы и атаковать противников. Мы надеемся, что новая игра вам понравится.


Полные правила игры будут доступны в момент открытия беты, поэтому здесь я опишу основной сценарий действий и ключевые объекты в игре.

Игру можно будет скачать и поиграть локально. Версии доступны для Linux, MacOS и Windows.

Программировать стратегии можно будет на большинстве ЯП: C#, C++, D, F#, Go, Java, JavaScript, Kotlin, Python, Ruby, Rust и Scala.

Основные сущности


Есть фиксированный набор типов сущностей в игре, и сущности одинаковых типов имеют одинаковые свойства:

  • Ресурс — единственная сущность, которой нельзя управлять. Её можно только собирать.
  • Юнит-строитель. Основная цель этого юнита — добывать ресурсы и строить здания.
  • Юнит ближнего боя. Базовый юнит, наносящий урон в ближнем бою.
  • Юнит дальнего боя. Наносит урон на расстоянии.
  • База строителей/юнитов ближнего боя/юнитов дальнего боя — эти здания позволят купить новых юнитов соответствующего типа. Могут быть построены строителем.
  • Стена — маленькое здание, блокирующее проход для противника.
  • Дом — здание, производящее еду.
  • Турель — здание, способное атаковать врагов. Не имеет возможности двигаться.


Мы решили не добавлять много разных юнитов или объектов на карту, поскольку это не разнообразит стратегии, а усложнит игру.

Карта


Тема у нас космическая. Игровое поле представляет собой прямоугольную сетку, разделенную на клетки. Все игровые сущности имеют форму квадрата и находятся в целых координатах.

a526d112cf744c98806edc55fb764353.png


За расстояние между двумя клетками в игре принимается количество клеток, по которым нужно пройти, чтобы достичь цели, передвигаясь только по соседним клеткам.

Вам может показаться, что у каждого объекта есть высота. Это не так. В этот раз тоже без 3D.

Основная идея


В целом идея простая — уничтожить базу противника. Популяцию надо кормить, здания строить, юнитов покупать, а еще нужно защищаться и завоевывать другие территории.
Первым делом вы начнете собирать ресурсы (фармить) и строить здания (или покупать юниты), и сразу сражаться. Уже на этом этапе игрок выбирает, идти в развитие или в войско.

Если вашу базу атаковали и нанесли урон, то вы можете отремонтировать оставшиеся здания.

У каждого юнита или здания есть здоровье, а атакующие сущности имеют ограниченную дальность атаки.

Население нужно кормить! Дом производит еду, а некоторые ее используют. Следите за этим.


Ну и последнее — это дальность зрения. Если включен туман войны, ваша стратегия увидит лишь те сущности, которые расположены не дальше заданного расстояния от какой-то из сущностей, контролируемой вами.

Специфика


Туман войны будет доступен только в Раунде 2.

В финале игры будут 1 на 1, а до него 1 против 3.

Все правила и сущности будут доступны в Песочнице.

И да — вспоминайте простой алгоритм A*. Он вам пригодится.

Сообщество


Присоединяйтесь к нашему дружному сообществу в Telegram. Мы общаемся и отвечаем друг другу на вопросы. Ждём вас!

Игра, языковые пакеты и полные правила будут доступны 28 ноября в 00:00 МСК.

Желаем веселья, интереса и удачи!

Полезные ссылки

© Habrahabr.ru