Пример: два игрока
Один и тот же двухпользовательский сеанс можно реализовать двумя способами: по очереди или одновременно по разным половинам полотна.
Вариант A — очередь
Храните activePlayer и два счёта. После принятого попадания/серии/раунда переключайте очередь. На паузе очередь не меняется. Пользователь всегда должен видеть, чей ход.
Вариант B — две половины
Разместите две независимые игровые цели: P1 слева, P2 справа. Маршрутизируйте попадание по нормализованной X: <0.5 — P1, ≥0.5 — P2. Границу и стороны покажите визуально.
Ограничение
Такое разделение не распознаёт оружие: оно определяет только сторону попадания. Если оба игрока стреляют в одну и ту же область и нужно знать автора выстрела, нужен дополнительный канал идентификации.
Результат
Внутри игры можно показывать два счёта. Базовый session.complete остаётся агрегированным. Индивидуальное долговременное сохранение не добавляйте скрыто в поле score.