Компания
149,46
рейтинг
25 июля 2014 в 11:24

Разработка → Как мы делали XVM. Часть первая: начало и сбор команды




Приветствуем, уважаемое хабрасообщество! По случаю старта конкурса от Wargaming мы решили, во-первых, в нем поучаствовать, а, во-вторых, написать серию статей о том, как мы докатились до создания одной из самых популярных модификаций World of Tanks и как хобби с парой строк говнокода за вечер переросло в то, что мы имеем. В статьях описаны все встреченные (и опробованные на себе) грабли. Еще одним поводом для написания статьи было зарытие топора войны между XVM и Wargaming и выходом наших отношений на новый уровень — мы рады, что эта статья опубликована именно в блоге WG. Надеемся, что само чтиво вышло интересным, а другие конкурсанты смогут почерпнуть для себя что-нибудь полезное.

Когда я только начинал играть в World of Tanks в начале 2011 года, то, естественно, не заморачивался по поводу модов. Я даже не знал о том, что они существуют. Но есть у меня такая привычка: если какая-то игра мне нравится (то есть, не удаляется после первой же игровой сессии), то я стараюсь узнать об этой игре как можно больше, для чего лезу на тематические форумы. На этом самом форуме я узнал о существовании модов и решил попробовать. Неделю перебирал все эти прицелы, шкурки, иконки техники, разные озвучки и все больше и больше мне это не нравилось. Вроде бы все неплохо, но чего-то не хватает, хочется подкрутить. Почти все моды удалялись после первого же тестового боя. Но как-то раз я наткнулся на мод под незатейливым названием OTM.

OTM


Он же — Over Target Markers. Эта штука заменяла стандартные маркеры танков на свои (маркеры — это те самые полосочки HP, класс техники и другие, находящиеся над всеми танками).



Самой главной фишкой на тот момент было то, что OTM добавлял эти самые полоски ХП, которых в стандартных маркерах не было. При использовании стандартных маркеров единственной возможностью узнать количество ХП вражеской и союзной техники было наведение курсора мыши на нее и чтение хинта. Найти «подранка», по которому следует сосредоточить огонь, было проблематично: приходилось водить мышью по полю боя, вместо того чтобы сосредоточиться на стрельбе и маневрировании. С OTM же ситуация на поле боя была буквально как на ладони. Но и это еще не все: у мода был конфиг в виде файла OTMData.xml, позволявший настраивать внешний вид и поведение маркеров! От версии к версии количество настраиваемых элементов росло. Конфигом можно было поделиться, чем народ активно занимался на тематических ресурсах. Мод стоял у многих танковых ютуберов, что немало способствовало его популярности.

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

Оленемер


В то время я еще был супертестером WoT. Этим ребятам показывают ранние версии клиента с целью получить фидбек. И как-то вечером за дружескими покатушками услышал в Teamspeak обрывки разговора: «ты ЭТО видел? …. Да как его поставить то? … Сыть!… ПАМАГИТЕ!!!!!». Оказалось, что речь идет о каком-то новом моде, который отличался, помимо прочего, несколько, кхм, неординарным процессом установки.

Итак, запоминайте (а лучше — записывайте!), что было нужно для установки (близкая к оригиналу инструкция):

  1. Скачать и распаковать архив.
  2. Содержимое одной из директорий архива скопировать с заменой в папку клиента игры. (Тут надо упомянуть, что на тот момент это было обычным делом для всех модов, так как папки res_mods и, соответственно, поддержки модов со стороны разработчиков игры еще не было.)
  3. Установить какую-нибудь WAMP сборку. (Да-да, это где Apache, MySQL и PHP. Вообще-то MySQL тут был не нужен, но ставить сборку явно проще.)
  4. В корень веб-сервера нужно было положить скриптик из другой директории архива. Скриптик представлял собой WebDAV сервер с небольшими изменениями.
  5. Создать в Windows сетевой диск и подключить его к созданному на предыдущем шаге серверу командой
    > net use t: localhost/local_server/server.php
    либо через мастер.
  6. Установить штуку под названием Dokan (аналог FUSE для Windows).
  7. С помощью утилиты mirror.exe из комплекта Dokan выполнить зеркалирование диска t: в r:. Это приводило к появлению в системе еще одного диска — точной копии сетевого из шага 5, но который система считала локальным.
  8. В каталоге res\gui\flash клиента WoT создать символьную ссылку с именем stat, показывающую на каталог r:\user командой
    > mklink /D c:\games\World_of_Tanks\res\gui\flash\stat r:\user\
  9. На этом пункте наконец можно было запустить клиент и насладиться работой мода.



