6.2 KiB
Клиент: визуальное направление
Статус: зафиксировано 2026-10-21. Это решение для клиента Unity;
серверные контракты и Vanguard.Rules не меняются.
Решение
- Клиент делаем в 3D (Unity 6, URP), а не как плоский 2D-интерфейс.
- Основные экраны — отдельные сцены, каждая со своим 3D-окружением,
камерой, светом и UI-слоем:
- Login — вход/регистрация;
- Lobby — лобби, профиль, выбор режима, очередь, магазин/история;
- DeckBuilder — коллекция и конструктор колоды в одной сцене;
- Battle — боевой стол.
- Исключения (решения 2026-10-31):
Login— 2D key art,Lobby— 2D дашборд по референсу; 3D-окружение в этих сценах не строится. Правило «3D» остаётся дляDeckBuilderиBattle. - Community — отдельная сцена (гайды, колоды, тикеты), добавлена в
план
TASK-2026-022; пока каркас с заглушками. - Boot — служебная сцена: поднимает
VanguardApp, DI-контейнер, сервисы, сеть, аудио и локализацию. Пользователю не показывается. - Очередь и настройки — оверлеи внутри Lobby, отдельными сценами не являются. Выбор стартовой триал-деки — отдельный экран до Lobby; в самом Lobby онбординг не показывается (заменится обучением).
- В Unity «отдельные окна» означают отдельные сцены-экраны внутри одного окна приложения, а не несколько OS-окон.
Что остаётся общим
Между сценами живут и не пересоздаются:
VanguardApp+ VContainer;ApiClient,AuthService,MetaService,TokenStore,PlayerState;GameConnectionи боевое состояние;- аудио, локализация, Addressables, настройки;
SceneFlow— единая точка переходов между сценами.
Сцены отвечают за 3D-презентацию и свой UI. Сервисы не должны зависеть от конкретной сцены.
Статус миграции
Сцены Login, Lobby, DeckBuilder, Battle созданы;
VanguardApp и общие сервисы персистентны, SceneFlow загружает сцены.
Сейчас 3D-окружение собрано из примитивов, UI — uGUI; статические части
боевых overlay-экранов вынесены в Resources/Overlays/*.prefab, остальные
панели пока code-generated. Боевое поле уже 3D: GameBoard3D строит стол,
круги, руку и стопки, поддерживает drag&drop, Rest/фейс-даун и ограниченную
камеру. Песочница — Assets/Vanguard/Scenes/GameBoard3D.unity.
Дальше: 3D-модели карт/стола, prefab-экраны сцен, анимации и наполнение сцен.
Уже перенесено:
LoginView→ сцена Login (2D key art, форма поверх);MetaView/OnboardingView/QueueView→ сцена Lobby;DeckBuilderView→ сцена DeckBuilder (коллекция + редактор колоды);BattleView→ сцена Battle.
Сетевые и доменные классы (GameConnection, ApiClient, MetaService)
перенесены без изменения контрактов. Boot остаётся стартовой сценой,
VanguardApp — персистентным composition root.
Взаимодействие
- Выбор объектов — только интерактивом по сцене: карта, круг, зона, поле. Не показываем список кнопок «выбрать карту/круг» вместо клика по объекту.
- Кнопки остаются для глобальных действий и подтверждений (завершить ход, сдаться, отмена, принять/пропустить опциональную способность).
- Информационные оверлеи только объясняют, что требуется; они не перехватывают клики и не дублируют выбор кнопками.
ActionPromptв бою — информационный слой; подсветка на 3D-поле показывает доступные карты/круги/зоны.- Верхний
CombatStatsstrip — допустимый HUD (решение 2026-10-24); world-space Power/Shield — отдельный отложенный шаг. - Для multi-target стоимости требуется отдельный
CostPaymentOverlay; выбор в панели «Действия» — промежуточная реализация.
Ограничения и следующие шаги
- Пока нет 3D-ассетов: карты показываются процедурными градиентными
артами по клану и рубашкой (имя/ранг/триггер/сила). Арт и 3D-модели
будут подключаться по
cardIdчерез Addressables. - Ближайший визуальный шаг — наполнить сцены моделями/артом и перевести
UI на prefab-экраны; логика и
SceneFlowуже готовы. - Боевые анимации, камера и 3D-карты — после стабилизации сетевого протокола и базового UI.