Запрошуємо на Russian AI Cup 2016

image
Сьомого листопада стартує Russian AI Cup 2016. Це щорічний чемпіонат з програмування штучного інтелекту, організовуваний Mail.Ru Group. Russian AI Cup проводиться у формі гри, щоб вийшло наочно, зрозуміло і просто. Коротко: учасники створюють алгоритм, який описує ігрову стратегію. Одержаний бот б'ється з іншими такими ж, а кращий з них перемагає в раунді. Таким чином, з серії раундів організується турнір, що проходить у кілька етапів.

З одного боку, основна механіка гри досить проста і мінімально робочу стратегію реально написати за пару годин (для швидкого старту в чемпіонаті можна заглянути сюди, там же можна знайти невеликий tutorial). З іншого ж — у грі вийшло багато нюансів, і відточувати стратегію, піднімаючись вгору по турнірній таблиці, можна до нескінченності. В цьому році пропонуємо вам на місяць стати магом і битися на середньовічному полі бою в MOBA-грі CodeWizards. Втім, про все по порядку.

imageКласичне поле бою MOBA-ігри. Виділені жовтим «лінії», де відбувається основна дія гри; точками позначені «вежі», що охороняють ці лінії. У кутах — бази двох команд.

Дві команди гравців борються один з одним на карті особливого виду. Кожен гравець керує одним персонажем. Кінцева мета гри — знищити головну будівлю ворожої команди з допомогою героїв і юнітів, керованих комп'ютером. Черпаючи натхнення з творів Riot Games і Valve ми створили власне поле бою, будівлі, джунглі і текстури. Але найголовніше в грі — це чемпіони-чарівники і міньйони.

imageЧемпіон (зверху) і міньйони (знизу)

Новий розклад раундів
В цьому році ми додали додатковий тиждень між першим та другим раундом. Правила другого раунду відрізняються, і під них доводиться перебудовувати алгоритм. Раніше багато учасники скаржилися на брак часу, адже вони могли приділити чемпіонату лише кілька вечорів після роботи. Тепер, сподіваємося, всім вистачить часу.

Підсумкове розклад раундів таке:

  • перший етап — з 26 листопада 2016 року по 27 листопада 2016 року;
  • другий етап — з 10 грудня 2016 року по 11 грудня 2016 року;
  • третій етап (заключний) — з 17 грудня 2016 року по 18 грудня 2016 року.
У перервах між раундами працює «Пісочниця», в якій можна відточити свої стратегії.

Правила гри
Основне нововведення цього року — кооперативна механіка гри. Тобто, стратегії гравців б'ються в командах, а значить потрібно враховувати не лише ворогів, але і дії союзників по раунду.

Щоб краще зрозуміти механіку процесу, прочитайте короткі правила чемпіонату. Повну версію ви можете подивитися на нашому сайті.

Ігровий світ є двовимірним, а всі юніти в ньому мають форму кола. Ігрова область обмежена квадратом, верхній лівий кут якого має координати (0.0, 0.0), а довжина сторони дорівнює 4000.0. Жоден живий юніт не може залишити межі ігрової області.

Час у грі дискретне і вимірюється в «твк». На початку кожного тика гра отримує від стратегій бажані дії чарівників в цей твк і оновлює стан чарівників у відповідності з цими бажаннями і обмеженнями світу. Потім відбувається розрахунок зміни світу і об'єктів в ньому за цей твк, і процес повторюється знову з оновленими даними. Максимальна тривалість будь-якої гри дорівнює 20000 тиків, проте гра може бути припинена достроково, якщо досягнута командна мета однієї з фракцій стратегії всіх учасників «впали». «Впала» стратегія більше не може керувати чарівником.

Виявлення юнітів на карті обмежена туманом війни. Стратегія учасника буде отримувати дані лише про тих юнітів, які знаходяться в межах дальності зору самого чарівника або будь-якого іншого юніта з його фракції.

У світі CodeWizards існує 6 класів юнітів, деякі з яких, в свою чергу, поділяються на типи: чарівники; снаряди (магічна ракета, крижана стріла, вогненна куля і дротик); бонуси (посилення, прискорення і щит); будови (база фракції і охоронна вежа): міньйон (орк-дроворуб і фетиш з дротиками); дерева.