Сам мод этот показывал ни много ни мало процент побед сокомандников и противников. Причем прямо в бою и прямо в ушах («уши» — это панельки по бокам экрана со списком игроков), применяя самую настоящую цветовую дифференциацию. Честно говоря, первой реакцией, когда я воочию увидел работу мода, была отвисшая челюсть: неужели это все вообще работает?! Еще ниже челюсть отвисла, когда я бой за боем наблюдал количество тех самых представителей фауны, давших название моду.

Хотя стоп. Вы себе представляете, чтобы типичная ЦА «танков» сумела выполнить первые восемь пунктов установки мода без ошибок? Ожидаемо, тема с этим модом на официальном форуме была одной из самых быстрорастущих.

Объяснив нескольким товарищам, как же это все настроить, я понял, что это тупик, и надо все как-то упрощать. Первая мысль была избавиться от WAMP. Тут я подумал, что от PHP, по сути, требуется только WebDAV-сервер, который явно можно сделать много чем.

Как назло я тогда (да и сейчас) увлекался NodeJS и всерьез хотел написать WebDAV на нем. Ну типа, то Apache ставить, а то Node. Ведь это ж огромная разница! В итоге засел за гугл и узнал о user mode file systems вообще и Dokan в частности. Запустил Visual Studio и за полночи родил .NET-экзешник, который делал то же, что и конструкция из WAMP + зеркало Dokan — создавал в системе локальный диск.

Пару слов о том, для чего был нужен этот диск. Пользовательский интерфейс World of Tanks сделан на Action Script. Идея мода — взять нужный AS-файл, декомпилировать его, изменить то, что хочется, скомпилировать и залить обратно. Оленемер был сделан так же — раскрашивал строки ушей в цвета, соответствующие статистике игрока. Вопрос только, как эту статистику получить с сервера мода? Самый очевидный ответ: запросить по http! Да, но есть одно «но»: AS работает в песочнице (причем этих песочниц несколько — для разных частей интерфейса), и у этой песочницы заблокирован выход в сеть. Зато есть доступ к файловой системе по относительным путям. И из-за этого пришлось городить огород с дисками, серверами и линками.

Работа выглядела так:

  1. AS скрипт получает список игроков, которых надо нарисовать в ушах.
  2. Для каждого игрока читается файл stat\<ник игрока>.
  3. Так как stat — это линк, то реально читается R:\user\<ник игрока>.
  4. .NET приложение получает запрос на чтение файла, формирует http-запрос на сервер мода (о котором в следующей статье).
  5. Получив ответ, выдает его в виде «контента файла» AS-скрипту.

Это нехитрое усовершенствование увеличило число пользователей нового мода на порядок. В оригинальной теме, если задавался вопрос об установке, чаще всего отправляли в мою тему с «упрощенной установкой».

Сбор команды и XVM


Тем временем количество пользователей мода росло, а на скорую руку написанный сервер, хостящийся на дешевом VPS, стал не справляться с нагрузкой.

Результатом было:



Как раз в то самое время я для собственных нужд арендовал в Hetzner самый дешевый «выделенный» сервер (EQ4: Intel Core i7-920, 8 GB DDR3, 2x 750 GB SATA II HDD). Видя такое безобразие с понравившимся мне модом, связался с камрадом bkon и предложил посильную помощь с хостингом.

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

В феврале-маре 2012, одновременно с этим был сделан форум на том же самом сервере для технической поддержки и обмена конфигами.

