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

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


Итого


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


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

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



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


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


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

Комментарии (22)


  1. Slavik_Kenny
    28.12.2018 14:04
    -1

    Объяснить, что такое Платформа, чем она является и не является, весьма сложно

    А мне кажется просто — это свой Steam со своими блэкджеками фишками.


    1. max_posedon Автор
      28.12.2018 14:48
      +1

      Не совсем так. Когда разработчик издает игру через Steam, ему нужно готовить инструментарий для управления игроком — для рассылок, служба поддержки, начисления имущества, отчеты, email рассылки и многое другое. У нас это входиь в платформу, а у Steam-а этого нет (наверное и не может быть). Т.е. Steam это просто инструментарий для продаж и дистрибуции — а вопросов гораздо больше.


      1. TriBar
        28.12.2018 14:56

        Иными словами, это продвинутый «бекэнд» для онлайн игр.
        В целом закономерный шаг, что ваш внутренний функционал стал достаточно гибким и универсальным, чтобы поделиться ими с другими.
        Вот только не уверен, что подготовка такого бекэнда самостоятельно было большим барьером — тогда как в мире онлайн разрывают Fortnite, PUBG, Dota 2, League of Legends, ну и танки конечно, зайти с интересным проектом, хоть и сэкономив время на бэкенде, может быть очень трудно.


        1. Tiendil
          28.12.2018 15:02
          +1

          Вот только не уверен, что подготовка такого бекэнда самостоятельно было большим барьером

          Разработка нормального «обвеса» игры по моему опыту может занимать и половину и больше половины от общей работы. Конечно, от игры ещё зависит и от желаемого качества.


        1. max_posedon Автор
          28.12.2018 15:25

          поделиться ими с другими

          На всякий случай, сразу явно напишу, что нет. Прямо сейчас желания делиться функциональностью с миром, и выпускать собственный store, который может сторонняя игра пользоваться для выпуска — прямо сейчас такого желания нет (насколько я знаю).

          И вообще, это больше вопрос к бизнесу. А мы тут инженеры. Мы хотим рассказать, как она (Платформа), работает. И почему она такая.

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

          У нас бизнес задача — сэкономить / сделать общим этот [то что можно обобщить] бэкенд для игр Wargaming-а


      1. Slavik_Kenny
        28.12.2018 16:01

        Стим был просто в качестве самого популярного примера платформы. Вместо него можно было написать Origin, BattleNet, UPlay и т.д. — все это разные платформы, так что современному игроку весьма просто объяснить что такое платформа (я только это и имел ввиду своим комментарием). Другое дело что возможно вам сложно объяснить чем ваша платформа отличается — на то и статья была написана видимо.

        Когда разработчик издает игру через Steam, ему нужно готовить инструментарий для управления игроком — для рассылок, служба поддержки, начисления имущества, отчеты, email рассылки и многое другое. У нас это входиь в платформу, а у Steam-а этого нет (наверное и не может быть)

        1 — поэтому я и сказал — со своими фишками.
        2 — рассылки, служба поддержки, управление игровым имуществом и многое другое (сообщество, френдлист и т.д.) — в стиме есть.
        3 — странно слышать, что разработчику надо делать инструментарий для стима как альтернатива тому, что вы делали инструментарий для другой (своей) платформы. В любом случае разработчику надо делать инструментарий.


        1. max_posedon Автор
          28.12.2018 16:23

          управление игровым имуществом

          Попробую на примере этого объяснить, но признаю, что разница может быть не понятна (надо возможно в отдельной статье об этом пояснить) — через Steam можно начислять только имущество, про которое он знает (используя различные bundle-ы и тд) — для MMO игр этого недостаточно, ведь огромное количество логики / функциональности зашито в игровой сервер, и отделу поддержки нужен UI для прямого управления этой функциональностью. Например (то что, я не знаю как сделать через steam):
          1. посмотреть последние 10 боёв игрока
          2. посмотреть список его внутри-игровых трат золота/серебра
          3. поменять балансировку карт
          4. поменять цены / характеристики

          надо делать инструментарий

          У нас не надо. Ну то есть вроде и надо, но мы делаем это за его. Пытаясь сделать это один раз на все игры, которая впускает компания.


          1. Slavik_Kenny
            28.12.2018 17:09

            Я вас прекрасно понял, но я своим первым комментарием имел ввиду совсем другое.
            Основные задачи платформы вы описали в самом конце под заголовком «Итого» — они ровно теже, что и у других платформ, и я только касательно этого сказал что объяснить что такое платформа — просто.
            Ну и возможности платформы я рассматривал с точки зрения игрока — менять балансировку карт или цены/характеристики явно не для игроков примочки :)

            Честно говоря, мне не нравится что у каждого разработччика или издателя появляется своя платформа — конечному пользователю приходится устанавливать их даже ради одной игры. И если ты не школьник (про игрок/стриммер и т.д.) с кучей разных игр и времени на них — то для тебя что иметь для каждой игры свой логин, что для каждой платформы — разница не велика, а вот всякого ненужного софта будет меньше.
            Я как-раз из тех, у кого мало игр, причем в UPlay и Origin по одной игре только, вот и толку мне от этих платформ?

            Но то, что это не нравится лично мне конечно не означает что это плохо или что я это осуждаю — каждый делает как ему удобнее и выгоднее, просто хотелось-бы иметь возможность обходиться и без лаунчеров разных :) Дайте выбор пользователю какую версию он желает. Купить игру, посмотреть статистику и т.д. все-равно можно на сайте без какого-либо лаунчера.

            сорри за оффтоп :) К статье это уже никакого отношения не имеет.


            1. max_posedon Автор
              28.12.2018 18:02

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

              Увы, Nothing personal — it's just business. Все платформы берут % от дохода, типичная цифра — 30%, это не мало. Если игра очень успешная, то сумма получается такая огромная, что дешевле сделать свою платформу. Так же, для MMO free2play игр оказывается, что эти платформы не самые подходящие/удобные.

              У Steam-а например плохие бинарные обновления — они основаны на алгоритмах, bittorrent. А у нас на rsync — танковые (ежемесячные) обновления в steam-е бы вызывали скачивание 10 гигабайт, а не 1.


              1. Slavik_Kenny
                28.12.2018 18:17

                Все платформы берут % от дохода

                Знаю, поэтому и понимаю почему так происходит :)
                Но не понимаю, почему нельзя разрешить пользователю отказаться от платформы…


                1. max_posedon Автор
                  28.12.2018 18:23

                  Чтобы продолжать зарабатывать с пользователя. Т.е. можно, но глупо с точки зрения бизнеса. «Собственному» игроку, гораздо дешевле (почти бесплатно) «впаривать» другие свои продукты (а за стороннего нужно заплатить за рекламу). Вообще вся эта аудитория и является большим business asset-ом хоть Wargaming-а с танками, хоть Epic Games с Fortnite.

                  А Free2play игры (или платные игры с элементами продажи голды или аналога) — они вообще подразумевают постоянное получение денег с игрока.


  1. Tiendil
    28.12.2018 14:54
    +2

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

    Архитектура этого всего, конечно. И организация процесса разработки, его эволюция, как команды взаимодействуют. Что стандартизируется, что отдаётся на откуп командам. Какой зоопарк технологий в итоге получился.

    Когда в open source?

    Когда оно всё начиналось, была ещё wiki по игре. Она загнулась или просто не считается частью платформы?

    На сколько сильными остались связи с BigWorld?


    1. max_posedon Автор
      28.12.2018 16:17

      Архитектура этого всего, конечно. И организация процесса разработки, его эволюция, как команды взаимодействуют. Что стандартизируется, что отдаётся на откуп командам. Какой зоопарк технологий в итоге получился.

      Принято.

      Когда в open source?

      Не знаю / никогда. В лучшем случае какие-то маленькие кусочки.

      Когда оно всё начиналось, была ещё wiki по игре. Она загнулась или просто не считается частью платформы?

      wiki.wargaming.net/ru/World_of_Tanks как был так и есть. Вообще то, что является частью платформы организационно и функционально — разные вещи. Развития возможностей площадки — нет, не происходит.

      На сколько сильными остались связи с BigWorld?

      Игра больше не обязана быть на BigWorld-е, чтобы легко было проинтегрироваться.


  1. grey_rat
    28.12.2018 22:53
    +1

    А зачем игроку Wargaming Game Center (WGC) держать запущенным когда он запускает игру? Зачем этот лишний процесс на его компе, когда можно запустить WGC по необходимости.
    Зачем нужно было калечить старый торрент-клиент и убирать стандартные торрент-файлы? Сейчас даже нельзя посмотреть какие параметры торрента в p2p. Если раньше до WGC игра качалась порой и на сотке мегабит подхватывая локальных или пиринговых пиров, то теперь даже ниже скорости в рамках тарифа. В Беларуси у многих провайдеров не режется скорость как внутри своей сети, так и по стране. Вангую, в вашем торренте уже нет ни локального ретрекера, ни республиканского. Могли бы и веб-сида хотя бы одного на страну прикрутить. Кстати, Атлант телеком в своё время его прикручивал к вашему торренту, правда в виде обычного сида для локального ретрекера, но в вашем клиенте из-за безумного DHT и невозможности ограничить количество подключенных пиров он просто терялся. Так же из-за невозможности ограничить количество пиров, сёрфинг по инету во время загрузки игры фактически невозможен. Те кто сидит на ADSL может и расхотеть поиграть в игру, недождавшись когда она полностью загрузится.


    1. max_posedon Автор
      28.12.2018 23:20

      Попробую ответить:

      А зачем игроку Wargaming Game Center (WGC) держать запущенным когда он запускает игру?

      Нет смысла его выгружать на время игры. Плюс есть сценарии когда он нужен во время работы игры — некоторые игры в принципе не имеют формы ввода логина/пароля, и вход происходит испоьзуя wgc_api.dll

      Зачем этот лишний процесс на его компе, когда можно запустить WGC по необходимости.

      Если держать WGC постоянно запущенным, то человек когда захочет поиграть, будет иметь уже обновлённую игру (не надо будет ждать / не пойдёт играть в другую). Это выбор компании, как должно быть по умолчанию. В настройках можно отключить.

      Зачем нужно было калечить старый торрент-клиент и убирать стандартные торрент-файлы?

      Торрент-файлы никуда не делись, просто лежат теперь только в кэше. В логах WGC мы не скрываем ссылки на их, можно легко найти, посмотреть на них и проверить.

      Сейчас даже нельзя посмотреть какие параметры торрента в p2p.

      Можно, просто чуть сложнее. Продвинутые пользователи найдут, а убрать с глаз от всех кажется разумным. Но вообще вот например (в логах WGC легко найти) dl-wot-cdx.wargaming.net/ru/patches/wot_1.3.0.1064_ru/wot_1.3.0.1064_ru.torrent

      Если раньше до WGC игра качалась порой и на сотке мегабит подхватывая локальных или пиринговых пиров, то теперь даже ниже скорости в рамках тарифа.

      У нас разные отзывы о скорости скачивания, но технологически: launcher и wgc абсолютно одинаково работают.

      Вангую, в вашем торренте уже нет ни локального ретрекера, ни республиканского.

      Республиканского никогда не было, локальный есть и мировой есть.

      Могли бы и веб-сида хотя бы одного на страну прикрутить.

      По логам легко увидеть, что главным CDN-ом является dl-wot-cdx.wargaming.net, IP зависит от местоположения. У меня сейчас это 86.57.224.6 и это в Минск-е, с ping-ом 6ms у меня из дома.

      Кстати, Атлант телеком в своё время его прикручивал к вашему торренту, правда в виде обычного сида для локального ретрекера

      Это возможно как и раньше.

      но в вашем клиенте из-за безумного DHT и невозможности ограничить количество подключенных пиров он просто терялся

      WGC и Launcher используют www.libtorrent.org с настройками на оптимизацию скачивания (при активном скачивании). Сейчас WGC фактически скачивает в основном в фоне — там уже фокус на немешать.

      Так же из-за невозможности ограничить количество пиров, сёрфинг по инету во время загрузки игры фактически невозможен

      Да, тут есть ещё проблемы. Работаем над этим.

      Те кто сидит на ADSL может и расхотеть поиграть в игру, недождавшись когда она полностью загрузится.

      Рекомендуемый способ — держать WGC постоянно запущенным, чтобы он скачивал игру в фоновом режиме / по ночам обновлял игры.

      Вот… как-то так. Вся эта информация доступна для любопытных (прямым исследованием exe-шников, библиотек и логов), по этому вроде не секретная.


  1. grey_rat
    29.12.2018 00:18

    Если держать WGC постоянно запущенным, то человек когда захочет поиграть, будет иметь уже обновлённую игру (не надо будет ждать / не пойдёт играть в другую). Это выбор компании, как должно быть по умолчанию. В настройках можно отключить.
    ага, и пинги соответствующие в игре будут. Если вы проведёте опрос на тему «Хотели бы вы, что бы игра в фоне качала/раздавала когда вы играете?» ответ будет однозначным. Тут даже просто левые коннекты на другие IP не связанные с игровым процессом будут многими игроками болезненно восприняты.
    Торрент-файлы никуда не делись, просто лежат теперь только в кэше. В логах WGC мы не скрываем ссылки на их, можно легко найти, посмотреть на них и проверить.
    по локальному ретрекеру я был не прав, он имеется в торренте.
    По логам легко увидеть, что главным CDN-ом является dl-wot-cdx.wargaming.net, IP зависит от местоположения. У меня сейчас это 86.57.224.6 и это в Минск-е, с ping-ом 6ms у меня из дома.
    закинул торрент в utorrent, получил кучку IP, среди которых 86.57.224.6 нет, хотя я так же из Минска. Да даже если бы и был, он всё равно бы откинулся среди всей этой кучи пиров. Как я понимаю вот эти 178.18.228.118:6900 и т.д и есть ваши CDN, и небольшая кучка IP обычных пользователей c портом 6881.
    Как по мне, так оптимизация тут может быть в следующем:
    1. Отключение DHT и обмен пирами. Иначе смысла в CDN нет абсолютно. Вроде как механизма isp.peer_policy_url в libtorrent нет. Пару лет назад кто-то предлагал qBittorent, что бы это там сделать, но вроде не захотели. В принципе я особо и сам не слежу давно за этой темой, наверно уже с тех пор как меня выгнали с рутрекера за плохое поведение. Как там сейчас с подобными механизмами — не интересовался.
    2. Прикручивание механизма аналога isp.bep22, ну или добавление регионального ретрекера другими путями в тех местах где это ещё актуально.
    3. Региональный CDN пир или веб-сид должен в любом случае попадать в список пиров у юзера, при этом не теряться среди других пиров. Лучше один пир но качественный.
    4. Не знаю как там дела обстоят с пользовательским NAT и пробросом портов. Но если автоматом не пробрасывается на роутерах по команде WGC клиента — то и p2p по факту практически не будет как такового.


    1. max_posedon Автор
      29.12.2018 00:35

      промахнулся, ответ в соседней ветке


  1. max_posedon Автор
    29.12.2018 00:33

    Если вы проведёте опрос на тему «Хотели бы вы, что бы игра в фоне качала/раздавала когда вы играете?» ответ будет однозначным

    WGC (и Launcher — там тоже уже пару лет есть фоновое скачивание) ничего не обновляет, когда вы играете в игры Wargaming-а. WGC (и Launcher) раздают данные ТОЛЬКО когда он сам скачивает — т.е. как только WGC закончил скачивать, он перестаёт раздавать. Сделано это именно для того, чтобы не мешать людям.

    закинул торрент в utorrent

    WGC (и Launcher) скачивают не только так. В наших torrent-ах нету web seed-ов, они добавляются динамически (это позволяет нам перенастраивать CDN без перевыпуска torrent-ов). В логах WGC можно найти вот такие запросы получения информации о патчах: wgus-wotru.wargaming.net/api/v1/patches_chain/?protocol_version=1.7&client_type=sd&lang=RU&metadata_version=20180629125846&metadata_protocol_version=5.14&chain_id=sd3_hd3&installation_id=B10E12A828CF15E7D30EB993B9FAFC3D037B464C&client_current_version=0&locale_current_version=0&sdcontent_current_version=0&game_id=WOT.RU.PRODUCTION именно оттуда берётся информация о web-seed-ах.

    178.18.228.118:6900 и т.д и есть ваши CDN

    Это наши p2p seed-ы. Есть ещё и web seed-ы (см выше).

    Отключение DHT и обмен пирами. Иначе смысла в CDN нет абсолютно.

    Не могу с этим согласиться. Для ситуации как у вас — скорее всего да, улучшило бы. А для многих других — наоборот. У пользователей совершенно различные условия выхода в интернет, и конфигурация которая подходит для жителей Москвы / Минска, не совпадает с тем, что является оптимальным для жителей Казахстана. Мы в первую очередь боремся за доступность для всех, за скорость скачивания не среднею, а у 95% квантиля.

    Прикручивание механизма аналога isp.bep22

    Вот тут не могу утверждать на 100%, но в «мировой» tracker с нашими патчами это обеспечивает, задачи на это были.

    Региональный CDN пир или веб-сид должен в любом случае попадать в список пиров у юзера, при этом не теряться среди других пиров

    Чуть выше описал, как именно попадает dl-wot-cdx.wargaming.net и он как типичный CDN раскрывается уже в локальные точки присутствия.

    то и p2p по факту практически не будет как такового.

    Ничего страшного, есть и web seed-ы.

    Ну и надо понимать, что для нас важной задачей является и оптимизация расходов на дистрибуцию.


    1. grey_rat
      29.12.2018 00:49

      Сделайте тогда в настройках WGC опцию по ограничению числа соединений с обычными пирами во время загрузки контента, но не раздачи. Как минимум, это решит проблему сёрфинга с медленным интернетом. У самого в utorrent стоит ограничение в 10 пиров, что бы при закачке без проблем пользоваться браузером.


      1. max_posedon Автор
        29.12.2018 01:06

        С одной стороны звучит разумно — передам. С другой — этот вопрос поднимался уже несколько раз и… В общем не хочется превращать WGC в ЦУП с огромным количеством настроек, в которые большинство игроков всё равно не полезет. Более правильно сделать так, чтобы WGC «хорошо себя вёл» и в таких случаях автоматически, а это уже гораздо сложнее.


        1. grey_rat
          29.12.2018 09:05

          А разве выбор номера порта соединения в WGC о чём-нибудь говорит обычному пользователю? Главное правильно обозвать настройку в клиенте, например «ограничить количество соединений с источниками обновления» ну или что-нибудь в таком духе.


        1. grey_rat
          29.12.2018 17:05

          Кстати, в самом деле, можете же обратиться в Bittorent, пока эта контора окончательно не развалилась, хоть их кто-то вроде и купил за копейки. Если они с вами поделятся исходниками механизма isp.peer_policy_url, то большая часть описанных проблем решится сама собой.