a028d15dbfb006d0b90e2efdbf20d96f27515d4b
gohom-weaks-qa.md
| ... | ... | @@ -6,88 +6,161 @@ GoHome — узкие места и открытые вопросы |
| 6 | 6 | В доке два слоя: свободный brainstorm (тема "покемон домой", саквояж, телепорт-кабина) и формализованный промпт от 18.09.2026 (ООО "Бронзовые шары", директор, конкретные очки повышения). Ниже — где они конфликтуют и что не доделано ни в одном из слоёв. |
| 7 | 7 | |
| 8 | 8 | 1. Канон: что откуда — РЕШЕНО (2026-09-19) |
| 9 | -Промпт 18.09 — основной сюжетный каркас (работа в "Бронзовых шарах", прокачка до директора). Телепорт-кабина из раннего brainstorm — финальная фантастическая развязка, но не используется как сюжетный маркер/лор-указатель на ранних и средних этапах игры. Раскрывается только по факту прокачки до высшего ранга (директор) — то есть это пост-победная/альтернативная концовка "финал финалов", а не то, что намекается заранее диалогами или событиями. |
|
| 9 | +Промпт 18.09 — основной сюжетный каркас (работа в "Бронзовых шарах", прокачка до директора). |
|
| 10 | +Телепорт-кабина из раннего brainstorm — финальная фантастическая развязка, но не используется как сюжетный маркер/лор-указатель на ранних и средних этапах игры. Раскрывается только по факту прокачки до высшего ранга (директор) — то есть это пост-победная/альтернативная концовка "финал финалов", а не то, что намекается заранее диалогами или событиями. |
|
| 11 | + |
|
| 10 | 12 | Практическое следствие для сценаристики: во всех текстах звонков, событий на пути и подсказок мастер-покемона — телепорт-кабина не упоминается и не анонсируется. Первое появление темы — на экране после/у входа в достижение ранга директора (или прямо перед ним, как доступная покупка). |
| 13 | + |
|
| 11 | 14 | Остальное из раннего слоя (экран загрузки с пасхалками NORD/Igrok, выбор пиксель-арт аватара, 4 слота сохранений) — статус пока открыт, не переносим автоматически, разбирать отдельно при детализации UI-экранов. |
| 15 | + |
|
| 12 | 16 | Пересекается без конфликта в обоих слоях: |
| 13 | 17 | сезонность транспорта/локаций (лес/самокат/велосипед — не зимой, лыжи — только зимой) |
| 18 | + |
|
| 14 | 19 | продвижение через "бронзовые шары" по менеджерским уровням |
| 20 | + |
|
| 15 | 21 | вечерний путь домой как сцена с опасностями |
| 16 | 22 | |
| 23 | + |
|
| 17 | 24 | 2. Звонки: механика не формализована |
| 25 | + |
|
| 18 | 26 | Проценты у вариантов ответа ("100% правильный", "80% неправильный") не определены — это шанс, что ответ засчитается верным (RNG поверх выбора), или просто пометка автора для себя при балансировке? |
| 27 | + |
|
| 19 | 28 | Есть противоречия: вариант помечен "100% правильный" и при этом несёт денежный штраф (например "Приносите, заменим (100% правильный -1000 денег)"). Штраф за правильный ответ — так и задумано (услуга в убыток фирме, но верна с точки зрения клиента) или это баг черновика? |
| 29 | + |
|
| 20 | 30 | Число звонков в день не согласовано: |
| 31 | + |
|
| 21 | 32 | формула ЗП считает от 3 ответов ("3 правильных — 100% зарплата...") |
| 33 | + |
|
| 22 | 34 | но "6 вопросов в день" описаны как открывающиеся только со старшего менеджера (50 очков) |
| 35 | + |
|
| 23 | 36 | что происходит с младшими должностями, где написано "выполняемая работа физическая, звонков нет" — тогда откуда 3-звонковая база? |
| 37 | + |
|
| 24 | 38 | "Вопросы от фирмы" (начиная с начальника отдела, +1/+3/+6 в день) — не описан ни один пример такого вопроса, не ясно чем они отличаются от клиентских. |
| 25 | 39 | |
| 40 | + |
|
| 26 | 41 | 3. Переменные игрока — часть не подключена к механике |
| 42 | + |
|
| 27 | 43 | Заявлены: Деньги, Настроение, Усталость, Очки повышения, Должность, Алкогольная зависимость, Голод. |
| 44 | + |
|
| 28 | 45 | Голод и Алкозависимость нигде не имеют порогов/эффектов. Единственная отсылка — сцена с "закадычным приятелем" из раннего brainstorm (бар, похмелье, прогул) — не увязана с числовой переменной. |
| 46 | + |
|
| 29 | 47 | Настроение начальства (0-100 рандом каждый день) влияет на очки повышения при 1 правильном ответе — но не описано, влияет ли на что-то ещё (штрафы, увольнение). |
| 48 | + |
|
| 30 | 49 | Мировая напряжённость влияет на цены в магазине — сам магазин (ассортимент, зачем туда заходить, что покупать) не описан вообще. |
| 31 | 50 | |
| 51 | + |
|
| 32 | 52 | 4. Вечерний путь домой — почти готово, не хватает тайминга |
| 53 | + |
|
| 33 | 54 | Готово: 3 локации × 5 видов транспорта с сезонными ограничениями, списки опасностей по локациям. |
| 55 | + |
|
| 34 | 56 | Не хватает: |
| 57 | + |
|
| 35 | 58 | конкретное время (в игровых часах/влиянии на следующий день) для каждой пары локация+транспорт |
| 59 | + |
|
| 36 | 60 | формула "устал/замёрз/попал в больницу" → как это бьёт по завтрашнему дню (пропуск планёрки? штраф на весь день?) |
| 61 | + |
|
| 37 | 62 | переход сезонов: указано только "лето/зима", нет календарной привязки кроме старта 1 июня 2026 — когда наступает зима игровая (по дням? по датам?) |
| 38 | 63 | |
| 64 | + |
|
| 39 | 65 | 5. Условия конца игры — не формализованы |
| 40 | -Заявлено: победа — Директор (2500 очков), поражение — увольнение или смерть. Ни одно поражение не имеет чёткого триггера: |
|
| 66 | + |
|
| 67 | +Заявлено: победа — Директор (2500 очков), поражение — увольнение или смерть. |
|
| 68 | +Ни одно поражение не имеет чёткого триггера: |
|
| 69 | + |
|
| 41 | 70 | увольнение — от чего? (серия из N провальных дней? настроение начальства ниже порога? прогулы?) |
| 71 | + |
|
| 42 | 72 | смерть — только в виде флейвор-сцен (мороз, маньяк, ДТП, кирпич от хулигана) — это гарантированная смерть при встрече с опасностью или шанс, зависящий от статов? |
| 43 | 73 | |
| 74 | + |
|
| 44 | 75 | 7. Движок / стек — рабочий вариант (обновлено 2026-09-19) |
| 45 | -Подтверждено: остальные игры серии (razrez, nord-tycoon, banana-tyaga) на TS/HTML/CSS/JS через Grok app-builder, но держаться этого же стека не обязательно — Grok app-builder воспринимается как ограничивающий инструмент, а не как решённая архитектура. Значит берём тот же язык (TS), но пишем руками через нормальный тулинг, без builder-инструмента. |
|
| 76 | +8. |
|
| 77 | +Подтверждено: |
|
| 78 | +остальные игры серии (razrez, nord-tycoon, banana-tyaga) на TS/HTML/CSS/JS через Grok app-builder, но держаться этого же стека не обязательно — Grok app-builder воспринимается как ограничивающий инструмент, а не как решённая архитектура. Значит берём тот же язык (TS), но пишем руками через нормальный тулинг, без builder-инструмента. |
|
| 79 | + |
|
| 46 | 80 | С учётом трёх типов сцен из §8 (A — статика/UI, B — активный платформер, C — пассивный тревел с опциональной катсценой), одно цельное решение проще, чем склейка "React-приложение + отдельная canvas-библиотека для минигр": |
| 81 | + |
|
| 47 | 82 | Рекомендация: один проект на Phaser 3 + TypeScript. |
| 83 | + |
|
| 48 | 84 | Тип A (офис/карта-хаб/магазин/катсцены) — Phaser Scene с DOM Element overlay (Phaser поддерживает HTML/CSS поверх канваса) для текста, диалогов, кнопок выбора, статов. Никакой физики, просто UI-слой. |
| 85 | + |
|
| 49 | 86 | Тип B (лыжи/самокат/пешком/велосипед) — отдельная Phaser Scene на каждый транспорт (или одна параметризуемая Scene с разным набором препятствий/скоростей по сезону), arcade-физика "из коробки". |
| 87 | + |
|
| 50 | 88 | Тип C (авто/автобус/трамвай/троллейбус/метро) — generic "Travel" Scene: маркер-аватар твинится по маршруту на карте; по завершении — RNG решает, показать ли одну катсцену из пула (переиспользует UI-слой типа A) или просто вывести "добрался" и перейти к следующей фазе дня. |
| 51 | 89 | Общее состояние игрока (деньги, настроение, усталость, очки повышения, должность и т.д.) — простой TS-класс/стор, доступный всем сценам через Phaser registry — единый источник правды, не размазан по сценам. |
| 90 | + |
|
| 52 | 91 | Один движок на весь цикл дня — меньше склеек, меньше стыков между "игровой" и "UI" частью, легче держать общий стейт. |
| 92 | + |
|
| 53 | 93 | Бэкенд для лидерборда (имя, дата вступления в должность, деньги, очки) — Go, простой REST/JSON, тонкий бинарник, укладывается в Docker/compose по образцу остального avallon-стека. БД — SQLite, если не нужен общий инстанс с чем-то ещё; если уже есть общий Postgres на инфре — переиспользовать его, не поднимать второй ради одной таблицы. |
| 94 | + |
|
| 54 | 95 | Деплой — тот же паттерн, что у остальных игр серии: галeхaут + CI/CD Forgejo, поддомен *.avallon.pw, статика фронта + отдельный Go-контейнер бэкенда. |
| 55 | -Альтернатива, если хочется готового тайлмап-редактора/анимаций из коробки и не жалко нового языка в стеке: Godot 4 + HTML5-экспорт + Dialogic для диалогов. Компромисс — GDScript/C# в стеке, тяжелее веб- билд. Не рекомендую по умолчанию: Phaser+TS ближе к остальной серии игр и общей философии "не плодить лишний стек". |
|
| 96 | + |
|
| 97 | +Альтернатива, если хочется готового тайлмап-редактора/анимаций из коробки и не жалко нового языка в стеке: Godot 4 + HTML5-экспорт + Dialogic для диалогов. |
|
| 98 | +Компромисс — GDScript/C# в стеке, тяжелее веб- билд. Не рекомендую по умолчанию: Phaser+TS ближе к остальной серии игр и общей философии "не плодить лишний стек". |
|
| 99 | + |
|
| 56 | 100 | Допы для работы (минимальный набор): |
| 101 | + |
|
| 57 | 102 | Node.js + pnpm/npm, Vite — сборка/дев-сервер |
| 103 | + |
|
| 58 | 104 | Phaser 3 (npm-пакет) — движок |
| 105 | + |
|
| 59 | 106 | Go — бэкенд лидерборда |
| 107 | + |
|
| 60 | 108 | SQLite или существующий Postgres — БД |
| 109 | + |
|
| 61 | 110 | Docker + docker-compose — упаковка |
| 62 | -Forgejo CI — как у остальных avallon-проектов |
|
| 111 | + |
|
| 112 | +Forgejo/Github CI — сборка-тесты-доставка как у остальных проектов |
|
| 63 | 113 | |
| 64 | 114 | 8. Классификация локаций/сцен по типу геймплея — РЕШЕНО (2026-09-19) |
| 115 | + |
|
| 65 | 116 | Три разных типа сцен, разная реализация для каждого: |
| 117 | + |
|
| 66 | 118 | Тип A — новелла/менеджмент (статика). Офис, карта-хаб, магазин, общие катсцены. UI-экраны: диалоги, статы, выбор варианта. Никакой физики/геймлупа, просто состояние + текст + картинка. |
| 119 | + |
|
| 67 | 120 | Тип B — платформер (активный геймплей). Лыжи, самокат, пешком, велосипед. Игрок реально управляет персонажем, уворачивается от препятствий в реальном времени (как уровень в Igrok). Опасности здесь — skill-based (увернулся/не увернулся), не рандом. |
| 121 | + |
|
| 68 | 122 | Тип C — пассивный транспорт (авто, автобус, трамвай, троллейбус, метро). Аватар едет по маршруту на карте (точка/маркер, tween по пути) — либо: |
| 69 | -просто долетает от A до B с уведомлением "добрался" (пустышка, без сцены), либо |
|
| 70 | -по пути с некоторым шансом триггерится одна катсцена из пула (укачало, контролёр поймал, бабка с авоськой, шпана и т.п.) — рандомный выбор из пула событий типа C, а не skill-based прохождение. |
|
| 123 | + |
|
| 124 | +просто долетает от A до B с уведомлением "добрался" (пустышка, без сцены), либо по пути с некоторым шансом триггерится одна катсцена из пула (укачало, контролёр поймал, бабка с авоськой, шпана и т.п.) — рандомный выбор из пула событий типа C, а не skill-based прохождение. |
|
| 125 | + |
|
| 71 | 126 | Это закрывает часть вопроса из §5 (гарантированная опасность или шанс): для типа B — исход решает игрок (умение), для типа C — исход решает RNG-выбор конкретной катсцены из пула (не отдельная бросок-на- опасность механика поверх сцены, а сама катсцена уже несёт исход). |
| 72 | 127 | |
| 128 | + |
|
| 73 | 129 | 9. Звонки — доп. лор и типы звонящих (2026-09-19) |
| 130 | + |
|
| 74 | 131 | Лор-обоснование потока странных звонков: номер "Бронзовых шаров" по опечатке типографии попал в раздел контактов журнала "Всё про всё: гадаем, предсказываем, составляем натальные карты, отвечаем на сакральные и любые вопросы, предсказываем судьбу". С этого момента на линию звонит не только реальная клиентура. |
| 132 | + |
|
| 75 | 133 | Типы звонящих (влияет на тон вопроса, не обязательно на саму механику подсчёта очков — это слой сценария поверх существующей формулы "3 ответа/день"): |
| 134 | + |
|
| 76 | 135 | Хулиганы/шутники — прикалываются, проверяют границы, в теории их можно "уговорить купить" (не пранк ради пранка, а конвертируемый лид, если разговор повернуть в нужную сторону). |
| 136 | + |
|
| 77 | 137 | Страдальцы-по-шарам — уверены, что дозвонились до гадалки/ эзотерика из журнала, задают сакральные/личные вопросы, не в курсе, что это фирма по продаже бронзовых шаров. |
| 138 | + |
|
| 78 | 139 | Техподдержка/гарантия — реальные клиенты с реальными (и не очень реальными) проблемами уже купленного товара. |
| 79 | -(Четвёртая, фоновая группа — просто обычные бытовые вопросы от случайных людей, включая школьников — не завязана на лор с журналом, просто шум канала). |
|
| 140 | + |
|
| 141 | +Четвёртая, фоновая группа — просто обычные бытовые вопросы от случайных людей, включая школьников — не завязана на лор с журналом, просто шум канала. |
|
| 142 | + |
|
| 80 | 143 | Приветствия по социальному слою (пул для рандомизации открывающей фразы звонка, поменьше "товарищ", можно советскую атмосферу, но альтернативный техно-уклад — на дворе игровой 2026-й, а техника и эстетика колл-центра — конец 90-х/2000-е, это уже заложено на экране загрузки с CRT-монитором и дискетами): |
| 144 | + |
|
| 81 | 145 | простые/дворовые: "Алё", "Слышь", "Каг дела", "Здарова" |
| 146 | + |
|
| 82 | 147 | элитные/пафосные (пародия на статусность через англицизмы): "Хэллоу дестини", "Хайвей", "Позвольте осведомиться" |
| 148 | + |
|
| 83 | 149 | благовоспитанные средние: "Добрый день", "Позвольте спросить", "Не могу не поинтересоваться", "Извините за беспокойство" |
| 150 | + |
|
| 84 | 151 | пранкеры: "Добрый бобрый" и прочие нарочно бессмысленные заходы |
| 152 | + |
|
| 85 | 153 | страдальцы-гадальщики: "Здравствуйте, я по объявлению из журнала", "Извините, что поздно, но душа болит" |
| 86 | 154 | |
| 87 | 155 | |
| 88 | -6. Приоритет вопросов (предлагаемый порядок разбора) |
|
| 156 | +6. Приоритет вопросов (предлагаемый порядок разбора) -- что нужно продумать и утвердить |
|
| 157 | + |
|
| 89 | 158 | Канон: промпт 18.09 vs ранний brainstorm — что сюжетный каркас |
| 159 | + |
|
| 90 | 160 | Формула звонков: проценты + число звонков по должностям |
| 161 | + |
|
| 91 | 162 | Триггеры проигрыша (увольнение/смерть) — иначе нет игрового цикла |
| 163 | + |
|
| 92 | 164 | Тайминг локация+транспорт — иначе нет структуры дня |
| 165 | + |
|
| 93 | 166 | Голод/алкозависимость/магазин — можно отложить как второй слой глубины после MVP-цикла (работа → путь домой → следующий день) |
| ... | ... | \ No newline at end of file |