Чарівники, будови, міньйони і дерева є живими юнітами. Основними характеристиками кожного живого юніта є поточне і максимальну кількість життєвої енергії. В загальному випадку, при падінні кількості життєвої енергії до нуля юніт вважається загиблим і забирається з ігрового світу. Чарівники — єдині живі юніти, які мають регенерацією здоров'я. Кожен тик вони автоматично відновлюють деяку кількість життєвої енергії. Швидкість регенерації є речовим числом, як правило, меншим одиниці. Чарівник вважається загиблим, якщо цілочисельна частина його життєвої енергії падає до нуля.

Кожні 750 тиків база кожної фракції генерує 3 загону міньйонів: по одному на кожну доріжку. Кожен такий загін складається з трьох орків і одного фетиша. Загін відразу ж спрямовується по своїй доріжці в напрямку бази протилежної фракції, атакуючи всіх супротивників на шляху. Чарівники використовують міньйонів як гарматне м'ясо. При цьому самі вони намагаються триматися на безпечній зоні і атакують противника на відстані.

В лісових зонах з деякою ймовірністю можуть з'являтися нейтральні міньйони. Зазвичай вони не агресивні, однак у разі заподіяння шкоди одному з них все нейтральні міньйони поблизу спрямовуються до кривдника, атакуючи при цьому будь-якого, хто встане у них на шляху.

Кожні 2500 тиків на карті може з'явитися бонус. Якщо на карті вже присутній хоча б один бонус, то новий не буде створений. Бонус створюється випадково вибраній точці з двох можливих: (1200, 1200) або (2800, 2800). Якщо будь-яка частина області появи бонусу вже зайнята чарівником, то симулятор спробує створити бонус в іншій точці зі списку. У разі невдачі створення бонусу буде відкладено до закінчення чергового інтервалу.

Колізія живих юнітів між собою, а також з межами карти не допускається ігровим симулятором. Якщо відстань від центру живого юніта до центру снаряда менше або дорівнює сумі їх радіусів, то живий юніт ламається, а снаряд прибирається з ігрового світу. При цьому, вогненна куля вибухає і завдає шкоди всім живим юнітам, що знаходяться поблизу. Якщо відстань від центру чарівника до центру бонусу менше або дорівнює сумі їх радіусів, то чарівник на 2400 тиків набуває магічний статус, в залежності від типу бонусу.

Хто може брати участь
Поборотися за приз може будь-хто, хто знає одну з цих мов: C (плюси і #, Java, Python (2 і 3), Ruby і Pascal. Детальніше дивіться на нашому сайті.

Крім того, в цей раз ми перевели правила і документацію на англійську мову, а значить будемо анонсувати чемпіонат серед англомовних програмістів. Сподіваємося, що це додасть інтересу в сутичках.

Нова графіка
Цей чемпіонат для нас ювілейний — п'ятий. Тому ми постаралися зробити все ідеально. В цьому році ми наблизили візуалізацію до Dota2. В минулому році у нас було всього лише дві принципово різні моделі машинок. В цей раз є вже три персонажі, кожен з яких має, як мінімум, п'ять унікальних анімацій. Ми додали динамічне освітлення, що додало гостроти та ефектності картинці. Сконцентрували увагу на світі, в якому відбуваються події. Чемпіонат занурює глядача у похмурий ліс, населений магами, орками і магічними вежами які раз у раз спалахують вогнем і руйнуються під натиском стратегії гравців. Втім, дивіться самі.

image

image

І на десерт
В цьому році учасник, що зайняв перше місце, отримає MacBook Pro. Друге і третє місця — MacBook Air і Apple Ipad. Крім того, пам'ятні призи дістануться тим, хто займе у фіналі місця з четвертого по шосте, і тим, хто за час проведення чемпіонату найкраще проявить себе в пісочниці. За традицією, всім учасникам фіналу дістануться толстовки з символікою чемпіонату, а всім учасникам другого раунду — футболки.

Ми вклали душу в CodeWizards 2016. Сподіваємося, що вас зацікавило наше невелике превью, і ви спробуєте свої сили в написанні стратегії. Заходьте на сайт чемпіонату, там ви знайдете повну версію правил, рекомендації щодо створення алгоритму і зможете зареєструватися. До зустрічі на полі бою!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.