С 2012 года ежегодно проводится соревнование Russian AI Cup по написанию искусственного интеллекта и ботов, которые ожесточенно сражаются в виртуальном мире вместо своих владельцев. За все прошлые чемпионаты на платформе зарегистрировалось более 40 000 пользователей, которые прислали нам более 150 000 различных решений. Каждый новый чемпионат — это новая игровая задача со своими правилами, законами и механикой. Стараемся постоянно вносить новые идеи и фичи, чтобы игры из года в год становились еще более интересными и зрелищными, развивая наш мотор под капотом проекта и делая всё во славу нашего сообщества.

Этот год не стал исключением. Mail.Ru Group в сотрудничестве с Codeforces.com официально объявляют о датах чемпионата Russian AI Cup 2018 под названием CodeBall.

Итак, поехали!

Задача


Традиционно, до анонса чемпионата мы стараемся держать сообщество в неведении. Нас пытали, ругали, но мы, как партизаны, не раскрывали cекретные данные чемпионата, вместо этого подогревая всех вбросами картинок и своими мыслями. На неофициальном канале соревнования создали опрос, где участники пытались отгадать по наводкам организаторов суть нового RAIC 2018.



Многие ребята были близки, некоторые отгадали (но об этом им не говорили). Теперь все карты на столе, пора вскрываться.

Задача посвящена футболу. Мы очень не хотели повторить игру 2014 года CodeHockey. Нас вдохновила динамичная игра Rocket League, а также прошедший чемпионат мира.

На этот раз решили сделать игру не в 2D, а реально в 3D (с использованием 3D моделей).



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

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

Во вторых, квикстарт. Максимально подробно всё опишем и поделимся с вами. В этом чемпионате порог входа будет ниже. Старались учесть пожелания сообщества.

Улучшили саму платформу проведения и инфраструктуру. Теперь движок работает из Docker. Это позволило разместить свои инстансы в облаке Mail.Ru Cloud Solutions. Теперь все решения будут обсчитываться на современном железе, а именно на 200 ядрах Intel Xeon E5-2660 v4. Поработав с ними через интерфейс MCS, мы ощутили всю мощь этой платформы, поэтому лагов быть не должно, а скорость обсчета решений будет выше, чем прежде.



Итак, какой футбол и почему роботы?

Игровой мир находится в космосе, на астероиде, курсирующем по галактике. На нем построен стадион и поле, на котором бегают роботы и пинают мяч. Цель — выиграть матч, т.е. забить больше всего голов за N тиков (единица времени в игровом мире).





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



Сделали специально для вас: в футбол можно будет играть прямо в браузере.





Чемпионат состоит из двух раундов и финала.

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



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



В третьем раунде (финал) у каждого игрока станет больше футболистов. Сколько — сейчас тоже не скажем.

Результат игры не зависит от случайных факторов. Мы не добавляли тряску астероида, хотя хотелось :)

Пользуясь случаем, хочу поблагодарить Виталия Кудасова (@kuviman), Михаила Мирзаянова (@MikeMirzayanov) и всю команду чемпионатов за созданную игру.

Расписание


  1. Песочница: 17 декабря — 5 января;
  2. Первый раунд: 5 — 6 января;
  3. Второй раунд: 19 — 20 января;
  4. Финал: 26 января.

В начале любого Russian AI Cup соревнование начинается в бета-режиме. За это время возможны изменения баланса, устранение ошибок, оптимизация инфраструктуры. Кроме того, перед финалом (за неделю) также могут появиться изменения в правилах.

Ничего не изменилось и в принципах отбора стратегий в первый раунд. С 17 декабря по 5 января работает песочница, из которой будут отобраны по рейтингу стратегии для первого раунда. В случае победы рейтинг растёт, в случае проигрыша — уменьшается.

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

Подарки


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

  • 1-е место — MacBook Pro.
  • 2-е место — MacBook Air.
  • 3-е место — Apple iPad.
  • 4-е место — Samsung Gear S3.
  • 5-е место — WD My Cloud 6 TB.
  • 6-е место — WD My Passport Ultra 4TB.

Для топ-6 победителей песочницы у нас заготовлены WD My Passport Ultra 2TB (но их тоже можно заменить).

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

