Выявление проблем
Сбор материалов для тестирования
Заголовок раздела «Сбор материалов для тестирования»Первый шаг в любом процессе сообщения об ошибках — собрать доказательства того, что что-то работает неправильно. Простые сообщения вроде «Эй, эта игра не работает» не помогают нашей команде обслуживания. Для эффективного устранения проблемы каждый раз нужны три вещи:
- Видео с воспроизведением ошибки. Понимаем, что вы не можете снять неправильно работающий эффект на клавиатуре, но игровое видео вполне подойдёт.
- Описание действий, вызвавших ошибку. Пожалуйста, будьте максимально подробны. Даже небольшие детали могут помочь быстро выявить источник проблемы.
- Разрешение экрана, при котором вы играете. Без этого разработчикам приходится проверять каждое поддерживаемое разрешение для поиска проблемы, что может занять много времени.
Если вы создатель Lightscript, не связанный с нашей компанией, эти простые шаги всё равно существенно помогут с вашим собственным кодом. Тщательная документация в сочетании с пониманием структуры кода делает выявление проблем простым процессом.
Если вы фанат игры, пытающийся самостоятельно обслуживать код, убедитесь, что отправляете нам игровое видео с видимой проблемой. Возможно, мы сможем ускорить её исправление!
Выявление проблем
Заголовок раздела «Выявление проблем»Ошибки интеграции обычно легко заметить — если эффект никогда не срабатывает или срабатывает слишком часто, что-то явно сломано. Сложность — в точном определении раздела кода, вызывающего проблему. Всегда начинайте с выявления проблемы, используя шаги из предыдущего раздела — это обеспечит наиболее чёткий путь. Ниже приведён предлагаемый процесс поиска ошибок:
-
Проверьте журнал консоли:
- Есть ли в консоли логи, идентифицирующие проблему? Распространённые проблемы здесь: необъявленные переменные, опечатки, неверные диапазоны счётчиков или рисования фигур. Переполнение стека не будет обнаружено SignalRGB, но его легко заметить: SignalRGB упадёт первым, за ним — компьютер. Будьте ответственным программистом и не заставляйте приложение считать до бесконечности.
-
Проверьте счётчики:
- Срабатывают ли счётчики эффекта в Meter Inspector во время игры? Если да, вы должны увидеть белый цвет в чёрной области под видом счётчика.
- Если счётчик смещён, используйте наш проприетарный инструмент (WindowSpy) для снятия измерений экрана и настройки положения счётчика в разделе
**<head>**. - Если это решило проблему, не забудьте скорректировать счётчик для всех других разрешений в разделе настроек. Инструкции по размещению счётчиков и нормализованным координатам можно найти в разделе «Умные теги» этого документа.
- Если счётчики срабатывают правильно, проблема в другом месте.
- Если счётчик смещён, используйте наш проприетарный инструмент (WindowSpy) для снятия измерений экрана и настройки положения счётчика в разделе
- Срабатывают ли счётчики эффекта в Meter Inspector во время игры? Если да, вы должны увидеть белый цвет в чёрной области под видом счётчика.
-
Проверьте функцию обновления:
- Корректно ли данные счётчика передаются в класс Meter?
- Добавили ли вы условные обновления Meter для учёта сложного поведения интерфейса?
- Если всё выглядит правильно, поместите
console.logнепосредственно в функцию обратного вызова. Лог должен появляться каждый раз при стабилизации счётчика, даже если эффект не срабатывает правильно. - Если лог появляется стабильно, проблема в другом месте.
- Корректно ли данные счётчика передаются в класс Meter?
-
Оцените функцию обратного вызова:
- Мы знаем, что функция обратного вызова активируется правильно, потому что видели логи ранее. Теперь проверьте точность условий внутри эффекта.
- Если ничего очевидно неверного нет, добавьте операторы
console.logвнутри условий, чтобы увидеть, не срабатывают ли какие-то из них неправильно во время игры. - Если всё выглядит нормально, проблема может быть внутри самого эффекта.
- Если ничего очевидно неверного нет, добавьте операторы
- Мы знаем, что функция обратного вызова активируется правильно, потому что видели логи ранее. Теперь проверьте точность условий внутри эффекта.
-
Проверьте функцию анимации эффекта:
- Функции анимации могут сильно различаться, поэтому универсальных советов нет. Однако для эффективной отладки:
- Перенесите эффект в пустой шаблон Lightscript и убедитесь, что можете его активировать и просмотреть анимацию в SignalRGB.
- Следите за консолью и отмечайте место, где анимация ломается.
- Изоляция проблемного кода сэкономит время, поэтому обязательно выполните этот шаг.
- Функции анимации могут сильно различаться, поэтому универсальных советов нет. Однако для эффективной отладки: