company_banner

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



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

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

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




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

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

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

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


    Идейным вдохновителем соревнования в этот раз стала игрушка под названием 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.

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

    На сегодняшний день максимальный объем исходного кода для одной стратегии — 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»

    Mail.Ru Group

    711,47

    Строим Интернет

    Поделиться публикацией

    Похожие публикации

    Комментарии 23
      +2
      Немного не понятно про пользовательские/рейтинговые игры: как тестить фичи для рейтинга, если их не будет в пользовательских играх?
      Имеет ли смысл тогда пилить старты для пользовательских игр?
        +1
        Мы будем постепенно включать рейтинговые фичи в пользовательские игры на основании сложности и интересов сообщества. Будем стараться проверить все гипотезы и запустить новые фичи в бете, поэтому имеет смысл.
        +1
        Есть ли видео с прошлого чемпионата?
          0
          Чемпионат проводится онлайн. Есть видеообзоры от участников (ссылки выше), а также игры, показанные в нашем визуализаторе. Вот прошлые aicups.ru/round/3/#ranked-games
          0
          На сколько интересная в плане ИИ была в прошлом году игра, и на сколько «убогая» в этом. Что вообще подтолкнуло выбрать эту игру?
            0
            А вот пока не понятно насколько «взлетит». Если Агарик можно было на чистых ПП написать, то здесь понадобится полный расчет физики и анализ последствий каждого действия. Может и зрелищно получится.
            + есть ощущение, что здесь можно пошалить и нейронщикам.
              +1
              Не согласен с Вами. Нам драйв понравился + порог вхождения в бете ниже, что и нужно для новичков и любителей.
              Игруха масштабируется новыми фичами, таким образом увеличивается и сложность.
              +3
              Я не буду участвовать. Подобрался коллектив таких монстров, что не протолкнуться. Некоторые отпуска берут.
                0
                Зря вы так, недооцениваете себя :( Должно быть всем интересно.
                  +1
                  Согласен с UA3MQJ насчет коллектива монстров)

                  На самом деле порог вхождения в такие чемпионаты достаточно высок, и велик фактор подготовки к ним. Если уже заготовлены либы, которые делают определенные вещи (работа с векторами, углами, примитивами геометрии + работа с картой, миром) то задача упрощается.

                  А вот с первого раза там надо написать это все, да еще и саму задачу решить)

                  Возможно неплохо было бы при скоринге иметь «лиги», например, по объему кода. Например, 1Кб, 3Кб, 10Кб, 10Кб+

                  Так конечно порождается несправедливость — 1Кб на Си и на питоне это совсем разное. С другой стороны ограничение на CPU и память сейчас тот же питон придавливают значительно
                    0
                    sannikovdmitry, а доступна ли прошлогодняя инфраструктура для тренировки/написания бота Agar.io?
                      0
                      Да, но во время основных раундов песочницы прошлых чемпионатов будут временно отключены.
                      0

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

                    0
                    Эти монстры были и год назад и два. Что изменилось в этот раз?)
                      0
                      Выросло монстров еще больше!)
                        0
                        В этот раз я знаю об их существовании. Тогда не знал. В позапрошлом соревновании хотя бы футболку заработал, хоть и косвенно. В этом ничего. Ну и вижу, что участвуя в соревновании я проседаю по работе, по дому, в замен не вырастаю, как разработчик (хотя, наверное, мог бы). Получается, что участие для меня не эффективно и фана не приносит, поэтому и отказываюсь от участия.
                        В принципе, было соревнование по хайлоаду. Вот там было интересно применить используемый в работе Erlang. Или там, где зеленые процессы могли бы развернуться. Тут же, как я понял, симуляция физики. Рулит компиляция в натив — си и компания, Erlang очень не подходит.
                          0
                          Разные соревнования — разные подходы. Чтобы стать монстром, нужна практика
                      0
                      А почему на сайте aicups.ru всё еще информация о прошлом конкурсе?
                        0
                        Уже завтра будет сайт обновлен :)
                        0
                        В предложении
                        Пока боты в буквальном смысле жрали друг друга, участники и зрители съедали ведра попкорна.
                        Не хватает ссылки на видео какого-либо интересного боя.
                        +1
                        UPD

                        Опубликованы правила и инструкция по быстрому старту в нашем репозитории Github github.com/MailRuChamps/miniaicups/tree/master/madcars

                        Поздняя публикация правил добавляет два дня к текущей бете. Таким образом, старт рейтинговых игр переносится на 8 сентября. У вас есть больше времени, чтобы обкатать ваши технические решения, а также больше узнать про физический движок Chipmunk.

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

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

                        Самое читаемое