WORLD OF WARCRAFT

Тема: Blizzcon 2016: Панель «Мастерская инженеров World of Warcraft»  (Прочитано 16641 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Wishko

  • Модератор
  • Легенда
  • *
  • Сообщений: 44803
  • Рейтинг:1 (+1 | 0)



Во время Blizzcon 2016 был проведен круглый стол «Мастерская инженеров World of Warcraft», во время которого разработчики Blizzard делились некоторыми деталями о технической стороне работы над игрой, рассказывали о проблемах и способах их решения, ответили на вопросы игроков. Эта панель не транслировалась для обладателей виртуального билета, но товарищи с MMO-Champion засняли ее вживую, а мы пересказываем основные моменты.

Улучшения
  • В Legion была удвоена, а на некоторых очень производительных машинах даже утроена дальность видимости.
  • В конце работы над каждым дополнением разработчики стараются уделять время на решение "технических долгов".
  • Когда был выпущен классический WoW, почти все пользовались процессорами с одним ядром, а графические карты не поддерживали большое количество пиксельных шейдеров. Когда разработчики решили обновить модели персонажей, они поняли, что могут в 3-4 раза увеличить количество управляющих "костей" у скелетов моделей всех рас, но старая система анимации не позволяла этого сделать. Они написали новую систему, позволяющую извлекать модели из потока для анимации, а затем обнаружили, что могут анимировать и другие модели, — так и была решен один из "технических долгов", ограничивающий возможности движка.
  • Нет никаких технических ограничений, мешающих отображать ноги персонажей под робами. Это может быть сделано для Ночерожденных, поскольку те обладают ограниченным набором анимации и, например, при движении их ноги не будут проходить сквозь робу. У моделей персонажей игроков геометрия ног может изменятся, например, когда на них одеты большие ботинки. Разработчики хотят решить эту проблему.
  • Лари с персональной добычей позволяют всем использовать их одновременно. Позволить сразу нескольким игрокам открывать один обычный сундук на самом деле довольно сложная задача (и еще один пример "технического долга").
  • Значения характеристик и урона вновь быстро растут, однако разработчики исправили проблему с масштабируемостью, и теперь в "сплющивании" нет технической нужды. Сейчас боссы могут иметь более чем 4 млрд. здоровья. Однако, дизайнерская проблема со слишком большими цифрами, неудобными для игроков, все же остается.:cut:
  • В игре были такие вещи, которые не выглядели как сундуки, но работали по этому принципу. В частности, из-за них случились весьма неприятные проблемы, во время которых множество игроков застряло в "узком" месте в начале Warlords (на постройке гарнизона). Сейчас для таких вещей используется новая технология, позволяющая пользоваться ими сразу нескольким игрокам. Разработчики всегда стараются улучшать разные вещи.
  • Довольно долгое время существовала неполадка, из-за которой подсказки у вещей и заклинаний могли исчезнуть, и, чтобы вернуть их обратно, нужно было навести указатель мыши на точку ресурсов на миникарте. С выходом обновления 7.0. эта неполадка исчезла сама собой и разработчики до сих пор не имеют представления, что это была за ошибка и почему она исправилась.
  • Во время обсуждения важных известных мест Расколотых Островов разработчики подумали, что было бы круто видеть такие места издалека, что и было сделано.
  • Игра гораздо интереснее, когда кажется живой, поэтому население локации автоматически увеличивается или уменьшается для сохранения баланса.
  • Частота обновления существ, объектов, НИПов, персонажей вокруг персонажа игрока была значительно увеличена в Legion.
  • Сейчас у разработчиков имеется множество различных способов введения срочных исправлений. В течение долгого времени было можно исправлять множество различных данных только на сервере, а сейчас разработчики могут вносить изменения (даже для визуальных вещей и анимации) в сам клиент и двоичный код клиента.
  • Как-то совсем недавно разработчикам пришлось вносить срочные исправления для своей системы срочных исправлений, которая сломалась из-за большого количества вносимых исправлений.
  • В Legion появилось несколько новых игровых систем, над которыми было сложно, но интересно работать, в частности эпохальный+ режим и система локальных заданий, которой дополнительных сложностей добавило мобильное приложение.

Как это работает?
  • Битва на Береге Древних должна начинаться сразу после прибытия корабля на причал, но поначалу с таймерами были проблемы. Когда это поле боя впервые появилось в WotLK, на кораблях и на самом причале находились скрытые НИПы, относящиеся друг к другу враждебно. Когда корабль приплывал, они начинали бой друг с другом, один убивал другого и тогда битва на поле боя начиналась.
  • В роликах гарнизонских строений ранее использовались 3D модели текста, которые было нельзя перевести, поэтому разработчики просто добавляли для них субтитры. В Legion была введена новая система, позволяющая использовать настоящий 3D текст, который может быть локализован.
  • До недавних пор команда инженеров была относительно невелика, поэтому дизайнеры по большей части для различных задач пользовались невидимыми существами, которые делали нужные вещи. Это был не очень хороший подход, поскольку из-за них случались различные проблемы со стабильностью серверов, а связанные с ними неполадки при непредопределенном поведении было довольно сложно находить. Позже разработчики изучили то, как они применялись ранее, и подумали над созданием полезных инструментов, помогающих дизайнерам создавать контент.
  • На Ал'Акире, например, использовались сотни невидимых существ, которые подхватывали прыгающих в вихрь игроков и крутили их вокруг босса.
  • Инженеры изучают созданные новые сражения в подземельях/рейдах, и смотрят на использованное количество невидимых существ. Плохой знак, если их было использовано слишком много, но бывает немало ситуаций, в которых их использование оправдано.
  • Большие толпы существ сложны для игры, поскольку клиенту нужно знать где кто находится и чем занимается. Разработчики ограничивают размеры групп, чтобы избежать проблем с производительностью клиента и сервера, а также используемыми ресурсами сети.
  • Клиент отправляет на сервер информацию о применяемом заклинании, предполагая, что оно будет успешным. Иногда случается, что вы применяете заклинание и оно начинает восстанавливаться, но мгновением позже оказывается, что оно было прервано немотой.
  • Заклинания со временем применения хороши тем, что можно начать анимацию и отобразить изменения в интерфейсе сразу после окончания применения. А при использовании мгновенных умений нужно дождаться, пока информация будет отправлена на сервер и придет ответ, прежде чем что-то изменится, от этого игра кажется менее динамичной, особенно для бойцов ближнего боя. В Legion анимация способностей милишников начинает воспроизводиться сразу в момент применения умения, еще до того, как будет отправлен и получен ответ сервера, поэтому информация о событии может быть синхронизирована с анимацией — от этого игра становится более приятной.
  • Все ячейки вашей экипировки, слоты сумок и банка жестко прописаны в коде оригинальной игры, и в случае изменения количества слотов стандартной сумки игрока произойдут изменения со слотами во всех других сумках. Также потребуется перенос данных на всех сохраненных персонажах. Это того не стоит. Гораздо легче просто увеличивать размеры всех других сумок.
  • Сейчас игровые ролики в клиенте зашифрованы до нужного времени. Разработчикам также хочется получить возможность шифровать части файлов клиента, в частности определенные записи.
  • Решить проблему с застревающими в дверях тауренами непросто. Вокруг персонажей находится "коробка", своими размерами определяющая, сможет ли персонаж пройти сквозь что-то или нет. Также именно от нее зависит то, как персонаж стоит на земле, как плавает и как проходит через двери. На аренах размеры этих "коробок" одинаковы, чтобы ни у одной расы не было преимущества. Похожая проблема имеется и у гномов с дворфами, которые начинают тонуть в некоторых местах, где могут спокойно стоять другие персонажи.
  • То, что иногда Долгоноги не могут бегать по поверхности воды, тоже зависит от "коробки" вокруг персонажа. Она находится на определенный процент ниже персонажа, чтобы он не выглядел слишком странно во время плавания.
  • Ограничение на 20 предметов в стопке — это дизайнерское решение, а не техническое ограничение.
  • Если из-за какой-то игровой функции в поддержку приходит множество запросов, то информацию о ней перенаправляют команде инженеров, чтобы они с ней разобрались.
  • На сервере работает особый код, который следит за тем, чтобы игроки могли двигаться только так, как надо, и не могли двигаться как-то необычно. Нынешний код обрабатывает всю информацию на 99,9% верно. В остальных случая сервер считает, что вы движетесь как-то не так и отключает вас от игры. В оплоте друидов был участок воды, забежав в который на определенном маунте, вы просто отключались от игры — такие вещи очень сложно отслеживать.
  • Когда впервые были введены межсерверные локации, определенный персонаж одного игрока всегда отключался от игры, перемещаясь между Элвиннским лесом и Штормградом. Разработчики перепробовали множество вещей, пытаясь воспроизвести эту неполадку, но так и не смогли. Они решили скопировать этого персонажа, чтобы ставить на нем опыты, и оказалось, что вся проблема заключается в чарах для ботинок, которые увеличивают скорость передвижения — при переходе между локациями этот бонус накладывался некорректно и игра отключала персонажа.
  • Отправляя сообщение об ошибке, стоит указывать место, где вы были, ваши действия, ваш класс, расу и вообще всю имеющуюся у вас информацию, которая может сильно помочь команде воспроизвести ваши действия и понять, что случилось. Особенно это полезно в случае с неожиданным прекращением работы клиента.
  • Из-за принципов работы системы привязки иногда возникают ошибки в цифрах с плавающей запятой, поэтому иногда в клиенте появляется множество текстур интерфейса, половина пикселей которых просто исчезает. Разработчикам интерфейса приходится вручную исправлять проблемы в XML файлах.
  • Разработчики тесно и часто общаются с разработчиками аддонов.
  • Иногда с помощью аддонов создаются такие вещи, о необходимости которых до этого разработчики и не думали. На старте WoW у игроков было множество групповых фреймов, а рейдовые существовали только в виде аддонов. Сейчас без них просто невозможно представить свою игру.
  • Иногда аддоны начинают делать и такие вещи, что не нравятся разработчикам. Разработчики переписали на C часть кода, отвечающего за отображение значков на вашей карте и предоставили игрокам API, позволяющий взаимодействовать с этим кодом, но не дающий возможность определения позиции объекта.
  • В некоторых боях часть игроков рейда помещается в определенную фазу, поэтому информация о них для других игроков не поступает и не отображается в журнале боя. Разработчики стараются лишь частично фазировать игроков, позволяя им иметь в своем распоряжение полные логи сражения, но иногда, в самый последний момент, возникают различные неполадки, что этому мешают.
  • Еще до выхода Legion разработчикам было известно, что игроки не могут снять шкуру с существ при личной добыче. В идеале каждый игрок должен иметь возможность снять шкуру, но этому влияют некоторые технические ограничения. Разработчики надеются, что смогут поправить это в будущем.



Дополнительные подробности о технической стороне World of Warcraft вы можете найти в интервью Wowcrendor и WoWChakra, а также выпуске подкаста Realm Maintenance с Патриком Мэградером.
« Последнее редактирование: 22 Ноября, 2016, 16:24:41 by Wishko »

Dr. Gordon Freeman

  • Завсегдатай
  • **
  • Сообщений: 164
  • А монтировкой по лбу не хочешь?

  • Варкрафт: +
    • Имя: Gordon Freeman
    • Класс: физик-теоретик
    • Сервер: Hulf-Life
  • Рейтинг:17 (+19 | -2)
Цитировать
Как-то совсем недавно разработчикам пришлось вносить срочные исправления для своей системы срочных исправлений, которая сломалась из-за большого количества вносимых исправлений.


Winz

  • Завсегдатай
  • **
  • Сообщений: 851

  • Варкрафт: +
    • Имя: Бабурчик
    • Класс: ДК
    • Сервер: Страж Смерти
  • Рейтинг:0 (+3 | -3)
Мы исправим систему исправлений в системе исправлений чтобы использовать систему исправлений когда используется система исправлений.
#Вернитекуру

SlashDot

  • Завсегдатай
  • **
  • Сообщений: 240
  • Рейтинг:10 (+10 | 0)
Цитировать
Довольно долгое время существовала неполадка, из-за которой подсказки у вещей и заклинаний могли исчезнуть, и, чтобы вернуть их обратно, нужно было навести указатель мыши на точку ресурсов на миникарте. С выходом обновления 7.0. эта неполадка исчезла сама собой и разработчики до сих пор не имеют представления, что это была за ошибка и почему она исправилась.
Это сильно))))
Нет ничего утомительнее, чем присутствовать при том, как человек демонстрирует свой ум. В особенности если ума нет. (с) Ремарк

