Мы проектируем Ancient Online: Remastered как единый мир, в котором встретятся игроки на Windows, Linux, macOS, Android и iOS. На бумаге звучит просто: одна игра, пять платформ. На практике перенести на телефоны и геймпады классическую MMORPG, рассчитанную на игру кликами мыши, — значит принять череду трудных решений. В этой части дневника разработки мы делимся этими решениями и их причинами.
Игра находится в разработке. Рабочая сборка сейчас тестируется на устройствах с Windows и Android; macOS, Linux и iOS — остальные платформы, на которые мы нацелены.
Правило 1: один мир, один набор правил
Для мобильных игроков нет ни отдельного сервера, ни «упрощённого» баланса. Поскольку все правила игры работают на сервере, вы играете в одном и том же мире по одним и тем же правилам независимо от устройства, с которого подключаетесь. Ваш аккаунт, персонаж, инвентарь и гильдия не зависят от устройства. О серверной стороне мы рассказали в первой части дневника разработки.
Для клиента это правило означает, что разные платформы могут предлагать разное управление, но не могут предлагать разные возможности.
Сенсорные экраны: переосмыслить, а не уменьшить
Взять классический интерфейс MMORPG как есть, уменьшить и перенести на телефон не получается: кнопки оказываются слишком мелкими для пальца, а экран — перегруженным. Поэтому для мобильных устройств мы спроектировали отдельный слой интерфейса:
- Плавающий джойстик: Куда бы ни опустился палец в левой половине экрана, джойстик появляется под ним; игроку не нужно попадать в определённую точку экрана.
- Кнопка атаки с удержанием и дуга навыков вокруг неё.
- Выбор цели касанием: Сенсорный аналог привычки «кликнуть по монстру» с ПК.
Есть и то, чего мы намеренно не сделали: перемещение касанием. За движение отвечает джойстик. При двух системах перемещения каждый промах при выборе цели превращался бы в нежелательную пробежку, а посреди боя это недопустимо.
Ещё одно небольшое, но важное решение: на телефоне одновременно видно лишь несколько слотов, поэтому переключаться между страницами навыков приходится гораздо чаще, чем на ПК. Мы сделали слоты зелий независимыми от страниц: при смене страницы зелья остаются на месте. Для этого потребовалось больше, чем передвинуть ячейку в интерфейсе: пришлось полностью отделить код, использующий слоты зелий, от логики страниц.
Камера и мультитач
На телефоне камера поворачивается, когда вы ведёте пальцем по свободной области. Сделать это, положив поверх интерфейса полноэкранную «зону камеры», было заманчиво, но такой слой поглощал бы касания, предназначенные каждой кнопке под ним. Обрабатывая перетаскивание камеры в контроллере игрока, а не в слое интерфейса, мы исключили конфликты между кнопками и камерой. Кроме того, мы отличаем выбор цели от перетаскивания камеры по небольшому порогу движения: пока порог не пройден, камера не сдвигается, а когда он пройден, она начинает поворачиваться без резкого скачка.
Геймпады: и по меню тоже
Поддержку геймпада мы проектировали для всего интерфейса, а не только для боя. Чтобы перемещаться по инвентарю и меню с геймпада, мы добавили навигацию по фокусу с помощью крестовины. Здесь тоже была ловушка: крестовина и кнопки подтверждения и возврата нужны и для навигации по меню, и для слотов быстрого доступа. Решение: пока окно открыто, эти кнопки управляют меню, а когда оно закрыто, возвращаются к слотам быстрого доступа. Незаметно провалиться в «режим меню» посреди боя было бы худшей ошибкой, какая только возможна в этой системе.
Игра отслеживает, какое устройство ввода использовалось последним: когда вы переходите на геймпад, сенсорные кнопки убираются с экрана.
Настройки тоже следуют за платформой
Окно настроек подстраивается под устройство: вкладки мыши и клавиатуры появляются только на ПК, а вкладка сенсорного управления — только на телефонах. Графические опции только для ПК, такие как Lumen, DLSS и FSR, на мобильных устройствах уступают место настройкам разрешения и сглаживания. На каждом устройстве мы показываем только те настройки, которые там действительно что-то делают.
30 языков и интерфейс, измеренный под каждый язык
Игра и наши сайты рассчитаны на 30 языков. Скрытая трудность многоязычного интерфейса — длина текста: одна и та же подпись кнопки может быть короткой на одном языке и вдвое длиннее на другом. Ширину вкладок в окне настроек мы рассчитываем по реальной ширине каждой подписи на этом языке, а не делим место поровну; при смене языка раскладка пересчитывается. В списке выбора языка каждый язык написан своим собственным названием.
Перевод чата на наших собственных серверах
Чтобы игроки из разных стран понимали друг друга в одном мире, сообщения чата переводятся на язык читателя. При создании этой системы у нас было два принципа:
- Сообщения не покидают наши серверы. Перевод выполняется на наших собственных серверах локальной моделью, работающей только на CPU; внешний API перевода не используется.
- Сохранить язык игры. Чат MMORPG полон сокращений, игровых терминов и эмодзи. Мы используем глоссарий, составленный специально для игры, а эмодзи защищаем отдельно, чтобы они не терялись при переводе.
Что дальше
Продолжается работа над производительностью на мобильных устройствах и над остальными платформами, на которые мы нацелены. Полный список управления со стороны игрока смотрите в руководстве по кроссплатформенной игре на ПК и мобильных устройствах на сайте игры. Чтобы познакомиться с нашей студией, прочитайте статью «Кто такие Astronaut Entertainment?».


