Як українці створювали кросплей для Insurgency: Sandstorm

Вітаємо, спільното! У цього блогу два автори — Project Lead of UE Department Денис Сліпчук та Project Lead of QA Department Юрій Дуднік. Ми разом працюємо в Pingle Studio. Сьогодні ми хочемо поговорити про Insurgency: Sandstorm — це багатокористувацький тактичний шутер від першої особи, дії якого відбуваються під час Іракської війни. А ще це масштабний проєкт, над яким ми багато років працювали в Pingle.

Окрім портування гри з ПК на PS4, Xbox One, PS5, Xbox Series, Epic Games Store, ми також розробляли і імплементували кросплей між ПК (Microsoft Store) та Xbox One. Про це і піде мова.

Основною задачею було дати юзерам можливість грати разом в одних матчах і з різних платформ, а точніше між PC та Consoles.

В рамках Insurgency, перший етап інтеграції являє собою повноцінний реліз кросплею між Microsoft Store та Xbox One, Xbox Series. Глобальний кросплей між усіма платформами, заплановано на майбутні апдейти.

Основний бенефіт: тайтл вийшов у Xbox Game Pass та доступний за підпискою — це дуже високий рівень, який прагне досягти кожен паблішер.

Вихід у Game Pass збільшив кількість юзерів у х3-4 рази.

Так виглядав наш пайплайн робіт по створенню кросплею:

  • Визначення задач, які перед нами стоять. Скоуп може відрізнятися в залежності від конкретного тайтлу та об’єму вже інтегрованих фічей;
  • Визначення сертифікаційних вимог щодо кросплею — їх насправді дуже багато;
  • Оцінка часу на виконання задач, у нас було 2-3 місяці на розробку, тестування, полішинг;
  • Реалізація функціонала;
  • Полішинг;
  • Тестування;
  • Сертифікація;
  • Реліз фічі у новому апдейті.

Можна виділити основні задачі:

  • Інтеграція додаткових ігрових налаштувань, які дозволять юзеру обирати, чи хоче він грати із іншою платформою, та який інпут девайc використовувати (Keyboard&Mouse або Gamepad). Ці параметри впливають на підбір гравців у онлайн матчах PVE та PVP.
  • Адаптація матчмейкінг бекенду — навчити його формувати спільні матчі, базуючись на обраних юзером налаштуваннях, та враховувати, з якої платформи грає кожен юзер.
  • Підтримка Keyboard&Mouse на консолях Xbox One та Xbox Series в усіх ігрових меню та під час геймплею.
  • Система крос-паті — дати юзерам можливість збиратися у групи не тільки у рамках одної платформи, а й між PC та Console.

Нижче поговоримо детальніше про кожен з етапів.

Пункт 1: розробити систему керування мишкою та клавіатурою для Xbox One

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

Додатково треба було обмежити можливість використання M&K, бо якщо дозволити користувачам із мишкою грати проти геймпаду, це призведе до нерівноправної гри, оскільки на геймпаді грати складніше. Якщо юзер знаходиться не у кросплейному матчі, або обрав геймпад, як prefered device перед пошуком матчу, у локальній грі цих обмежень немає.

Пункт 2: розробити вибір системи керування для гравців Xbox One: мишка/клавіатура або геймпад

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

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

Пункт 3: розвинути функціональність консолі між cross-party and cross-matchmaking

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

Пункт 4: реалізувати японський регіон

Реалізація японського регіону в білдах європейського регіону, який активувався при виборі японського часового поясу, стала першим, з чим ми зіткнулись. Японський регіон унікальний тим, що в ньому повинна бути відсутня кров та розтинання регдолів (ragdolls). Окрім цього, також повинні були і працювати інші платформні особливості для консолей. Наприклад, для PS4 — заміна кнопки підтвердження з хрестика на кружечок.

Пункт 5: кросплей між Microsoft Store PC та Xbox One, Xbox Series

Наступним з основних поінтів став кросплей між Microsoft Store PC та Xbox One, Xbox Series. Основна задача, яку потрібно було вирішити — хто з гравців з ким може взаємодіяти. Набір можливих комбінацій був великий, а саме для MS PC це Keyboard&Mouse чи контроллер, включений чи виключений кросслплей, тобто чи ми плануємо грати тільки з учасниками PC, чи ми будемо грати разом з PC та Xbox.

На Xbox ми мали вибір Keyboard&Mouse чи контролер, а також включений чи виключений крослплей. Також потрібно було враховувати, хто в party заходиться, чи в нього вибраний Keyboard&Mouse, контроллер, чи включений, виключений кросслплей. Коли гравець вже знаходиться в party, він наслідував від лідера налаштування, з якими заходить в матч.

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

Пункт 6: розробити рівноцінні версії гри Microsoft Store для Steam і EGS

Просувати конент — це дуже важлива річ при розробці нової платформи, тож нам довелося інтегрувати Моди та Ком’юніті сервера до MS версії.

Поки що MS сприймається як незалежна PC платформа, яка може грати із собою та консолями Xbox, але це може змінитися у майбутніх апдейтах.

Висновки

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

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному1
LinkedIn


Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі