Приложение wow что это

Обновлено: 30.06.2024

Играете в World of Warcraft? Приложение WoW Companion поможет вам распорядиться временем в Азероте с максимальной пользой, где бы вы ни находились.

УПРАВЛЯЙТЕ ПРИКЛЮЧЕНИЯМИ: отправляйте своих соратников из ковенантов на поиски приключений в Темных Землях, находясь где угодно. Собирайте отряд, расставляйте бойцов по игровому полю, получайте награды за участие в приключениях и подготовьте соратников к следующим свершениям.

ОТСЛЕЖИВАЙТЕ ЛОКАЛЬНЫЕ ЗАДАНИЯ: просматривайте доступные локальные задания, призывы и награды прямо в приложении, а затем составляйте план действий, когда войдете в игру.

ОСТАВАЙТЕСЬ НА СВЯЗИ: общайтесь в чате с друзьями при помощи функции «Гильдии и сообщества», следите за публикациями о World of Warcraft на панели новостей и планируйте рейды и события в календаре.

СРАЖАЙТЕСЬ В НЕСКОЛЬКИХ КАМПАНИЯХ: управляйте своими войсками из дополнений Shadowlands, Battle for Azeroth и Legion, пользуясь системами заданий и соратников, исследованиями и многим другим!

ИЗУЧАЙТЕ СВОЕГО ПЕРСОНАЖА: ознакомьтесь с информацией об оружии, доспехах и других характеристиках вашего персонажа. Следите за его силой и планируйте, какие предметы экипировки стоит получить в первую очередь.

Поддерживаемые языки:
* English (английский)
* Français (французский)
* Deutsch (немецкий)
* Español (латиноамериканский испанский)
* Español (европейский испанский)
* Italiano (итальянский)
* Русский
* 한국어 (корейский)
* 简体中文 (китайский — упрощенное письмо)
* 繁體中文 (китайский — традиционное письмо)

Слово инженерам: разработка приложения WoW Companion

Одним из самых значительных технических улучшений, добавленных в приложение WoW Companion для дополнения Shadowlands, стала поддержка нескольких дополнений. Мы знаем, что об этой возможности просили многие игроки, и сегодня мы хотели бы рассказать вам о трудностях, с которыми мы столкнулись в процессе разработки таких масштабных технологических изменений, а также о некоторых принятых нами решениях.

Немного истории

Изначально приложение WoW Companion создавалось для поддержки лишь одного дополнения: Legion. По мере приближения выхода Battle for Azeroth мы решили в первую очередь разработать значительные улучшения программной части сервиса, в том числе добавить возможность совместного использования кода для мобильного приложения и клиента на PC, благодаря чему мы смогли воспользоваться множеством функций и инструментов пользовательского интерфейса основной игры, ранее недоступных для приложения. Но за счет этого мы не смогли разработать необходимое программное обеспечение для поддержки более, чем одного дополнения одновременно — поэтому мы сменили единственное возможное поддерживаемое дополнение с Legion на новейшее Battle for Azeroth.

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

Мы кратко обсудили возможность частичной поддержки предыдущих дополнений, чтобы посвятить максимально возможное количество времени контенту Shadowlands, но быстро пришли к выводу, что следует восстановить как можно больше функций. Мы также знали, что с выходом Shadowlands игроки получат возможность развивать своих дополнительных персонажей в дополнении Legion при помощи путешествий во времени, и мы хотели бы предоставить таким игрокам полную поддержку мобильных устройств для развития их персонажей.

Выбор дополнения

С выхода обновления, предшествующего дополнению Shadowlands, игроки смогут выбирать в приложении Companion между дополнениями Legion и Battle for Azeroth, а с выходом самого дополнения Shadowlands оно станет доступно и в приложении.

Как оказалось, в приложении еще оставались участки кода, уникальные для дополнения Legion, что принесло несколько неоднозначную пользу. Также благодаря системе управления версиями у нас также был доступ к оригинальным материалам Legion, благодаря чему возвращение контента Legion стало прекрасной возможностью протестировать наше новое программное обеспечение поддержки нескольких дополнений. И хотя нужно было добавить в приложение не так уж и много, тем не менее, четко разграничить дополнения Legion и Battle for Azeroth было не так уж просто.

Для создания программного обеспечения поддержки нескольких дополнений нам потребовалось три главных элемента:

Данные дополнений

