Тестовое задание · Game Design / Balance & Economy

Word Tangle
Jumble, пересобранный
под мобильный

Газетная словесная игра Jumble превращена в казуальный мобильный продукт: управление, 10 уровней с растущей сложностью, играбельный прототип, генератор, баланс на 100 уровней и план гибридной монетизации Scroll Puzzle.

6 частей задания 10 уровней + арт прототип с читами баланс 100 уровней гибрид +145% ARPDAU
▶ Играть в прототип
Экран сборки ответа-каламбура
01
UX и управление

Экран 6 дюймов вместо газетной страницы

Главный принцип — сохранить то, что делает игру именно Jumble (двухфазность: слова → каламбур по карикатуре), и адаптировать к тачу и игре одной рукой.

Home
Тропа уровней
Фаза слов · тизер
Фаза ответа
Победа
  • Двухфазность сохранена
    Слова решаются по одному (фокус на одном скрэмбле), решённые сворачиваются. Just Jumble выбросил фазу слов — и получил главную претензию фанатов.
  • Ввод — tap-to-place + бесплатный Shuffle
    Эталон жанра для «собери конкретное слово из его букв»: прощает ошибки, показывает черновик, палец не закрывает слово.
  • Карикатура: тизер → раскрытие
    Размыта в фазе слов, раскрывается к финалу — интрига и награда, ведь картинка и есть ключ к каламбуру.
  • Без fail-состояния
    Ни таймера, ни лимита попыток — уютный жанр. Затык лечится лестницей подсказок, начиная с бесплатного Shuffle.

Почему tap-to-place, а не свайп-колесо

Метод вводаСильноСлабо
Tap-to-placeотмена, черновик, декои, длинные словадва фокуса взгляда
Letter-wheelжест = слово, тактильнопотолок ~8 букв, нет черновика
Drag-and-dropпрямая метафорапалец закрывает плитку, медленно
QWERTYпривычноигнорирует набор букв анаграммы

Выбор — верхняя строка. Обоснование из ресёрча топ-word-games.

02
10 уровней · картинки нейросетью

От «NAP» до двухслойного «PANE RELIEF»

10 уровней сэмплируют полную 100-уровневую кривую в точках 1, 12, 23 … 100 — «10-й уровень ощущается как 100-й». Сложность — система из 8 параметров, а не «слова длиннее».

10 карикатур

10 карикатур сгенерированы нейросетью (Higgsfield · GPT-Image-2), единый цветной стиль, без логотипов и мусорного текста. Каждая намекает на ответ, не выдавая его.

Финал — настоящая анаграмма из разбросанных букв

По аутентичному правилу Jumble каждое слово уровня отдаёт 1–3 буквы в кружках. Уровень 10, ответ PANE RELIEF («pain relief»):

ANE LFP REIE PANE RELIEF

Буквы приходят из PANE, RELIEF, POROUS, SLEIGH, TETHER — ни одного слова-филлера. Проверяется скриптом-валидатором (перестановка, единственность анаграммы, покрытие кружков, реальность слов, монотонность, профанити).

8 рычагов сложности

ПараметрУр.1Ур.10
Число слов15
Длина слов46
Редкость лексики16
Скрэмбл-скор0.330.70
Ловушки-анаграммы01
Длина ответа310
Тип каламбураdirectdouble
Прозрачность картинки51

Все 10 уровней

#Вирт.СловаОтвет (каламбур)ТипScoreРоль
11NAPSNAPdirect1.0онбординг
212PANE · TREEPANEdirect1.6ramp
323MEAT · TREEMEET (meat)homophone2.3ramp
434HEIR · FORCEHEIR FORCE (air force)homophone3.4спайк
545HOLD · BOAT · SHOWOLD HATidiom3.0передышка
656PIER · PRESSURE · GUIDEDPIER PRESSURE (peer)homophone4.2ramp
767SIR · PRIZE · MODEST · AZURESIR PRIZE (surprise)double5.0спайк
878GAME · SHOW · GUIDED · SHEEPGAME SHOWdouble4.6передышка
989SCREEN · TEST · GRASSY · HUMBLESCREEN TESTdouble5.6ramp
10100PANE · RELIEF · POROUS · SLEIGH · TETHERPANE RELIEF (pain)double6.8топ-спайк

Оранжевым — спайки-майлстоуны. Пила: спайк, затем передышка. Score сшит с балансовой таблицей (Часть 05).

03
Интерактивный прототип

Один HTML-файл, который играется офлайн

Vanilla JS, всё встроено (уровни + 10 картинок в base64), ноль внешних запросов. Открывается двойным кликом. Прошёл смоук через Playwright на вьюпорте 390×844.

Читы для тестирования — обязательная часть задания

🔓 Открыть все уровни
Перейти на уровень N
Решить текущее слово
Решить весь уровень
👁 Показать ответ-сюрприз
💰 +1000 монет
📊 Оверлей сложности P1–P8
🗑 Сбросить прогресс
3 бага
найдено и починено прямо в ходе смоука: гонка в чите «решить уровень», shared-reference в reset, наложение UI. Регрессия перепройдена.
Открывается прямо в браузере, установка не нужна. Кнопка ЧИТЫ — по центру сверху.
Экран победы с конфетти
04
Генератор уровней

