company_banner

Russian AI Cup 2018: CodeBall. Зрелищное 3D соревнование



    С 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

    Mail.Ru Group

    1018,00

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

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

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

    Комментарии 38
      +9
      Огонь!
        0
        Пенальти!
        +1
        Да начнется игра!
          0
          Хабр — эффект видимо. Сайт не открывается(
            0
            Да, russianaicup.ru что-то приуныл
              0
              вроде сейчас все ок!)
            0
            3D как-то мне не очень по нраву. Сложность резко увеличивается.
              +4

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


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

                0
                Будет проще :)
                  0
                  Особенно учитывая, что всё приходится писать вручную, без сторонних сборок и утилит.
                    +2
                    Мне вот, кстати, интересно, чем бы помогли сторонние сборки/утилиты?) Ну и никто не запрещает опенсорс к себе в код тянуть
                      0
                      Тем, что там могут быть подходящие классы/структуры, не включённые в стандартную библиотеку, например?
                  +2
                  можете огласить какие языки будут поддерживаться?
                    +1
                    Rust дадите? Желательно свежий, а не прошлогодний…
                      0
                      Предположу, что +- такое же, с поправкой на то, что некоторые языковые пакеты добавляют сами участники во время конкурса

                      2017.russianaicup.ru/p/packs
                      0
                      Пожалуйста, сделайте localrunner
                      • либо без исходников;
                      • либо с исходниками на всех языках;
                      • либо со встроенными функциями для «рисования».

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

                        На мой взгляд без особой разницы, на чём они. Для использования в своём коде всё равно надо переписывать. Всё одинаково и огромного преимущества не даёт (небольшое — может быть). Исключением может быть разве что использование сторонней библиотеки при возможности её прямого подключения только в ограниченном количестве языковых пакетов.
                          0
                          Я последний раз внимательно следил за Mini AI Сup#2 — потратил 2 полных дня чтобы переписать локалраннер. 2 дня — это очень много, это огромное преимущество, учитывая что все пишут ботов после работы\учебы.

                          Собственно, исходники были на плюсах, и что было в финале?
                            +3
                            Мини аи кап #2 это не предыдущий раик, и даже не последний мини аи кап. Но это всё же отдельная тема.

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

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

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

                            На сим «спор» можно закончить, на чём бы ни были исходники — фаворитом в ближайшем будущем будет С++, где-то рядом Java и C#. У последних тем больше шансов, чем сложнее логика, которую нужно реализовать. И тем меньше, чем более требовательна эта логика к скорости вычислений.
                        +2
                        Ждем открытия песочницы
                          –1
                          Опять будет какой-нибудь неудобный «физический» движок, который еще надо умудриться подключить к своему ЯП?
                            +1
                            Не путайте mini ai cup и russian ai cup. Тут такого ещё не было, да и там это признали неудачным опытом.

                            Не могу отвечать за организаторов, но на 99% уверен, что не будет
                              +1
                              Ну надеюсь на это.
                              0
                              Физика для сфер легко делается без всяких движков
                                0
                                Даже для сфер вопрос в том насколько глубока физика в игре.
                                Чтобы мяч не скакал по полю как резиновая бомба, либо он должен иметь какую-то упругость, либо поле должно быть упругим, либо среда должна быть вязкой. Последнее — самое простое.
                                Еще даже у шара может быть момент инерции или даже три момента, и вытекающие из него фокусы с «крученым» мячом.
                                Это все очень интересно, но скорее всего физика будет проста как в Agar.IO, а упор будет сделан на AI футболистов
                                  +1
                                  Угу, за исключением пары моментов: когда мяч влетает в борт очень быстро, и когда мяч отскакивает одновременно от 2 объектов (угол поля). В одном из прошлых соревнований это было реализовано на костылях, и скорее всего, неспроста.
                                  0

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

                                  0
                                  Моделирование это так интересно, спасибо!
                                    0
                                    Спасибо за пост!
                                      +1
                                      Спасибо за пост!
                                        0
                                        Эх, перекрывается по времени с halite, придется пропустить.
                                          +1
                                          halite пропустить?)
                                            0
                                            вот уж нет, я уже до первой тридцатки добрался
                                        –1
                                        Пролеты над стадионами… (С)
                                          0
                                          3D бильярд забавно будет)
                                          кстати да вероятно среда с трением (иначе с заявленным ускорением(!) метод защиты = разогнаться поперек поля возле своих ворот перекрыв «вероятностным положением за тик» всю плоскость), предполагаю регби вместо футбола будет
                                            0
                                            ну не знаю, мне кажется наоборот будет — побыстрее от мяча избавиться :)
                                              0
                                              Это будет игра двойственная бильярду!
                                              В обычном бильярде можно придать ускорение одному шару, что бы забить все остальные. Здесь, наверное, можно будет придать ускорение всем остальным что бы забить один.

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

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