Небольшой исторический экскурс. Изначально идея и первые реализации OTM принадлежат Nicolas Siver. В ноябре 2011 года ему это дело, похоже, поднадоело, и эстафету подхватили камрады sirmax и bkon, выпустив OTM для клиента танков версии 0.6.7. У них же возникла идея оленемера. Sirmax (sirmax2) по сей день является основным разработчиком клиентской части XVM.

В январе 2012 к команде присоединился и я: сначала в качестве хостера, чуть позже — в качестве разработчика серверной части, а затем — и вспомогательных систем (к примеру, виджет активации статистики).

В середине 2012 из команды как-то незаметно ушел bkon, зато появились: Mr 13 (Wayfarer) — CEO и PR, XlebniDizele4ku (ilit) — разработчик клиентской части, Mr A — помощь в разработке клиентской части и сборка релизов, Mixaill (Mixaill) — организация непрерывной интеграции (ночные сборки), взаимодействие с переводчиками клиентской части, q4x2 — *nix специалист и разработчик серверной части.

И пару слов о том, почему, собственно, были удалены темы с описанием модификаций на официальном форуме. С ростом популярности мода росло и число прецедентов, так сказать, неспортивного использования: оскорбления игроков с низкой статистикой, либо, наоборот, со слишком высокой. Оскорбленные игроки шли на тот же официальный форум и плакались/требовали/угрожали и всяческими способами добивались запрета этого «обидевшего» их мода. Спустя некоторое время «без объявления войны» (то есть, без какого-либо предварительного контакта с разработчиками мода) все темы, относящиеся к оленемеру и XVM были удалены, а в правила форума был внесет запрет на публикацию ссылок на любые моды, отображающие статистику. Официальная причина таких запретов: моды создают дополнительную нагрузку на серверы WG. Любая попытка как-то урегулировать конфликт и снять запрет наталкивалась на синдром вахтера у модераторов (сказано удалять — мы удаляем), или отписки менеджеров.

Мы предлагали различные компромиссные варианты: ограничить частоту запросов до заданной величины. Ввести расписание, когда мы будем слать запросы — все упиралось в глухую стену. Подолбившись в нее пару месяцев мы оставили эти попытки, и просто разделили XVM на XVM-full и XVM-light. В light-версии было вырезано все, что относится к отображению статистики. Этим самым, мы формально не попадали под запрет (с лайт версией, разумеется): вахтеры нас особо не трогали, и канал привлечения новых пользователей через официальный форум снова заработал.

Конфиг и редактор


Как уже было сказано выше, у OTM и, соответственно, XVM был конфиг-файл. Сперва он был в формате XML: OTMData.xml. Настроек было немного, и хватало ручных правок в любом редакторе. Со временем количество настроек росло, как и популярность, и стали очевидны две вещи:

  1. XML не слишком удобен для ручных правок.
  2. Какой бы формат мы ни выбрали, нужен WYSIWYG-редактор.

С редакторами история получилась такая: времени на них вечно не хватало (да и сейчас не хватает), потому они часто не успевают за последними фичами в самом моде. Самый первый редактор был сделан на Adobe Air все тем же Nikolas Siver. Когда эстафета перешла к нашей команде, редактор мы достаточно долго не трогали, и он, по сути, перестал представлять собой серьезную ценность, так как не содержал в себе большого количества актуальных настроек. В какой-то момент я даже попытался сделать редактор на HTML/JS, но ничего интересного из этого не получилось.

Помимо некоторой тормознутости, был у него один фатальный недостаток: чтобы сделать его WYSIWYG, необходимо было проделать приличный объем работ по повторению фукционала AS + поддерживать его в актуальном состоянии. Вариант апплета же позволял взять часть кода прямо из основной ветки и получить визуализацию подкручиваемых параметров «на халяву». Актуальный редактор расположен тут.
Далее у нас была миграция с XML-конфига на JSON. Новый конфиг был назван xvm.xvmconf. По правде сказать, это не совсем строгий JSON: в нем допускаются комментарии. Благодаря этому более продвинутые пользователи могут править конфиг без онлайн редактора — просто читая комментарии.

