Содержание

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

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

1. Быстрое тестирование автором (Одиночный тест)

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

2. Панель тестера

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

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

Вкладка «Задания»

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

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

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

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

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

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

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

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

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

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

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

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

Вкладка «Шаблоны»

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

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

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

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

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

Вкладка «Редактор»

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

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

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

Вкладка «Ошибки js»

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

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

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

Вкладки, которых может не быть

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

Убрать панель с экрана

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

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

3. Командное тестирование (Тестеры)

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

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

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

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

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

4. Тестирование от лица своей команды

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

Обратите внимание: В этом случае все участники вашей команды получат доступ к игре до её начала. Убедитесь, что члены вашей команды не являются реальными участниками предстоящей игры.