Присутствие — всё, чем игрок ощущается в сессии, не меняя состояния игры: курсор, наведение, взятый в руку предмет, пинг, реакция. Слой полностью риалтаймовый и полностью необязательный к доставке — потеря пакета не портит забег (класс 3 в sync-model).
Владелец фактов о курсорах и жестах — этот док. Клавиши — Modes - Controls.
Зачем это вообще нужно
В нашей игре бой автономен: все взаимодействия игроков друг с другом живут вне боя. Значит кооп ощущается ровно настолько, насколько игроки видят друг друга в фазе подготовки, в магазине и на карте акта. Без слоя присутствия кооп выглядит как «четверо в чате по очереди говорят, что нажать» — и первый же вечер сползает в квотербекинг (Coop - Overview §Свобода и дружеский хаос).
Опорный факт из софта для совместной работы: чужой курсор — самый дешёвый носитель присутствия. Figma и Miro держат ощущение «мы тут вместе» практически на одном этом. Оборотная сторона там же известна: молчаливый курсор за плечом ощущается наблюдением и давит. Отсюда наше правило ниже про выключаемость.
Курсоры друг друга (решено 2026-07-30)
Курсор каждого игрока виден остальным всегда, и у каждого есть личный выключатель «скрыть чужие курсоры» — вердикт Макса. Вариант «показывать только в момент действия» отклонён: он тише, но теряет половину ощущения «мы тут вместе», а давление лечится выключателем, а не приглушением.
«Всегда» — в пределах своей стороны (решено 2026-08-03). Видно курсоры тех, кто играет за ту же команду; курсор противника не виден. В кампании сторона одна, и правило там незаметно — оно написано ради PvP, где чужой курсор выдал бы строй раньше, чем начнётся бой. Скрытие делается на отправке у хоста, а не на отрисовке у получателя: не нарисовать то, что уже приехало, — вежливая просьба, а не тайна. Кто за какую сторону играет, знает мероприятие (см. §Кто чью сторону видит).
Дальше — как именно, разбор скрайба.
Что курсор несёт
| Слой | Что | Зачем |
|---|---|---|
| Форма | указатель-«перчатка» в общем визуальном стиле, а не системная стрелка; сменяемая скином за личную валюту (wagers) | системная стрелка ломает стилизацию и не читается на пиксель-арте; курсор — главная вещь, которую видят остальные, поэтому он же главный предмет косметики |
| Цвет | мейн-цвет игрока — выбирается им самим, меняется перед забегом (решено 2026-07-30) | мгновенное «чей это» без чтения подписи |
| Подпись | имя игрока мелким шрифтом у курсора, гаснет при простое; шрифт и рамка — тоже предмет косметики (wagers) | подпись нужна в первую минуту знакомства, дальше хватает цвета |
| Состояние | вид курсора меняется, когда игрок что-то держит (см. ниже) | видно не только «где смотрит», но и «что делает» |
Мейн-цвет игрока (решено 2026-07-30)
Каждый игрок выбирает себе мейн-цвет и может менять его перед забегом. Это не косметика на один экран, а идентичность в коопе: тем же цветом идут курсор, подпись имени, метки узлов, штрихи рисования, печати на итоге боя, аватарка в списке участников.
Три правила, которые делают его рабочим:
- Цвета берутся из палитры проекта — единый владелец цвета остаётся палитрой (HARD-правило проекта), игрок выбирает из набора, а не пипеткой. Исключение ровно одно и уже записано: восьмой свободный цвет кисти в рисовании (interplay §Рисование).
- В одной сессии цвета уникальны. Два одинаковых мейн-цвета убивают весь смысл: «чей это» перестаёт читаться мгновенно. Занятый цвет в выборе показан занятым.
- Набор различим на нашем фоне. Арена, карта и двор — не белый лист; цвета подбираются так, чтобы курсор читался на всех трёх, а не только в меню.
Правила слоя
- Присутствие никогда не меняет состояние игры (
proposed). Курсор — жест, не команда. Потерялся пакет — курсор дёрнулся и всё; ни одна механика от него не зависит. - Наведение публично (принято 2026-07-30). Пока игрок держит курсор на юните, мементо или узле карты, у всех остальных этот объект слегка подсвечен мейн-цветом наводящего. Это «пинг без клика» и самый дешёвый способ убрать половину голосового трафика («да вон тот, лучник… нет, другой лучник»). Подсветка слабая: четверо наводят одновременно — не должно рябить.
- Взятое в руку видно всем (принято 2026-07-30). Тащишь предмет или юнита — у остальных под курсором видна призрачная копия. Иначе предметы «прыгают» сами, и никто не понимает, кто это сделал. Это же условие работы перехвата: чтобы выхватить, надо видеть, что несут (interplay §HARD).
- Выключаемо у себя, не у других (принято 2026-07-30). Настройка «скрыть чужие курсоры» — личная и только на свой экран. Скрыть свой от других нельзя: тайное присутствие в игре про общий кошелёк — это инструмент грифинга.
- Курсор в бою виден, но приглушён (решено 2026-08-03, отменяет прежнее «гаснет в бою»). Полупрозрачный и без подписи: четыре ярких указателя по арене мешали бы смотреть, а исчезнувшие читались бы как «все разошлись». Прежний запрет опирался на боевые инструменты (Coop - Minigames & Roles §На время боя), которых пока нет; появятся — вернёмся к вопросу.
Кто чью сторону видит (решено 2026-08-03)
Курсор, наведение и «взятое в руку» едут одним пакетом, поэтому и скрываются одним решением: пакет режется по сторонам у хоста. Отдельного правила для наведения быть не должно — два правила про одно неизбежно разойдутся.
Владелец обоих фактов — состав сеанса: и «кто с нами играет» (ник, мейн-цвет), и «кто за какую сторону». Режим выбирается на входе в игру и внутри сеанса не меняется — в кампании я за одну сторону весь забег, в PvP-матче за свою до конца матча.
Мероприятие при этом решает, сколько сторон у площадки (одна в кампании, две в PvP) — и только это: раскладывает по ним участников сеанс, потому что кто в сессии, знает соединение.
Открытое
- Курсор в фазе расстановки на арене — тот же слой или отдельный (там сетка слотов и своя логика)?
Вопрос «держится ли подпись имени в бою» снят 2026-07-30: подписи игроков живут не только у курсора (аватарки, список участников), поэтому гашение курсоров в бою имён не теряет.
Куда ушёл игрок (заявка Макса 2026-07-30, proposed)
Курсор не должен пропадать — он должен уходить. Игрок был с тобой на карте акта и перешёл на экран боя: его курсор уезжает в сторону того перехода, которым он ушёл, с короткой анимацией. Ты успеваешь заметить не только «его больше нет», но и куда он делся.
Проблема, которую это решает, настоящая: в коопе люди расходятся по экранам — карта, витрина, двор, досье, — и внезапно исчезнувший курсор читается как «человек отошёл», хотя он просто в другом месте. Вопрос «ты где?» задают вслух каждые несколько минут, и это самый частый вопрос кооп-сессии.
Носитель постоянного состояния — список игроков со значком «где он» (принято 2026-07-30). Анимация — это момент, заметный только если ты в эту секунду смотрел; поэтому рядом с ней живёт список участников, и у каждого значок текущего экрана: на карте, в витрине, во дворе, в бою. Момент показывает переход, список отвечает на вопрос в любую секунду.
Тот же список — естественное место для прочих признаков присутствия («выбирает», «готов», «отошёл»), так что отдельной панельки аватарок заводить не придётся.
Требования, чтобы приём не стал мусором:
- быстро — порядка четверти секунды: четыре улетающих курсора не должны превращаться в фейерверк;
- читается периферийно — направление важнее красоты, потому что смотрят на это краем глаза;
- уход из игры отличается от перехода: свернул окно, ушёл в настройки — это «отошёл», а не «на карте», и показывать надо иначе.
«Кто-то это изучает» — иконка у курсора (решено 2026-07-30)
Проблема, которую видно уже на бумаге: казна общая и без гейта прав (2026-07-27/10), значит двое могут потратить одни и те же деньги в один момент. Технически это решается очередью хоста (последний получает отказ), но отказ после клика — худшее, что можно сделать с игроком.
Решение Макса — не метка над объектом, а маленькая иконка рядом с курсором того, кто изучает. Держишь открытым тултип покупки, читаешь досье — у твоего курсора появляется значок «смотрю», и его видят остальные. Дешевле и чище, чем подсветка самого объекта: витрина не обрастает мигающими метками, а информация та же — видно, что человек чем-то занят и чем именно.
Не блокирует — предупреждает. Принцип свободы соблюдён: игра не запрещает перебить чужую покупку, она лишь не даёт сделать это слепо.
Развитие того же принципа: аватарки участников по краю экрана с состоянием — «выбирает»,
«готов», «отошёл». Не гейт готовности (гейт превращает медленного игрока в виноватого), а просто
знание, чего мы ждём. proposed.
Пинги, жесты и эмоции — переехали
Активные жесты (пинги, эмоции, рисование, перехват, печати) с 2026-07-30 живут в реестре Coop - Interplay Registry. Граница простая и её стоит держать: здесь — пассивная видимость («я вижу, где ты и что держишь»), там — действия («я тебе показал, выхватил, нарисовал»).
Чего здесь сознательно нет
- Голосового и текстового чата. Steam-кооп предполагает, что голос у игроков свой; писать свой чат — тратить время на решённую задачу. Нон-вербальный слой (пинги, эмоции) делаем именно потому, что он работает и без голоса.
- Смайликов из мессенджера. Эмоции у нас есть (заявка Макса 2026-07-30, interplay §Эмоции), но говорят они языком мира — жест аватара, поза, барк «Сосуда», выкрик с трибун.