Хабрахабр

Wargaming Platform: Hello World

WTF is Platform?

Объяснить, что такое Платформа, чем она является и не является, весьма сложно — но я попробую. В Wargaming есть отдельное подразделение, которое занимается… занимается разработкой некой «платформы» для издания игр.

Почему появилась статья

Меня зовут Максим. Привет! И я тут работаю [в компании Wargaming].

У меня и моих коллег есть желание рассказать вам о Платформе и ее внутренней «кухне»: кто мы, что мы делаем, какие технические решения принимаем, что у нас получилось, а что не очень. У нас есть отдельное подразделение, которые занимается… занимается разработкой некой «платформы» для издания игр. Я один из «старых» сотрудников этой команды, и в этой статье я хочу рассказать о том, как мы пришли к необходимости создания Платформы и основных этапах ее развития.

История по верхам: самое начало

Хотя само понятие [Платформа] и ее выделение в отдельную сущность появились гораздо позже. World of Tanks — далеко не первая игра компании Wargaming, но создание Платформы началось именно с нее.

К игре (которая состоит из клиента и сервера) сначала добавились:

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

Примерно таким составом удалось выйти в закрытое тестирование, начать получать платежи (предпродажи), затем — в открытое и, наконец, в релиз (в августе 2010-го).

История по верхам: быстрое развитие: вжух-вжух и в production

Зачастую в релиз уходили сырые сервисы, которые затем стабилизировались, и наступало время делать уже другие решения для других задач: Перед релизом «Танков» и долгое время после него основное развитие платформы происходило в режиме «быстрее и побольше».

  • экспортер — отдельный сервис, который хранил «реплику» данных игр в виде набора JSON; дело в том, что внутри игры данные лежат в бинарном виде, более удобном для движка WoT, а снаружи (с типичных web-сайтов) проще пользоваться текстовым представлением;
  • единый сервис аутентификации — для игры, форума, сайта игры и т. д.; до этого пара «логин/пароль» хранилась чуть ли не в каждом сервисе отдельно, и не всегда получалось хранить их согласованно;
  • клановые войны — по сути отдельная браузерная игра с фишками, нападениями на территорию соседей, c боями, которые случались уже внутри WoT;
  • турниры — аналогично клановым войнам;
  • непрерывное увеличение способов и удобства оплаты — это вообще бесконечная задача, всегда можно сделать лучше и больше.

«Танки» за это время вышли в релиз в Европе и Северной Америке.

История по верхам: самолеты, корабли

И тут стал очевиден недостаток того, что мы сделали ранее для Платформы. Потом компания стала разрабатывать не только «Танки». Мало того, это были фактически рабочие прототипы; на продолжительное тестирование у нас в то время не хватало ни времени, ни рук. Все, что мы разработали, было сделано для одной игры. О масштабировании на несколько игр мы тогда задумывались в основном теоретически.

Но у команд, ответственных за разработку каждой из игр, есть собственное видение того, как именно каждая из игр должна подаваться. В основе серверов игр World of Tanks, World of Warplanes, World of Warships лежит игровой движок BigWorld и базовые задачи интеграции с сервисами платформы могли быть реализованы в общем виде. То есть, несмотря на то, что общий вектор совпадал, выяснилось, что существует огромное количество отличий, которые приходили к нам в платформу в виде отдельных требований.

Вторая часть хоть и оставалась без изменений, но архитектура этих сервисов была такой, что для каждой из игр требовалась работающая в продакшене отдельная копия. Одна часть сервисов (например, игровые веб-порталы «Самолетов» и «Кораблей») фактически оказались разошедшимися fork-ами танкового портала. И только небольшую часть сервисов было несложно доработать, чтобы оставить единственную копию на все игры в том или ином регионе.

Что лучше: единое техническое решение для всех игр или отдельное для каждой? Работы стало гораздо больше, и началась постоянная борьба. Дублирование — это лишняя работа, но такой подход дает играм возможность свободно делать кастомизации, выпускать релизы чаще и вообще идти своей дорогой.

История по верхам: консоли, мобилки