Не забыли мы и про обратную совместимость. Во-первых, клиент при отсутствии конфига нового формата искал и загружал старый OTMData.xml (причем эту фичу выпилили совсем недавно, так что времени на миграцию было более чем достаточно). Во-вторых, в онлайн-редакторе до недавнего времени можно было открыть конфиг старого формата, а сохранить уже в новом.

Весной 2013 года назрела еще одна необходимость: из-за увеличения количества настраиваемых фич конфиг с каждой версией разрастался и разрастался. В результате ориентироваться в нем стало проблематично, плюс стало проблематично находить ошибки типа пропущенных запятых или скобок. Напрашивалось разделение файла с конфигом на несколько отдельных файлов, но формат JSON, в отличие от XML, не позволяет делать ссылки между файлами. Решением стало расширение формата JSON, которое мы назвали JSONx.

Собственно, изменение было только одно — в качестве значения можно указать ссылку на произвольный объект в этом или в другом файле. Есть два варианта записи: короткий и расширенный:
короткий —
“name”: ${“file”:”path”}

расширенный —
“name”: { “$ref”: { “file”: “<filename>”, “path”: “<path-to-value>” }, [overrides] }

Короткий формат является частным случаем расширенного. Расширенный формат добавляет возможность переопределения значений, унаследованных из подстановки. Параметр “file” не обязательный: если он не указан, значение будет искаться в текущем файле. Параметр “path” указывает путь к значению по иерархии документа, разделенный точками.

Можно рассмотреть это на примере:
root.xc:
{
  "configVersion": "5.1.0",
  "colors": ${"colors.xc":"colors"},
  "colors2": {
    "$ref": { "path": "colors" },
    "ally_dead": "0x009900",
    "enemy_dead": "0x840500"
  }
}

colors.xc:
{
  "def": {
    "al": "0x96FF00", // союзник
    "en": "0xF50800" // противник
  },
  "colors": {
    "ally_alive": ${"def.al"},
    "ally_dead": ${"def.al"},
    "enemy_alive": ${"def.en"},
    "enemy_dead": ${"def.en"}
  }
}

Здесь получается следующее:

  1. Начинает грузиться root.xc.
  2. Параметр «colors» файла root.xc ссылается на файл colors.xc, и подставляет из него объект “colors”.
  3. Параметры в секции «colors» файла colors.xc ссылаются на значения “def.al” и “def.en” того же файла.
  4. Параметр «colors2» файла root.xc ссылается на объект “colors”, копирует его значение и переопределяет значения «ally_dead» и “enemy_dead" другими.

В результате получается валидный JSON, который парсится по стандартным правилам:
{
  "configVersion": "5.1.0",
  "colors": {
    "ally_alive": "0x96FF00",
    "ally_dead": "0x96FF00",
    "enemy_alive": "0xF50800",
    "enemy_dead": "0xF50800"
  },
  "colors2": {
    "ally_alive": "0x96FF00",
    "ally_dead": "0x009900",
    "enemy_alive": "0xF50800",
    "enemy_dead": "0x840500"
  }
}

Расширение файлов конфига было изменено на .xc (от «xvm config»), и загрузочный файл конфига стал называться xvm.xc. Отдельные файлы и папки с говорящими названиями отвечают за отдельные элементы интерфейса. Это так же позволяет довольно легко собрать свой собственный конфиг, используя отдельные понравившиеся элементы.

Поддержка пользователей


Мы изначально понимали, что XVM несколько сложнее в установке, чем основная масса модов (это даже породило мем «Оленемер начинает работу уже в процессе установки»), и что без поддержки много аудитории мы не соберем.

Для уменьшения нагрузки на поддержку мы даже разделили XVM на XVM-full и XVM-light. В light-версии было вырезано все, что относится к отображению статистики. Соответственно, этим игрокам не нужно было ставить ни Dokan, ни .NET-приложение, что серьезно упрощало установку.

Самая первая поддержка осуществлялась на официальном форуме World of Tanks. Это было не очень удобно — как минимум, у нас не было возможности модерации и закрепления тем, темы перемешивались с другими, не имеющими к нам никакого отношения. Поэтому почти одновременно с переездом на первый выделенный сервер (январь 2012) на нем же был установлен первый форум техподдержки. Самый обычный phpBB «из коробки». Тем не менее, он выполнял свою функцию до одного ЧП.

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



