...

пятница, 9 декабря 2016 г.

Russian AI Cup. Промежуточные итоги чемпионата

Вот уже месяц длится Russian AI Cup 2016. Это соревнование по программированию искусственного интеллекта, которое проходит в форме игры. Мы подробно рассказывали об идее и правилах нынешнего года здесь.

Но со старта чемпионата многое изменилось. Участникам пришлось попотеть, чтобы разобраться в непростых правилах игры, а нам — чтобы справиться с тестирующей нагрузкой. Редактировались правила, оптимизировался код, сменялись раунды и банились игроки. Рассказываем вам полную историю CodeWizards 2016.

Открытый бета-тест первого раунда


7 ноября был запущен бета-тест. В течение недели участники писали стратегии по правилам первого раунда, а организаторы фиксили баги и балансировали правила.

Много объектов. CodeWizards — это первая игра с большим количеством объектов. Во все предыдущие годы мы ограничивалось десятками, сейчас их может быть около пятисот: это деревья, миньоны, строения, снаряды и так далее. Такое количество объектов плохо влияет на работу стратегий и тестирующей системы.

Большое потребление оперативной памяти. Описания объектов занимали слишком много места в ОЗУ. Игра долго загружалась и тормозила. Самое неприятное — она могла даже упасть из-за того, что не укладывалась в лимиты памяти, отведённые для одной вкладки браузера.

Основную работу мы провели над визуализатором. Вместо того чтобы заново загружать изменяемые объекты, мы стали хранить историю их изменений. Все положения 3D-моделей мы подсчитываем в начале игры. Это немного замедляет загрузку, зато увеличивает fps. Нам удалось снизить среднее количество потребляемой оперативной памяти почти вдвое: с 1 Гб до 500 Мб. Когда всё заработало, мы добавили в игру звуки, чтобы наблюдать за результатами было интереснее.

Медленная отправка данных. Ещё одна сложность, связанная с большим количеством объектов: необходимость их пересылки стратегии участника. Медленные языки, такие как Ruby или Python, едва успевали справиться с приёмом и передачей данных. Если в стратегию добавлялась какая-то логика, она не могла преодолеть временной лимит и отключалась тестирующей системой.

Мы внедрили специальный механизм кеширования. Он позволил не передавать объекты, которые не изменились со времени прошлой отправки. Это было непросто: мы обновили код взаимодействия на всех языках программирования. Сейчас у нас есть несколько участников, прошедших во второй раунд на Ruby. Python же используется многими топ-игроками и спокойно конкурирует с быстрыми языками вроде Java, C# или C++.

Изменения правил игры. Мы внимательно следили за отзывами игроков на форуме. Они помогли нам сбалансировать правила и сделать игру более ровной. Помимо некоторых незначительных изменений стоит отметить увеличение урона зданий, увеличение количества баллов за подбор бонуса со 100 до 200, а также появление бонусов парами, а не случайно в одной из двух точек. В начале игры никто не боялся башен, а ходить за бонусами было невыгодно: очков они давали мало, а могли и вообще не появиться.

Новые языки. Как и в прошлые годы, сообщество расширило список языков, на которых можно писать стратегии. Теперь Russian AI Cup поддерживает сразу 10 языков. Добавились D, Go, JavaScript и Scala. Спасибо авторам языковых пакетов!

Итоги бета-теста. В первую неделю на чемпионат зарегистрировалось 650 программистов. Мы внимательно читали форум и продолжаем это делать. Всё, что предлагается, мы оцениваем и большинство идей берём в разработку. Мы рады, что в чемпионате участвуют адекватные и лояльные игроки. В основном это разработчики со стажем. Спасибо!

Итоги первого раунда


25 и 26 ноября прошел первый раунд чемпионата. Для участия в нём мы отобрали 1090 лучших стратегий из 1500 поступивших к тому моменту. Первый раунд состоял из двух этапов по 12 часов с перерывом в 24 часа. Во время них тестирующая система комплектовала и запускала игры. Итоговый рейтинг основан на результатах 40 сражений.

Поздравляем победителей, прошедших во второй раунд! А остальным напоминаем о доборе участников из Песочницы. Оттуда во второй раунд попадут 60 лучших стратегий, не прошедших по итогам первого раунда.

Жулики :(


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

Такие участники есть и в Топ-300, что могло бы дать им право на получение двух или более футболок за прохождение в раунд 2. Даже зная об этом, ни один из таких участников не уведомил жюри соревнования о нарушении и не попросил заблокировать все свои учётные записи, кроме одной.

В этот раз мы решили ограничиться строгим предупреждением. Упомянутые участники не будут дисквалифицированы, однако они не пройдут дальше по итогам раунда 1. Вместо них в раунд 2 попадут следующие по списку; счастливчики, разумеется, будут уведомлены об этом по электронной почте.

Бета-тест второго раунда


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

Новые правила. Кроме того, мы вновь внесли ряд изменений в правила.

  • Количество жизненной энергии зданий во всех режимах игры уменьшено вдвое

Получалось так, что даже самые сильные стратегии просто не успевали сломать все здания из-за их прочности. Игры заканчивались ничьей. Теперь у магов будет значительно больше шансов.
  • Коэффициент опыта за повреждение и уничтожение зданий увеличен в два раза

Поскольку набор опыта зависит от количества урона, мы подняли этот коэффициент, чтобы не замедлять прокачку героев.
  • Количество опыта за подбор бонуса уменьшено с 200 до 150

Подняв количество опыта до 200 в первом раунде, мы получили ситуацию, в которой во время появления бонуса все покидают битвы и бегут за ним. Теперь стоять на линии значительно выгоднее за счёт первых трёх изменений.
  • Мультипликатор урона от бонуса empower снижен с 2 до 1,5

Получалось, что этот бонус был значительно выгоднее двух других. Мы добавили в игру немного баланса.
  • Длительность действия заклинаний «Ускорение» и «Щит» увеличена вдвое. Волшебник, накладывающий магический статус на любого дружественного волшебника, автоматически получает такой же статус

MOBA — командный жанр. Мы хотим увидеть взаимодействие между участниками игры, несмотря на то что зачёт в чемпионате личный.

Приглашаем принять участие в чемпионате


Присоединяйтесь к CodeWizards 2016! Технически в игру можно загрузить крутую стратегию хоть за три дня до финала и выиграть. Дополнительный набор из Песочницы ждёт талантливых программистов!

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

    Let's block ads! (Why?)

    Комментариев нет:

    Отправить комментарий