[Add] New Tasks (The tasks have not been verified)

This commit is contained in:
2026-03-30 10:50:02 +07:00
parent 5434a7e601
commit 129fcf783b
21 changed files with 2230 additions and 6 deletions
+110
View File
@@ -0,0 +1,110 @@
---
id: TASK-0002
title: Реализовать сетевой bootstrap, лобби и выбор мира
summary: Поднять базовую сетевую инфраструктуру FishNet для хоста и клиента, лобби, выбора мира и подготовки игрока к входу в сессию.
priority: Highest
area: networking
owner: unassigned
created: 2026-03-30
updated: 2026-03-30
execution_time: 1d
depends_on:
- TASK-0001
canonical_docs:
- docs/tasks/Index.md
related_files:
- Assets/Scenes/SampleScene.unity
- Assets/Scripts/Player/SimplePlayerInputMover.cs
---
# TASK-0002 - Реализовать сетевой bootstrap, лобби и выбор мира
## Status
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
Допустимые значения статуса:
- `BackLog`
- `ToDo`
- `InProgress`
- `Review`
- `Done`
## Why
Без минимального сетевого bootstrap нельзя проверить ни совместную генерацию мира, ни синхронизацию персонажей, ни join flow из меню.
## Expected Outcome
Игрок может запустить host/server, подключиться клиентом в лобби, выбрать мир и перейти в игровую сессию через FishNet по фиксированному сценарию подключения.
## Current Context
В проекте пока нет видимого сетевого кода FishNet. Есть только локальные worldgen и player prototype скрипты.
## Source Of Truth
- `docs/tasks/Index.md`
- решения из `TASK-0001`
- реальный runtime-код FishNet после внедрения
## Read First
- `docs/tasks/items/TASK-0001.md`
- `Assets/Scenes/SampleScene.unity`
- `Assets/Scripts/Player/SimplePlayerInputMover.cs`
## Scope In
- интеграция базового startup flow FishNet
- host/client connect flow
- переход через лобби к выбору мира
- серверное создание player session после выбора мира
## Scope Out
- reconnect/resume после дисконнекта
- матчмейкинг, dedicated fleet и внешний backend
## Constraints
- сервер должен быть источником истины для подключения к миру
- flow должен быть совместим с моделью Terraria-style: любой персонаж может зайти в любой мир
## If You Find Drift
- если текущая сцена прототипа мешает лобби flow, зафиксируйте это и вынесите сценовую декомпозицию в подзадачи реализации
## Suggested Approach
1. Внедрить FishNet и описать базовый boot pipeline.
2. Сделать простое лобби с переходом к выбору мира.
3. Добавить создание сетевой player session и вход в выбранную world session.
## Acceptance Criteria
- host может поднять сессию и принять клиента
- клиент может выбрать мир и корректно появиться в нем
- сетевой flow не привязывает персонажа к одному сохранению мира
## Verification
- ручная проверка host/client connect flow
- проверка, что выбранный мир доступен в runtime join pipeline
## Risks / Open Questions
- потребуется раннее решение, использовать ли single-scene или multi-scene world session flow
## Human Decisions Needed
- none currently
## Decision Log
- `2026-03-30` - лобби и выбор мира зафиксированы как часть сетевого bootstrap, а не отдельный поздний UI task.
## Handoff Notes
Дальнейшие UI-задачи должны использовать этот network flow как канонический сценарий подключения.