В последние дни осени Кубок России по искусственному интеллекту устремляется в светлое будущее, полное умных роботов. Если вы не слышали о Кубке — это ежегодный чемпионат по программированию искусственного интеллекта, организованный Mail.Ru Group и My.com.

Сделано в игровой форме ради наглядности и простоты. Вкратце, участники создают алгоритм, описывающий стратегию игры. Получившийся бот сражается с другими ботами. Лучший из них побеждает в раунде. И все эти раунды организованы в один турнир.

С одной стороны, основная механика игры настолько проста, что позволяет разработать рабочую стратегию за пару часов (для быстрого старта в чемпионате вы можете заглянуть здесь и найти небольшой туториал). С другой стороны, это можно описать популярной фразой легко научиться, трудно освоить. Алгоритм можно бесконечно улучшать, чтобы достичь совершенства, и ваши соперники будут делать то же самое. Итак, приглашаем вас стать волшебником и сразиться на средневековом поле боя в AI MOBA-игре CodeWizards!

Обо всем по порядку.

Две команды сражаются друг против друга на карте особого дизайна. Каждый игрок управляет одним персонажем. Конечная цель игры — разрушить главное здание команды противника, используя персонажей и юниты, управляемые компьютером. Мы создали собственное поле боя, здания, джунгли и текстуры, вдохновленные Riot Games и Valve. Самые важные активы в игре — это чемпионы (волшебники) и миньоны!

Расписание турнира

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

Расписание выглядит так:

  • первый этап — с 26 ноября 2016 г. по 27 ноября 2016 г.;
  • второй этап — с 10 декабря 2016 г. по 11 декабря 2016 г.;
  • третий этап (заключительный) — с 17 декабря 2016 г. по 18 декабря 2016 г.

Между раундами «песочница» выходит в онлайн, где вы можете оттачивать свою игровую стратегию.

Правила

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

Чтобы понятнее понять механику процесса, ознакомьтесь с краткой версией правил чемпионата. Полную версию вы можете посмотреть на нашем сайте.

Мир игры двухмерный. Все агрегаты имеют форму круга. Игровая площадка ограничена квадратом, левый верхний угол имеет координаты (0.0, 0.0), длина стороны 4000.0. Ни одна живая единица не может покинуть эту область.

Время в игре дискретно и измеряется в «тиках». В начале каждого такта игра получает желаемые действия магов в этом такте из стратегий и обновляет статус магов в соответствии с этими желаниями и ограничениями мира. Затем в этом тике рассчитываются изменения мира и объектов, и процесс повторяется с обновленными данными. Максимальная продолжительность любой игры составляет 20000 тиков. Но игра может быть прекращена досрочно, если команда добилась цели одной из фракций или стратегии всех участников «упали». Стратегия «Падший» больше не может контролироваться магом.

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

В мире CodeWizards есть 6 классов юнитов, некоторые из которых делятся на типы: маги; ракеты (волшебная ракета, ледяная стрела, огненный шар и дротик); бонусы (усиление, ускорение и щит); постройки (база фракции и сторожевая башня); миньоны (орк-тесак и фетиш с дротиками); деревья.

Волшебники, здания, миньоны и деревья — живые юниты. Основными характеристиками каждой живой единицы являются текущее и максимальное количество жизненной энергии. В общем, когда жизненная энергия равна нулю, юнит считается мертвым и удаляется из игрового мира. Маги - единственные живые существа, у которых есть регенерация здоровья. Каждый тик они автоматически восстанавливают определенное количество жизненной энергии. Скорость регенерации — действительное число, как правило, меньше единицы. Маг считается погибшим, если целая часть его жизненной энергии падает до нуля.

Каждые 750 тиков база каждой фракции генерирует 3 отряда миньонов: по одному на каждой линии. Каждый отряд состоит из трех орков и одного фетиша. Отряд немедленно устремляется к базе противоположной фракции, атакуя всех врагов на пути. Маги используют миньонов как пушечное мясо. Они стараются оставаться в безопасной зоне и атакуют противника на расстоянии.

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

Каждые 2500 тиков на карте может появляться бонус. Если на карте есть хотя бы один бонус, новый не создается. Бонус появляется в случайно выбранной точке из двух доступных: (1200, 1200) или (2800, 2800). Если какая-либо из этих точек возрождения уже занята магом, симулятор пытается создать бонус в другой точке из списка. В случае неудачи создание бонуса будет отложено до конца интервала.

Столкновение живых существ между собой, а также с пределами карты не допускается игровым симулятором. Если расстояние от центра живого юнита до центра ракеты меньше или равно сумме их радиусов, то живой юнит получает урон, а ракета удаляется из игрового мира. Если это огненный шар, он взрывается и наносит урон всем живым существам поблизости. Если расстояние от центра мага до центра бонуса меньше или равно сумме их радиусов, то маг приобретает магический статус в зависимости от типа бонуса за 2400 тиков.

Как принять участие

Участвовать может любой, кто знает один из этих языков: C++, C#, Java, JavaScript, Python (2.x и 3.x), Ruby, D, Scala и Pascal. Подробнее здесь.

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

Новая графика

У этого чемпионата в этом году юбилей — он уже пятый. Это означает, что мы постарались сделать все идеально. В прошлом году у нас было всего две принципиально разные модели автомобилей. На этот раз у нас есть три разных персонажа, каждый из которых имеет как минимум пять уникальных анимаций. Мы добавили динамическое освещение, что добавило картинке красоты. Мы сосредоточились на мире, в котором происходят события. Чемпионат погружает зрителя в темный лес, населенный магами, орками и волшебными башнями, которые стреляют, взрываются и рушатся под натиском стратегии игрока… Но посмотрите сами.

И на десерт

В этом году победитель получит MacBook Pro. Второе и третье места получат MacBook Air и Apple Ipad. Кроме того, четвертое, пятое и шестое места получат памятные призы. Также памятные призы получат участники, которые будут лучшими в режиме «песочницы» во время чемпионата. По традиции все финалисты получат худи с символикой чемпионата, а все участники второго тура – ​​футболки.

Мы вложили душу в CodeWizards 2016. Надеемся, что наше небольшое превью заинтересовало вас, и вы попробуете свои силы в написании стратегий. На сайте чемпионата вы найдете полную версию правил и рекомендаций по созданию алгоритма. Также вы можете зарегистрироваться на этом сайте. Увидимся на поле боя!