====== Тестування гри ====== Перед запуском гри для реальних гравців вкрай важливо переконатися, що всі завдання відображаються коректно, коди приймаються без збоїв, а підказки приходять вчасно. ===== 1. Швидке тестування автором (Одиночний тест) ===== Будь-який автор може протестувати гру в один клік просто з [[uk:authors_main:task_editor:editor|редактора]]: кнопка **"Тестувати Гру"** у верхній панелі відкриває гру в новій вкладці. Якщо в чернетці є незбережені правки, редактор спершу покаже їх списком і запропонує зберегти — тест показує те, що лежить на сервері. ===== 2. Панель тестера ===== Унизу сторінки в тестера стоїть панель, якої в гравця немає. Усі інструменти тестування живуть у ній: раніше вони були розкидані по сторінці, тепер зібрані по вкладках. * Згорнути й розгорнути — клік по червоному напису **«Тестування гри»** ліворуч, по порожньому місцю смуги або по хрестику праворуч. Хрестик теж лише згортає: усередині панелі лежить блок помилок скрипта, і прибрати її зі сторінки зовсім він не може. * **Висота змінюється перетягуванням** — за смугу або за тонкий хват над нею. Подвійний клік повертає висоту за замовчуванням. * Згорнутість пам'ятається в межах вкладки браузера, висота — між перезавантаженнями. Число біля назви вкладки — її лічильник: у «Завдань» це «відкрито з усього», у «Шаблонів» — скільки шаблонів розібрано, у «Помилок js» — скільки різних поломок. ==== Вкладка «Завдання» ==== {{ :authors_main:lifecycle:tester_tasks_uk.png?800 |Вкладка «Завдання»: схема лінійки, стан кожного рівня і рядок дій}} Згори — інструменти: * **«Перемотати час»** — не «плюс десять хвилин», а «перескочити до найближчого таймера на сторінці». Чекати підказку насправді не треба. Якщо таймерів на рівні немає, кнопка нічого не зробить. * **«Редактор гри»** — посилання на редактор усієї гри. * **«Рестарт гри»** (червона) — стирає прогрес команди цілком і починає з першого рівня. Нижче — **«Порядок завдань»**, якщо в гри більше однієї лінійки. Вибір лінійки **сам нічого не застосовує**: він показує її схему сірими номерами, відбиту рискою ліворуч, а застосується вона рестартом — кнопкою **«Рестарт з 1-го рівня»** або «Рестарт звідси» на обраному рівні. === Схема лінійки === Це не плаский список номерів, а структура гри: послідовні рівні йдуть праворуч через ''›'', штурмові гілки висять вниз на спільній планці, випадковий порядок помічено ''?''. Стан рівня видно за номером: ^ Вигляд ^ Що означає ^ | залито блакитним | рівень, на якому ви зараз | | блакитна рамка | відкритий, але ви не на ньому | | зелений | пройдений | | пунктир | ще закритий | === Перейти чи почати звідси === Під схемою — рядок дій. Поки номер не обрано, у ньому стоїть поточний рівень. * **«Перейти»** — просто відкрити рівень, хід гри лишається як був. Є **тільки у відкритого** рівня: у пройдений і закритий рушій не пустить, а на поточному переходити нікуди. * **«Рестарт звідси»** (червона) — стирає прогрес і розставляє пройденими шлях до цього рівня, наче команда дійшла сюди сама. У штурмі сусідні гілки лишаться закритими. > **Клік по номеру більше не перезапускає гру.** Перший клік лише **обирає** рівень і показує, що з ним можна зробити. Повторний клік по вже обраному номеру — це «Рестарт звідси»: на телефоні по номеру влучають випадково, а рестарт не скасувати. Обидві дії — звичайні посилання, тож адресу рівня можна скопіювати й надіслати авторові. > Міняти лінійку вправі не всякий тестер: запрошеній команді стрибок по рівнях спрацює, а вибір лінійки мовчки не застосується. ==== Вкладка «Шаблони» ==== Вона показує, що рушій зробив із [[uk:authors_main:task_editor:advanced:edit_templates|шаблонами]] ''{% match %}'' на цій сторінці: який шаблон, яке значення перевірялося, яка гілка спрацювала і які були варіанти. Вкладені шаблони зсунуті праворуч — їх розбирали тільки тому, що спрацювала гілка вище. {{ :authors_main:lifecycle:tester_templates_uk.png?800 |Вкладка «Шаблони»: який match що перевіряв і яка гілка спрацювала}} * **Наведіть** на рядок — на завданні підсвітиться те, що ця гілка підставила. * **Клацніть** по рядку — сторінка прокрутиться до цього місця. * **Стрілка** ліворуч від імені розгортає власний текст гілки. * **Клік по варіанту** показує завдання так, **наче спрацювала ця гілка**. {{ :authors_main:lifecycle:tester_templates_pick_uk.gif |Вибір гілки: завдання перемальовується так, наче спрацювала вона}} Поки гілку обрано вручну, згори висить жовта плашка: завдання показано **не так**, як його побачить гравець. Зняти — кнопкою **«повернути як є»** або повторним кліком по тому самому варіанту. Підміна живе до закриття браузера і видна лише вам. Так перевіряється гілка, у яку інакше не потрапити: індивідуальне завдання для чужої команди, гілка ''?'', гілка «відповіді ще немає». ==== Вкладка «Редактор» ==== Поточне завдання в редакторі, не виходячи з гри: текст, коди, бонуси, підказки. Раніше це був згорнутий блок над завданням — тепер вкладка. > Редактор відкривається з **адмінського хоста**, і сесія в нього своя. Якщо ви туди ще не входили, у вкладці буде форма входу, а увійти просто в ній не можна. Тоді — посилання **«Відкрити редактор у новій вкладці»**, увійти там, і вкладка запрацює. Усе, що стосується гри цілком — налаштування, порядок завдань, номер завдання, — правиться в редакторі гри: посилання **«Редактор гри»** є на вкладці «Завдання». ==== Вкладка «Помилки js» ==== Її не видно, поки все гаразд; **перша ж помилка у скрипті сама показує вкладку і розгортає панель**, навіть якщо панель була вимкнена. Ловляться помилки у скриптах завдань, підказок, бонусів і наскрізних бонусів, а також **асинхронні** — з ''setTimeout'', ''fetch'' і ''async''-функцій: раніше такі падали мовчки. Однакові складаються в один запис із лічильником. Навмисно **не** записуються помилки браузерних розширень і безіменне «Script error.» із чужих доменів — це не ваш код, і в журналі від них лише шум. ==== Вкладки, яких може не бути ==== Немає вкладки — отже, показувати нічого, а не зламалося: * **«Коди»** — усі коди, бонуси і наскрізні бонуси рівня, за кліком підставляються в поле відповіді. Бачить її лише **автор гри або адміністратор домену**. Запрошена команда тестерів кодів не бачить і грає наосліп, як гравці. * **«GPS»** — є, тільки якщо на завданні ввімкнено gps. Статус, карта, зони маркерів і підміна координат; докладно — на сторінці [[uk:authors_main:task_editor:advanced:gps|Коди за GPS-координатами]]. * **«Дії»** — є, тільки якщо [[uk:authors_main:task_editor:advanced:server_actions|серверні маркери]] на цьому завантаженні щось зробили. Просто наявність маркерів вкладку не створює. * **«Шаблони»** — є, тільки якщо на сторінці розібрано хоча б один ''{% match %}''. ==== Прибрати панель з екрана ==== Перемикач **«Тестові контроли»** — у меню гри: гамбургер праворуч угорі, розділ **«Налаштування»**, останній перемикач. Він ховає панель, але **не назавжди**: перша ж помилка скрипта поверне її і відкриє на «Помилках js». Щоб панелі не було зовсім — наприклад, для скриншотів чи відео, — відкрийте гру з ''?debug_panel=0''. Повернення — ''?debug_panel=1''. Врахуйте: тоді тестер лишається зовсім без інструментів. ===== 3. Командне тестування (Тестери) ===== Ви можете запрошувати сторонніх гравців або цілі команди для незалежного тестування: - Команда тестерів має подати стандартну заявку на вашу гру на сайті. - У блоці **"Подали Заявки"** на сторінці гри поруч із цією командою з'являться дві кнопки: **"Прийняти"** пускає команду у гру по-справжньому, **"Дозволити Тест"** — тільки на тест. {{ :authors_main:lifecycle:game_requests_uk.png?800 |Заявки: «Прийняти» пускає команду у гру, «Дозволити Тест» — тільки на тест}} - Після прийняття команда зможе зайти у гру будь-коли (навіть до офіційного старту). - Тестери грають в абсолютно реальному ігровому інтерфейсі: коди проходження рівнів їм не видно. Панель тестера у запрошеної команди теж є — без вкладки «Коди» і без права міняти лінійку. Рестарт і перемотка часу їм доступні, на вкладці «Завдання». ===== 4. Тестування від особи своєї команди ===== Автор гри може подати заявку від особи своєї власної команди і прийняти її як тестерів. Це дозволяє перевірити, як гра виглядає на екранах напарників. > **Зверніть увагу:** У цьому разі всі учасники вашої команди отримають доступ до гри до її початку. Переконайтеся, що члени вашої команди не є реальними учасниками майбутньої гри.