Реестр командных интеграций: что игроки делают ДРУГ С ДРУГОМ. Заведён 2026-07-30 по просьбе Макса собрать все такие мелочи в одном месте.

Граница с соседями по кластеру, чтобы не разъехалось: Coop - Presence держит пассивную видимость («я вижу, где ты и что держишь»), этот док — активные действия между игроками (жест, пинг, перехват, рисунок, печать), Coop - Minigames & Rolesотдельные мини-игры как события забега, Coop - Arbiters — ритуалы решения спора.

Зачем реестр, а не список идей

Мелочи — не украшение, а основной канал коопа в игре, где бой автономен. Но у мелочей есть свойство теряться: через месяц никто не помнит, почему курсор ведёт себя так, и переизобретает отклонённое. Поэтому здесь у каждой строки есть статус и место жизни, а отклонённое лежит рядом с причиной отказа (§Отклонено).

Тест на интеграцию (2026-07-30)

Выведен из того, что Макс взял и что отверг на первом заходе. Идея попадает в реестр, если отвечает «да» хотя бы на два вопроса из трёх:

  1. Нужны две руки? — жест, который нельзя сделать в одиночку.
  2. Можно ли этим помешать, ничего не сломав? — обратимое хулиганство.
  3. Видно ли это на общем полотне? — карта, арена, витрина, двор, книга.