Когда изначально разрабатывалось приложение WoW Legion Companion, большинство участков кода серверов, обрабатывающих запросы от приложения, было создано таким образом, что они могли вернуть только данные, соответствующие дополнению Legion. Когда пришло время перехода на дополнение Battle for Azeroth, мы изменили эти функции, чтобы они могли возвращать данные нового дополнения. Но в этот раз нам была нужна возможность получать данные для любого выбранного дополнения, что означало необходимость обработать все функции сервера, отвечающие на запросы мобильного приложения, и изменить их таким образом, чтобы они могли принимать особые параметры, указывающие на то, из какого дополнения следует брать данные. Например, для запроса данных о соратниках необходимо указать тип соратника (например, соратник из дополнения Legion или из дополнения Battle for Azeroth), а для запроса о локальных заданиях необходимо указать, в каких зонах требуются данные о заданиях.

До запроса данных валюты

До: приложение запрашивало данные о конкретных типах валюты у сервера.

alternate-image-name

После: данные валюты запрашиваются отдельно для каждого дополнения. Этот код покажется знакомым любому, кто имел дело с модификациями, использующими систему валют в Shadowlands. Это обусловлено общей платформой кода, объединяющему функции приложения WoW Companion и основной игры.
Код интерфейса

Значительная часть кода, обеспечивающего поддержку дополнения Battle for Azeroth, опирается на существующий код Legion, в результате чего стало сложнее понять, какие элементы активно используются в тот или иной момент. К примеру, список соратников в Battle for Azeroth обладал возможностью отображать вооружение, однако соответствующая кнопка была скрыта, так что код не использовался. Функции дополнений Legion и Battle for Azeroth были в достаточной мере схожи, так что подобные моменты не вызывали больших затруднений. Тем не менее, мы понимали, что поддерживать подобную архитектуру станет невозможно после появления новых функций Shadowlands. Если в общий код Legion и Battle for Azeroth добавить поддержку медиумов и ковенантов, то он станет еще сложнее.

Вместо этого мы проанализировали все скрипты, определили, какие функциональные особенности были общими, а какие — уникальными для каждого дополнения. Мы разделили код, связанный с конкретными дополнениями, на подклассы и сугубо новые составляющие, оставив в основных классах только общие, базовые функции. На основе новых подклассов мы создали новые игровые объекты для каждого дополнения. Несмотря на общую систему и сходство большинства функций, только списку заданий Legion нужна кнопка спутников, при этом списку приключений Shadowlands не требуется структура из двух вкладок, использовавшаяся в Legion и Battle for Azeroth, однако в этом списке значки типов заданий должны уступить место портретам противников.

Сравнение списка заданий Legion и списка приключений Shadowlands

Наглядное сравнение списка заданий Legion и списка приключений Shadowlands.

Другое важное системное изменение в приложении, приуроченное к выходу Shadowlands, связано с созданием файлов баз данных. Теперь при создании кода баз данных и файлов данных приложение WoW Companion использует те же процессы, что и версия игры для PC. Это изменение, в частности, положительно скажется на работе кода, определяющего, на какой карте должны отображаться метки локальных заданий. Изначально приложение использовало заданные вручную алгоритмы для каждого идентификатора карт, что не представляло особых трудностей, пока список зон ограничивался Аргусом и Расколотыми островами. По мере добавления новых зон в Battle for Azeroth система стала чрезмерно громоздкой. Мы откажемся от этой части кода в Shadowlands, поскольку нам удалось легко извлечь таблицы базы данных пользовательского интерфейса карт, чтобы сделать систему полностью динамической. Мы преобразовали большой кусок кода, отвечавшего за обработку зон трех дополнений, в оптимизированную функцию, способную автоматически обрабатывать любые локальные задания без использования алгоритмов для конкретных дополнений.

Файлы материалов

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

В каждом дополнении очень много файлов материалов, и их объем может быстро достичь очень высокой отметки. Кроме того, переход от двух дополнений (Legion и Battle for Azeroth) к трем (включая Shadowlands) означал, что необходимый объем материалов утроится. Тем не менее, многие материалы — например, текстуры карт в высоком разрешении, фоны областей для заданий, портреты соратников и противников — уникальны для того или иного дополнения, и поэтому мы разделили их по пакетам. Благодаря этому приложению достаточно загрузить в память материалы, использующиеся выбранным дополнением, и таким образом объем задействованной памяти уменьшился.

