Усі дописи

Один світ, п’ять платформ — щоденник розробки №2: виклики кросплатформної розробки MMORPG

Одна MMORPG для миші, сенсорного екрана й контролера: рішення Ancient Online щодо інтерфейсу, керування, 30 мов і локального перекладу чату.

Геймпад лежить на столі в приглушеному світлі з червоними й бірюзовими відблисками

Ми проєктуємо Ancient Online: Remastered як єдиний світ, у якому зустрінуться гравці на Windows, Linux, macOS, Android та iOS. На папері це звучить просто: одна гра, п’ять платформ. На практиці перенести класичну MMORPG, задуману для гри клацаннями миші, на телефони й контролери — це низка непростих рішень. У цій частині щоденника розробки ми ділимося цими рішеннями та їхніми причинами.

Гра перебуває в розробці. Робочу збірку наразі тестують на пристроях із Windows і Android; macOS, Linux та iOS — інші платформи, на які ми орієнтуємося.

Правило 1: один світ, один набір правил

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

Для клієнта це правило означає, що різні платформи можуть пропонувати різне керування, але не різні можливості.

Сенсорні екрани: переосмислити, а не зменшити

Узяти класичний інтерфейс MMORPG, зменшити його як є й перенести на телефон не вийде: кнопки стають замалими для пальця, а екран — перевантаженим. Тому для мобільних ми спроєктували окремий шар інтерфейсу:

  • Рухомий джойстик: Хоч би де в лівій половині екрана ви поставили палець, джойстик з’явиться саме там; гравцеві не треба влучати в певну точку екрана.
  • Кнопка атаки, яку утримують, із дугою навичок довкола неї.
  • Вибір цілі дотиком: Сенсорний відповідник звички «клацнути по монстру» з ПК.

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

Ще одне невелике, але важливе рішення: на телефоні одночасно видно лише кілька слотів, тож перемикати сторінки навичок доводиться значно частіше, ніж на ПК. Ми зробили слоти зілля незалежними від сторінок; коли ви перемикаєте сторінку, зілля залишається на місці. Для цього було замало пересунути комірку в інтерфейсі: довелося повністю відокремити код, який використовує слоти зілля, від логіки сторінок.

Камера й мультидотик

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

Контролери: навігація ще й у меню

Підтримку контролера ми спроєктували для всього інтерфейсу, а не лише для бою. Щоб пересуватися інвентарем і меню з контролером, ми додали навігацію фокусом за допомогою хрестовини. Тут теж була пастка: хрестовина й кнопки підтвердження та повернення потрібні і для навігації в меню, і для слотів швидкого доступу. Рішення таке: поки відкрите вікно, ці кнопки керують меню, а коли воно закрите, повертаються до слотів швидкого доступу. Непомітно зісковзнути в «режим меню» посеред бою — найгірша помилка, яку могла б мати ця система.

Гра запам’ятовує, яким пристроєм введення ви користувалися востаннє: щойно ви переходите на контролер, сенсорні кнопки зникають з екрана.

Налаштування теж зважають на платформу

Вікно налаштувань набуває форми залежно від пристрою: вкладки миші та клавіатури з’являються лише на ПК, а сенсорна вкладка — лише на телефонах. Параметри графіки лише для ПК, як-от Lumen, DLSS і FSR, на мобільних поступаються місцем параметрам роздільної здатності та згладжування. На кожному пристрої ми показуємо лише ті налаштування, які там справді щось змінюють.

30 мов та інтерфейс, виміряний для кожної мови

Гра й наші вебсайти розраховані на 30 мов. Прихована складність багатомовного інтерфейсу — довжина тексту: той самий напис на кнопці в одній мові короткий, а в іншій удвічі довший. Ширину вкладок у вікні налаштувань ми обчислюємо за фактичною шириною кожного напису цією мовою, а не ділимо порівну; коли мова змінюється, макет обчислюється заново. У перемикачі мов назву кожної мови написано нею самою.

Переклад чату на наших власних серверах

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

  1. Повідомлення не залишають наших серверів. Переклад виконує на наших власних серверах локальна модель, якій достатньо самого процесора; зовнішній API перекладу не використовується.
  2. Зберегти мову гри. Чат MMORPG повний скорочень, ігрових термінів та емодзі. Ми користуємося глосарієм, складеним саме для гри, а емодзі захищаємо окремо, щоб вони не губилися під час перекладу.

Що далі

Робота над продуктивністю на мобільних і над іншими цільовими платформами триває. Повний перелік керування з погляду гравця шукайте в посібнику з кросплатформної гри на ПК і мобільних на ігровому сайті. Щоб познайомитися з нашою студією, прочитайте допис «Хто такі Astronaut Entertainment?».

Поділитися:
Також доступно такими мовами29