Присоединяйтесь к сообществу


Теперь самое время пойти и подписаться на анонс. Мы обязательно напомним вам о начале чемпионата.

Ждем всех в Telegram-чате, Telegram-канале и группе в VK. Добро пожаловать в ряды!

Полезные ссылки
2012 CodeTanks
Статьи
Путь к победе на Russian AI Cup 2012
Путь к серебряной медали на Russian AI Cup 2012
Танковые маневры на Russian AI Cup

Видео
Процесс написания стратегии
Russian AI Cup. Tactics Field
Russian AI Cup. Code of tanks
Пример стратегии
Пример стратегии

2013 CodeTroopers
Статьи
Russian AI Cup: технические детали
Золотая медаль на Russian AI Cup 2013 — как это все было

Видео
Пишем ИИ для Russian AI Cup

2014 CodeHockey
Статьи
Russian AI Cup 2014: стратегия победителя
Разработка стратегии игры хоккеистов в рамках конкурса Russian AI Cup
Итоги Russian AI Cup 2014

Видео
Solit 2015. Иван Поляков «Russian AI Cup 2014: создание AI для игры реального времени»
Быстрый старт: разбор от участника
Обзор стратегии
AI Cup 2015 News: выпуск 01, выпуск 02, выпуск 03, выпуск 04, выпуск 05, выпуск 06, выпуск 07.

2015 CodeRacing
Статьи
История победы на ежегодном соревновании Russian AI Cup 2015
История 5-го места на Russian AI Cup 2015

Видео
Пример стратегии
Пример заезда

2016 CodeWizards
Статьи
Дайджест AI Cup. Пять стратегий Code Wizards 2016
Как создать лучшего бота для игры в стиле Dota — интервью с победителем соревнования Russian AI Cup
История участия (и почти победы) в Russian AI Cup 2016

Видео
Deep Learning Agent for RussianAICup 2016

2017 CodeWars
Статьи
История 3 места Russian AI Cup 2017
Пример стратегии Russian AI Cup 2017
Russian AI Cup: инструментарий участника

Видео
Быстрый старт: разбор от участника
Пример стратегии
Пример стратегии
Game from Russian AI Cup 2017 CodeWizards