Конвейер на тысячи уровней — и его честное узкое место

Комбинаторная часть (слова, скрэмблы, валидация) — не ограничение: тысячи уровней в секунду. Узкое место — не машина, а человек: модерация каламбуров.

01
Корпуса
Zipf-словарь, стоп-листы, банки идиом/омофонов
02 · боттлнек
Банк каламбуров
LLM-кандидаты → фильтры → ручная модерация
03
Слова под кружки
CSP: покрыть буквы ответа, каждое слово ≥1
04
Скрэмблы
под целевой скрэмбл-скор, «не слово»
05
Валидация
анаграмма, кружки, дубли, профанити
06
Картинки
промпт по P8 → батч → vision-проверка
07
Скоринг
difficulty_score, раскладка под кривую
08
QA сэмпла
ручная проверка 10%
Пространство решений
~1018
покрытий даже у L10
Пропускная способность
~100 ур./день
1 дизайнер + автоматика
Стоимость / 1000 уровней
~$1000
<$50 автоматика, ~95% люди

Доказано рабочим PoC: поиск идёт 230–500 тыс. сэмплов/с; каламбуры не берутся комбинаторикой — отсюда упор на модерацию.

05
Баланс 100 уровней

Кривая-пила: рост, спайки, передышки, новинки

100 строк, difficulty_score живой формулой (взвешенная сумма нормированных P1–P8), веса откалиброваны минимакс-LP. 10 точек-якорей точно совпадают с уровнями прототипа.

Кривая сложности 100 уровней

Сублинейный тренд (ранний рост ощущается сильнее) + пила: спайк на каждом 10-м, передышка сразу после. Янтарные точки — 10 якорей, совпадающих с уровнями 1–10 прототипа.

Якоря сшиты с прототипом

Строка= уровеньХотимФормула
34прототип №43.403.40
67прототип №75.005.03
100прототип №106.806.65

verify_balance.py: все 10 якорей в пределах ±0.15, P1–P8 совпадают точно.

Веса difficulty_score

Калиброваны минимакс-LP по 10 якорям. Вклад параметра ≈ его влияние на время решения — поэтому доминируют число слов и «злость» скрэмбла:

ПараметрВес
P1 · число слов41%
P4 · скрэмбл-скор29%
P2 · длина слов11%
P7 · тип каламбура7.5%
P5 · ловушки4.4%
P6 · длина ответа4.1%
P3 · редкость · P8 · картинкапо 1.2%
06
Монетизация Scroll Puzzle

Из чисто рекламной — в гибридную, без потери retention

Не «добавить IAP к рекламе», а построить одну экономику, которую кормят и реклама (rewarded), и покупки, и снять главный источник оттока — агрессивные interstitial.

ARPDAU до и после

Выдуманные данные, DAU 75K. Interstitial-выручку сознательно урезаем (каннибализация −41%), но total ARPDAU растёт: $0.0585 → $0.1432. Выручка $131K → $322K/мес.

H1 · фундамент

Экономика бустеров

Дать трату coins + rewarded «монеты×2» / «бустер за просмотр».

→ откроется IAP-канал; у coins сейчас нет sink’а
H2

Remove-ads + мягче interstitial

Убрать рекламу из середины уровня (жалоба №1) + SKU $4.99.

→ retention↑; прерывание короткого уровня жжёт отток
H3

Оффер-слой

Starter pack + piggy bank поверх экономики.

→ конверсия 1.0%→1.7%, чек $3.8→$5.0
H4 · резерв

Платная мета коллекций

Монетизация единственной существующей меты.

→ дальше от ядра, дороже — по результатам U1–U3

Метрики: до → после (базовый сценарий)

МетрикаДоПосле U3
TOTAL ARPDAU$0.0585$0.1432
Interstitial ARPDAU$0.0585$0.0347
Rewarded ARPDAU$0.0000$0.0160
IAP ARPDAU$0.0000$0.0925
Interstitial / DAU~6.5~4.0
Конверсия в платящих0%~1.7%
Выручка / мес$131K$322K

Каннибализация смоделирована явно; total растёт в 1.9–3.1× (песс./база/опт.).

Постановка задачи команде · апдейт U1

Зачем

  • Жалоба №1 — реклама посреди уровня; coins не тратятся. Строим экономику как фундамент гибрида.

Что делаем

  • 3 бустера за coins (подсказка / авто-сбор / undo)
  • 2 rewarded-плейсмента (монеты×2, бустер за просмотр)
  • IAP-паки монет
  • НЕ трогаем interstitial (это U2)

Как поймём

  • rewarded opt-in ≥ 25%, первый IAP-платёж появился, total ARPDAU +50%+ за 2 недели A/B

Кому что

  • GD — конфиг цен/наград · Dev — бустеры + ивенты · UI — магазин/оффер · QA — кейсы · Аналитик — A/B-дашборд

Уточнение: в листинге Google Play у Scroll Puzzle стоят обе пометки — реклама И IAP; «только реклама» неточно. Монетизация фактически ad-first.