- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Механика

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

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

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

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

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

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

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

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

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

Расписание

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

Призы

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

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

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

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

Поехали?

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

Полезная информация

  1. Статья Алексея Дичковского (@DragoonXen [9]) — «Mini ai cup 2 или почти AgarIO — что можно было сделать для победы» [10]
  2. Статья Александра Гусева (@Geotyper [11]) — «Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети» [12]
  3. Статья Александра Гусева (@Geotyper [11]) — «Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети (часть 2)» [13]
  4. Статья Александра Гусева (@Geotyper [11]) — «Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети (часть 3)» [14]
  5. Статья Александра Гусева (@Geotyper [11]) — «Создание бота для участия в AI mini cup. Опыт применения GPU» [15]

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

  1. Алексей Дичковский (@DragoonXen [9]) — «Mini ai cup 2 или почти AgarIO — что можно было сделать для победы» [10]
  2. Александр Гусев (@Geotyper [11]) — «Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети» [12], « (часть 2)» [13], « (часть 3)» [14]
  3. Александр Гусев (@Geotyper [11]) — «Создание бота для участия в AI mini cup. Опыт применения GPU» [15]

Автор: Дмитрий

Источник [16]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/290536

Ссылки в тексте:

[1] контрибьюторов: https://github.com/MailRuChamps/miniaicups/graphs/contributors

[2] официальном сайте: https://chipmunk-physics.net/bindingsAndPorts.php

[3] Github: https://github.com/MailRuChamps/miniaicups

[4] Ситимобил: https://city-mobil.ru/

[5] aicups.ru: http://aicups.ru/

[6] @aicups: https://t.me/aicups

[7] @mrgchamps: https://t.me/mrgchamps

[8] ВКонтакте: https://vk.com/cupmrg

[9] @DragoonXen: https://habr.com/users/DragoonXen/

[10] «Mini ai cup 2 или почти AgarIO — что можно было сделать для победы»: https://habr.com/post/420737/

[11] @Geotyper: https://habr.com/users/Geotyper/

[12] «Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети»: https://habr.com/post/417311/

[13] «Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети (часть 2)»: https://habr.com/post/417657/

[14] «Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети (часть 3)»: https://habr.com/post/418549/

[15] «Создание бота для участия в AI mini cup. Опыт применения GPU»: https://habr.com/post/417757/

[16] Источник: https://habr.com/post/421397/?utm_source=habrahabr&utm_medium=rss&utm_campaign=421397