Улучшение системы отчётов о сбоях | EVE Online

Улучшение системы отчётов о сбоях

2020-11-12 - EVE Development Team

Внимание любящим подробности капсулёрам!

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

Спектр конфигураций компьютеров игроков тоже очень широк. Версии операционных систем (включая разницу в обновлениях), индивидуальные изменения конфигурации системы, версии драйверов и надежность оборудования — всё это играет важную роль в работе клиента EVE Online.

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

CCP уделяет много внимания стабильности клиента. Мы вложились в систему фиксации сбоев, чтобы гарантировать её наилучшую работу и находить больше ошибок, что в конечном итоге должно привести к сокращению их количества. Вместе с сообщениями об ошибках, которые вы отправляете по нажатию клавиши F12, это поможет нам сделать клиент EVE Online максимально стабильным.


Улучшенный механизм отчётов

При непредвиденном завершении работы клиента игры в круглосуточную систему мониторинга сбоев отправляется отчёт об ошибках. После нескольких лет использования популярной библиотеки Breakpad от Google мы нашли новое решение — систему Crashpad. Обратите внимание, что ни одна из этих библиотек не посылает информацию в Google.

Breakpad располагается в каталоге с исполняемым файлом клиента EVE Online. Это означает, что при сбое клиента библиотека тоже может «вылететь», и это приведёт к потере отчёта об ошибке. То же самое может произойти, когда в клиенте EVE заканчивается память — ценный отчёт об ошибке может быть потерян.

В системе Crashpad эта проблема решена за счёт того, что она располагается не в самой программе. Это значит, что скоро вы увидите отдельный процесс под названием eve_crashmon, работающий параллельно с клиентом EVE Online. В диспетчере задач Windows он будет выглядеть так:

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


Использование отчётов об ошибках

Отчёт об ошибке обычно относится к одной из пяти категорий:

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

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

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

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

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


Сообщения об ошибках

Сообщения об ошибках очень сильно помогают решать проблемы в EVE Online. Существует два способа отправки сообщений об ошибках, и один из них намного лучше другого. Вы можете зайти на страницу support.eveonline.com и нажать на желтую кнопку (хорошо) или же нажать клавишу F12 в игре (замечательно).

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

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

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

При сбоях в работе клиента нам особенно важно получать сообщения о таких ошибках, когда сбой происходит в результате действий пользователя: например, «вылет» неоднократно случается во время переключения из режима окна без рамки в полноэкранный. Отчёты об ошибках несовершенны и могут не содержать всей необходимой информации, которую можете предоставить только вы. Отправка сообщения об ошибке по нажатию клавиши F12 в меню игры даже после перезапуска клиента оставит важные записи в журнале ошибок.


Тестовая лаборатория

После переезда CCP в новый офис у нас появилась лаборатория для тестирования, соответствующая всем нашим требованиям. Она занимает больше места, имеет более мощную вентиляцию и улучшенную систему хранения для тестового оборудования.

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

Лаборатория используется не только для тестирования исправлений ошибок клиента, но и для проверки совместимости и производительности. Так как EVE Online установлена на огромном количестве различных устройств, сотрудники лаборатории проверяют, чтобы обновления игры работали на должном уровне во всех самых распространённых конфигурациях.

Тестовая лаборатория будет развиваться вместе с улучшениями кода клиента EVE Online, включая будущий переход на DirectX 12.


Своевременное обновление программного обеспечения

К сожалению, не все ошибки могут быть воспроизведены в тестовой лаборатории. Своевременное обновление вашей операционной системы важно не только для безопасности, но и для устранения неполадок. Windows и Mac автоматически обновляются на регулярной основе, и мы также призываем игроков по возможности применять последние обновления.

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


Проблемы с оборудованием

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

Поиск неисправностей на ПК сложен, но обычно наиболее часто встречаются следующие проблемы:

  • Проблемы с видеокартой. Иногда они могут выглядеть как повреждённое изображение со странными цветами или эффектом шахматной доски. Иногда может появляться сообщение «Видеодрайвер перестал отвечать и был восстановлен», хотя оно возникает не только при проблемах с оборудованием.
  • Проблемы с оперативной памятью. Отказы оперативной памяти могут часто вызывать беспорядочные сбои или появление BSOD*. Если причиной ошибки становится только один повреждённый адрес памяти, проблема может возникать очень редко.
  • Разгон компьютера. Эта функция получила большое распространение в последние годы, так как производители облегчили к ней доступ. Разгон предлагает заманчивое повышение производительности, но также увеличивает риск нестабильной работы. Если сбои происходят при разгоне процессора, рекомендуется вернуть обычную частоту и посмотреть, исправит ли это проблему.
  • Проблемы с блоком питания. К сожалению, неисправный блок питания может вызвать подозрения к любому компоненту системы. Для обеспечения стабильной работы рекомендуется использовать качественные блоки питания. Если в компьютере часто происходят сбои при высокой нагрузке, возможно, стоит обратить внимание именно на это.
  • Перегрев. Подобные проблемы чаще всего вызваны скоплением пыли или ухудшением работы вентиляторов из-за большой нагрузки. В зависимости от того, какой компонент перегревается, может возникнуть целый ряд проблем, от плохой производительности до полного закрытия приложения.

Если вы подозреваете, что у вас проблемы с аппаратным обеспечением, можно использовать множество бесплатных программ, позволяющих оценить стабильность системы. Вот одни из самых популярных: memtest86 для оперативной памяти и OCCT для проверки общей стабильности системы. Если во время тестирования вы заметили какие-либо неисправности, велика вероятность, что вы столкнётесь с ними и при использовании клиента EVE Online.


Что дальше?

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

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

В будущем мы хотели бы разработать панель управления, которая показывала бы нам процесс развития сложных ситуаций. Для этого нам нужно наблюдать за состоянием всех клиентов EVE Online в режиме реального времени. Переход на использование Crashpad и размещение процесса мониторинга за пределами клиента EVE — первый шаг в этом направлении.

Использование Crashpad вместе с Sentry для отчётов о сбоях позволит нам мониторить, фильтровать и быстро исправлять ошибки. В дальнейшем для улучшения реагирования мы планируем интегрировать свежие обновления из их собственного SDK.

Спасибо за внимание, и не забывайте в случае необходимости нажимать F12, чтобы отправить сообщение об ошибке.