«Танки» на этих устройствах — это не порты с PC, это отдельные, полностью переработанные игры. Когда игры стали выходить не только на PC (речь в первую очередь о World of Tanks на консолях и мобильных устройствах), это коснулось Платформы самым непосредственным образом. Сервера этих игр, хоть и были переработаны, в самом начале не сильно отличались от PC-шной версии. Но!

В первую очередь это такие задачи: На нас легла задача интеграции со сторонними платформами; мы должны были стать некоторым proxy между ними и игрой, взять на себя как можно больше задач взаимодействия и свести к минимуму изменения в серверных частях игр.

  • поддержка входа с помощью Sony PSN и Microsoft Xbox LIVE;
  • логин на веб-ресурсы WG;
  • создание аккаунтов и логины на мобильных устройствах;
  • платежи.

От нас, как от разработчиков платформы, нужна была доработка определенных компонент и помощь в интеграции. Конкретную работу по интеграции с API Microsoft и Sony вели сами разработчики игр. Хотя нам тоже хватало задач, связанных со спецификой работы этих платформ.

Необычные регионы: Вьетнам, Китай, Корея

И даже не один. Азия — это отдельный мир. В том числе и в том, как именно люди играют в игры: Там очень много нюансов.

  • Китай — это выпуск игры исключительно с местным партнером. Дело в том, что в Китае выпустить игру самостоятельно очень сложно. Требуется пройти огромное количество административных процедур, в том числе согласование в правительстве.
  • Вьетнам — там World of Tanks в течение нескольких лет работала с партнером, который… у которого API для интеграции был в виде хранимых процедур к MS SQL.
  • Корея — очень требовательное законодательство. Которое, в частности, требует обязательной интеграции с правительственным SaaS-ом. Он предоставляет данные об имени, возрасте и т. д. игрока, и настаивает на реализации ограничений по платежам (не более 500 долларов в месяц), по игровым часам и прочее. Даже есть требования к паролям игроков.

Advanced features

В определенный момент времени стали разрабатываться сервисы, которые понадобились для более качественного оперирования игр.

Из того, с чем сталкиваются сами игроки, это:

  • Wargaming Game Center (WGC) — единое Windows-приложение для установки игр;
  • сервис персональных предложений для магазина на основании статистики игрока;
  • совместный тарифный план от Wargaming и Ростелекома.

И много внутренних инструментов для работы отделов поддержки, контента, и других.

Новая платформа для новых игр

От поддержки нескольких игр, сделанных компанией Wargaming на движке BigWorld (WoT, WoWP, WoWS), нужно было перейти к поддержке множества других игр, сделанных на совершенно иных технологиях. Затем наши задачи дополнительно расширились. И не только компанией Wargaming.

Да и наши API, использующиеся для интеграции, были очень заточены для игр на BigWorld, но не для игр на других технологиях. Стало очевидно, что многие компоненты могут поддерживать несколько игр, но не десятки/сотни.

Случилось просто добавление нескольких новых сервисов и новых API, которые отлично сосуществуют с «классическими». Никакой «новой» Платформы не случилось. Играми, которые поехали по новым рельсам (из уже анонсированных) стали:

  • Total War Arena;
  • Caliber;
  • Pagan Online.

Ну и началась миграция старых.

Итого

Платформа это — совокупность сервисов и инструментов для издания игр — всё то, что позволяет игроку:

  • зарегистрироваться;
  • залогиниться;
  • заплатить;
  • скачать игру;
  • получить помощь.

А для издателя — помочь игроку это сделать, с учётом всех региональных особенностей и пожеланий разработчиков игр.

Что интересно узнать

Не надо считать ее официальной — где-то я мог ошибиться, где-то упростить, где-то преувеличить. Это история, пусть и по верхам, моими глазами. Очень хочется продолжать делиться информацией. Но! Дайте знать, о чем вам будет интересно узнать, и я и мои коллеги попробуем вам об этом рассказать.

S.
За картинки спасибо Pandarama https://www.instagram.com/pandaramka/ P.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»