VanguardReMaster/client/README.md

95 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Vanguard ReMaster — Unity client
Клиент на **Unity 6000.6.6f1** (Unity 6), URP. Пока это каркас:
авторизация, восстановление сессии и главный экран профиля.
## Как открыть
1. Unity Hub → **Add project from disk** → папка `client`.
2. Открыть проект редактором **6000.6.6f1**.
3. Первый импорт скачает пакеты (URP, Input System, Addressables,
Localization, Newtonsoft.Json, VContainer с OpenUPM).
4. Открыть `Assets/Scenes/Boot.unity` и нажать Play.
Если Unity предложит включить новый Input System — согласиться (в проекте
уже `activeInputHandler: 1`).
## Сервер
В форме входа по умолчанию стоит стенд:
```
http://192.168.31.158:18080
```
Адрес можно изменить прямо в поле и сохранить: он пишется в `PlayerPrefs`.
Локальный сервер:
```
http://localhost:5080
```
Аккаунт создаётся кнопкой «Создать аккаунт»; имя 3–32 символа, пароль
8–128. Пароль от реального аккаунта в dev-клиенте не использовать.
## Что уже есть
- `ClientBootstrap` — запуск без привязки к сцене.
- DI на VContainer: `AppConfig`, `TokenStore`, `ApiClient`, `AuthService`,
`MetaService`, `PlayerState`, `AppRootView`.
- HTTP-клиент на `UnityWebRequest` + Newtonsoft.Json, разбор `ApiError`.
- Логин, регистрация, refresh, `/me`, выход.
- Восстановление сессии по refresh-токену при старте.
- Онбординг: две триал-деки из `/api/store`, выбор одной, 50 карт и 5 токенов.
- Коллекция: список карт, балансы, разбор в пыль с подтверждением.
- Колоды: список, удаление, автосборка стартовой колоды из выбранной
триал-деки.
- Экран входа и главный экран с балансами, MMR и переходами в разделы.
## Что дальше
1. Очередь и экран ожидания → тикет → WebSocket (`GameConnection`).
2. Боевая сцена: `MatchView`, проекция событий, анимации.
3. Полный декбилдер с фильтрами и счётчиками.
4. Магазин и открытие бустера.
5. История матчей и реплей.
6. Локализация RU/EN, настройки, DOTween-анимации.
## Плагины
`Assets/Plugins/Vanguard.Shared` — сборка `Vanguard.Shared` из
`server/src/Vanguard.Shared` (netstandard2.1). В ней DTO протокола,
MessagePack-сериализатор и юнион-кадры.
`Assets/Plugins/MessagePack` — MessagePack 3.1.12 и его runtime-зависимости
(netstandard2.1), MIT.
При изменении протокола пересобрать `Vanguard.Shared` на серверной стороне
и заменить DLL в `Assets/Plugins/Vanguard.Shared`.
## Ограничения каркаса
- Для dev-стенда включён HTTP: Project Settings → Player → **Allow downloads
over HTTP = Always** (`insecureHttpOption: 2`). Для релиза нужен HTTPS и
это значение вернуть в «Not allowed».
- Токены лежат в `PlayerPrefs` — только для разработки; для релиза нужно
защищённое хранилище.
- UI собран кодом на uGUI; префабы/UI Toolkit подключим, когда появятся
макеты. DOTween пока не добавлен, чтобы не тянуть Asset Store-зависимость
в первый коммит.
- Мета-экраны — заглушки: сеть и авторизация настоящие, разделы следующие.
## Проверки
EditMode:
```powershell
& 'C:\Program Files\Unity\Hub\Editor\6000.6.6f1\Editor\Unity.exe' `
-batchmode -nographics -projectPath client `
-runTests -testPlatform EditMode `
-testResults client\TestResults.xml
```
PlayMode — то же с `-testPlatform PlayMode`. Тесты не ходят в сеть:
проверяются composition root, создание Canvas и обоих экранов.