Сообщество участников чемпионатов и команда Mail.ru Group в сотрудничестве с Codeforces.com приглашают вас на самую настоящую бойню, от которой вы получите бессонные ночи и мозоли на руках, поскольку будете участвовать в одном из самых живых и интересных чемпионатов по программированию искусственного интеллекта в мире — Russian AI Cup. Поверьте, что организаторы всего этого безумия продали все свои души ради создания игры, в которую вы захотите играть.

Вам будут нужны только доступ в Интернет, компьютер, голова конечно же, ну и желание ворваться в самую незаурядную тусовку. Возможно, что ещё пригодится кофе. Добро пожаловать!

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

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

Сегодня, 27 ноября, в день открытия беты тестирования, мы расскажем и покажем то, что придумали и создали! Итак, начнём с того, что кодовое название нового чемпионата — CodeSide.

CodeSide 2019




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


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

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



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



Чтобы победить, нужно уметь целиться и стрелять в противника. Каждое оружие обладает постоянными параметрами:

  • размер обоймы,
  • скорострельность,
  • скорость перезарядки,
  • минимальный и максимальный разброс,
  • отдача,
  • скорость прицеливания,
  • параметры пули,
  • параметры взрыва.

Кроме того, существуют и изменяющиеся параметры:

  • количество патронов,
  • значение разброса,
  • время до следующего выстрела,
  • угловой параметр (угол прицеливания).



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

Если вы хотите подорвать кого-то немного позже, а не сразу, то вы можете поставить мины. Их можно хранить в инвентаре, установить тогда, когда захотите.

Быстрый старт


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

Наша проверяющая система поддерживает почти все популярные языки программирования: C++, C#, D, Go, Java, Kotlin, Python, Ruby, Rust. Если вам необходим другой язык программирования, мы можем его добавить. Кроме того, в репозитории или на сайте чемпионата вы сможете скачать примеры стратегий.

Сообщество


Мы обитаем в Telegram. У нас есть чат, есть канал. Стараемся друг другу помогать и просто общаемся. Будем рады видеть вас в наших рядах!

Расписание


Традиционно, чемпионат проходит в несколько этапов.

  1. 27 ноября — 7 декабря: Бета-тестирование игры.
    За этот период могут быть внесены изменения в баланс, устранены ошибки, оптимизирована инфраструктура. Результат беты не влияет на другие результаты. Перед следующий этапом рейтинг сбрасывается.
  2. 7 декабря — 14 декабря: Песочница.
    По итогам данного этапа будут отобраны по рейтингу стратегии для первого раунда.
  3. 14 декабря — 15 декабря: Первый раунд.
    Лучшие по рейтингу стратегии переходят во второй раунд.
  4. 21 декабря — 22 декабря: Второй раунд.
    Лучшие по рейтингу стратегии переходят в финал.
  5. 28 декабря — 30 декабря: Финал.
    По итогам финала объявляем победителей и призёров чемпионата

Подарки


Все победители финала получат хорошие новогодние подарки:

1-е место — MacBook Pro 15".
2-е место — MacBook Pro 13".
3-е место — Apple iPad.
4-е место — Samsung Gear S3 или Apple Watch S3.
5-е место — WD My Cloud 6 TB.
6-е место — WD My Passport Ultra 4TB.

Кроме того, топ-6 победителей песочницы смогут получить WD My Passport Ultra 2TB.

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

Полезные ссылки

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

2018 CodeBall


Статьи
История участия (и победы) в Russian AI Cup 2018 — CodeBall
История второго места в Russian AI Cup 2018: CodeBall
Russian AI Cup 2018, история 9 места
Создание бота для участия в Russian AI Cup 2018 CodeBall
Как я обучал нейросеть для реализации функции оценки положения на Russian AI Cup CodeBall 2018