Плюс общие правила кластера: не требует ввода в бою, не покупает силу, не ломается в соло (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 независимо от числа линий: кэш можно выбросить и построить заново, источник — нет.

Причины именно такие, и размер файла среди них последний (пара мегабайт нас не убьёт):

  1. По сети точки летят всё равно. Чтобы товарищ видел линию, пока её ведут, отправляются позиции курсора — то есть вектор существует в проводе при любом способе хранения.
  2. Авторство. Инвариант «никакое действие игрока не тайно» требует знать, чей штрих и чей ластик. У штриха автор есть; пиксели анонимны, а по цвету не восстановишь — восьмой цвет свободный, двое возьмут одинаковый.
  3. Зум карты акта. Растр привязан к разрешению и на зуме мылит или крошится; штрихи перерисовываются чётко на любом масштабе.
  4. Контракт сейва. Сейв — JSON-конверт, облачная маска ловит Saves/**/*.json (Тех: сейв-система). PNG в этот контракт не входит: либо base64 внутрь (плюс треть объёма), либо отдельный файл и правка маски. Список точек ложится как есть.
  5. Размер: килобайты против мегабайт — приятный побочный эффект, не причина.

Где растр был бы честно проще: если бы рисование было анонимной мазнёй в один слой без зума и без отмены. У нас ни одно из трёх условий не выполняется.

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

Уже принятое ранее, живёт здесь

ИнтеграцияСтатусГде описано подробно
Курсоры друг друга — видны всегда, личный выключатель чужихaccepted 2026-07-30presence
Публичное наведение — держишь курсор на объекте, у всех он подсвеченproposedpresence
Взятое в руку видно всем — призрачная копия под чужим курсоромproposedpresence
Мягкая заявка на объект — «кто-то уже смотрит эту позицию»proposedpresence
Ритуалы-арбитры — Кости, Знаки, Один клик, Жребийaccepted 2026-07-30arbiters
Пари на бойaccepted 2026-07-30wagers
Косметика, которую видят другие — курсор, подпись, кубик, жестыaccepted 2026-07-30wagers

Пинги (proposed, переехало из presence 2026-07-30)

Референс с двух сторон: Apex Legends — пинги по типам, с цветом и контекстом; Deep Rock Galactic — тот же пинг, но озвученный репликой персонажа с характером. Второе для нас важнее: барки и процедурный лор уже есть (procedural-lore), и пинг — готовый повод их услышать.

ПингКонтекстЧто несёт
«Сюда»слот арены, узел картыпредложение расстановки или маршрута
«Этого фокусим»враг в превью бояобсуждение приоритетов до боя
«Дорого» / «Не бери»позиция в витриневозражение без голоса
«Хочу это»мементо, предметзаявка на спор, дальше — arbiters
«Смотри»что угоднобезадресное «глянь»

Пинг говорит голосом «Сосуда», а не игрока. Пингуешь врага — боец в характере комментирует цель. Служебный инструмент сшивается с нарративом почти бесплатно.

Метки на карте живут до решения — метка узла висит, пока группа не выбрала путь; после выбора остаётся видно, чей путь не взяли.

Эмоции (решено 2026-07-30)

Короткий набор, вызываемый одной кнопкой, иконкой у курсора (носитель выбран Максом; поза аватара во дворе — возможное развитие, не сейчас).

Две породы в одном словаре. Служебные короткие («да», «нет», «жду») и эмоции в буквальном смысле — грустно, злость, смех, лайк. Плюс те, что говорят голосом мира: «Слава гильдии!» — прямая заявка Макса и образец тона. Не смайлики из мессенджера: у каждой эмоции своя подача в нашем стиле, а часть звучит барком «Сосуда».

Эмоции — мета-косметика. Открываются за мелочь Гильдмастера (wagers), на старте доступен только «лайк» (решение Макса 2026-07-30). Три следствия, каждое полезное:

  1. У личной валюты появляется вторая честная трата рядом со скинами — и обе про «показать себя».
  2. Словарь растёт вместе с игроком: первый вечер — один лайк, через месяц — своя манера общения.
  3. Инвариант не нарушен: эмоция ничего не сообщает механике (как и пинг — жест класса 3, sync-model), поэтому валюта по-прежнему не покупает силу.

Открытое: полный словарь и цены; сколько эмоций доступно одновременно (колесо на шесть или всё подряд списком).

Предложено скрайбом, ждёт вердикта

ИнтеграцияКак работаетПочему стоит
Передача из рук в рукиподвёл вещь к чужому курсору, отпустил — он поймалимущество и так общее, но протянуть вещь требует двух рук, и потому запоминается сильнее, чем «положил на склад»
Тяжёлое вдвоёмнадгробие в Мемориале, створки ворот, забитый сундук — не поднять одному, нужны два курсораклассика кооп-дизайна (Unravel Two, It Takes Two); во дворе для этого уже есть место, в соло вещь просто не требует переноса
Соавторство в именипрозвище Капитана или название боя: каждый предлагает вариант, выбор закрывается ритуаломобщее полотно плюс законный повод поспорить, то есть повод для кубика
Эпитафия«Сосуд» погиб — каждый предлагает строку в Мемориал, группа выбираетдешевле всех: текст, никакой новой механики; прямо в столп «нарратив рождается сам»

Отклонено (чтобы не переизобретали)

Первый заход дал двадцать идей, из которых Макс взял четыре. Отклонённые оставлены с причиной — иначе они вернутся под другими именами.

ОтклоненоПричина
Курсор клюёт носом при простое · аватар садится у костра · ушедший остаётся сидеть · кубик катится по двору · показать находку в руках · досье на общий столукрашение мира, а не взаимодействие: можно увидеть, нельзя сделать вместе
«Сосуд» поворачивает голову к курсору · двое уставились — боец смущается · аплодисменты с поклоном · «Сосуды» комментируют спор мастеровто же самое: мир реагирует на игроков, но игроки друг с другом не взаимодействуют. Материал не мёртв — он годится нарративу (Narrative - Devices), но не как кооп-интеграция
Клич гильдии с ответным салютом · хоровой отсчёт перед боем · титул вечера («Любимец костей»)не кооп-интеграции, а нарратив (вердикт Макса 2026-07-30). Дальше не проектируются и здесь не живут; если понадобятся — заходить с нарративной стороны, не с кооповой
Строка в Летописи «уступил, хотя хотел сам»риск социального кредита: счётчик уступок превращает щедрость в очки, а байку — в бухгалтерию
Наблюдатель-летописец (размечает моменты боя, пока ждёт)рискует стать работой вместо игры; вернуться, если окажется, что ждущим действительно скучно