Комментарии (35)


  1. sat2707
    06.12.2018 17:44
    +6

    Огонь!


    1. TimsTims
      07.12.2018 16:16

      Пенальти!


  1. lookuut
    06.12.2018 17:54
    +1

    Да начнется игра!


  1. wasil
    06.12.2018 18:41

    Хабр — эффект видимо. Сайт не открывается(


    1. dagen
      06.12.2018 18:54

      Да, russianaicup.ru что-то приуныл


      1. sannikovdmitry Автор
        06.12.2018 19:29

        вроде сейчас все ок!)


  1. robo2k
    06.12.2018 19:46

    3D как-то мне не очень по нраву. Сложность резко увеличивается.


    1. marsermd
      06.12.2018 19:55
      +2

      Если вы видели предыдущие соревнования, то должны понимать, что модель игрового мира стала гораздо проще чем раньше (шарики, пинающие шарики, кайф же!)


      Ну и прикольно всёже 3д делать:)


    1. sannikovdmitry Автор
      06.12.2018 20:11

      Будет проще :)


    1. Femistoklov
      07.12.2018 08:39

      Особенно учитывая, что всё приходится писать вручную, без сторонних сборок и утилит.


      1. DragoonXen
        07.12.2018 11:35

        Мне вот, кстати, интересно, чем бы помогли сторонние сборки/утилиты?) Ну и никто не запрещает опенсорс к себе в код тянуть


        1. Femistoklov
          08.12.2018 08:07

          Тем, что там могут быть подходящие классы/структуры, не включённые в стандартную библиотеку, например?


  1. Disee
    06.12.2018 21:33
    +1

    можете огласить какие языки будут поддерживаться?


    1. tongohiti
      07.12.2018 01:14

      Rust дадите? Желательно свежий, а не прошлогодний…


    1. DragoonXen
      07.12.2018 11:00

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

      2017.russianaicup.ru/p/packs


  1. d-sky
    07.12.2018 08:36

    Пожалуйста, сделайте localrunner

    • либо без исходников;
    • либо с исходниками на всех языках;
    • либо со встроенными функциями для «рисования».

    В предыдущий раз были исходники на C++ и это дало огромное преимущество тем кто пишет на плюсах.


    1. DragoonXen
      07.12.2018 10:08

      В Russian AI Cup почти всегда исходники были на java. И java при этом побеждает не чаще популярного C++ (хотя прошлый контест, пожалуй, исключение. Всё топ 3 — java. ИМХО из-за сложности управления в игре. На Java куда проще написать много кода без сегфолтов).

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


      1. d-sky
        07.12.2018 10:38

        Я последний раз внимательно следил за Mini AI Сup#2 — потратил 2 полных дня чтобы переписать локалраннер. 2 дня — это очень много, это огромное преимущество, учитывая что все пишут ботов после работы\учебы.

        Собственно, исходники были на плюсах, и что было в финале?


        1. DragoonXen
          07.12.2018 10:55
          +1

          Мини аи кап #2 это не предыдущий раик, и даже не последний мини аи кап. Но это всё же отдельная тема.

          Я писал Мини аи кап #2 на С++ и потратил точно не меньше 2 дней на перенос локал раннера к себе в код (и даже больше). Даже того кода, который помогал править я. В том виде, в котором существует код в локал раннере, он обычно не юзабелен.

          Ну и на чём бы ни были исходники — если игра относительно простая и требует большого кол-ва рассчётов (а в агариках было так) — увидим +- такую же картину в финале по языкам.

          Всё ещё не вижу огромного преимущества.

          На сим «спор» можно закончить, на чём бы ни были исходники — фаворитом в ближайшем будущем будет С++, где-то рядом Java и C#. У последних тем больше шансов, чем сложнее логика, которую нужно реализовать. И тем меньше, чем более требовательна эта логика к скорости вычислений.


  1. d-sky
    07.12.2018 10:35

    Ждем открытия песочницы


  1. Tsvetik
    07.12.2018 10:58

    Опять будет какой-нибудь неудобный «физический» движок, который еще надо умудриться подключить к своему ЯП?


    1. DragoonXen
      07.12.2018 11:01
      +1

      Не путайте mini ai cup и russian ai cup. Тут такого ещё не было, да и там это признали неудачным опытом.

      Не могу отвечать за организаторов, но на 99% уверен, что не будет


      1. Tsvetik
        07.12.2018 11:10

        Ну надеюсь на это.


    1. BingoBongo
      07.12.2018 11:10

      Физика для сфер легко делается без всяких движков


      1. Tsvetik
        07.12.2018 11:23

        Даже для сфер вопрос в том насколько глубока физика в игре.
        Чтобы мяч не скакал по полю как резиновая бомба, либо он должен иметь какую-то упругость, либо поле должно быть упругим, либо среда должна быть вязкой. Последнее — самое простое.
        Еще даже у шара может быть момент инерции или даже три момента, и вытекающие из него фокусы с «крученым» мячом.
        Это все очень интересно, но скорее всего физика будет проста как в Agar.IO, а упор будет сделан на AI футболистов


      1. 4eyes
        07.12.2018 15:28

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


    1. sannikovdmitry Автор
      07.12.2018 11:54

      Нет. В Mini Ai Cup задумка с движком была не очень удачная.


  1. onlydance521
    07.12.2018 12:12

    Моделирование это так интересно, спасибо!


  1. onlydance521
    07.12.2018 12:18

    Спасибо за пост!


  1. onlydance521
    07.12.2018 12:34

    Спасибо за пост!


  1. Rhombus
    07.12.2018 13:11

    Эх, перекрывается по времени с halite, придется пропустить.


    1. sannikovdmitry Автор
      07.12.2018 13:11

      halite пропустить?)


      1. Rhombus
        07.12.2018 13:15

        вот уж нет, я уже до первой тридцатки добрался


        1. sannikovdmitry Автор
          07.12.2018 13:21

          дерзай!)


  1. kokorins
    07.12.2018 17:05
    -1

    Пролеты над стадионами… (С)