Пора отвлечься от рабочих задач и попрограммировать что-нибудь необычное.
3 марта, в субботу, с 12:00 до 16:00 будем вместе писать ботов для игры. В ночь на 3 марта на платформе CodinGame.com стартует 10-дневное соревнование по созданию ботов для мультиплеерной игры. Какой именно игры — пока секрет, узнаем после начала соревнования. Пока известно только название — Botters of the galaxy — и тематика оформления: Похоже, Звёздный Лорд пользуется Linux. CodinGame — платформа для обучения программированию в игровой форме. 10-дневные соревнования по программированию ботов — это один из форматов. Они провели больше десятка таких соревнований и знают в них толк. В частности, заботятся, чтобы входной барьер был невысокий — сносно работающего бота сможет сделать даже новичок. С другой стороны, каждое соревнование собирает несколько тысяч участников и даёт возможность потягаться силами с крайне сильными соперниками. Битва в топе обычно идёт не на жизнь, а на смерть. Другими словами, интересно должно быть всем. 
В недавнем соревновании Mean Max было 1033 участника со всего мира и 58 из России. Можно лишь строить предположения, глядя на прошедшие соревнования. Чаще всего приходится управлять одним или несколькими агентами в мире, работающем по заданным правилам. Машинки, гоночки, кораблики, волшебники ездят, летают, плавают, стреляют, кидают мячики, чтобы собирать бонусы, брать чекпоинты, уничтожать соперников и забивать голы. А боту нужно раз в такт прочитать текущее состояние мира и ответить командой для каждого своего агента. Стоп-кадр визуализатора из Mean Max. Впрочем, повторяться никому не хочется, и авторы соревнований изо-всех сил стараются каждый раз придумать что-то существенно новое. Вот и в этот раз в анонсе пишут: However, I can tell you that they chose a type of game without precedent on CodinGame. Так что ждём сюрприза! Скажу прямо, умение писать ботов для игр мало кому нужно с практической целью. Но есть и другие причины этим заниматься. Программирование ботов развивает. Приходится придумывать идеи, проверять их на практике и учиться доводить их до рабочего состояния. Тренируешься погружаться в новую предметную область и анализировать её. Выигрывают как правило быстрые боты без багов. Поэтому приходится развивать скилы тестирования, отладки, профилирования и оптимизации кода.  Первая версия бота будет основана на простых эвристиках. Такой бот обыграет простых соперников, но высоких результатов не достичь без генетических алгоритмов, перебора с отсечениями и подобного. Соревнование даёт повод почитать про них, разобраться и применить. Впрочем, главное другое — программировать ботов весело и драйвово :) CodinGame предлагает всем желающим создавать площадки в оффлайне, где местные кодингеймеры могли бы встретиться, познакомиться, обсудить соревнование, поделиться идеями и начать программировать ботов. Такие мероприятия называются CodingHubs.  Вот так выглядит Trello-доска для координации хабов: 
Есть хабы в Антверпене, Каунасе, Кишинёве, Лионе, Медельине, Париже и Хожуве. Мы решили сделать хаб в Екатеринбурге. Начнём на следующий день после ночного старта соревнования. Площадкой будет конференц-зал в офисе разработки Контура в Екатеринбурге. Фотка с предыдущего хакатона на той же площадке. Всё, что нужно — это зарегистрироваться и приехать 3 марта, в субботу, к 12:00 на площадку со своим ноутбуком. В программе: пицца, обсуждение правил и стратегий, а также просмотр боёв наших ботов на большом экране. Должно быть весело :) А чтобы было ещё веселее, ко встрече мы подготовим стартовые наборы — готовые репозитории со скучным и рутинным кодом: проект с зависимостями, классы объектной модели, ввод-вывод. Всё ради того, чтобы как можно проще было написать своего первого бота. За ночь мы планируем сделать стартовые репозитории для двух популярных у нас в компании языков программирования — C# и JavaScript. Впрочем, если вы любите другой язык — мы тоже будем вам рады. Просто вам будет чуточку сложнее. В общем, если вы ещё ни разу не участвовали в чём-то подобном — это подходящий момент, чтобы попробовать. А там и до ICFP Contest не далеко. Если участвовали — удачный способ найти единомышленников в Екатеринбурге. Учу программировать. Программирую. Учусь.