С 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) и всю команду чемпионатов за созданную игру.
Расписание
- Песочница: 17 декабря — 5 января;
- Первый раунд: 5 — 6 января;
- Второй раунд: 19 — 20 января;
- Финал: 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. Добро пожаловать в ряды!
Статьи
Путь к победе на 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)
robo2k
06.12.2018 19:463D как-то мне не очень по нраву. Сложность резко увеличивается.
marsermd
06.12.2018 19:55+2Если вы видели предыдущие соревнования, то должны понимать, что модель игрового мира стала гораздо проще чем раньше (шарики, пинающие шарики, кайф же!)
Ну и прикольно всёже 3д делать:)
Femistoklov
07.12.2018 08:39Особенно учитывая, что всё приходится писать вручную, без сторонних сборок и утилит.
DragoonXen
07.12.2018 11:35Мне вот, кстати, интересно, чем бы помогли сторонние сборки/утилиты?) Ну и никто не запрещает опенсорс к себе в код тянуть
Femistoklov
08.12.2018 08:07Тем, что там могут быть подходящие классы/структуры, не включённые в стандартную библиотеку, например?
Disee
06.12.2018 21:33+1можете огласить какие языки будут поддерживаться?
DragoonXen
07.12.2018 11:00Предположу, что +- такое же, с поправкой на то, что некоторые языковые пакеты добавляют сами участники во время конкурса
2017.russianaicup.ru/p/packs
d-sky
07.12.2018 08:36Пожалуйста, сделайте localrunner
- либо без исходников;
- либо с исходниками на всех языках;
- либо со встроенными функциями для «рисования».
В предыдущий раз были исходники на C++ и это дало огромное преимущество тем кто пишет на плюсах.DragoonXen
07.12.2018 10:08В Russian AI Cup почти всегда исходники были на java. И java при этом побеждает не чаще популярного C++ (хотя прошлый контест, пожалуй, исключение. Всё топ 3 — java. ИМХО из-за сложности управления в игре. На Java куда проще написать много кода без сегфолтов).
На мой взгляд без особой разницы, на чём они. Для использования в своём коде всё равно надо переписывать. Всё одинаково и огромного преимущества не даёт (небольшое — может быть). Исключением может быть разве что использование сторонней библиотеки при возможности её прямого подключения только в ограниченном количестве языковых пакетов.d-sky
07.12.2018 10:38Я последний раз внимательно следил за Mini AI Сup#2 — потратил 2 полных дня чтобы переписать локалраннер. 2 дня — это очень много, это огромное преимущество, учитывая что все пишут ботов после работы\учебы.
Собственно, исходники были на плюсах, и что было в финале?
DragoonXen
07.12.2018 10:55+1Мини аи кап #2 это не предыдущий раик, и даже не последний мини аи кап. Но это всё же отдельная тема.
Я писал Мини аи кап #2 на С++ и потратил точно не меньше 2 дней на перенос локал раннера к себе в код (и даже больше). Даже того кода, который помогал править я. В том виде, в котором существует код в локал раннере, он обычно не юзабелен.
Ну и на чём бы ни были исходники — если игра относительно простая и требует большого кол-ва рассчётов (а в агариках было так) — увидим +- такую же картину в финале по языкам.
Всё ещё не вижу огромного преимущества.
На сим «спор» можно закончить, на чём бы ни были исходники — фаворитом в ближайшем будущем будет С++, где-то рядом Java и C#. У последних тем больше шансов, чем сложнее логика, которую нужно реализовать. И тем меньше, чем более требовательна эта логика к скорости вычислений.
Tsvetik
07.12.2018 10:58Опять будет какой-нибудь неудобный «физический» движок, который еще надо умудриться подключить к своему ЯП?
DragoonXen
07.12.2018 11:01+1Не путайте mini ai cup и russian ai cup. Тут такого ещё не было, да и там это признали неудачным опытом.
Не могу отвечать за организаторов, но на 99% уверен, что не будет
BingoBongo
07.12.2018 11:10Физика для сфер легко делается без всяких движков
Tsvetik
07.12.2018 11:23Даже для сфер вопрос в том насколько глубока физика в игре.
Чтобы мяч не скакал по полю как резиновая бомба, либо он должен иметь какую-то упругость, либо поле должно быть упругим, либо среда должна быть вязкой. Последнее — самое простое.
Еще даже у шара может быть момент инерции или даже три момента, и вытекающие из него фокусы с «крученым» мячом.
Это все очень интересно, но скорее всего физика будет проста как в Agar.IO, а упор будет сделан на AI футболистов
4eyes
07.12.2018 15:28Угу, за исключением пары моментов: когда мяч влетает в борт очень быстро, и когда мяч отскакивает одновременно от 2 объектов (угол поля). В одном из прошлых соревнований это было реализовано на костылях, и скорее всего, неспроста.
Rhombus
07.12.2018 13:11Эх, перекрывается по времени с halite, придется пропустить.
sannikovdmitry Автор
07.12.2018 13:11halite пропустить?)
sat2707
Огонь!
TimsTims
Пенальти!