Видео
Красивые моменты Russian AI Cup Codeball
Russian AI Cup 2018: My Renderer
Russian AI Cup 2018: CodeBall

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


  1. tongohiti
    27.11.2019 13:55
    +1

    Поехали! (С)


  1. Tsvetik
    27.11.2019 14:29

    Что-то на сайте russianaicup.ru регистрация не проходит


    1. SysBlack
      27.11.2019 16:08

      502 Bad Gateway


    1. sannikovdmitry Автор
      27.11.2019 16:09

      Регистрацию чиним :( Сорри


  1. bfDeveloper
    27.11.2019 15:00

    Наверное уже сто раз писали, но почему каждый год конкурс в настолько неудобное время? То в разгар новогодних праздников, то как сейчас финал под ёлочкой. Что для студентов, что для работающих, конец года — самое напряжное время — зачёты, дедлайны и тд. Почему не весной? Чтобы и середина семестра, и не отпускной сезон, и не праздники.
    Уже который год очень хочу нормально поучаствовать, но катастрофически не хватает времени и сил.
    И всё равно спасибо организаторам. Хоть как-нибудь но постараюсь поучаствовать.


    1. sannikovdmitry Автор
      27.11.2019 16:10

      Готовить задачу — занятие долгое, не успевали никак. Старались вставить всё же под конец года… Надеюсь, что сможете.


  1. RiseOfDeath
    27.11.2019 16:07
    +1

    27 ноября — 7 декабря: Бета-тестирование игры.

    7 декабря — 14 декабря: Песочница.


    А на сайте написано
    Песочница: до начала
    0 дней 1 час: 05: минут 39 секунд

    Чему верить?


    1. sannikovdmitry Автор
      27.11.2019 16:47

      Это так называется сейчас. Верить, что на хабре :)

      Запуск тестирующей системы перенесли на завтра.


  1. cadovvl
    27.11.2019 16:37
    +2

    А в этой игре можно скин купить? В локальной версии вижу, где че менять, а в онлайне — нет. Что за игра без доната?


    1. cadovvl
      27.11.2019 16:55
      +1

      Я внезапно подумал, что могу быть неправильно понят: никакого негатива, просто на картинке к посту нарисован медведь с гранатометом. Захотел за такого поиграть, рефлекторно пошел искать где скины купить xD


      1. Makc_K
        27.11.2019 17:38
        +3

        Даёшь лутбоксы и пей-фо-вин


  1. ant00N
    27.11.2019 18:27
    +1

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

    Добавьте пожалуйста Lua, если не сложно.


    1. tdmarko
      28.11.2019 09:44

      И JavaScript :D


    1. PS_erg
      28.11.2019 13:53

      И Swift добавьте, пожалуйста.


      1. sannikovdmitry Автор
        28.11.2019 13:53

        Постараемся всё добавить


        1. ghrb
          29.11.2019 18:07

          И PHP?


  1. marsermd
    28.11.2019 09:41

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


    А вы не хотите на англоязычную аудиторию распространиться? Кажется, что подобный пост-анонс на Reddit значительно увеличил бы ваш охват.


    1. sannikovdmitry Автор
      28.11.2019 13:56

      Сделаем обязательно. Правила специально написали на английском в том числе :)


  1. AndU
    28.11.2019 11:49

    Эх, очень хочется поучаствовать, но увы, пара дней до WorldSkills


  1. Tsvetik
    28.11.2019 12:23

    -


  1. Tsvetik
    28.11.2019 12:52

    Не получается отправить стратегию на C#.
    Архивирую все исходники, отпарвляю. Получаю ошибку компиляции:

    MSBUILD: error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file.


    Когда архивирую вместе с файлом csproj и sln, система ругается, что файлы sln и csproj присылать нельзя


    1. Lyova5
      28.11.2019 13:55

      «Слушай, Вася, 'Валенки' и не выпендривайся»

      Весь код в один файл и проблем не будет :)


    1. sannikovdmitry Автор
      28.11.2019 13:55

      Пример github.com/MailRuChamps/raic-2019/tree/master/clients/csharp

      Присылать не нужно.


  1. DrSmile
    29.11.2019 01:11

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