Положительным моментом этого инцидента стало появление в нашей команде Mr 13 (он делает бекапы!), который по совместительству является владельцем форума Korean Random, на базе которого сейчас и находится главный ресурс поддержки XVM.

Осенью 2012 у мода появилось лицо в виде собственного сайта http://www.modxvm.com/. На сайте размещен джентельменский набор любого ресурса: описание, ссылки, новости, FAQ. Туда же переехал онлайн-редактор конфигураций. Со временем сайт был переведен на английский, немецкий, французский и украинский языки. Также сайт помог снизить затраты личных средств на развитие XVM, так как пожертвования добровольцев не могли окупить и малой части затрат на поддержание и развитие проекта. Но была тут некоторая нестыковка. Мы по своим метрикам видели, что число уникальных пользователей XVM каждый месяц увеличивается, в какой-то момент оно перевалило за миллион, а число уников в месяц на сайте было меньше 100К.

Причину мы и так знали — модпаки. Модпаки — это продвигаемые разными личностями сборки модов имени себя. Сам XVM в эти сборки включали охотно, но только не ссылки на него. Доходило даже до того, что надпись на экране загрузки боя со ссылкой на наш сайт заменяли на свою. Нас это паразитирование не устаивало, и мы сделали добровольно-принудительную активацию модуля статистики на нашем сайте.

Происходит это так:

  1. Пользователь заходит на сайт XVM.
  2. Логинится, используя Wargaming.net ID (OpenID).
  3. Благодаря этому мы узнаем игровой ник и ID пользователя и проставляем для него признак «запрошен токен».
  4. После этого пользователь запускает игровой клиент с установленным XVM. Мод при старте отправляет запрос в метод /checkToken. В ответ пользователю со статусом «запрошен токен» отправляется собственно токен (GUID), иначе только статус «активен» либо «не активен» — в зависимости от того, есть ли у этого клиента активные токены или нет. Полученные токены сохраняются клиентом в \res_mods\xvm\db\tokens.xdb.
  5. Далее при каждом запросе к нашему API клиент также отправляет этот токен.
  6. Если токен отсутствует или просрочен (а срок его действия составляет две недели) — данные не отдаются, а клиент показывает сообщение об ошибке с предложением зайти на сайт мода и активировать статистику.
  7. Клиент может получить до пяти токенов, если играет своим аккаунтом на нескольких ПК.

Активация дала нам как минимум два эффекта:

  1. Посещаемость сайта сравнялась с количеством пользователей мода.
  2. Примерно на 30% упала нагрузка на сервер статистики.

По второму пункту у нас такое мнение: части пользователей все тех же модпаков статистика была не нужна, но они ей пользовались только потому, что она была включена по умолчанию в большинстве этих самых паков.

На этом мы завершаем первую часть нашей статьи. Впереди вас ждет подробный рассказ о нелегком пути нашего многострадального сервера (во второй части), и развитии собственно клиентской части (в третьей, заключительной части).
Автор: @iBat

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

  • –20
    Меня вот, что интересно у скольких процентов игроков бомбануло, после перевода мода на платную основу?
    • +16
      мод был, есть, и будет бесплатным.
      • +2
        Вообще вы с интерфейсом перестарались. 1е впечатление — что вверху страницы таймер до истечения пробного периода. Так что ничего удивительного, что нашёлся предприимчивый народ.
        • 0
          Раньше не было таймера ( пару месяцев), а мод используют в модпаках уже не 1 год.
          Считаю что разработки xvm, сделали правильно что добавили таймер, а насчёт интерфейса все понятно если понимаешь зачем это делаешь.
          • 0
            Ну добавили и фиг с ним. Но сейчас он нависает над тобой как Домоклов меч. «Осталось 13д. 12ч. 34м. До чего осталось? До конца света? АААПАНИКААААА!!!

            > если понимаешь зачем это делаешь.
            А вот поставьте себя на место игрока. Он просто играет не задумываясь о модах. Ему пофиг, кто собрал его модпак и кто написал XVM. Но вот теперь он полез активировать статистику на сайт. Активирует и видит ЭТО:
            Элементы заголовка не активны и не имеют подсказок. Описания или ссылок на описание на главной нет.

            Лично я узнал, что этот таймер символизирует только из 4го попавшемся мне гайде по установке XVM.
            А вот что именно символизирует таймер, если активировано несколько клиентов — я не представляю даже после прочтения статьи.
            • 0
              В статье все слегка упрощено. На самом деле таймер у каждого аккаунта один, независимо от количества токенов. Поэтому таймер всегда показывает правду. Продление так же продляет сразу все.
            • 0
              В какой-то мере ваши замечания верны, мы учтём их и доработаем панель активации соответствующим образом. Спасибо.
  • +6
    отличная статья, спасибо за нее и за мод. ждем продолжения!
  • 0
    проблемы с разработчиками ушли сами собой, или все же были какие-то договоренности или условия?
    • +2
      WG вышел на открытый диалог со сторонними разработчиками. Кое-какие договоренности в нашем случае есть. К примеру они очень хотят видеть свой wargaming-рейтинг в дефолтном конфиге. Мы ничего против этого не имеем. По поводу разных рейтингов будет в третьей части.
      • +4
        не хочется забегать вперед и сначала дождаться третьей части… но хочу сказать, когда я увидел официальный рейтинг WG, в голову первым пришло, что это борьба с Вами
        • 0
          проблемы с разработчиками ушли сами собой, или все же были какие-то договоренности или условия?

          Я не сказал бы, что с разработчиками игры в действительности были какие-то проблемы. Просто на начальных этапах было некоторое недопонимание, породившее мифы о том, якобы модуль статистики создавал большую нагрузку (затем эти мифы были развеяны самими разработчиками WG в одном из их официальных видео).

          Сейчас мы налаживаем наше общение с WG, и теперь это происходит не только по нашей, но и по их инициативе, что в целом создаёт положительное впечатление об изменениях в их отношении к модификациям игры.

          не хочется забегать вперед и сначала дождаться третьей части… но хочу сказать, когда я увидел официальный рейтинг WG, в голову первым пришло, что это борьба с Вами

          Для WG нет никакого смысла в борьбе — это лишь пошатнёт лояльность аудитории. Симбиоз для них куда более выгоден, ведь благодаря этому XVM для них фактически становится не только инструментом, значительно повышающим комфорт игроков, но и тестовым полигоном, за которым можно наблюдать и перенимать положительный опыт (многие давние игроки помнят, что некоторые очень полезные возможности стандартного клиента «перекочевали» в него именно из модов, а сейчас даже трудно представить, что когда-то в клиенте не было даже полосок и значений HP в маркерах :) ).

          Так что нет причин для такого настроя: позитивные изменения в отношении WG к сторонним разработчикам видны как никогда ранее.
  • +1
    Нас это паразитирование не устаивало, и мы сделали добровольно-принудительную активацию модуля статистики на нашем сайте.


    Но для игроков использующих мод, это, скажем так — не есть удобно. Особенно если играешь время от времени.

    И вопрос: почему в последнее время новые стабильные сборки появляются с большим запозданием после выхода очередного обновления игры? Во времена, когда необходим был отдельный *.exe сборки выкладывались оперативнее.

    А за статью — спасибо. Интересно было читать.
    • 0
      И вопрос: почему в последнее время новые стабильные сборки появляются с большим запозданием после выхода очередного обновления игры? Во времена, когда необходим был отдельный *.exe сборки выкладывались оперативнее.

      Модификация развивается, количество возможностей постоянно растёт. Вместе с тем растёт и объём работы, который необходимо проделывать для адаптации XVM к каждому новому патчу, особенно если в нём затрагивается слишком много частей интерфейса, управляемых модификацией. Всё упирается в количество рук и свободного времени :)
  • 0
    По ссылке на "актуальный редактор" написано:
    Редактор устарел. Конфигурации, создаваемые редактором, не совместимы с актуальной версией XVM и могут работать не так, как ожидается. Используйте его на свой страх и риск, или не используйте вовсе.


    Так он всё-таки актуальный или нет?
    • +1
      Он был актуален на момент создания той части статьи :)

      Примечание верное: конфигурации, создаваемые в данной версии редактора, не предназначены для текущей версии мода. Это связано со значительными изменениями в последних версиях мода, из-за которых редактор требует глобальной переработки. Возможно в будущем будет создан полностью новый редактор, учитывающий новые возможности XVM(зависит, конечно же, от наличия свободного времени у разработчиков: всё делается на добровольной основе). На данный момент также можно воспользоваться редакторами, которые были созданы активными пользователями мода: XCTuner или XCPad, однако предварительный просмотр изменений в них не предусмотрен.
  • 0
    Я всё надеюсь, что когда-нибудь WG начнет выдавать знаки отличия людям, имеющих хорошую стату в дефолтном клиенте. Чтобы рандом был не стадом оленей, а хоть как-то можно было выделить лидера, нацеленного на победу, и его советам/рекомендациям придавать больший вес.
    Например, рядом с ником звездочку повесить тому игроку, у которого на данной машине (или в среднем) максимальный процент побед.
    • +1
      На стволе же сделали отметки тем, у кого хороший средний урон на данном танке.
      • 0
        Это да, однако ты в бою не видишь ствола сокомандника когда он пишет с другого края карты, и не запоминашь их ники когда они что-то потом пишут.

        Игрок1: >Все рашим!!! кто на базе тот краб!
        Игрок2: >Все дэфим!!! иди ***** олень!!!
        Игрок1: >Какой дэф, они все в кишке, сам иди в ****!!!
        — И тут непонятно, чьим словам больше веса стоит уделить. А если сам ник будет отмечен, то с определенной вероятностью будет видно сразу, кто есть кто.
  • 0
    Примерно на 30% упала нагрузка на сервер статистики

    То есть, вы потеряли 30% пользователей мода, обменяв их на бОльшее число пользователей сайта?
    • +3
      Мы не потеряли 30% пользователей мода.
      Мы отсеяли 30% паразитной нагрузки, которая возникала из за ситуаций, когда статистика в конфиге была включена не сознательно, а лишь по той причине, что пользователь не достаточно осведомлён о том, как её отключить(авторы некоторых модпаков делали статистику включённой по умолчанию, не сопровождая «свои творения» никакими инструкциями).

      Количество же пользователей мода не упало, а наоборот, продолжает неуклонно расти.
      • 0
        А если бы вас взяли на работу, пилить интерфейсы на Scaleform, то что бы вы в оригинальном клиенте в первую очередь решили поправить?
        • 0
          Нет, они не будут пилить интерфейсы для Armored Warfare. Наверное.
        • +1
          В оригинальном клиенте я вижу слишком много элементов, которые можно было бы доработать, сделав более удобными и доступными. Поэтому первое, что стоило бы сделать: провести большую ревизию интерфейса и собрать информацию о самых проблемных местах, чтобы можно было построить чёткий план работы. Также было бы полезно ознакомиться со статистикой использования(поведения пользователя в интерфейсе), если таковая собирается, это помогло бы расставить приоритеты более правильно, а не субъективно, как это зачастую делается при разработке.

          Из быстрых и простых задач можно было бы начать с избавления от неуместного использования коротких выпадающих списков, которые увеличивают кликов и затрачиваемого времени для действия. В интерфейсе встречаются места, где приходится делать 2-3 клика, чтобы добраться до действия, хотя можно было бы обойтись и одним.

          Также уточню: в XVM я не занимаюсь разработкой интерфейса, хотя иногда и могу выступать в качестве генератора идеи, всем техническим процессом разработки клиентской части занят sirmax (sirmax2).
  • 0
    Полтора года не был в танках, а сейчас вспомнилось — оленемер, прицелы с таймером, пятипроцентные текстуры с зонами пробития и твикер, чтоб не тормозило…
    Так как друзья не осиливали установку оленемера, то при игре во взводе я в первую очередь пояснял, кого в этом матче следует более всего опасаться. Забавно было.
  • +1
    сколько боли вызвало наличие XVM и прочих модов у игроков при переходе на следующие версии клиента… ух…
  • 0
    Нет ли у вас в планах мыслей по открытию кода?
    Ищете ли вы новых разработчиков?
    • 0
      Как минимум в клиентской части используется лицензия GPLv3
    • 0
    • 0
      Как верно указали выше, код клиентской части открыт. Мы будем рады помочь(по мере возможности и наличия времени) новым разработчикам освоиться и стать частью команды.

      Начать можно с малого, и постепенно влиться в процесс :)
      • 0
        Извеняюсь если пропустил в посте. Но на чем у вас написанная серверная часть?
        • 0
          об этом подробно будет во второй части. Вкратце: до недавнего времени был nodeJS, сейчас — java.
  • 0
    Раз уж появился пост от разработчиков модов для WOT, тем более самого XVM, не могу упустить случая и спросить, т.к. сам не могу найти инфу — Не могли бы вы подсказать куда нужно двигаться чтобы иметь возможность разрабатывать моды под клиент игры(GUI), ибо ссылки на API ведут на ru.wargaming.net/developers/, а тут всякие рейтинги и достижения, а я бы хотел пару функциональных кнопок в «ангаре». Заранее спасибо за ответ!
    • 0
      Официальной документации по модифицированию клиента не существует. Весь процесс разработки клиентских модификаций заключается в ручном «расковыривании» клиента, и внесении необходимых изменений в исходные ресурсы.

      Начать изучение клиента можно с гайдов и обсуждений от пользователей и разработчиков, которые сами прошли этот путь. Однако это даст только базовое понимание процесса: далее всё придётся брать в свои руки и ориентироваться самостоятельно. Ну, или присоединиться к хорошей команде :)
  • 0
    Спасибо за ваш труд, ребята!) Думается, WG должен вас спонсировать, потому, что большая часть пользователей не смогла бы продолжать играть без модов
  • 0
    ВГ когда-нибудь начнет отдавать детальную статистику по танку игрока (урон, засвет, опыт без према и т.п.)?
  • –1
    Статью про XVM на хабре все же следовала начать с объяснения того, что такое XVM. Мне, в поисках ответа на этот вопрос, пришлось скролить в конец статьи, где была ссылка на сайт мода, и только перейдя по ней стало понятно, что XVM — это eXtended Visualization Mod.
    • 0
      Если статью именно читать, а не проскролливать, то на мой взгляд всё достаточно понятно
      • –2
        Да, но. Если читать все подряд, времени ни на что не останется. Чтобы понять для себя, стоит ли читать, нужно определить предмет статьи. Конечно, когда речь идет об общеизвестных продуктах, пояснения не требуются. Но я сильно сомневаюсь, что большинство, или хотя бы половина посетителей хбра, играют в WoT. И в том, что все из тех, кто играют, знают, что такое XVM, тоже сомневаюсь. А эта статья начинается так, как будто XVM — это какая-нибудь Dota.
        • 0
          Если читать все подряд, времени ни на что не останется.


          не посещайте Хабр
          • 0
            Вы меня прямо обескуражили! Абсолютно не понятна суть претензии. Да и смысл заявления.
  • 0
    Подскажите, почему оленемер отваливается при каждом (даже минорном) релизе. Неужели WG не может это починить? Вот не верится что они ломают обратную совместимость постоянно. Зачем им этот цирк с привязкой к номеру версии.
    • 0
      В процессе ручной установки мода содержится ответ на ваш вопрос ;)
      WoT грузит файлы из папки Mods/<Версия игры> и при любом апдейте версия игры меняется.
      • 0
        Очень часто помогает простое копирование в папку /res_mods/<новая версия> из /res_mods/<старая версия>. А WG не делает этого автоматически ИМХО из соображений совместимости. Гарантировать совместимость всего зоопарка модов с новой версией клиента никто не может.
        • 0
          Это я знаю, они когда-то озвучивали данную позицию. В принципе, это избавляет их от кучи флуда на форуме в стиле «У меня ничего не работает, ваш патч говно!!!11!1!111»

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

Самое читаемое Разработка