Еще на раннем этапе мы также решили распределить дополнения по разделам, что позволило нам четко разделить их функции. Разделу Legion не требуется страница призывов ковенантов, а Shadowlands — окно заказанных войск. Как и изменения кода, эти нововведения упростят восприятие событий, представленных в приложении. Разделение материалов и разделов также означает, что все дополнения полностью самостоятельны, и упрощает для пользователей процесс загрузки.

Мы хотели предоставить игрокам больше возможностей для управления загрузкой материалов. Вы можете загрузить все сразу, пока подключение стабильно, или ускорить взаимодействие с приложением, отложив загрузки для определенных дополнений. А если вас в принципе не интересует какое-либо дополнение, то материалы для него можно вовсе не загружать. Каждому дополнению требуется от 30 до 40 Мбайт данных, а это уже ощутимая экономия на трафике.

Выборочная загрузка данных для дополнений

Также раздельная загрузка сократит ожидание запуска приложения!
Изменения процессов

Разделение материалов разных дополнений потребовало изменить два элемента внутренних процессов: средство курирования материалов должен был распознавать, к какому дополнению относятся те или иные данные, а инструмент создания пакетов материалов должен был получить возможность группировки материалов. Инструментарий курирования материалов представлял собой один из узкоспециализированных элементов, предназначавшихся для обеспечения поддержки Legion, а затем и Battle for Azeroth. Нам пришлось переработать его и сделать его более универсальным. Новая версия взаимодействует со списком дополнений, содержащим необходимый приложению контент (производя перебор по перечислению GarrisonType), и размещает материалы для каждого дополнения в отдельных папках. Изменения, благодаря которым средство курирования может использовать полный список дополнений, также подразумевают, что в будущем новые значения в списке будут получаться автоматически, что упростит добавление нового контента в приложение Companion и избавит нас от необходимости модифицировать инструментарий.

Средства создания файлов материалов и загрузки в значительной мере полагаются на функцию пакетов материалов в Unity, позволяющую приложению рассматривать разные версии пакета как один целый пакет. Процесс создания пакетов выдает разные варианты каждого пакета для всех дополнений в зависимости от структуры папок, созданных инструментом курирования. Пакеты материалов заменяются во время выполнения при переключении между дополнениями в приложении. Поскольку все варианты пакетов обрабатываются одинаково, любой код, запрашивающий, к примеру, портреты соратников, может работать корректно, какой бы набор портретов ни был загружен в настоящий момент. Таким образом код функций может действовать независимо от специфических особенностей загрузки/выгрузки материалов, словно каждое дополнение — единственное во всем приложении.

Путь в Темные земли

Неважно, проходите вы новые приключения в Shadowlands или развиваете персонажей в дополнении Legion, — нам не терпится предоставить вам доступ к новому контенту World of Warcraft, который всегда будет под рукой. Надеемся, вам было интересно узнать о нашей работе и о том, какими соображениями мы руководствуемся при разработке систем, обеспечивающих поддержку не только текущего, но и будущего контента в World of Warcraft.

Новое мобильное приложение для Legion — Companion

Натиск Пылающего Легиона не слабеет. Но даже самые самоотверженные защитники Азерота не могут все время сидеть у компьютера. Новое мобильное приложение Legion Companion App («Спутник») незаменимо, чтобы держать под контролем ваши боевые операции в Legion.

Вот что можно делать с помощью этого приложения.

  • Осваивать локальные задания.
  • Управлять соратниками.
  • Тренировать новобранцев.
  • Выбирать задания, следить за их выполнением и помечать как завершенные.
  • Искать улучшения для оплота класса.

Приложение Legion Companion App можно загрузить в iTunes и в Android Store.

Слово инженерам: разработка приложения WoW Companion

Слово инженерам: разработка приложения WoW Companion

Одним из самых значительных технических улучшений, добавленных в приложение WoW Companion для дополнения Shadowlands, стала поддержка нескольких дополнений. Мы знаем, что об этой возможности просили многие игроки, и сегодня мы хотели бы рассказать вам о трудностях, с которыми мы столкнулись в процессе разработки таких масштабных технологических изменений, а также о некоторых принятых нами решениях.

Немного истории

Изначально приложение WoW Companion создавалось для поддержки лишь одного дополнения: Legion. По мере приближения выхода Battle for Azeroth мы решили в первую очередь разработать значительные улучшения программной части сервиса, в том числе добавить возможность совместного использования кода для мобильного приложения и клиента на PC, благодаря чему мы смогли воспользоваться множеством функций и инструментов пользовательского интерфейса основной игры, ранее недоступных для приложения. Но за счет этого мы не смогли разработать необходимое программное обеспечение для поддержки более, чем одного дополнения одновременно — поэтому мы сменили единственное возможное поддерживаемое дополнение с Legion на новейшее Battle for Azeroth.

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

