Як (і чому!) ми створюємо мапи нового покоління з випадковими подіями

У «Розвідці боєм 2023» було представлено випадкові події для чотирьох мап, добре відомих нашим гравцям («Хіммельсдорф», «Руїнберґ», «Прохорівка» та «Стара гавань»). Ми прагнули надати вам більше тактичних можливостей, нові сценарії розвитку подій на полі бою, а також простір для імпровізації в непередбачених обставинах.

Після завершення тестування випадкових подій ми проаналізували близько 400 000 анкет. 86.8% опитуваних отримали задоволення від гри на мапах із випадковими подіями!

Ми додаємо ці мапи до наступного Загального тестування, тож ви матимете можливість випробувати їхні останні версії перед тим, як вони стануть доступні на основних серверах. Тим часом пропонуємо ознайомитися з ексклюзивним матеріалом про їхнє створення!

Нові технології, нові мапи

Може виникнути питання: чому ж ми додали випадкові події лише до чотирьох мап, а не для всіх чи принаймні половини? І чому ми завершуємо роботу над ними тільки зараз, через шість місяців після тестування в режимі «Розвідка боєм»?

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

З метою додати цю рису ми почали розробляти спеціальний новий інструмент на основі однієї з найсучасніших технологій у геймдеві. Цей інструмент досі перебуває на стадії першого «чорнового» варіанту, і ми продовжуємо його розробку. Однак уже зараз ми можемо зробити процес додання випадкових подій простішим, швидшим та ефективнішим. Тепер подробиці!

 
 

Підготовка до тестування

Ми розпочали підготовку до тестування випадкових подій у квітні 2023. Додання динамічних сценаріїв до великої кількості мап потребувало нового підходу до автоматизації та спеціальних інструментів для створення такого контенту. Але на той час ми ще не мали технічних засобів для розробки таких динамічних сценаріїв. Отже, ми обрали лише чотири мапи та обмежену кількість подій і вручну підлаштували їх до кожного поля бою.

На цій початковій фазі тестування ми не намагалися досягти остаточного результату в розробці подій та їхніх механік. Ця «проба пера» стала спробою перевірити наявні доробки й визначити, які технології та інструменти нам потрібні.

Ми швидко зрозуміли, що налаштування динамічних подій для понад 40 ігрових мап вручну займе чимало часу й буде непродуктивним. Отже, перед нами постав виклик: створити новий інструмент, який автоматизує, масштабує і в такий спосіб спростить розробку такого контенту.

Core Gameplay Framework: іноваційна технологія для створення ігрового контенту нового покоління

Щоб прийняти цей виклик, ми впровадили технологію Core Gameplay Framework (CGF) у World of Tanks. CGF — варіація Entity Component System, однієї з найсучасніших і найтрендовіших технологій у геймдеві.

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

Про технологію CGF

Розгорнути

До цього при створенні контенту ми були обмежені взаємодіями з машинами. Технологія CGF функціонує як конструктор, що дозволяє вводити в середовище гри різноманітні об'єкти (не машини), що мають власні характеристики та взаємозв'язки. Вона дозволяє управляти характеристиками й частинами об'єктів та змінювати їх. Отже, можна взаємодіяти з об'єктами, логіка поведінки яких відрізняється від логіки, якою керується машина.

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

Згорнути

Нові інструменти

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

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

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

Тож зазирнемо за лаштунки й побачимо, як ми створюємо випадкові події на практиці!

Крок 1: вибір мапи

Створення випадкової події починається з обрання мапи. Важливо зазначити, що ми не беремо до уваги популярність мапи або статистику банів. Натомість ми орієнтуємося на два ключові параметри:

  • різноманітність ігрового процесу;
  • тип мапи: відкрита, міська або змішана.

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

Однією з найважливіших зон для ігрового процесу на мапі «Прохорівка» є алея, куди тепер може впасти збитий вами літак.

Крок 2: аналіз можливих подій

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

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

Крок 3: аналіз «теплових мап» й обрання зони для події

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

Ми також беремо до уваги ваші відгуки та власний досвід, щоб виявити найкращі зони для введення події.

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

Ми оцінюємо кінцевий стан і формат ігрового процесу в зоні випадкової події після взаємодії з об'єктом. У разі потреби ми впроваджуємо зміни: додаємо або прибираємо проїзди, укриття, будівлі тощо.

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

Іншими словами, ми не починаємо розробку випадкової події одразу з падіння літака чи прибуття потяга. Натомість ми прагнемо спочатку ретельно опрацювати формат гри в зоні події на обраній мапі.

Крок 4: створення прототипу

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

Після тестування прототипу ми впроваджуємо останні зміни та починаємо додавати до нього різноманітні деталі й інші об'єкти.

Крок 5: обрання об'єктів і сценаріїв для випадкової події

На цьому етапі ми визначаємо наступні показники.

  • Місце: земля, повітря чи вода.
  • Діючий об'єкт: літак, дирижабль, потяг, автомобіль тощо.
  • Ціль (об'єкт, що буде зруйновано), з якою буде взаємодіяти діючий об'єкт: будівля, бункер, міст, причал тощо.
  • Стан об'єктів після руйнування. Необхідно розуміти, де опиняться уламки об'єктів після руйнування, їхню кількість та точне розташування.
  • Місце й траєкторія на мапі з урахуванням видимості й рельєфу місцевості, щоб гравець мав змогу спостерігати за перебігом випадкової події від самого початку.

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

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

Крок 6 (фінальний): візуалізація й доопрацювання сценарію

Нарешті ми наповнюємо сценарій додатковими деталями й робимо фінальну добірку об'єктів (моделей) залежно від їхньої актуальності для певної події. Наприклад, якщо необхідно зруйнувати замок великим літаком, але задуманого літака немає в нашому розпорядженні, ми замінюємо його іншим придатним літаком.

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

Фініш! Вражаючамапа нового поколінняз неймовірною випадковою подією готова! 

Що далі?

Незабаром ми плануємо випустити чотири мапи («Хіммельсдорф», «Руїнберґ», «Прохорівка» та «Стара гавань») з удосконаленими випадковими подіями, що будуть доступні під час Загального тестування. Готуйтеся взяти участь і поділитися своїми враженнями!

Ми продовжуємо активну роботу над збільшенням числа мап нового покоління з випадковими подіями, тож вони можуть бути додані в гру найближчим часом. Стежте за новинами!

Обговорити в Discord

Закрити