Mikaera

  • Старожил
  • ***
  • Сообщений: 1085

  • Варкрафт: +
    • Сервер: Гордунни
  • Рейтинг:4 (+6 | -2)
  • На сервере работает особый код, который следит за тем, чтобы игроки могли двигаться только так, как надо, и не могли двигаться как-то необычно. Нынешний код обрабатывает всю информацию на 99,9% верно. В остальных случая сервер считает, что вы движетесь как-то не так и отключает вас от игры. В оплоте друидов был участок воды, забежав в который на определенном маунте, вы просто отключались от игры — такие вещи очень сложно отслеживать.

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

Afenar

  • Ветеран
  • ****
  • Сообщений: 7675
  • WarsongEU_Wolfheart

  • Варкрафт: +
    • Имя: Афенар
    • Класс: Priest
    • Сервер: Король-Свитч
  • Рейтинг:0 (+0 | 0)
  • На сервере работает особый код, который следит за тем, чтобы игроки могли двигаться только так, как надо, и не могли двигаться как-то необычно. Нынешний код обрабатывает всю информацию на 99,9% верно. В остальных случая сервер считает, что вы движетесь как-то не так и отключает вас от игры. В оплоте друидов был участок воды, забежав в который на определенном маунте, вы просто отключались от игры — такие вещи очень сложно отслеживать.

