Хабрахабр

Запускаем Mini AI Cup #3. Битва машин в тесных закрытых пространствах

В этом году оно начнётся немного позже — не в ноябре, а в середине декабря. С 2012 года проводим ежегодное соревнование по программированию искусственного интеллекта Russian AI Cup. Задачи немного проще предлагаемых на RAIC, но ничуть не менее захватывающие. А для тех, кто хочет подготовиться или оценить свой уровень, регулярно проводим мини-соревнования Mini AI Cups.

И сегодня открываем регистрацию на Mini AI Cup #3 по мотивам Drive AHEAD.

Коротко о предыдущем Mini AI Cup

Получилось довольно масштабно — зарегистрировалось более 1200 новых участников, а количество активных игроков превысило 300 человек. Прошлый Mini AI Cup был реализован как аналог полюбившейся многим игры Agar.io, адаптированный под запуск автономных ботов, сражающихся за возможность выжить. То, как бот пытается уворачиваться, хитрить, нападать из самых выгодных позиций, как он опасается за свою жизнь и прячется от противников, невольно вызывает опасение за свою жизнь через десятки лет. Пока боты в буквальном смысле жрали друг друга, участники и зрители съедали ведра попкорна.

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

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

Игровые правила нового чемпионата

Идейным вдохновителем соревнования в этот раз стала игрушка под названием Drive Ahead — зубодробительная мобильная аркада про битву на машинках в тесных закрытых пространствах. Механика боёв в этой игре показалась интересной и нетривиальной, и решили попытаться повторить её для чемпионата.

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

Всего доступно три машинки: Буханка, ВАЗ 2108 и еще одна секретная машина, которую вы увидите в бета-тесте с разными скинами.

Например: привод, максимальная скорость, вес, параметры колес (вес, размер, положение), параметры пружин подвески. У машины есть множество параметров, которые можно поменять. На данный момент доступно 6 различных карт.

Возможны ничьи. Игры идут до 5 смертей, тот, кто выжил — победитель. Если в течение 600 тиков (тик — единица времени в игровом мире) победитель так и не будет выявлен, то на карте начнет расти количество мусора. Было поставлено ограничение сверху на одну игровую сессию. До чьей кнопки мусор доберется первым, тот и проиграет.

Физический движок

Чтобы минимизировать риски при разработке основных механик игры, решили взять за основу физический движок Chipmunk. Это популярный кроссплатформенный движок с открытым исходным кодом, написанный на C, он используется во множестве мобильных игрушек, и на нём построены другие движки, такие как Cocos2D, Apportable и Marmalade.

Полный список представлен на официальном сайте. Chipmunk позволяет биндиться к другим языкам программирования. Мы обкатали движок вдоль и поперек, нам он показался довольно приятным.

Механика

Механика написана на Python 3.4 с использование движка Pymunk и визуализатора Pyglet. В момент запуска чемпионата localrunner (локальный симулятор) будет сразу доступен в репозитории Github, но надо будет поставить для него все зависимости и сам Python. Localrunner загружается полностью из консоли, поддерживает запись игр, вывод отладочной информации и игру с помощью клавиатуры.

Таким образом пользователь взаимодействует с игрой. Для вас создан API, в соответствии с которым стратегия игрока, написанная на любимом языке, в цикле читает (из STDIN) изменения в состоянии мира и отправляет (в STDOUT) свои действия.

В ходе соревнования участники могут создавать игровые сессии двух типов: рейтинговые (игра на очки, от которых зависит список финалистов) и нерейтинговые (игра «просто так», чтобы попробовать свою стратегию в действии).

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

Технические особенности

Поддерживаем работу с Go 1.10, Java 1.8, C# Mono 4.3, NodeJS 9, C++11, C++17, Python 2.7/3.5, php7, Kotlin, Haskell, Scala, Rust и Elixir.

Если вы захотите, чтобы ваш любимый язык появился в списке поддерживаемых, просто сделайте pull request, а мы его протестируем. Мы постарались сделать добавление новых языков максимально простым — нам понадобится лишь Docker-файл по определенному шаблону.

Помимо этого, у нас стоит еще одно ограничение на количество отправляемых решений в сутки — 20 штук. На сегодняшний день максимальный объем исходного кода для одной стратегии — 20 мегабайт в архивированном виде.

Полные правила чемпионата будут выложены в этом репозитории в момент запуска соревнования.

Расписание

30 августа — начинается бета-тестирование соревнования, игроки пишут первые решения, чтобы освоиться и быть готовыми к рейтинговым играм;
6 сентября — открываются рейтинговые игры;
20 сентября — останавливаются рейтинговые игры, N участников с лучшими решениями проходят в финал и получают небольшую передышку на доработку своих решений (как раз в выходные);
24 сентября — финальные матчи между решениями топовых игроков.

Призы

Первое место — новенький MacBook Air;
Второе и третье место — Apple iPad;
Четвертое, пятое, шестое места — Samsung Gear S3.

Если у вас есть идеи, как проапгрейдить список призов, оставьте их в комментах под статьей, будем признательны. Мы считаем, что участник имеет право попросить взамен другой подарок эквивалентной стоимости.

Кроме того, наше такси Ситимобил сделает комплимент ТОП10 участникам соревнования на скидку в 250 рублей * 20 поездок / месяц.

Все игроки, прошедшие в финал, получат фирменные футболки нашего чемпионата.

Поехали?

Регистрация открыта: aicups.ru. Для тех, кто хочет стать частью нашего дружного сообщества, у нас есть чат в Telegram — @aicups, официальный информационный канал чемпионатов — @mrgchamps и группа ВКонтакте.

Полезные статьи — разборы с прошлого чемпионата:

  1. Алексей Дичковский (@DragoonXen) — «Mini ai cup 2 или почти AgarIO — что можно было сделать для победы»
  2. Александр Гусев (@Geotyper) — «Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети», « (часть 2)», « (часть 3)»
  3. Александр Гусев (@Geotyper) — «Создание бота для участия в AI mini cup. Опыт применения GPU»
Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть