WORLD OF WARCRAFT

Тема: Старший инженер Валентин Пауэлл рассказал о том как устроена работа над устранением неполадок в WoW  (Прочитано 5888 раз)

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

horsaken

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



Старший инженер интерфейса Валентин Пауэлл трудится в Blizzard 4 года и на данный момент работает в команде World of Warcraft. Он решил запустить в Twitter серию постов о труде разработчиков, и в одном из них рассказал о "самом простом" занятии – исправлении неполадок.:cut:

Цитировать
WoW – это очень старая игра, с очень старым кодом, и по мере того, как мы добавляем новые системы, они зачастую ломают что-то из уже существующего. Часть моей работы заключается в том, чтобы исправлять подобные неполадки.

Вот часть неполадок в WoW, которые мне удалось устранить:

  • Некорректное отображение баффов в рейдовом интерфейсе.
  • Отсутствующие метки на миникарте.
  • НПЦ, необходимые для заданий не отображались на миникарте.
  • Исправление описаний, которые наслаивались друг на друга.
  • Исправление анимаций, которые не прекращались, даже когда связанный с ними фрейм скрывался.
  • Исправление порядка ковенантских способностей в книге умений.
  • Замена некорректного логотипа в китайском клиенте игры.
  • Исправление ошибок наложения текстур во внутриигровом магазине.
  • Исправление ошибок, которые имели место в некоторых регионах.
Как можно заметить, мне приходится работать с самыми разными участками кода, а это значит, что я должен многое знать о самых разных игровых аспектах. Лично для меня, процесс устранения неполадок является самым лучшим способом узнать, как работает код.

Исправление неполадок – довольно трудная штука, особенно в таких играх как WoW, в котором используются сразу несколько разных языков программирования. Зачастую, когда мы получаем сообщение об ошибке, ОТК (отдел товарного качества) предоставляет нам подробные инструкции о том, как воспроизвести неполадку. Но понять, ПОЧЕМУ ошибка появляется мы должны уже самостоятельно.

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

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

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

Немалая часть работы заключается в общении с другими инженерами. Одни инженеры имеют неплохой уровень понимания как работает весь код игры в целом; другие же на более глубоком уровне понимают, как работает код более конкретных "частей" игры.

Это означает, что если я определил, что неполадка связана с полосой прокрутки, то мне стоит попросить помощи с диагностикой одного инженера, а если она связана с трансмогрификацией, то я скорее обращусь уже к другому.

Как только вы определились с источником возникновения и наметили наилучшее место, в которое внесёте изменения, следующим шагом будет непосредственно применение исправлений. Затем вы должны убедиться, что ваше исправление убирает неполадку, а затем отменить свои изменения, чтобы убедиться, что неполадка снова появилась. Этот аспект очень важен, ведь вы должны быть железно уверенными в том, что ваши правки действительно сработали.

Также, на этом этапе неплохо бы провести дополнительные тесты, чтобы убедиться, что ваши правки не затрагивают какие-либо куски кода, на которые влиять не должны. Например, если вношу изменения в то, как работают наборы для трансмогрификации, то я должен убедиться, что уже существующие наборы для трансмогрификации не "сломались".

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

Затем вы утверждаете свои правки, убеждаетесь в том, что код корректно встраивается в текущую версию игры, а также и во все будущие версии; убеждаетесь в том, что ваши правки не мешает выполнению другого код, который мог быть написать, пока вы занимались этой ошибкой, и уже после этого передаёте всё в ОТК.

ОТК, как только получат ваши правки, делают намного более обширное тестирование с использованием более широкого инструментария; обо всём этом стоит написать в отдельной теме. Если они обнаружат какие-то проблемы, к которым приводят ваши правки, то могут создать новую связанную задачу, или повторно открыть задачу, связанную с неполадкой, над устранением которой вы трудились. В этом случае вам придётся начать всё заново ^_^. Веселуха.

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

Это означает, что некоторые неполадки так и останутся не решёнными; одни – потому что влияние их слишком незначительно, чтобы тратить время на их устранение; другие – потому что их исправление приведёт к возникновению более серьёзных ошибок. Однако, в общем и целом, мы стараемся исправить так много ошибок, сколько в наших силах.

В будущих постах я затрону такой аспект, как планирование времени, которое займёт исправление неполадки; что зачастую бывает очень непростой задачей. Ещё один момент, который стоит озвучить: большое количество неполадок исправляется задолго до того, как обновление выйдет на живых серверах, и даже до того, как обновление появится на PTR. Мы проводим множество итераций внутреннего тестирования, в ходе которого и выявляется основная часть неполадок.
« Последнее редактирование: 04 Декабря, 2021, 22:13:06 by Wishko »

Emanavrot

  • Завсегдатай
  • **
  • Сообщений: 203
пример с наборами трансмога звучит весьма иронично ,особенно если знать ,как все донатные трансмоги любят *исчезать * последние год .... или больше .

Kilovat

  • Старожил
  • ***
  • Сообщений: 2078
Ну в целом игре уже 17 лет, там столько десятков тысяч строк кода, что разбираться в нем просто нереально. Так что рядовых работников даже немного жаль: очень сложно исправить баг так, чтобы он не породил ещё больше других багов.

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

Это означает, что некоторые неполадки так и останутся не решёнными; одни – потому что влияние их слишком незначительно, чтобы тратить время на их устранение; другие – потому что их исправление приведёт к возникновению более серьёзных ошибок. Однако, в общем и целом, мы стараемся исправить так много ошибок, сколько в наших силах.

но в основном решаются только критические и средние по значимости. До мелких и незначительных багов очередь просто не доходит: всегда появляются новые важные баги.
Наш показатель - баг с невозможностью отмены внутриигрового ролика в Престоле Гроз перед Тортосом. Сколько ему уже лет? :)

makes55

  • Новичок
  • *
  • Сообщений: 18
Надо писать "старшие инженеры"
"Senior UI Engineer, WoW, Blizzard Entertainment. Non-binary, queer, they/them. Married to @Outphased"

В принципе логично, если шиз говорит, что он чинит баги, то в реальности все наоборот.

WowIsDead64

  • Ветеран
  • ****
  • Сообщений: 5777
  • Unsubbed
Если бы не быдлокодили бы, то и проблем бы не было.

Мне плевать на Wow 11.0, если это не соло-ММО. Ждать в очереди своей возможности быть униженным - не та игра, в которую мы хотим играть.

horsaken

  • Модератор
  • Старожил
  • *
  • Сообщений: 3734
Надо писать "старшие инженеры"
"Senior UI Engineer, WoW, Blizzard Entertainment. Non-binary, queer, they/them. Married to @Outphased"

В принципе логично, если шиз говорит, что он чинит баги, то в реальности все наоборот.

Хах, так и знал, что найдётся уникум, который прицепится к его гендерным предпочтениям.
Тот факт, что в тексте нет ни намёка на что-то подобное, вижу, вас не останавливает.
Признавайтесь, сложно было придумать, как приплести все эти гендерные штучки к дебаггингу, о котором он рассказывает?

makes55

  • Новичок
  • *
  • Сообщений: 18
Ну в целом игре уже 17 лет, там столько десятков тысяч строк кода
Лапшу  вешают квиры эти, если бы они были заняты десятками тысяч строк кода, и поиском решения багов, то кодерам некогда было бы менять картинки с сиьсками и переименовывать нпс в ЧХ. 

makes55

  • Новичок
  • *
  • Сообщений: 18
приплести все эти гендерные штучки к дебаггингу, о котором он рассказывает?
А при чем тут гендер. Чувак себя множественным числом считает, поэтому, вполне себе и 1 маленький баг у него это не 1, а много больших багов, которые некогда решать. 

vsb

  • Старожил
  • ***
  • Сообщений: 4365
Понабрали гомошизу, теперь сами разобраться не могут, что вообще происходит. Всех разогнать.

ievkO

  • Старожил
  • ***
  • Сообщений: 1524
Надо писать "старшие инженеры"
"Senior UI Engineer, WoW, Blizzard Entertainment. Non-binary, queer, they/them. Married to @Outphased"

В принципе логично, если шиз говорит, что он чинит баги, то в реальности все наоборот.

Хах, так и знал, что найдётся уникум, который прицепится к его гендерным предпочтениям.
Тот факт, что в тексте нет ни намёка на что-то подобное, вижу, вас не останавливает.
Признавайтесь, сложно было придумать, как приплести все эти гендерные штучки к дебаггингу, о котором он рассказывает?
но ведь оно само просит их называть они  ;D

pr0stak

  • Старожил
  • ***
  • Сообщений: 1841
Специально для Mylisp, в жопу себе засунь кнопку и проверни.

Поддержим вымирающий вид хохлов!

Dart Raiden

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

  • Варкрафт: +
    • Класс: Друид
    • Сервер: Борейская тундра
Надо писать "старшие инженеры"
"Senior UI Engineer, WoW, Blizzard Entertainment. Non-binary, queer, they/them. Married to @Outphased"

В принципе логично, если шиз говорит, что он чинит баги, то в реальности все наоборот.


Хах, так и знал, что найдётся уникум, который прицепится к его гендерным предпочтениям.
Тот факт, что в тексте нет ни намёка на что-то подобное, вижу, вас не останавливает.
Признавайтесь, сложно было придумать, как приплести все эти гендерные штучки к дебаггингу, о котором он рассказывает?

Капец, вот это ещё надо было куда-то пойти и специально искать, как человек себя идентифицирует...
Это же натурально анекдот про шкаф и женскую баню.

А потом удивляются, что нубклаб скатился. Да сюда заходить уже всё меньше и меньше тянет.
« Последнее редактирование: 05 Декабря, 2021, 03:31:44 by Dart Raiden »

Dart Raiden

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

  • Варкрафт: +
    • Класс: Друид
    • Сервер: Борейская тундра
Надо писать "старшие инженеры"
"Senior UI Engineer, WoW, Blizzard Entertainment. Non-binary, queer, they/them. Married to @Outphased"

В принципе логично, если шиз говорит, что он чинит баги, то в реальности все наоборот.

Хах, так и знал, что найдётся уникум, который прицепится к его гендерным предпочтениям.
Тот факт, что в тексте нет ни намёка на что-то подобное, вижу, вас не останавливает.
Признавайтесь, сложно было придумать, как приплести все эти гендерные штучки к дебаггингу, о котором он рассказывает?
но ведь оно само просит их называть они  ;D
Если бы люди почаще задавались вопросами "почему меня это гребёт?" и "должно ли меня это грести?", было бы очень славно.
« Последнее редактирование: 05 Декабря, 2021, 03:33:06 by Dart Raiden »

Dart Raiden

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

  • Варкрафт: +
    • Класс: Друид
    • Сервер: Борейская тундра
Завидую чуваку, он, хотя бы, может с одной проблемой (прокрутка) пойти к одному инженеру, а с другой (трансмогрификация) к другому.

А вот когда ты тянешь на себе кодовую базу 20-летней давности, в которую за эти 20 лет в разное время накодила добрая сотня человек (местами костыли прямо слоями лежат, как дерьмо на поле, куда ходили гадить солдаты из похождений Швейка), а единственный инженер это ты... *плачет*

И да, этот чудовищный объём кода работает по принципу "если я тебя монтировкой по голове шарахну, угадай какой шнурок развяжется?". Я когда-то на пиратке смеялся над тем, как наш админ чинил инженерского Дживса и при этом сломал абилку паладинов (казалось бы, где паладины, а где инженерное дело). Теперь уже не смешно.

Цитировать
Это означает, что некоторые неполадки так и останутся не решёнными; одни – потому что влияние их слишком незначительно, чтобы тратить время на их устранение; другие – потому что их исправление приведёт к возникновению более серьёзных ошибок. Однако, в общем и целом, мы стараемся исправить так много ошибок, сколько в наших силах.
Как я его понимаю. Суммарно ошибок (включая незначительные) всегда будет больше, чем ресурсов на их исправление, а некоторые тикеты висят годами, потому что либо надо городить ужасные костыли (не хочется), либо переписывать фундаментальные основы приложения (не потяну + вылезет столько регрессий, что потом в одиночку годами разгребать, а юзеры будут орать, что раньше регрессий не было и было лучше).
« Последнее редактирование: 05 Декабря, 2021, 03:46:47 by Dart Raiden »

Dart Raiden

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

  • Варкрафт: +
    • Класс: Друид
    • Сервер: Борейская тундра
А потом удивляются, что нубклаб скатился. Да сюда заходить уже всё меньше и меньше тянет.

А, впрочем, нахрен этот гадюшник, тут атмосфера почище всяких SJW стала, только в обратную сторону.
« Последнее редактирование: 05 Декабря, 2021, 03:53:11 by Dart Raiden »

 

закрыть