Мы кратко обсудили возможность частичной поддержки предыдущих дополнений, чтобы посвятить максимально возможное количество времени контенту Shadowlands, но быстро пришли к выводу, что следует восстановить как можно больше функций. Мы также знали, что с выходом Shadowlands игроки получат возможность развивать своих дополнительных персонажей в дополнении Legion при помощи путешествий во времени, и мы хотели бы предоставить таким игрокам полную поддержку мобильных устройств для развития их персонажей.

Выбор дополнения

С выхода обновления, предшествующего дополнению Shadowlands, игроки смогут выбирать в приложении Companion между дополнениями Legion и Battle for Azeroth, а с выходом самого дополнения Shadowlands оно станет доступно и в приложении.

Как оказалось, в приложении еще оставались участки кода, уникальные для дополнения Legion, что принесло несколько неоднозначную пользу. Также благодаря системе управления версиями у нас также был доступ к оригинальным материалам Legion, благодаря чему возвращение контента Legion стало прекрасной возможностью протестировать наше новое программное обеспечение поддержки нескольких дополнений. И хотя нужно было добавить в приложение не так уж и много, тем не менее, четко разграничить дополнения Legion и Battle for Azeroth было не так уж просто.

Для создания программного обеспечения поддержки нескольких дополнений нам потребовалось три главных элемента:

Данные дополнений

Когда изначально разрабатывалось приложение WoW Legion Companion, большинство участков кода серверов, обрабатывающих запросы от приложения, было создано таким образом, что они могли вернуть только данные, соответствующие дополнению Legion. Когда пришло время перехода на дополнение Battle for Azeroth, мы изменили эти функции, чтобы они могли возвращать данные нового дополнения. Но в этот раз нам была нужна возможность получать данные для любого выбранного дополнения, что означало необходимость обработать все функции сервера, отвечающие на запросы мобильного приложения, и изменить их таким образом, чтобы они могли принимать особые параметры, указывающие на то, из какого дополнения следует брать данные. Например, для запроса данных о соратниках необходимо указать тип соратника (например, соратник из дополнения Legion или из дополнения Battle for Azeroth), а для запроса о локальных заданиях необходимо указать, в каких зонах требуются данные о заданиях.

До запроса данных валюты

До: приложение запрашивало данные о конкретных типах валюты у сервера.

alternate-image-name

После: данные валюты запрашиваются отдельно для каждого дополнения. Этот код покажется знакомым любому, кто имел дело с модификациями, использующими систему валют в Shadowlands. Это обусловлено общей платформой кода, объединяющему функции приложения WoW Companion и основной игры.
Код интерфейса

Значительная часть кода, обеспечивающего поддержку дополнения Battle for Azeroth, опирается на существующий код Legion, в результате чего стало сложнее понять, какие элементы активно используются в тот или иной момент. К примеру, список соратников в Battle for Azeroth обладал возможностью отображать вооружение, однако соответствующая кнопка была скрыта, так что код не использовался. Функции дополнений Legion и Battle for Azeroth были в достаточной мере схожи, так что подобные моменты не вызывали больших затруднений. Тем не менее, мы понимали, что поддерживать подобную архитектуру станет невозможно после появления новых функций Shadowlands. Если в общий код Legion и Battle for Azeroth добавить поддержку медиумов и ковенантов, то он станет еще сложнее.

Вместо этого мы проанализировали все скрипты, определили, какие функциональные особенности были общими, а какие — уникальными для каждого дополнения. Мы разделили код, связанный с конкретными дополнениями, на подклассы и сугубо новые составляющие, оставив в основных классах только общие, базовые функции. На основе новых подклассов мы создали новые игровые объекты для каждого дополнения. Несмотря на общую систему и сходство большинства функций, только списку заданий Legion нужна кнопка спутников, при этом списку приключений Shadowlands не требуется структура из двух вкладок, использовавшаяся в Legion и Battle for Azeroth, однако в этом списке значки типов заданий должны уступить место портретам противников.

Сравнение списка заданий Legion и списка приключений Shadowlands

Наглядное сравнение списка заданий Legion и списка приключений Shadowlands.

