Living Airbase Prototype Concept

Обновлено: 2026-07-18

«Живая авиабаза» — набросок статичного прототипа-концепта (AD-699, Ф0)

Цель Ф0: дешёвый статичный кликабельный прототип изометрической авиабазы с подписанными
зонами → показать людям → провалидировать (хотят ли, понятно ли «где что», не медленно ли).
Никакого кода продукта. Это раскладка для прототипа, а не спецификация реализации. Обоснование —
living-airbase-uiux.md; арт — living-airbase-art-prompts.md.

1. Принцип

Один изометрический ключ-арт (SVG/растр, разд. 2 ресёрча) + прозрачный слой хотспотов сверху:
каждая зона — настоящий фокусируемый элемент (<a>/<button>) с видимой подписью, иконкой,
aria-label и индикатором «вы здесь». Клик по зоне = переход в раздел. Всё, что делает game-режим,
достижимо и через сайдбар (canonical всегда рядом).

2. Раскладка зон (ASCII-эскиз, вид ~35°)

                              ☁        ☁            ★  ★   ★   (звёздное небо #0B1220)
      🌲🌲🌲                                         🌲🌲🌲
    ┌───────────┐        ╔════════════╗        ┌──────────────┐
    │  АКАДЕМИЯ  │        ║   БАШНЯ    ║        │    МУЗЕЙ      │
    │ (знания)  │        ║ управления ║        │  за забором  │
    └───────────┘        ╚════════════╝        │  ▟ ▟  ⚑      │
                              │  ЦУП               └──────────────┘
    ┌───────────┐     ┌───────────────────┐     ┌──────────────┐
    │ МАСТЕРСКАЯ│     │      А Н Г А Р Ы   │     │   СКЛАДЫ      │
    │ ✎ 🖨 ⚙    │     │  ✈  ✈   [ ][ ][ ] │     │  ▦ ▦ (ящики) │
    └───────────┘     └───────────────────┘     └──────────────┘
          ~~~~~~~~~~~~~~ В П П (огни #2D7BFF) ~~~~~~~~~~~~~~~~~
    ┌───────────┐                                ┌──────────────┐
    │ ПОЛИГОН    │        🛫 (лётное поле /       │ ИСПЫТАТЕЛЬНЫЙ │
    │ (разборы)  │            мероприятия)        │   полигон     │
    └───────────┘                                └──────────────┘
        🌲🌲🌲                                          🌲🌲🌲
   [ Диспетчерская — лента активности идёт полосой понизу/сбоку ]

Зоны пространственно разнесены, между ними «пустая земля» — чтобы включать наполнение по данным
(Ф1) без перерисовки арта.

3. Зоны → хотспоты → разделы платформы

Зона (game-имя) Раздел (canonical) Хотспот ведёт в Иконка/образ
Ангар Ангар / борта список бортов (Модель→Борт) ворота ангара + RC-борта
Мастерская Проекты / Aero Designer / инструменты / печать конструктор и инструменты верстак, 3D-принтер, чертёж
Полигон Авиаинциденты (разборы/логи/телеметрия) журнал инцидентов/разборов площадка анализа (не «крэш»)
Башня управления ЦУП: уведомления/сообщения/приглашения/события (AD-662/665) центр уведомлений башня со светящейся вышкой
Академия Вики: знания/курсы/мануалы/доки документация/вики здание с «книгой/знанием»
Музей / Архив Снятые/завершённые проекты (AD-637) архив бортов (достоинство) борта на пьедесталах + флаг
Испытательный полигон Прототипы/черновики/эксперименты черновики/эксперименты огороженная тест-площадка
ВПП / Лётное поле Мероприятия/соревнования/фестивали события/календарь освещённая полоса, огни
Диспетчерская Лента активности сообщества community-фид полоса/панель ленты

Нейминг существующих разделов продукт-wide (SEO/привычность/ссылки) — отдельное IA/бренд-решение
(см. AD-590). В game-режиме — образные имена; canonical-меню трогать в Ф0 не нужно.

4. Состояния зон: пусто / мало / много (корзины)

Правило: данные (AD-692) → корзина → набор слоёв/плотность. Художник готовит 3–4 варианта плотности
на зону; точное число — бейджем. Это объём Ф1, но заложить в раскладку надо уже в Ф0.

Зона 🟤 Пусто (0) 🟡 Мало (1–3 / 1–10) 🟢 Много (>N)
Ангар голое поле + грунтовка/разметка под ангар, CTA «завести борт» 1 ангар, пара бортиков несколько ангаров, «загруженный аэродром», бейдж кол-ва
Мастерская пустой верстак / зачехлено верстак с проектом активная мастерская, 3D-принтер «печатает»
Склады пустой склад / полки пусты несколько ящиков заполненные стеллажи
Музей пусто, за забором пусто 1–2 экспоната на пьедестале полный музей + флаг
Полигон ровная площадка пара отметок разбора активная лаборатория анализа
Академия маленькое здание/фундамент здание расширенная Академия (много материалов)
Башня всегда есть (ядро базы) + мигают уведомления + оживлённый ЦУП
ВПП тёмная полоса несколько огней полностью освещённая полоса, активность

Пустые состояния — не «сломано», а приглашение: пустая зона несёт CTA («здесь появится ваш
первый борт»), что заодно закрывает эвристику пустого состояния и онбординг.

5. Хотспот: анатомия (для a11y-корректного прототипа)

Каждый хотспот в прототипе — минимум:
- фокусируемый <a href="/раздел"> (реальная ссылка, работает без JS);
- видимая подпись зоны (не только образ) + иконка;
- aria-label («Ангар: 3 борта») ; состояние «вы здесь» (aria-current);
- достаточная область клика/тапа (мобилка), заметный фокус-ринг (клавиатура);
- badge со счётчиком (из корзины), без счётчика при 0.

6. Фолбэк на canonical-навигацию (обязательно)

  • Сайдбар/меню всегда доступны — game-режим это надстройка, не замена. Ни одна функция не живёт
    только в базе.
  • Переключатель «Моя база ↔ обычный вид» — выход в один клик; deep-link /base открывает режим.
  • Дефолт по контексту: новичок/«пришёл найти»/мобилка/prefers-reduced-motion/слабое устройство
    → canonical/статик; кто сам включил базу → запоминаем выбор.
  • Прототип деградирует чисто: нет поддержки/выключено → пользователь видит обычную навигацию и
    ничего не теряет. Анимации в Ф0 нет вовсе (только статичная сцена + hover/фокус).

7. Что валидируем на прототипе (критерии Ф0)

  1. Узнаваемость: понимают ли без обучения, что это их профиль-база и где какой раздел (подписи!).
  2. Findability/скорость: могут ли быстро попасть в нужный раздел; не медленнее ли, чем сайдбар
    (если медленнее — режим остаётся опциональным «витринным»).
  3. Эмоция/желание: возникает ли «хочу так», ощущение «зашёл домой» (главная гипотеза эпика).
  4. Понятность роста: считывается ли, что «больше активности → больше база» (без объяснений).
  5. Мобилка: приемлема ли статичная сцена / нужен ли сразу фолбэк на список.

8. Мини-схема конфигурации зоны (для сборки прототипа)

Ориентир структуры данных зоны (декларативно, чтобы арт и хотспоты не были захардкожены):

{
  "id": "hangar",
  "label": "Ангар",
  "href": "/hangar",            // реальный раздел (canonical)
  "hotspot": { "x": 0.42, "y": 0.55, "w": 0.22, "h": 0.14 }, // доля от кадра
  "icon": "hangar",
  "layers": ["ground", "building", "fill", "lights"],
  "state_source": "fleet.boards_count",   // из AD-692
  "buckets": [
    { "max": 0,   "state": "empty", "layers": ["ground"],            "cta": "Заведите первый борт" },
    { "max": 3,   "state": "few",   "layers": ["ground","building","fill:1"] },
    { "max": 999, "state": "many",  "layers": ["ground","building","fill:many","lights"], "badge": true }
  ]
}

Это набросок для Ф0-прототипа, а не контракт API. Точные поля/эндпоинты — при реализации Ф1
на данных AD-692.

Sources

  • Полный ресёрч и обоснования: living-airbase-uiux.md. Промпты арта: living-airbase-art-prompts.md.
    Данные состояний зон: тикет AD-692. Эпик и нейминг локаций: AD-698.