[Add] New Tasks (The tasks have not been verified)
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
---
|
||||
id: TASK-0017
|
||||
title: Добавить reconnect/resume после дисконнекта с сохранением позиции
|
||||
summary: Реализовать BackLog-задачу на восстановление игрока после дисконнекта с возвратом в мир и сохранением позиции, состояния и привязки к сессии.
|
||||
priority: Medium
|
||||
area: networking
|
||||
owner: unassigned
|
||||
created: 2026-03-30
|
||||
updated: 2026-03-30
|
||||
execution_time: 1d
|
||||
depends_on:
|
||||
- TASK-0002
|
||||
- TASK-0004
|
||||
- TASK-0013
|
||||
canonical_docs:
|
||||
- docs/tasks/Index.md
|
||||
related_files:
|
||||
- Assets/Scenes/SampleScene.unity
|
||||
---
|
||||
|
||||
# TASK-0017 - Добавить reconnect/resume после дисконнекта с сохранением позиции
|
||||
|
||||
## Status
|
||||
|
||||
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
|
||||
|
||||
Допустимые значения статуса:
|
||||
|
||||
- `BackLog`
|
||||
- `ToDo`
|
||||
- `InProgress`
|
||||
- `Review`
|
||||
- `Done`
|
||||
|
||||
## Why
|
||||
|
||||
Reconnect/resume нужен для более устойчивого кооператива, но не блокирует первый MVP. Поэтому задача вынесена в `BackLog`.
|
||||
|
||||
## Expected Outcome
|
||||
|
||||
Игрок после дисконнекта может вернуться в ту же сессию и получить корректное восстановление позиции и session-relevant state без дублирования персонажа.
|
||||
|
||||
## Current Context
|
||||
|
||||
Сначала должны появиться рабочие flow подключения, выбор мира и базовые сохранения игрока/мира.
|
||||
|
||||
## Source Of Truth
|
||||
|
||||
- `docs/tasks/items/TASK-0002.md`
|
||||
- `docs/tasks/items/TASK-0004.md`
|
||||
- `docs/tasks/items/TASK-0013.md`
|
||||
|
||||
## Read First
|
||||
|
||||
- `docs/tasks/items/TASK-0002.md`
|
||||
- `docs/tasks/items/TASK-0004.md`
|
||||
- `docs/tasks/items/TASK-0013.md`
|
||||
|
||||
## Scope In
|
||||
|
||||
- reconnect flow после временного разрыва связи
|
||||
- сохранение и восстановление позиции персонажа
|
||||
- предотвращение duplicate player session
|
||||
- базовые timeout/resume rules
|
||||
|
||||
## Scope Out
|
||||
|
||||
- полнофункциональный drop-in/drop-out service layer
|
||||
- миграция сессии между серверами
|
||||
|
||||
## Constraints
|
||||
|
||||
- восстановление не должно ломать server authority
|
||||
- session resume должен уважать разделение player/world saves
|
||||
|
||||
## If You Find Drift
|
||||
|
||||
- если базовый join flow не готов, задача остается в `BackLog` и не тянет за собой преждевременные костыли
|
||||
|
||||
## Suggested Approach
|
||||
|
||||
1. Определить session resume token или эквивалентный идентификатор возврата.
|
||||
2. Описать правила сохранения позиции и временного session state.
|
||||
3. Реализовать безопасный reconnect без дублей персонажа.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- игрок может переподключиться после дисконнекта и продолжить с близкой сохраненной позиции
|
||||
- в мире не остается дублированных экземпляров персонажа
|
||||
- reconnect flow не ломает существующий lobby/world selection pipeline
|
||||
|
||||
## Verification
|
||||
|
||||
- ручной сценарий: подключиться, сместиться, разорвать связь, переподключиться, проверить resume
|
||||
|
||||
## Risks / Open Questions
|
||||
|
||||
- нужно определить, хранится ли позиция resume в player save, world session state или в отдельном session cache
|
||||
|
||||
## Human Decisions Needed
|
||||
|
||||
- none currently
|
||||
|
||||
## Decision Log
|
||||
|
||||
- `2026-03-30` - задача добавлена в `BackLog` по явному запросу пользователя.
|
||||
|
||||
## Handoff Notes
|
||||
|
||||
Не поднимать приоритет до готовности базового сетевого flow и persistence layer.
|
||||
Reference in New Issue
Block a user