company_banner

Russian AI Cup 2017 — всем поклонникам StarCraft и C&C посвящается


    Уже несколько лет подряд мы проводим Russian AI Cup — нехилый такой конкурс для всех неравнодушных к программированию в целом, к построению ИИ, просто к написанию ботов для игр или автоматизации чего бы то ни было. Естественно, и этот год не будет исключением. Итак, Mail.Ru Group в сотрудничестве с Саратовским государственным университетом официально объявляют о дате старта Russian AI Cup 2017 и счастливы предложить задачу этого года. Жёсткие битвы, макбуки за первые места и минус полтора месяца из жизни разработчика — всё на месте, всё как вы любите. Добро пожаловать под кат за подробностями!


    Суть чемпионата


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


    Расписание чемпионата


    1. Песочница: 7 ноября — 25 декабря
    2. Первый раунд: 25—26 ноября
    3. Второй раунд: 9—10 декабря
    4. Финал: 16—17 декабря

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


    Перед каждым новым раундом сложность игры возрастает, а сама игра становится интереснее: добавляются новые условия и ограничения.


    Всё время чемпионата (с 7 ноября по 25 декабря) работает песочница, из которой и отбираются стратегии для первого раунда.


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


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


    Призы


    Все победители финала получат:


    • 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 — каждому. По традиции всем участникам второго раунда на память достаются футболки, а участникам финала — толстовки.


    Задача


    В этом году мы решили реализовать RTS. Настоящую большую RTS — много юнитов, много тактических решений в канве общей стратегии боя. Задача получилась довольно вкусной. Кстати, обратите внимание: всё, что ниже, — это не полные правила, а просто описание игрового мира, так сказать, для затравки. Полные правила, как и всегда, будут выложены в день старта соревнования — 7 ноября 2017 года.


    Данное соревнование ставит перед участниками задачу управления большим количеством юнитов — техники (от 500 и более). Управление сильно упрощено по сравнению с играми прошлых лет; также есть возможность отдать приказ сразу группе юнитов. Действие происходит на прямоугольной карте. Координаты юнитов — вещественные числа. Вся карта разбита на квадратные области, в каждой из которых может быть один из трёх типов местности (равнина, лес, болото) и один из трёх типов погоды (ясно, облачно, дождь). Вся техника делится на пять типов (танк, БМП, ударный вертолёт, истребитель и БРЭМ) и две группы: наземная и воздушная. Тип местности влияет на скорость перемещения, дальность обзора и незаметность наземной техники; тип погоды влияет на те же самые параметры воздушной техники.



    Не приводя точных характеристик, отметим, что первые три типа техники соотносятся друг с другом по принципу «камень > ножницы > бумага > камень», а именно «танк > БМП > ударный вертолёт > танк». Цель истребителя — завоевать превосходство в воздухе, однако он не может атаковать наземные юниты. БРЭМ медленно восстанавливает прочность находящейся поблизости дружественной техники. Скорость перемещения воздушной техники значительно выше, чем наземной, однако только наземная техника может захватывать сооружения, о чём подробнее далее.


    Юниты в игре — это круги. У юнитов нет направления (с точки зрения симулятора игры; в рендерере, разумеется, модельки «смотрят» туда, куда перемещаются/стреляют), они могут мгновенно менять направление скорости перемещения, а также стрелять в любую сторону. Юниты автоматически атакуют противника, находящегося в радиусе стрельбы, если прошло достаточно времени после предыдущей атаки (cooldown). Игровой симулятор не допускает пересечения наземных юнитов друг с другом и пересечения воздушных юнитов одного игрока, воздушные юниты разных игроков могут пролетать друг сквозь друга.


    Возможности управления игровой стратегии максимально приближены к управлению обычных компьютерных игр с большим количеством юнитов, например серии Total War и других. За одно действие можно выделить прямоугольную область (со сбросом имеющегося выделения или с добавлением к нему), снять выделение с прямоугольной области, назначить юнитов в группу с порядковым номером (для быстрого выделения), отправить группу перемещаться вдоль прямой линии или повернуть формацию относительно точки на заданный угол, также доступны некоторые другие вспомогательные действия и настройки действий.


    Время в игре дискретное и состоит из тиков. С точки зрения игрового симулятора нет никакой взаимосвязи между тиками и реальным временем, однако для удобства и визуализации мы считаем, что секунда состоит из 60 тиков. Стратегия участника будет получать информацию о мире каждый тик, однако её возможности управления техникой ограничены несколькими действиями в секунду (что в некотором роде служит аналогом действий человека).


    В раунде 1 турнира условия максимально просты. Каждому игроку даётся одинаковое количество техники. Нужно максимально эффективно использовать своих юнитов, чтобы уничтожить юнитов противника.


    В раунде 2 турнира в игру вводятся сооружения. Сооружения — это прямоугольные области. Игрок может захватывать сооружения, просто перемещая в них свою наземную технику. Захват происходит не мгновенно. Скорость захвата пропорциональна количеству юнитов в области сооружения. Есть два типа сооружений: завод по производству техники (может производить любой тип техники по выбору игрока) и центр управления (немного увеличивает лимит количества действий стратегии в секунду).


    В финале в игру вводится туман войны. Радиус обзора юнитов достаточно большой. Таким образом, изменение правил не должно сильно сказаться на локальном тактическом управлении. Однако для получения информации об отдалённых участках карты стратегии будет необходимо отправлять часть техники в разведку. Туман войны распространяется только на технику противника. Таким образом, стратегии всегда доступна информация обо всех сооружениях и полная карта местности/погоды.


    Все игры происходят в формате дуэлей. Основная цель игры — набрать как можно больше баллов. За уничтожение каждой единицы техники противника начисляется немного баллов. Гораздо больше можно получить за захват сооружения. За полное уничтожение противника даётся значительное количество баллов. Сохраняется теоретическая возможность уничтожить противника, но в то же время проиграть по баллам, однако на практике это почти невозможно (если только обе стратегии не будут действовать как взаимосвязанные: одна поддаётся другой).


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


    Нравится?


    В рамках HighLoad Cup, Russian AI Cup и ML Boot Camp мы обещали, что будет интересно, и не подвели. Не обманем и в этот раз — будет действительно отлично! А теперь самое время пойти и подписаться. Мы напомним о старте чемпионата, чтобы вы точно его не пропустили.
    Кроме того, у нас есть telegram-чат, telegram-канал и группа в VK, welcome!


    Удачи на поле боя!

    Mail.Ru Group 765,20
    Строим Интернет
    Поделиться публикацией
    Похожие публикации
    Комментарии 70
    • +2
      Какие языки будут поддерживаться? Надеюсь в 2017 котлин завезли по умолчанию?)
      • +1
        Пока нет. Но обычно в первую неделю он появляется :)
        • +4
          а вот C++, C#, Java, Pascal, Python 2/3 будут точно с самого начала
          • 0
            1. для того, кто видит всё это впервые, где можно посмотреть пример бота, реализующего стратегию. интересно, какие у него есть ресурсы по памяти, БД и пр., как он с ними работает.

            2. возможно ли сделать HTTP API, чтобы технология реализации не имела значение? правда, тогда придётся какую-то виртуалку выделять, а участники тогда должны загружать образ системы целиком. но вот тут действительно была бы битва платформ.
            • 0
              Можно глянуть в 2016.russianaicup.ru, в раздел документации, механизм сотрудничества клиента и мира из года в год меняется довольно мало, так что можно на него опираться :)
              А с HTTP API мы уже вдоволь наигрались на highloadcup.ru :)
              • 0
                А с HTTP API мы уже вдоволь наигрались на highloadcup.ru :)

                Почитал. Жаль, что не слышал про него раньше.


                Собери его в docker-контейнер и залей в хранилище

                Это же очень круто! Почему бы не сделать так же в AI Cup? В прошлый раз крайне раздражало то, что:


                1. Нельзя использовать сторонние библиотеки.
                2. Невозможно нормально собирать приложение с зависимостями.
                3. По совершенно непонятной причине, невозможно хранить код в папках (!!!!). Можно только в плоской структуре файлов.

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


                P. S. Насколько я помню, во всех прошлых RAIC, стратегия и так подключалась к раннеру по сети, так что, чтобы запускать всё в докере даже раннер модифицировать не надо

                • 0

                  Мы к этому постепенно идём (попытки можно увидеть на http://aicups.ru/, там только что закончился тестовый чемпионат), но пока что окончательно не пришли :)

            • 0
              Очень хорошо, что Pascal «точно с самого начала»! Т.к. если решу участвовать, то буду повторно использовать код на Delphi-7 своих игровых ботов. Предпочитаю работать на старых Виндах XP SP3 — это не вызовет проблемы?
              • 0
                Там в предыдущих вариантах был заявлен FreePascal.
                • +1
                  Для запуска симулятора игры вам потребуется Java 8. Не так давно пытался обновить JDK до 8-й версии на виртуалке XP. Установщик обновлять отказался. Вам стоит это проверить.
                  • 0
                    JDK 8 на Windows XP SP3 встает без проблем. Может, обновление и не работает, не проверял, но standalone установщик устанавливается и работает. Проверял на jdk1.8.0_151.
                    • 0
                      Спасибо. Обругало старую версию, но встало. Странно, что от автора публикации не последовало ответа — хотелось бы иногда слышать официальные комментарии организаторов соревнований. Или отрекламировали, а отвечать не обязательно?
                      • 0
                        SladeThe является одним из основных разработчиков и идеологов, так что его комментарий можно считать вполне официальным. Я же физически не успеваю отвечать везде, простите.
                        • 0
                          Я же физически не успеваю отвечать везде, простите.
                          И Вы меня простите, но просто интересно, где Вы не успеваете отвечать? Судя по списку Ваших комментов — не на Хабре. И не на официальном сайте чемпионата: там по багам в Паскалевом пакете, только такие же участники, как я, догадки высказывают. А организаторы молчат, как партизаны на допросе. М.б. организаторы не рассчитали свои силы? Тогда стоит сдвинуть сроки. Хотя бы внятный мануал сделать и информативный раннер. А то ведь сплошные ребусы.
                          • 0
                            По объему нововведений новых api и языковых пакетов. Видно, что у оргов работа кипит. Оперативно отвечают в чате телеграмма, там же могут и участники помочь. Ссылки на них в конце статьи: habrahabr.ru/company/mailru/blog/342408
              • 0
                404 NotFind :)
            • –4
              Очень нравиться!

              П.С. А караваны можно будет грабить?))
              • +1
                Кто знает… :)
                • +6
                  «корованы» же… без этого весь смысл теряется :)
                  • +7
                    Если «очень нравитЬся», значит, пожалуй, должны быть караваны. По инверсной логике.
                • 0
                  Здорово! Не планируется ли включить в локал раннер дебажное отображение? Или как всегда ждать модификации от участников? =)
                • +3

                  Как я давно этого ждал, ну всмысле стратегию…
                  Осталось swift поддержать быстренько и будет лучший RAIC из всех :)

                  • +1
                    Надеюсь по дефолту уже Java 9 будет? )
                    • –3
                      макбуки за первые места

                      А нормальные призы будут?
                      • +9
                        Нет, простите, только всякая ерунда :)
                        А каких «нормальных» призов вам хотелось бы?
                      • 0
                        А ЧСВ за первое место чем не приз?
                      • –14
                        Бомбануло…
                        1. Причём здесь StarCraft, C&C и Total War?! Только одно общее — RTS, любые другие сравнения — оскорбление упомянутых игр. Кстати, на фоне BW API для Starcraft BW это как-то, мягко говоря, не смотрится.
                        1.1 Если бы вы прикрутили рейтинговую систему к BWAPI, и то лучше бы вышло.
                        2. Зачем симулировать живого игрока (ограничение по действиям)? Это соревнование ботов между собой или с людьми?! Выглядит так, что разработчики реализовали управление для ручного режима локалранера, а потом просто не стали заморачиваться с API для бота.
                        3. Отсутствие разнообразия игрового мира и упрощённое управление ещё можно понять… Время же ограничено. Но, кажется, сильно упростили.
                        • +14
                          1. Не ожидал, что всё так серьёзно! Извините, если обидели!
                          1.1. Может быть. А может быть и нет. Наверное стоит подождать самого чемпионата перед тем, как делать выводы
                          2. Нам захотелось симулировать действия живого игрока. Простите, если вам это не понравилось :) Технические ограничения тут не при чем
                          3. А по-моему, получится просто отлично! Приходите, пробуйте, не понравится — уйдёте :)
                          • –6
                            1. Обижаются пусть разработчики тех игр, если вообще это заметят. А так, всё понятно: нужно же привлечь внимание ярким заголовком.
                            1.1 Уже в 3 участвовал, даже входил в любимое число тракториста, а такое впечатление впервые.
                            2. На соревнованиях про программированию бота симулировать действия живого игрока… ну, ок… (это, кстати, тоже впервые на моей памяти в этих соревнованиях)
                            3. Сам себя не похвалишь, никто не похвалит!

                            З.Ы. А вообще, что имеем, то имеем. Уже ничего не поделаешь. Верю, в следующем году команда разработчиков проявит больше оригинальности.
                            • +3

                              Я так и не понял вашего посыла — лишние упоминания известных rts в виду простоты задачи, получается так?

                              • –2
                                Хотелось чего-то эпичного. Разумно ожидать, что каждое новое соревнование чем-то лучше предыдущего. А это меркнет на фоне CodeWizards и предшественников. Тем более, повторюсь, что есть аналоги.

                                З.Ы. Не в тему: но, почему у Вас на картинке ёлки желтые? =)
                                • 0
                                  Да ну прям там, эпичного. Всё жанры уже изобретены, мы просто пытаемся дать возможность почувствовать себя в шкуре каждого из них:
                                  P.S. Эпичное будет в следующих aicups, если получится договориться :)
                                  P.P.S. А елки желтые нипочему, мы сами только что заметили :)
                            • 0
                              Действительно, выглядит так, будто не хватает ресурсов на обработку каждого «тика» в стратегии, поэтому решили «симулировать» действия живого игрока. Мне казалось, что дух этого чемпионата состоит как раз в том, чтобы написать бота, превосходящего по силе человека, а не похожего на него.
                              • +1
                                Мне казалось, что дух этого чемпионата состоит как раз в том, чтобы написать бота, превосходящего по силе человека, а не похожего на него.

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

                            • 0
                              Зачем симулировать живого игрока (ограничение по действиям)? Это соревнование ботов между собой или с людьми?! Выглядит так, что разработчики реализовали управление для ручного режима локалранера, а потом просто не стали заморачиваться с API для бота.

                              Без этого будет рулить весьма примитивный микроконтроль, а так придётся больше думать о тактике и стратегии.

                              • +1
                                Причём здесь StarCraft, C&C и Total War?

                                Написано "Поклонникам StarCraft и C&C посвящается". Это значит тем, кому нравится эта игра или жанр, скорее всего понравится. Похоже, что так и есть. Никто не говорил, что будет именно StarCraft.


                                Но, кажется, сильно упростили.

                                Опять же, давайте подождём полного описания. Написано же, что это не полные, только для затравки.


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

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

                                • 0
                                  Написано «Поклонникам StarCraft и C&C посвящается». Это значит тем, кому нравится эта игра или жанр, скорее всего понравится. Похоже, что так и есть. Никто не говорил, что будет именно StarCraft.


                                  Ничего подобного, я, как игрок в Starcraft, не увидел никакой связи между конкурсом и данной вселенной. С таким же успехом — сапер тоже для поклонников Starcraft. Обычная замануха заголовком.
                                  • +2
                                    Ну, вы не увидели, а кто-то увидел. Вы ведь не единственный игрок в StarCraft и C&C, правда? :)
                                    И конечно я имел в виду жанр задачи, а не уровень реализации игры. Чесгря не ожидал, что фанаты старика будут аггриться. Думал, наоборот, порадуются, что в этом году предлагаем rts
                                    • 0
                                      Ваш оппонент где-то прав — фанаты старкрафта слишком любят эту игру, чтобы делать сравнения с чем-либо. К тому же, упомянутые ограничения фанатов старкрафта огорчают (ибо они не по наслышке знают о том, что в некоторых ситуациях человек вполне может делать десяток действий в секунду, а не единицы). Но в целом, модель баланса x>y>z>x, ну и сам жанр, должны это нивелировать.
                                      • 0
                                        Я, как любитель SC, рад :)
                                • +1
                                  горшочек не вари…

                                  а если серьезно то побольше бы паузу между соревнованиями. backend, потом лифты, теперь стратегия, на все времени совсем не хватает, да и вы мне кажется не успеваете подготовиться нормально.

                                  ps. за backend до сих пор не пришла футболка
                                  • +2
                                    Если речь о highloadcup.ru, то мы их вот сейчас высылаем. Футболки — это то, что мы делаем долго :)
                                  • +7
                                    Было бы прикольно, если бы вы подключали сразу тензорфлоу.
                                    • 0
                                      Присоединяюсь к оратору выше — будет ли возможность поиграть с сетками, либо входные ограничения на входе подрежут все возможности (это я про размер файлов, помнится даже без сеток некоторые участники с трудом пушили решения)?
                                    • –1
                                      Когда уже mail.ru сам возьмется и сделает нормальную RTS? После того, как близзарды отыграли свое с SC2 — думаю, отечественная RTS выглядела бы интересно.
                                    • 0
                                      Есть ли дружественный огонь?
                                      Хорошо бы выстрелы по линии (несколько целей) и сплеш.
                                      • +4
                                        И грабить корованы! Без этого никак!
                                      • 0
                                        интересно как в этом году поведут себя стратегии на нейронках? попадут ли в топ. или ПП опять всех победит?
                                        • 0
                                          они вообще участвовали?
                                          • 0
                                            нейронка вот habrahabr.ru/post/319518,

                                            а на потенциальных полях (ПП) так это как раз 1 место статья на tproger
                                            и 2 место тоже ПП habrahabr.ru/post/318878
                                            в гоночках 2015 года победил алгоритм чем то напоминающий ГА
                                        • 0
                                          Сколько действий можно сделать за один тик? Одно?
                                          • 0
                                            Менее одного :)
                                            Мы планируем ограничивать кол-вом действий в секунду (60 тиков)
                                        • 0
                                          NodeJS будет уже из коробки или ждать фан-плагина всю тестовую неделю?
                                          • 0
                                            Я намекаю на то, что мб вам попросить помощи у консорциума (прогеров, как бывших участников на ноде, так и среди местных) NodeJS, чтобы до старта тестового режима была хоть какая-нибудь версия?

                                            PS: Готов сам поучавствовать в этом.
                                          • 0

                                            Возможно ли будет хранить внутренее состояние программы, или решение нужно будет принимать на каждой итерации, исходя только из состояния игрового мира? Если можно, то каким образом, при каких ограничениях?

                                            • 0
                                              В рамках одного боя можно хранить в static свойствах
                                            • 0
                                              Похоже на Panzer General 2, только real time
                                              • 0
                                                Жду с нетерпением :)
                                                • 0
                                                  Соревнование человек против алгоритмов будет?
                                                  • 0
                                                    Алгоритмы против алгоритмов
                                                  • 0

                                                    А будут ли непроходимые типы местности и будет ли разрешение конфликтов при перемещенти юнитов?

                                                    • 0
                                                      Организаторы, люблю ваши подобные соревнования.

                                                      Не заставляйте ждать 7ого числа, выложите куда-нибудь описание игрового мира детально.
                                                      Хоть какой-то первый рабочий вариант.
                                                      ПЖЛСТ =))

                                                      А так в целом, в предвкушении и поборюсь за футболку в коллекцию =)
                                                      • +1
                                                        поддержку Go добавлять не планируете?
                                                        • 0
                                                          Клиент для Go уже есть russianaicup.ru/forum/index.php?topic=786.0, на local-runner уже все можно обкатывать, ждем когда начнут поддерживать на сервере, вроде как на этой неделе добавят
                                                          • 0
                                                            Надеюсь не затянут с добавлением пакета.

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

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