С этим моментом надо усиленно работать, для ДХ, например, это очень критично. Ладно, если вылетаешь, когда делаешь локалки, но иногда и в рейде бывает. Вылет происходит, если во время рывка на что-нибудь "налетаешь" и одновременно с этим поворачиваешь камеру. А еще веселый баг - налететь на какую-нибудь кочку и как ракета через пол-карты.
первый раз, такое у меня произошло на синестре в кате, на траях кмзу, причем это происходило лишь при задерживании ПКМ при прыжке и отведении камеры в сторону - инстант дисконнект

AltF4

  • Завсегдатай
  • **
  • Сообщений: 473
  • Рейтинг:31 (+31 | 0)
Близзы из меня параноика сделали. Идешь себе, никого нет, а вокруг, оказывается, сотни невидимых существ.  :o

vsa`R1SK

  • Завсегдатай
  • **
  • Сообщений: 909
  • Безумный кошатник

  • Варкрафт: +
    • Класс: Жрец
    • Сервер: Пиратская бухта
  • Рейтинг:0 (+0 | 0)
Цитировать
Довольно долгое время существовала неполадка, из-за которой подсказки у вещей и заклинаний могли исчезнуть, и, чтобы вернуть их обратно, нужно было навести указатель мыши на точку ресурсов на миникарте. С выходом обновления 7.0. эта неполадка исчезла сама собой и разработчики до сих пор не имеют представления, что это была за ошибка и почему она исправилась.
Это сильно))))
В WoD сталкивался с этим багом постоянно...

ЫныщН

  • Завсегдатай
  • **
  • Сообщений: 474

  • Варкрафт: +
    • Имя: Намчен
    • Класс: Воен Света
    • Сервер: Бобруйская тундра
  • Рейтинг:0 (+0 | 0)
В WoD сталкивался с этим багом постоянно...
вот сцуки - оказывается можно было навести крысу на ноду на миникарте, а не релоадить интерфейс по 10 раз за игровую сессию...

Alecseus

  • Старожил
  • ***
  • Сообщений: 2719
  • Поглощенный Бездной

  • Варкрафт: +
    • Класс: Чернокнижник(варлок короче).
    • Сервер: Много разных.
  • Рейтинг:0 (+0 | 0)
Цитировать
Довольно долгое время существовала неполадка, из-за которой подсказки у вещей и заклинаний могли исчезнуть, и, чтобы вернуть их обратно, нужно было навести указатель мыши на точку ресурсов на миникарте. С выходом обновления 7.0. эта неполадка исчезла сама собой и разработчики до сих пор не имеют представления, что это была за ошибка и почему она исправилась.
Я а все на аддоны грешил.
Через два дополнения ошибка нанесет ответный удар.
"Говорить что Хертстоуне нет баланса,это как утверждать,что дерьмо не особо приятно на вкус. Вроди бы и правильно,но всей правды поведать не может".

Lexano

  • Лучший автор
  • Старожил
  • *
  • Сообщений: 2200
  • Рейтинг:0 (+0 | 0)
Цитировать
На сервере работает особый код, который следит за тем, чтобы игроки могли двигаться только так, как надо, и не могли двигаться как-то необычно. Нынешний код обрабатывает всю информацию на 99,9% верно. В остальных случая сервер считает, что вы движетесь как-то не так и отключает вас от игры. В оплоте друидов был участок воды, забежав в который на определенном маунте, вы просто отключались от игры — такие вещи очень сложно отслеживать.

Хм, я так понимаю, это античит?
А вот близовский warden что-то плохо ловит ботов и других любителей сторонних программ.

Dr.Kox

  • Старожил
  • ***
  • Сообщений: 1015
  • Рейтинг:0 (+0 | 0)
"На сервере работает особый код, который следит за тем, чтобы игроки могли двигаться только так, как надо, и не могли двигаться как-то необычно. Нынешний код обрабатывает всю информацию на 99,9% верно. В остальных случая сервер считает, что вы движетесь как-то не так и отключает вас от игры." - хм, видимо поэтому у меня вылетает клиент когда на БГ заходишь на посадку на планере, дико раздражает кстати)
« Последнее редактирование: 22 Ноября, 2016, 18:43:42 by Dr.Kox »

Pegass

  • Новичок
  • *
  • Сообщений: 38
  • Рейтинг:0 (+0 | 0)
  • На сервере работает особый код, который следит за тем, чтобы игроки могли двигаться только так, как надо, и не могли двигаться как-то необычно. Нынешний код обрабатывает всю информацию на 99,9% верно. В остальных случая сервер считает, что вы движетесь как-то не так и отключает вас от игры. В оплоте друидов был участок воды, забежав в который на определенном маунте, вы просто отключались от игры — такие вещи очень сложно отслеживать.
Так вот почему меня у Кенария несколько раз из игры выкидывала, когда по кромке его площадки бегал, чутка наклоняясь к воду. >:(

Веми-Веми

  • Старожил
  • ***
  • Сообщений: 2461
  • Мастер призыва и подчинения
  • Рейтинг:0 (+0 | 0)
"На сервере работает особый код, который следит за тем, чтобы игроки могли двигаться только так, как надо, и не могли двигаться как-то необычно. Нынешний код обрабатывает всю информацию на 99,9% верно. В остальных случая сервер считает, что вы движетесь как-то не так и отключает вас от игры." - хм, видимо поэтому у меня вылетает клиент когда на БГ заходишь на посадку на планере, дико раздражает кстати)
А я однажды в Шал'аране в какой-то камень упёрся и если шёл вперёд, то моментально вылетал.
Заходил обратно, всё нормально. Камеру кручу, всё работает. Делаю шаг и вылет. Раза четыре меня выкинуло, пока пятиться не решил оттуда.
Всё не мог понять, что за дела. А оно вон как оказалось!
Бромгар - Свежеватель Душ

darclas

  • Завсегдатай
  • **
  • Сообщений: 206

  • Варкрафт: +
    • Имя: Darclas
    • Класс: DK
    • Сервер: Goldrinn
  • Рейтинг:0 (+0 | 0)
Близзы из меня параноика сделали. Идешь себе, никого нет, а вокруг, оказывается, сотни невидимых существ.  :o
мне кажется они про нпс-тригеры, на пиратках их можно было раньше часто встретить как беса

 

закрыть