Тестирование игры
Перед запуском игры для реальных игроков крайне важно убедиться, что все задания отображаются корректно, коды принимаются без сбоев, а подсказки приходят вовремя.
1. Быстрое тестирование автором (Одиночный тест)
Любой автор может протестировать игру в один клик прямо из редактора: кнопка «Тестировать Игру» в верхней панели открывает игру в новой вкладке. Если в черновике есть несохранённые правки, редактор сначала покажет их списком и предложит сохранить — тест показывает то, что лежит на сервере.
2. Панель тестера
Внизу страницы у тестера стоит панель, которой у игрока нет. Все инструменты тестирования живут в ней: раньше они были разбросаны по странице, теперь собраны по вкладкам.
- Свернуть и развернуть — клик по красной надписи «Тестирование игры» слева, по пустому месту полосы или по крестику справа. Крестик тоже только сворачивает: внутри панели лежит блок ошибок скрипта, и убрать её со страницы совсем он не может.
- Высота меняется перетаскиванием — за полосу или за тонкий хват над ней. Двойной клик возвращает высоту по умолчанию.
- Свёрнутость помнится в пределах вкладки браузера, высота — между перезагрузками.
Число у названия вкладки — её счётчик: у «Заданий» это «открыто из всего», у «Шаблонов» — сколько шаблонов разобрано, у «Ошибок js» — сколько разных поломок.
Вкладка «Задания»
Сверху — инструменты:
- «Перемотать время» — не «плюс десять минут», а «перескочить к ближайшему таймеру на странице». Ждать подсказку по-настоящему не нужно. Если таймеров на уровне нет, кнопка ничего не сделает.
- «Редактор игры» — ссылка на редактор всей игры.
- «Рестарт игры» (красная) — стирает прогресс команды целиком и начинает с первого уровня.
Ниже — «Порядок заданий», если у игры больше одной линейки. Выбор линейки сам ничего не применяет: он показывает её схему серыми номерами, отбитую чертой слева, а применится она рестартом — кнопкой «Рестарт с 1-го уровня» или «Рестарт отсюда» на выбранном уровне.
Схема линейки
Это не плоский список номеров, а структура игры: последовательные уровни идут вправо через ›, штурмовые ветки висят вниз на общей планке, случайный порядок помечен ?.
Состояние уровня видно по номеру:
| Вид | Что значит |
|---|---|
| залит голубым | уровень, на котором вы сейчас |
| голубая рамка | открыт, но вы не на нём |
| зелёный | пройден |
| пунктир | ещё закрыт |
Перейти или начать отсюда
Под схемой — строка действий. Пока номер не выбран, в ней стоит текущий уровень.
- «Перейти» — просто открыть уровень, ход игры остаётся как был. Есть только у открытого уровня: в пройденный и закрытый движок не пустит, а на текущем переходить некуда.
- «Рестарт отсюда» (красная) — стирает прогресс и расставляет пройденными путь к этому уровню, как будто команда дошла сюда сама. В штурме соседние ветки останутся закрытыми.
Клик по номеру больше не перезапускает игру. Первый клик только выбирает уровень и показывает, что с ним можно сделать. Повторный клик по уже выбранному номеру — это «Рестарт отсюда»: на телефоне по номеру попадают случайно, а рестарт не отменить.
Оба действия — обычные ссылки, так что адрес уровня можно скопировать и отправить автору.
Менять линейку вправе не всякий тестер: приглашённой команде прыжок по уровням сработает, а выбор линейки молча не применится.
Вкладка «Шаблоны»
Она показывает, что движок сделал с шаблонами {% match %} на этой странице: какой шаблон, какое значение проверялось, какая ветка сработала и какие были варианты. Вложенные шаблоны сдвинуты вправо — их разбирали только потому, что сработала ветка выше.
- Наведите на строку — на задании подсветится то, что эта ветка подставила.
- Кликните по строке — страница прокрутится к этому месту.
- Стрелка слева от имени разворачивает исходный текст ветки.
- Клик по варианту показывает задание так, будто сработала эта ветка.
Пока ветка выбрана вручную, сверху висит жёлтая плашка: задание показано не так, как его увидит игрок. Снять — кнопкой «вернуть как есть» или повторным кликом по тому же варианту. Подмена живёт до закрытия браузера и видна только вам.
Так проверяется ветка, в которую иначе не попасть: индивидуальное задание для чужой команды, ветка ?, ветка «ответа ещё нет».
Вкладка «Редактор»
Текущее задание в редакторе, не уходя из игры: текст, коды, бонусы, подсказки. Раньше это был свёрнутый блок над заданием — теперь вкладка.
Редактор открывается с админского хоста, и сессия у него своя. Если вы туда ещё не входили, во вкладке будет форма входа, а войти прямо в ней нельзя. Тогда — ссылка «Открыть редактор в новой вкладке», войти там, и вкладка заработает.
Всё, что касается игры целиком — настройки, порядок заданий, номер задания, — правится в редакторе игры: ссылка «Редактор игры» есть на вкладке «Задания».
Вкладка «Ошибки js»
Её не видно, пока всё в порядке; первая же ошибка в скрипте сама показывает вкладку и разворачивает панель, даже если панель была выключена.
Ловятся ошибки в скриптах заданий, подсказок, бонусов и сквозных бонусов, а также асинхронные — из setTimeout, fetch и async-функций: раньше такие падали молча. Одинаковые складываются в одну запись со счётчиком.
Намеренно не записываются ошибки браузерных расширений и безымянное «Script error.» от чужих доменов — это не ваш код, и в журнале от них только шум.
Вкладки, которых может не быть
Нет вкладки — значит, показывать нечего, а не сломалось:
- «Коды» — все коды, бонусы и сквозные бонусы уровня, по клику подставляются в поле ответа. Видит её только автор игры или администратор домена. Приглашённая команда тестеров кодов не видит и играет вслепую, как игроки.
- «GPS» — есть, только если на задании включён gps. Статус, карта, зоны маркеров и подмена координат; подробно — на странице Коды по GPS-координатам.
- «Действия» — есть, только если серверные маркеры на этой загрузке что-то сделали. Просто наличие маркеров вкладку не создаёт.
- «Шаблоны» — есть, только если на странице разобран хотя бы один
{% match %}.
Убрать панель с экрана
Переключатель «Тестовые контролы» — в меню игры: гамбургер справа вверху, раздел «Настройки», последний переключатель. Он прячет панель, но не насовсем: первая же ошибка скрипта вернёт её и откроет на «Ошибках js».
Чтобы панели не было вовсе — например, для скриншотов или видео, — откройте игру с ?debug_panel=0. Возврат — ?debug_panel=1. Учтите: тогда тестер остаётся совсем без инструментов.
3. Командное тестирование (Тестеры)
Вы можете приглашать сторонних игроков или целые команды для независимого тестирования:
- Команда тестеров должна подать стандартную заявку на вашу игру на сайте.
- В блоке «Подали Заявки» на странице игры рядом с этой командой появятся две кнопки: «Принять» пускает команду в игру по-настоящему, «Разрешить Тест» — только на тест.
- После принятия команда сможет зайти в игру в любое время (даже до официального старта).
- Тестеры играют в абсолютно реальном игровом интерфейсе: коды прохождения уровней им не видны.
Панель тестера у приглашённой команды тоже есть — без вкладки «Коды» и без права менять линейку. Рестарт и перемотка времени им доступны, на вкладке «Задания».
4. Тестирование от лица своей команды
Автор игры может подать заявку от лица своей собственной команды и принять её в качестве тестеров. Это позволяет проверить, как игра выглядит на экранах напарников.
Обратите внимание: В этом случае все участники вашей команды получат доступ к игре до её начала. Убедитесь, что члены вашей команды не являются реальными участниками предстоящей игры.



