Перейти к содержимому

Выявление проблем

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

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

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

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

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

  • Проверьте журнал консоли:

    • Есть ли в консоли логи, идентифицирующие проблему? Распространённые проблемы здесь: необъявленные переменные, опечатки, неверные диапазоны счётчиков или рисования фигур. Переполнение стека не будет обнаружено SignalRGB, но его легко заметить: SignalRGB упадёт первым, за ним — компьютер. Будьте ответственным программистом и не заставляйте приложение считать до бесконечности.
  • Проверьте счётчики:

    • Срабатывают ли счётчики эффекта в Meter Inspector во время игры? Если да, вы должны увидеть белый цвет в чёрной области под видом счётчика.
      • Если счётчик смещён, используйте наш проприетарный инструмент (WindowSpy) для снятия измерений экрана и настройки положения счётчика в разделе **<head>**.
      • Если это решило проблему, не забудьте скорректировать счётчик для всех других разрешений в разделе настроек. Инструкции по размещению счётчиков и нормализованным координатам можно найти в разделе «Умные теги» этого документа.
      • Если счётчики срабатывают правильно, проблема в другом месте.
  • Проверьте функцию обновления:

    • Корректно ли данные счётчика передаются в класс Meter?
      • Добавили ли вы условные обновления Meter для учёта сложного поведения интерфейса?
      • Если всё выглядит правильно, поместите console.log непосредственно в функцию обратного вызова. Лог должен появляться каждый раз при стабилизации счётчика, даже если эффект не срабатывает правильно.
      • Если лог появляется стабильно, проблема в другом месте.
  • Оцените функцию обратного вызова:

    • Мы знаем, что функция обратного вызова активируется правильно, потому что видели логи ранее. Теперь проверьте точность условий внутри эффекта.
      • Если ничего очевидно неверного нет, добавьте операторы console.log внутри условий, чтобы увидеть, не срабатывают ли какие-то из них неправильно во время игры.
      • Если всё выглядит нормально, проблема может быть внутри самого эффекта.
  • Проверьте функцию анимации эффекта:

    • Функции анимации могут сильно различаться, поэтому универсальных советов нет. Однако для эффективной отладки:
      • Перенесите эффект в пустой шаблон Lightscript и убедитесь, что можете его активировать и просмотреть анимацию в SignalRGB.
      • Следите за консолью и отмечайте место, где анимация ломается.
      • Изоляция проблемного кода сэкономит время, поэтому обязательно выполните этот шаг.