Реестр командных интеграций: что игроки делают ДРУГ С ДРУГОМ. Заведён 2026-07-30 по просьбе Макса собрать все такие мелочи в одном месте.
Граница с соседями по кластеру, чтобы не разъехалось: Coop - Presence держит пассивную видимость («я вижу, где ты и что держишь»), этот док — активные действия между игроками (жест, пинг, перехват, рисунок, печать), Coop - Minigames & Roles — отдельные мини-игры как события забега, Coop - Arbiters — ритуалы решения спора.
Зачем реестр, а не список идей
Мелочи — не украшение, а основной канал коопа в игре, где бой автономен. Но у мелочей есть свойство теряться: через месяц никто не помнит, почему курсор ведёт себя так, и переизобретает отклонённое. Поэтому здесь у каждой строки есть статус и место жизни, а отклонённое лежит рядом с причиной отказа (§Отклонено).
Тест на интеграцию (2026-07-30)
Выведен из того, что Макс взял и что отверг на первом заходе. Идея попадает в реестр, если отвечает «да» хотя бы на два вопроса из трёх:
- Нужны две руки? — жест, который нельзя сделать в одиночку.
- Можно ли этим помешать, ничего не сломав? — обратимое хулиганство.
- Видно ли это на общем полотне? — карта, арена, витрина, двор, книга.
Плюс общие правила кластера: не требует ввода в бою, не покупает силу, не ломается в соло (1-4 игрока), и говорит языком «кого ведёшь», а не «твой боец» (Coop - Overview §HARD: всё общее).
Отвергнутая половина первого захода провалилась по третьему пункту: курсор зевает, аватар сидит у костра, боец кланяется — это украшение мира, которое можно увидеть, но нельзя сделать вместе.
HARD: перехватывать можно процесс, но не подтверждённое
Предохранитель, без которого хулиганство станет злом.
| Можно перехватить | Нельзя тронуть |
|---|---|
| мементо в момент надевания | Мементо, которое уже надето |
| бойца, пока его тащат на слот | расстановку, которую подтвердили |
| позицию в витрине до подтверждения покупки | совершённую покупку |
| карточку кандидата, пока её несут к столу | состоявшийся наём |
| кубик, пока он лежит перед броском | кубик, который уже катится |
Правило одной фразой: пока вещь в воздухе — она общая; как только легла — это решение группы. Иначе перехват превращается в откат чужого действия, а это прямое нарушение правила «не отбирать то, что игрок уже увидел сделанным» (sync-model §Класс 2). Кубик в этом списке отдельно: пинать лежащий — хулиганство, пинать катящийся — подделка результата арбитра.
Реестр
Принято 2026-07-30
| Интеграция | Как работает | Полотно | Цена |
|---|---|---|---|
| Толкнуть чужой курсор | подвёл к чужому и толкнул — его указатель отъезжает | везде, где есть курсоры | мелкая, слой присутствия |
| Перехват из рук | выхватить мементо при надевании, бойца при перетаскивании, предмет из витрины, карточку кандидата, лежащий кубик | арена, витрина, стол мастера, двор | средняя: у каждого места своя анимация «не отдам» |
| Чокнуться | два курсора рядом, оба кликнули одновременно — звон кружек | везде | мелкая; жест, невозможный в одиночку |
| Прозрачная казна | кто-то потратил — у всех коротко мигнуло «кто и на что»; монет в сундуке визуально меньше | витрина, двор | мелкая; владелец правил казны — guild-development |
| Метка выбранного узла | видно, кто какой узел на карте выбрал или предлагает | карта акта | мелкая; реф — Slay the Spire 2 |
| Рисование на общем полотне | кисть, ластик (в том числе по чужому), два размера, 7 цветов плюс свой RGB; живёт до конца забега | карта акта, арена в расстановке, витрина, досье | средняя: слой поверх UI плюс штрихи в сейве (см. §Рисование) |
| Эмоции | иконка у курсора; на старте только «лайк», прочие открываются за мелочь Гильдмастера | везде | мелкая на механику, средняя на контент (подача каждой) |
| Печати на итоге боя | каждый ставит одну печать — одобрение, недоумение, смех; печати уезжают в Хронику рядом с записью боя | экран исхода → книга гильдии | мелкая; сшивает мелочь с памятью дома |
Про хулиганство отдельно. Толчок курсора и перехват — это не баг терпимости, а сознательно выданная возможность: хулиганить или нет, решают сами игроки (вердикт Макса 2026-07-30, развитие решения про свободу и дружеский хаос 2026-07-19). Референсы того же рода — перетаскивание товарища в R.E.P.O. Работает это ровно потому, что никого не ломает: перехват стоит задержку и смешок, а не потерю.
Рисование: инструменты и срок жизни (решено 2026-07-30)
Раз рисование есть, оно живёт на каждом общем полотне, а не только на карте: стрелка «он побежит сюда» в расстановке, кружок вокруг позиции в витрине, усы на досье кандидата.
Набор инструментов (вердикт Макса):
| Инструмент | Как |
|---|---|
| Кисть | рисовать поверх экрана, видно всем сразу |
| Ластик | стирать — в том числе чужое, без спроса |
| Размер | пара размеров кисти (тонкая и толстая), не плавный ползунок |
| Цвета | 7 готовых плюс восьмой — свой выбор из RGB |
Рисунок живёт до конца ЗАБЕГА, а не до конца фазы (вердикт Макса). Значит «я же говорил» получает доказательство: вернулся на карту акта через три боя — стрелка на пропущенной ветке всё ещё там.
Стирание чужого — фича, а не грифинг, и правило «процесс против подтверждённого» тут не работает: рисунок не решение и не транзакция, а разговор. Потерять его не страшно, поэтому лимитов и прав не вводим — стирают друг друга свободно, ровно как перехватывают вещи из рук. Оговорка скрайба: если на плейтесте окажется, что кто-то стирает всё подряд из вредности, лечим не правами, а тем же способом, что и остальное хулиганство — видимостью (чей ластик, видно всем).
Готча реализации: рисунок стал частью состояния забега
Раз он живёт до конца забега, он попадает в сейв — а забег сохраняется посреди прохождения.
Источник правды — штрихи, растр только кэш отрисовки. Штрих здесь — не отрезок, а полилиния: круг или загогулина одним движением мыши — это один штрих с множеством точек. Хранить штрихи, а рисовать их в
RenderTexture, чтобы рендер стоил один quad независимо от числа линий: кэш можно выбросить и построить заново, источник — нет.Причины именно такие, и размер файла среди них последний (пара мегабайт нас не убьёт):
- По сети точки летят всё равно. Чтобы товарищ видел линию, пока её ведут, отправляются позиции курсора — то есть вектор существует в проводе при любом способе хранения.
- Авторство. Инвариант «никакое действие игрока не тайно» требует знать, чей штрих и чей ластик. У штриха автор есть; пиксели анонимны, а по цвету не восстановишь — восьмой цвет свободный, двое возьмут одинаковый.
- Зум карты акта. Растр привязан к разрешению и на зуме мылит или крошится; штрихи перерисовываются чётко на любом масштабе.
- Контракт сейва. Сейв — JSON-конверт, облачная маска ловит
Saves/**/*.json(Тех: сейв-система). PNG в этот контракт не входит: либо base64 внутрь (плюс треть объёма), либо отдельный файл и правка маски. Список точек ложится как есть.- Размер: килобайты против мегабайт — приятный побочный эффект, не причина.
Где растр был бы честно проще: если бы рисование было анонимной мазнёй в один слой без зума и без отмены. У нас ни одно из трёх условий не выполняется.
Семь готовых цветов берутся из палитры проекта (единый владелец цвета — палитра), восьмой — произвольный выбор игрока, и это не нарушение правила: цвет чужого рисунка не участвует в чтении боя и мира.
Уже принятое ранее, живёт здесь
| Интеграция | Статус | Где описано подробно |
|---|---|---|
| Курсоры друг друга — видны всегда, личный выключатель чужих | accepted 2026-07-30 | presence |
| Публичное наведение — держишь курсор на объекте, у всех он подсвечен | proposed | presence |
| Взятое в руку видно всем — призрачная копия под чужим курсором | proposed | presence |
| Мягкая заявка на объект — «кто-то уже смотрит эту позицию» | proposed | presence |
| Ритуалы-арбитры — Кости, Знаки, Один клик, Жребий | accepted 2026-07-30 | arbiters |
| Пари на бой | accepted 2026-07-30 | wagers |
| Косметика, которую видят другие — курсор, подпись, кубик, жесты | accepted 2026-07-30 | wagers |
Пинги (proposed, переехало из presence 2026-07-30)
Референс с двух сторон: Apex Legends — пинги по типам, с цветом и контекстом; Deep Rock Galactic — тот же пинг, но озвученный репликой персонажа с характером. Второе для нас важнее: барки и процедурный лор уже есть (procedural-lore), и пинг — готовый повод их услышать.
| Пинг | Контекст | Что несёт |
|---|---|---|
| «Сюда» | слот арены, узел карты | предложение расстановки или маршрута |
| «Этого фокусим» | враг в превью боя | обсуждение приоритетов до боя |
| «Дорого» / «Не бери» | позиция в витрине | возражение без голоса |
| «Хочу это» | мементо, предмет | заявка на спор, дальше — arbiters |
| «Смотри» | что угодно | безадресное «глянь» |
Пинг говорит голосом «Сосуда», а не игрока. Пингуешь врага — боец в характере комментирует цель. Служебный инструмент сшивается с нарративом почти бесплатно.
Метки на карте живут до решения — метка узла висит, пока группа не выбрала путь; после выбора остаётся видно, чей путь не взяли.
Эмоции (решено 2026-07-30)
Короткий набор, вызываемый одной кнопкой, иконкой у курсора (носитель выбран Максом; поза аватара во дворе — возможное развитие, не сейчас).
Две породы в одном словаре. Служебные короткие («да», «нет», «жду») и эмоции в буквальном смысле — грустно, злость, смех, лайк. Плюс те, что говорят голосом мира: «Слава гильдии!» — прямая заявка Макса и образец тона. Не смайлики из мессенджера: у каждой эмоции своя подача в нашем стиле, а часть звучит барком «Сосуда».
Эмоции — мета-косметика. Открываются за мелочь Гильдмастера (wagers), на старте доступен только «лайк» (решение Макса 2026-07-30). Три следствия, каждое полезное:
- У личной валюты появляется вторая честная трата рядом со скинами — и обе про «показать себя».
- Словарь растёт вместе с игроком: первый вечер — один лайк, через месяц — своя манера общения.
- Инвариант не нарушен: эмоция ничего не сообщает механике (как и пинг — жест класса 3, sync-model), поэтому валюта по-прежнему не покупает силу.
Открытое: полный словарь и цены; сколько эмоций доступно одновременно (колесо на шесть или всё подряд списком).
Предложено скрайбом, ждёт вердикта
| Интеграция | Как работает | Почему стоит |
|---|---|---|
| Передача из рук в руки | подвёл вещь к чужому курсору, отпустил — он поймал | имущество и так общее, но протянуть вещь требует двух рук, и потому запоминается сильнее, чем «положил на склад» |
| Тяжёлое вдвоём | надгробие в Мемориале, створки ворот, забитый сундук — не поднять одному, нужны два курсора | классика кооп-дизайна (Unravel Two, It Takes Two); во дворе для этого уже есть место, в соло вещь просто не требует переноса |
| Соавторство в имени | прозвище Капитана или название боя: каждый предлагает вариант, выбор закрывается ритуалом | общее полотно плюс законный повод поспорить, то есть повод для кубика |
| Эпитафия | «Сосуд» погиб — каждый предлагает строку в Мемориал, группа выбирает | дешевле всех: текст, никакой новой механики; прямо в столп «нарратив рождается сам» |
Отклонено (чтобы не переизобретали)
Первый заход дал двадцать идей, из которых Макс взял четыре. Отклонённые оставлены с причиной — иначе они вернутся под другими именами.
| Отклонено | Причина |
|---|---|
| Курсор клюёт носом при простое · аватар садится у костра · ушедший остаётся сидеть · кубик катится по двору · показать находку в руках · досье на общий стол | украшение мира, а не взаимодействие: можно увидеть, нельзя сделать вместе |
| «Сосуд» поворачивает голову к курсору · двое уставились — боец смущается · аплодисменты с поклоном · «Сосуды» комментируют спор мастеров | то же самое: мир реагирует на игроков, но игроки друг с другом не взаимодействуют. Материал не мёртв — он годится нарративу (Narrative - Devices), но не как кооп-интеграция |
| Клич гильдии с ответным салютом · хоровой отсчёт перед боем · титул вечера («Любимец костей») | не кооп-интеграции, а нарратив (вердикт Макса 2026-07-30). Дальше не проектируются и здесь не живут; если понадобятся — заходить с нарративной стороны, не с кооповой |
| Строка в Летописи «уступил, хотя хотел сам» | риск социального кредита: счётчик уступок превращает щедрость в очки, а байку — в бухгалтерию |
| Наблюдатель-летописец (размечает моменты боя, пока ждёт) | рискует стать работой вместо игры; вернуться, если окажется, что ждущим действительно скучно |