Уже несколько лет подряд мы проводим Russian AI Cup — нехилый такой конкурс для всех неравнодушных к программированию в целом, к построению ИИ, просто к написанию ботов для игр или автоматизации чего бы то ни было. Естественно, и этот год не будет исключением. Итак, Mail.Ru Group в сотрудничестве с Саратовским государственным университетом официально объявляют о дате старта Russian AI Cup 2017 и счастливы предложить задачу этого года. Жёсткие битвы, макбуки за первые места и минус полтора месяца из жизни разработчика — всё на месте, всё как вы любите. Добро пожаловать под кат за подробностями! Очень проста. Мы создаём для вас игровой мир, действующий по определённым правилам, и даём вам API. Вы же пишете на любимом языке стратегию поведения своих юнитов в этом игровом мире. В результате две стратегии разных участников запускаются в один мир и бьются друг с другом. Кто выиграл — молодец, кто нет — улучшает стратегию и ждёт реванша. Чемпионат открывается тестовой неделей. В это время возможны серьёзные изменения баланса, а команда оперативно работает с пожеланиями участников и найденными ошибками. В рамках четвёртой недели чемпионата (перед финалом) также могут появиться изменения в правилах. Перед каждым новым раундом сложность игры возрастает, а сама игра становится интереснее: добавляются новые условия и ограничения. Всё время чемпионата (с 7 ноября по 25 декабря) работает песочница, из которой и отбираются стратегии для первого раунда. Поучаствовать в песочнице очень просто: вы пишете код, реализующий определённую стратегию игры, и загружаете. Всё, готово. Рано или поздно система подберёт вам соперника и столкнёт вас лбами. В случае победы рейтинг растёт, в случае проигрыша — наоборот, уменьшается. В рамках первого раунда лучшие по рейтингу стратегии переходят во второй раунд, а из второго — в финал. Кроме того, и во второй раунд, и в финал добираются лучшие стратегии из песочницы, а значит, шанс есть всегда! По результатам финала мы выясняем, кто же лучше всех, и дарим им призы. Все победители финала получат: Кроме того, для топ-6 победителей песочницы у нас заготовлены WD My Passport Ultra 2TB — каждому. По традиции всем участникам второго раунда на память достаются футболки, а участникам финала — толстовки.  В этом году мы решили реализовать RTS. Настоящую большую RTS — много юнитов, много тактических решений в канве общей стратегии боя. Задача получилась довольно вкусной. Кстати, обратите внимание: всё, что ниже, — это не полные правила, а просто описание игрового мира, так сказать, для затравки. Полные правила, как и всегда, будут выложены в день старта соревнования — 7 ноября 2017 года. Данное соревнование ставит перед участниками задачу управления большим количеством юнитов — техники (от 500 и более). Управление сильно упрощено по сравнению с играми прошлых лет; также есть возможность отдать приказ сразу группе юнитов. Действие происходит на прямоугольной карте. Координаты юнитов — вещественные числа. Вся карта разбита на квадратные области, в каждой из которых может быть один из трёх типов местности (равнина, лес, болото) и один из трёх типов погоды (ясно, облачно, дождь). Вся техника делится на пять типов (танк, БМП, ударный вертолёт, истребитель и БРЭМ) и две группы: наземная и воздушная. Тип местности влияет на скорость перемещения, дальность обзора и незаметность наземной техники; тип погоды влияет на те же самые параметры воздушной техники.  Не приводя точных характеристик, отметим, что первые три типа техники соотносятся друг с другом по принципу «камень > ножницы > бумага > камень», а именно «танк > БМП > ударный вертолёт > танк». Цель истребителя — завоевать превосходство в воздухе, однако он не может атаковать наземные юниты. БРЭМ медленно восстанавливает прочность находящейся поблизости дружественной техники. Скорость перемещения воздушной техники значительно выше, чем наземной, однако только наземная техника может захватывать сооружения, о чём подробнее далее. Юниты в игре — это круги. У юнитов нет направления (с точки зрения симулятора игры; в рендерере, разумеется, модельки «смотрят» туда, куда перемещаются/стреляют), они могут мгновенно менять направление скорости перемещения, а также стрелять в любую сторону. Юниты автоматически атакуют противника, находящегося в радиусе стрельбы, если прошло достаточно времени после предыдущей атаки (cooldown). Игровой симулятор не допускает пересечения наземных юнитов друг с другом и пересечения воздушных юнитов одного игрока, воздушные юниты разных игроков могут пролетать друг сквозь друга. Возможности управления игровой стратегии максимально приближены к управлению обычных компьютерных игр с большим количеством юнитов, например серии Total War и других. За одно действие можно выделить прямоугольную область (со сбросом имеющегося выделения или с добавлением к нему), снять выделение с прямоугольной области, назначить юнитов в группу с порядковым номером (для быстрого выделения), отправить группу перемещаться вдоль прямой линии или повернуть формацию относительно точки на заданный угол, также доступны некоторые другие вспомогательные действия и настройки действий. Время в игре дискретное и состоит из тиков. С точки зрения игрового симулятора нет никакой взаимосвязи между тиками и реальным временем, однако для удобства и визуализации мы считаем, что секунда состоит из 60 тиков. Стратегия участника будет получать информацию о мире каждый тик, однако её возможности управления техникой ограничены несколькими действиями в секунду (что в некотором роде служит аналогом действий человека). В раунде 1 турнира условия максимально просты. Каждому игроку даётся одинаковое количество техники. Нужно максимально эффективно использовать своих юнитов, чтобы уничтожить юнитов противника. В раунде 2 турнира в игру вводятся сооружения. Сооружения — это прямоугольные области. Игрок может захватывать сооружения, просто перемещая в них свою наземную технику. Захват происходит не мгновенно. Скорость захвата пропорциональна количеству юнитов в области сооружения. Есть два типа сооружений: завод по производству техники (может производить любой тип техники по выбору игрока) и центр управления (немного увеличивает лимит количества действий стратегии в секунду). В финале в игру вводится туман войны. Радиус обзора юнитов достаточно большой. Таким образом, изменение правил не должно сильно сказаться на локальном тактическом управлении. Однако для получения информации об отдалённых участках карты стратегии будет необходимо отправлять часть техники в разведку. Туман войны распространяется только на технику противника. Таким образом, стратегии всегда доступна информация обо всех сооружениях и полная карта местности/погоды. Все игры происходят в формате дуэлей. Основная цель игры — набрать как можно больше баллов. За уничтожение каждой единицы техники противника начисляется немного баллов. Гораздо больше можно получить за захват сооружения. За полное уничтожение противника даётся значительное количество баллов. Сохраняется теоретическая возможность уничтожить противника, но в то же время проиграть по баллам, однако на практике это почти невозможно (если только обе стратегии не будут действовать как взаимосвязанные: одна поддаётся другой). Стоит отметить, что начальное расположение юнитов и сооружений, карты местности и погоды симметричны для обоих игроков. Таким образом, результат игры мало зависит от случайных факторов, в первую очередь на него влияет эффективность противостоящих друг другу стратегий. В рамках HighLoad Cup, Russian AI Cup и ML Boot Camp мы обещали, что будет интересно, и не подвели. Не обманем и в этот раз — будет действительно отлично! А теперь самое время пойти и подписаться. Мы напомним о старте чемпионата, чтобы вы точно его не пропустили.
Кроме того, у нас есть telegram-чат, telegram-канал и группа в VK, welcome! Удачи на поле боя!