authors_main:lifecycle:testing

Тестирование игры

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

Любой автор может протестировать игру в один клик прямо из редактора: кнопка «Тестировать Игру» в верхней панели открывает игру в новой вкладке. Если в черновике есть несохранённые правки, редактор сначала покажет их списком и предложит сохранить — тест показывает то, что лежит на сервере.

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

  • Свернуть и развернуть — клик по красной надписи «Тестирование игры» слева, по пустому месту полосы или по крестику справа. Крестик тоже только сворачивает: внутри панели лежит блок ошибок скрипта, и убрать её со страницы совсем он не может.
  • Высота меняется перетаскиванием — за полосу или за тонкий хват над ней. Двойной клик возвращает высоту по умолчанию.
  • Свёрнутость помнится в пределах вкладки браузера, высота — между перезагрузками.

Число у названия вкладки — её счётчик: у «Заданий» это «открыто из всего», у «Шаблонов» — сколько шаблонов разобрано, у «Ошибок js» — сколько разных поломок.

Вкладка «Задания»: схема линейки, состояние каждого уровня и строка действий

Сверху — инструменты:

  • «Перемотать время» — не «плюс десять минут», а «перескочить к ближайшему таймеру на странице». Ждать подсказку по-настоящему не нужно. Если таймеров на уровне нет, кнопка ничего не сделает.
  • «Редактор игры» — ссылка на редактор всей игры.
  • «Рестарт игры» (красная) — стирает прогресс команды целиком и начинает с первого уровня.

Ниже — «Порядок заданий», если у игры больше одной линейки. Выбор линейки сам ничего не применяет: он показывает её схему серыми номерами, отбитую чертой слева, а применится она рестартом — кнопкой «Рестарт с 1-го уровня» или «Рестарт отсюда» на выбранном уровне.

Схема линейки

Это не плоский список номеров, а структура игры: последовательные уровни идут вправо через ›, штурмовые ветки висят вниз на общей планке, случайный порядок помечен ?.

Состояние уровня видно по номеру:

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

Перейти или начать отсюда

Под схемой — строка действий. Пока номер не выбран, в ней стоит текущий уровень.

  • «Перейти» — просто открыть уровень, ход игры остаётся как был. Есть только у открытого уровня: в пройденный и закрытый движок не пустит, а на текущем переходить некуда.
  • «Рестарт отсюда» (красная) — стирает прогресс и расставляет пройденными путь к этому уровню, как будто команда дошла сюда сама. В штурме соседние ветки останутся закрытыми.
Клик по номеру больше не перезапускает игру. Первый клик только выбирает уровень и показывает, что с ним можно сделать. Повторный клик по уже выбранному номеру — это «Рестарт отсюда»: на телефоне по номеру попадают случайно, а рестарт не отменить.

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

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

Она показывает, что движок сделал с шаблонами {% match %} на этой странице: какой шаблон, какое значение проверялось, какая ветка сработала и какие были варианты. Вложенные шаблоны сдвинуты вправо — их разбирали только потому, что сработала ветка выше.

Вкладка «Шаблоны»: какой match что проверял и какая ветка сработала

  • Наведите на строку — на задании подсветится то, что эта ветка подставила.
  • Кликните по строке — страница прокрутится к этому месту.
  • Стрелка слева от имени разворачивает исходный текст ветки.
  • Клик по варианту показывает задание так, будто сработала эта ветка.

Выбор ветки: задание перерисовывается так, будто сработала она

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

Так проверяется ветка, в которую иначе не попасть: индивидуальное задание для чужой команды, ветка ?, ветка «ответа ещё нет».

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

Редактор открывается с админского хоста, и сессия у него своя. Если вы туда ещё не входили, во вкладке будет форма входа, а войти прямо в ней нельзя. Тогда — ссылка «Открыть редактор в новой вкладке», войти там, и вкладка заработает.

Всё, что касается игры целиком — настройки, порядок заданий, номер задания, — правится в редакторе игры: ссылка «Редактор игры» есть на вкладке «Задания».

Её не видно, пока всё в порядке; первая же ошибка в скрипте сама показывает вкладку и разворачивает панель, даже если панель была выключена.

Ловятся ошибки в скриптах заданий, подсказок, бонусов и сквозных бонусов, а также асинхронные — из setTimeout, fetch и async-функций: раньше такие падали молча. Одинаковые складываются в одну запись со счётчиком.

Намеренно не записываются ошибки браузерных расширений и безымянное «Script error.» от чужих доменов — это не ваш код, и в журнале от них только шум.

Нет вкладки — значит, показывать нечего, а не сломалось:

  • «Коды» — все коды, бонусы и сквозные бонусы уровня, по клику подставляются в поле ответа. Видит её только автор игры или администратор домена. Приглашённая команда тестеров кодов не видит и играет вслепую, как игроки.
  • «GPS» — есть, только если на задании включён gps. Статус, карта, зоны маркеров и подмена координат; подробно — на странице Коды по GPS-координатам.
  • «Действия» — есть, только если серверные маркеры на этой загрузке что-то сделали. Просто наличие маркеров вкладку не создаёт.
  • «Шаблоны» — есть, только если на странице разобран хотя бы один {% match %}.

Переключатель «Тестовые контролы» — в меню игры: гамбургер справа вверху, раздел «Настройки», последний переключатель. Он прячет панель, но не насовсем: первая же ошибка скрипта вернёт её и откроет на «Ошибках js».

Чтобы панели не было вовсе — например, для скриншотов или видео, — откройте игру с ?debug_panel=0. Возврат — ?debug_panel=1. Учтите: тогда тестер остаётся совсем без инструментов.

Вы можете приглашать сторонних игроков или целые команды для независимого тестирования:

  1. Команда тестеров должна подать стандартную заявку на вашу игру на сайте.
  2. В блоке «Подали Заявки» на странице игры рядом с этой командой появятся две кнопки: «Принять» пускает команду в игру по-настоящему, «Разрешить Тест» — только на тест.

Заявки: «Принять» пускает команду в игру, «Разрешить Тест» — только на тест

  1. После принятия команда сможет зайти в игру в любое время (даже до официального старта).
  2. Тестеры играют в абсолютно реальном игровом интерфейсе: коды прохождения уровней им не видны.

Панель тестера у приглашённой команды тоже есть — без вкладки «Коды» и без права менять линейку. Рестарт и перемотка времени им доступны, на вкладке «Задания».

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

Обратите внимание: В этом случае все участники вашей команды получат доступ к игре до её начала. Убедитесь, что члены вашей команды не являются реальными участниками предстоящей игры.
  • authors_main/lifecycle/testing.txt
  • Последние изменения: 2026/09/18 06:51
  • (внешнее изменение)