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