Другое важное системное изменение в приложении, приуроченное к выходу Shadowlands, связано с созданием файлов баз данных. Теперь при создании кода баз данных и файлов данных приложение WoW Companion использует те же процессы, что и версия игры для PC. Это изменение, в частности, положительно скажется на работе кода, определяющего, на какой карте должны отображаться метки локальных заданий. Изначально приложение использовало заданные вручную алгоритмы для каждого идентификатора карт, что не представляло особых трудностей, пока список зон ограничивался Аргусом и Расколотыми островами. По мере добавления новых зон в Battle for Azeroth система стала чрезмерно громоздкой. Мы откажемся от этой части кода в Shadowlands, поскольку нам удалось легко извлечь таблицы базы данных пользовательского интерфейса карт, чтобы сделать систему полностью динамической. Мы преобразовали большой кусок кода, отвечавшего за обработку зон трех дополнений, в оптимизированную функцию, способную автоматически обрабатывать любые локальные задания без использования алгоритмов для конкретных дополнений.

Файлы материалов

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

В каждом дополнении очень много файлов материалов, и их объем может быстро достичь очень высокой отметки. Кроме того, переход от двух дополнений (Legion и Battle for Azeroth) к трем (включая Shadowlands) означал, что необходимый объем материалов утроится. Тем не менее, многие материалы — например, текстуры карт в высоком разрешении, фоны областей для заданий, портреты соратников и противников — уникальны для того или иного дополнения, и поэтому мы разделили их по пакетам. Благодаря этому приложению достаточно загрузить в память материалы, использующиеся выбранным дополнением, и таким образом объем задействованной памяти уменьшился.

Еще на раннем этапе мы также решили распределить дополнения по разделам, что позволило нам четко разделить их функции. Разделу Legion не требуется страница призывов ковенантов, а Shadowlands — окно заказанных войск. Как и изменения кода, эти нововведения упростят восприятие событий, представленных в приложении. Разделение материалов и разделов также означает, что все дополнения полностью самостоятельны, и упрощает для пользователей процесс загрузки.

Мы хотели предоставить игрокам больше возможностей для управления загрузкой материалов. Вы можете загрузить все сразу, пока подключение стабильно, или ускорить взаимодействие с приложением, отложив загрузки для определенных дополнений. А если вас в принципе не интересует какое-либо дополнение, то материалы для него можно вовсе не загружать. Каждому дополнению требуется от 30 до 40 Мбайт данных, а это уже ощутимая экономия на трафике.

Выборочная загрузка данных для дополнений

Также раздельная загрузка сократит ожидание запуска приложения!
Изменения процессов

Разделение материалов разных дополнений потребовало изменить два элемента внутренних процессов: средство курирования материалов должен был распознавать, к какому дополнению относятся те или иные данные, а инструмент создания пакетов материалов должен был получить возможность группировки материалов. Инструментарий курирования материалов представлял собой один из узкоспециализированных элементов, предназначавшихся для обеспечения поддержки Legion, а затем и Battle for Azeroth. Нам пришлось переработать его и сделать его более универсальным. Новая версия взаимодействует со списком дополнений, содержащим необходимый приложению контент (производя перебор по перечислению GarrisonType), и размещает материалы для каждого дополнения в отдельных папках. Изменения, благодаря которым средство курирования может использовать полный список дополнений, также подразумевают, что в будущем новые значения в списке будут получаться автоматически, что упростит добавление нового контента в приложение Companion и избавит нас от необходимости модифицировать инструментарий.

Средства создания файлов материалов и загрузки в значительной мере полагаются на функцию пакетов материалов в Unity, позволяющую приложению рассматривать разные версии пакета как один целый пакет. Процесс создания пакетов выдает разные варианты каждого пакета для всех дополнений в зависимости от структуры папок, созданных инструментом курирования. Пакеты материалов заменяются во время выполнения при переключении между дополнениями в приложении. Поскольку все варианты пакетов обрабатываются одинаково, любой код, запрашивающий, к примеру, портреты соратников, может работать корректно, какой бы набор портретов ни был загружен в настоящий момент. Таким образом код функций может действовать независимо от специфических особенностей загрузки/выгрузки материалов, словно каждое дополнение — единственное во всем приложении.

Путь в Темные земли

Неважно, проходите вы новые приключения в Shadowlands или развиваете персонажей в дополнении Legion, — нам не терпится предоставить вам доступ к новому контенту World of Warcraft, который всегда будет под рукой. Надеемся, вам было интересно узнать о нашей работе и о том, какими соображениями мы руководствуемся при разработке систем, обеспечивающих поддержку не только текущего, но и будущего контента в World of Warcraft.

Читайте также: