Игровая система «КОНТУР»: персональная сеть мониторинга Зоны
Формат: системный геймдизайн-документ + техническая спецификация для Unreal Engine 5.6.
Тип контента: длинная опциональная сюжетно-системная линия, интегрированная в открытый мир.
Целевая продолжительность: 45–70 часов на построение эффективной сети, 80–120 часов с эксплуатацией, региональными событиями и специализацией. Сотни часов достигаются через разные конфигурации сети, фракционные ветки и повторные прохождения, а не через бесконечный ремонт одних и тех же вышек.
1. Концепция в одном абзаце
Игрок получает экспериментальный модуль для КПК, который анализирует не «души через стены», а совокупность слабых сигналов:
- радиоизлучение КПК и передатчиков;
- аномальные биоэлектрические колебания;
- низкочастотные пси-резонансы;
- акустические и сейсмические возмущения;
- тепловые следы на короткой дистанции;
- изменения электромагнитного фона Зоны.
Поначалу КПК способен лишь сообщить, что неподалёку «что-то живое». Затем игрок учится классифицировать сигналы, строит стационарные сенсорные узлы на вышках и других объектах инфраструктуры, объединяет их в сеть, регистрирует знакомых сталкеров, анализирует миграции мутантов и постепенно получает стратегическую карту активности Зоны.
Главный принцип:
Сеть даёт игроку информацию и новые возможности для взаимодействия с миром, но никогда не превращается в рентген, тактическую мини-карту или гарантированное предсказание будущего.
2. Критика исходной идеи и ключевые изменения
Исходная идея очень сильна по трём причинам:
- Она физически связывает прогрессию с исследованием открытого мира.
- Она даёт долгосрочную цель, которую игрок формулирует себе сам.
- Она превращает карту в развивающийся инструмент, а не просто список маркеров.
Но в первоначальном виде есть несколько рисков.
| Проблема | Почему это плохо | Решение |
|---|---|---|
| КПК определяет всех по «пси-сигнатуре» | Слишком магично даже для S.T.A.L.K.E.R. | Использовать сенсорное слияние нескольких каналов |
| Точные красные точки на карте | Уничтожают напряжение и исследование | Показывать сектор, область неопределённости, давность и уверенность |
| Маяк знает имя и фракцию | Сенсор не может знать фамилию человека | Имя определяется только через зарегистрированный КПК, позывной или знакомство |
| Линейные уровни прошивки | Игроки быстро находят обязательный оптимальный путь | Четыре независимых направления развития |
| Десятки одинаковых маяков | Крафт превращается в рутину | Модульные узлы, разные типы площадок и альтернативные конфигурации |
| Поломка каждого маяка отдельно | При большой сети обслуживание становится второй работой | Региональное обслуживание, удалённый перезапуск и ограничитель числа аварий |
| Полное покрытие 100% | Ломает мистику Зоны и создаёт раздражающие последние 1–2% | Максимум 90–95% оперативного покрытия, официально существующие «слепые зоны» |
| Игрок может всё открыть рано | Может сломать темп прогрессии | Не жёсткие уровни, а высокая цена, риск и сложность раннего доступа |
| Система должна удерживать сотни часов | Одна механика не выдержит этого без гринда | Интегрировать её с NPC, фракциями, экономикой и симуляцией мира |
3. Дизайн-столпы системы
3.1. Информация, а не всеведение
Система сообщает:
- примерное количество;
- категорию сигнала;
- направление движения;
- вероятность принадлежности;
- давность наблюдения;
- уровень уверенности.
Она не сообщает:
- оружие;
- инвентарь;
- точное здоровье;
- намерения;
- гарантированную враждебность;
- точную позицию за стеной;
- будущую цель AI;
- личность незнакомого NPC без цифрового следа.
Почему: игрок должен принимать решения, а не следовать идеальному навигатору.
3.2. Каждый новый узел — экспедиция
Установка станции должна быть не простым действием «подойди и нажми F», а небольшой локальной историей:
- найти площадку;
- договориться с владельцами;
- восстановить питание;
- подняться на конструкцию;
- принести оборудование;
- выбрать конфигурацию;
- выполнить калибровку;
- решить возникшую локальную проблему.
Почему: если игроку нужно установить 25–30 узлов, одинаковый процесс быстро станет рутиной.
3.3. Зона сопротивляется, но не отнимает прогресс
Выбросы, пси-поля, саботаж и износ могут временно снижать качество данных, однако не должны постоянно уничтожать вложения игрока.
Правило: обычная неудача ухудшает узел, отключает один модуль или делает данные устаревшими. Полная потеря станции допустима только в авторском событии с предупреждением и возможностью восстановления.
3.4. Социальная сеть внутри игрового мира
Система должна отслеживать не только «биологические объекты», но и отношения игрока с людьми.
Знакомый сталкер может:
- согласиться передавать свой позывной;
- включить публичный статус «проводник» или «медик»;
- отправить сигнал бедствия;
- попросить не отслеживать его;
- помочь обслуживать региональную сеть;
- передать игроку протокол своей группы;
- попытаться использовать сеть в своих интересах.
Почему: это превращает техническую механику в систему социализации с миром.
3.5. Игрок сам выбирает темп
Основная цепочка знакомит игрока примерно с 30% системы. Остальные узлы, профили, модификации и региональные проекты он открывает самостоятельно.
При этом опытный игрок может получить почти все технологии в начале игры через:
- опасное исследование;
- дорогую покупку;
- кражу чертежа;
- сделку с фракцией;
- поиск заброшенной лаборатории.
Жёстких требований уровня персонажа нет.
4. Лорное объяснение
4.1. Происхождение технологии
Рабочее название проекта — «Контур». Сталкеры называют систему «Эхо».
До катастрофы одна из закрытых лабораторий разрабатывала сеть контроля состояния персонала вблизи пси-установок. Она не читала мысли, а фиксировала:
- изменения биоэлектрической активности;
- отклонения электромагнитного поля;
- радиообмен персональных устройств;
- пси-резонанс в аномальной среде;
- изменения фоновых колебаний при движении живых организмов.
После появления Зоны оказалось, что аномальная среда усиливает и искажает часть этих сигналов. Учёные смогли находить крупные скопления живых организмов, но не получили стабильной системы классификации.
Позднее независимый радиотехник находит:
- фрагмент старой прошивки;
- эталонную калибровочную пластину;
- архив измерений;
- схему ведомого сенсорного узла.
Игрок получает один из восстановленных эталонных модулей и становится владельцем корневого ключа сети.
4.2. Почему технология не используется массово
Она крайне чувствительна к Выбросам.
После каждого крупного изменения фона нужна повторная калибровка.Редкие компоненты.
Нужны экранированные усилители, лабораторная керамика и малошумящие процессоры.Нет готовой инфраструктуры.
Вышки разрушены, питание отсутствует, территория контролируется фракциями.Система политически опасна.
Возможность отслеживать перемещения людей интересует учёных, военных, наёмников и крупные группировки.Низкая точность одиночного сенсора.
Нормальная классификация начинается только при наличии нескольких перекрывающихся станций.Сеть сама оставляет радиоэлектронный след.
Мощный активный скан можно обнаружить и попытаться локализовать.
4.3. Что именно считается «пси-сигнатурой»
«Пси-сигнатура» — это сталкерский жаргон. Технически система объединяет несколько каналов.
| Канал | Что позволяет узнать | Ограничение |
|---|---|---|
| Радиочастотный | Наличие работающего КПК, групповой протокол, позывной | КПК можно выключить или экранировать |
| Биоаномальный | Факт живой активности | Сильно зависит от фона Зоны |
| Пси-резонансный | Некоторые мутанты, пси-активность | Контролёры и пси-поля создают ложные сигналы |
| Сейсмический/акустический | Движение, примерное количество | Плохо работает в индустриальных зонах |
| Тепловой | Живой объект на короткой дистанции | Требует близости и частичной прямой видимости |
| Поведенческий | Направление и повторяемость маршрутов | Требует истории наблюдений |
4.4. Лорные контрмеры
Некоторые существа и люди должны противодействовать системе естественным образом:
- дисциплинированные отряды выключают КПК;
- разведчики используют экранированные чехлы;
- наёмники могут подменять идентификаторы;
- остаточные монолитовские передатчики создают «призрачные» группы;
- кровососы дают слабый и нестабильный профиль;
- контролёры создают несколько коррелированных ложных следов;
- полтергейст сначала определяется как неизвестная биоаномальная активность;
- мощные аномалии маскируют или дублируют сигналы.
5. Три уровня системы
5.1. Персональный сканер КПК
Используется для локальной разведки.
Пассивный режим
- работает постоянно;
- не выдаёт позицию игрока;
- имеет малый радиус;
- показывает только общий уровень активности;
- не создаёт точных меток.
Активный импульс
- требует открыть КПК или удерживать отдельную кнопку;
- временно убирает оружие из рук;
- заряжается 1–2 секунды;
- расходует заряд внутреннего буфера;
- даёт больший радиус и точность;
- может быть замечен противником с подходящим оборудованием;
- может раздражать пси-чувствительных мутантов.
Пример радиусов
| Уровень | Пассивный режим | Активный импульс | Ограничение |
|---|---|---|---|
| Базовый | 20–30 м | 50–60 м | Только факт присутствия |
| Улучшенный | 50–60 м | 100–120 м | Примерное направление |
| Продвинутый | 80–90 м | 160–180 м | Грубая классификация |
| Экспериментальный | 110–120 м | до 250 м | 250 м только на открытой местности |
Радиус 250 метров не должен быть постоянным. Это экстремальный импульс с высоким расходом энергии, длительным откатом и риском обнаружения.
5.2. Стационарная сеть
Состоит из:
- сенсорных станций;
- дешёвых ретрансляторов;
- региональных концентраторов;
- магистральных передатчиков;
- специализированных подземных или пси-сенсоров.
Сеть имеет два независимых типа покрытия:
- Сенсорное покрытие — где станция способна что-либо обнаружить.
- Связность — может ли станция передать свежие данные в КПК.
Если узел потерял связь, он продолжает собирать данные в локальную память. Игрок может:
- восстановить ретранслятор;
- подойти ближе и синхронизировать данные;
- дождаться восстановления связи;
- отправить техника;
- построить альтернативный маршрут.
5.3. Аналитическая и социальная система
Сырые данные сами по себе дают мало пользы. Прошивка КПК должна уметь:
- объединять наблюдения нескольких станций;
- отбрасывать шум;
- вести историю;
- распознавать знакомые цифровые отпечатки;
- оценивать маршруты;
- создавать события;
- показывать изменения, а не засорять карту постоянными точками.
6. Прогрессия: не одна шкала, а четыре направления
Вместо линейного «уровня КПК» предлагается четыре ветки.
6.1. Сенсоры
| Уровень | Возможность |
|---|---|
| S1 | Локальное обнаружение присутствия |
| S2 | Направление, активный импульс, фильтрация шумов |
| S3 | Грубая классификация и оценка количества |
| S4 | Адаптивная калибровка, увеличенный радиус, специализированные профили |
6.2. Сеть
| Уровень | Возможность |
|---|---|
| N1 | Установка первого сенсорного узла |
| N2 | Ретрансляторы и кэширование данных |
| N3 | Перекрытие станций и триангуляция |
| N4 | Магистральная сеть, резервные маршруты и региональные концентраторы |
6.3. Аналитика
| Уровень | Возможность |
|---|---|
| A1 | Оценка количества и плотности |
| A2 | История активности |
| A3 | Распознавание событий: миграция, бой, исчезновение |
| A4 | Вероятностный прогноз перемещения |
6.4. Протоколы и социализация
| Уровень | Возможность |
|---|---|
| P1 | Регистрация знакомых КПК и позывных |
| P2 | Анализ протоколов группировок |
| P3 | Публичные статусы: медик, проводник, торговец |
| P4 | Шифрование, права доступа, общая или приватная сеть |
Почему четыре ветки: игрок может построить сеть охотника, учёного, контрабандиста или социального координатора, а не просто покупать обязательные уровни по порядку.
7. Прогрессия информации
Информация открывается не только прошивкой. Для некоторых данных нужны:
- перекрывающиеся станции;
- чистый сигнал;
- история наблюдений;
- профиль конкретного мутанта;
- знакомство с NPC;
- ключ фракционного протокола.
| Этап | Что видит игрок | Реалистичное объяснение |
|---|---|---|
| 1 | «Есть активность» | Превышен порог биоаномального шума |
| 2 | Давность сигнала | Время последнего измерения |
| 3 | Примерный сектор | Фазовая разница между антеннами |
| 4 | Диапазон количества: 1, 2–4, 5–8, много | Статистическая плотность импульсов |
| 5 | Живое / устройство / аномальный шум | Сопоставление каналов |
| 6 | Люди / мутанты / неизвестно | Наличие радиосигнала и биопрофиль |
| 7 | Движение / стоянка / скопление | История нескольких сканов |
| 8 | Более точная оценка количества | Накопление данных и перекрытие сенсоров |
| 9 | Семейство мутанта | Калибровочный профиль |
| 10 | Организованная группа или отдельные объекты | Согласованное движение и радиообмен |
| 11 | Вероятная группировка | Анализ протокола и маршрутов |
| 12 | Известный позывной | Зарегистрированный цифровой отпечаток КПК |
| 13 | Имя знакомого NPC | Только если игрок ранее узнал его имя |
| 14 | «Устройство есть, биоподтверждения нет» | КПК может лежать отдельно от владельца |
| 15 | История посещений сектора | Архив наблюдений |
| 16 | Бой, паника, преследование, миграция | Резкое изменение движения и акустики |
| 17 | Предполагаемый маршрут | Экстраполяция уже наблюдаемого движения |
| 18 | Региональная экология | Долгосрочная статистика популяций |
Важные ограничения
- Незнакомый человек никогда не появляется по полному имени.
- Фракция отображается как вероятность, например: «вероятно, военизированная группа — 68%».
- Профессия NPC определяется только по публичному статусу его КПК.
- Система не определяет здоровье. Она может получить вручную отправленный SOS.
- Система не знает, куда AI собирается идти. Прогноз строится только по наблюдаемой истории.
- Ошибка идентификации имени недопустима, кроме специальных сюжетных случаев подмены. При низкой уверенности система должна показывать «неизвестно».
8. Типы узлов
Все станции собираются из модульного шасси. Игрок не крафтит 30 полностью разных предметов — он комбинирует общие блоки.
| Тип | Назначение | Радиус/особенность |
|---|---|---|
| Полевой ретранслятор | Передаёт данные, почти не сканирует | Дешёвый, лёгкий |
| Базовый сенсорный узел | Обычная поверхностная станция | 350–500 м |
| Стандартный узел | Основная единица сети | 650–900 м |
| Магистральный узел | Связывает регионы | До 1,5 км сенсора, несколько км связи при прямой видимости |
| Тихий узел | Меньше заметен людям | Меньше радиус и частота обновления |
| Укреплённый узел | Устойчив к Выбросам | Тяжёлый и дорогой |
| Подземный сенсор | Сейсмика и ближний биоанализ | 150–300 м, данные передаёт через отдельный ретранслятор |
| Пси-сенсор | Работает в сложных пси-зонах | Высокий риск ложных сигналов |
| Региональный концентратор | Архив, удалённый ремонт, обработка | Ставится у техника или в безопасном лагере |
8.1. Модульные слоты
Каждый стационарный узел может иметь:
Питание
- аккумулятор;
- подключение к сети;
- ветровой генератор;
- защищённый автономный блок;
- экспериментальный аномальный преобразователь.
Связь
- обычная антенна;
- направленная антенна;
- тихий передатчик;
- магистральный радиомодуль.
Сенсор
- радиочастотный;
- биоаномальный;
- сейсмический;
- пси-резонансный;
- комбинированный.
Обработка
- фильтр шумов;
- классификатор;
- архиватор;
- коррелятор;
- предиктор.
Защита
- экран от Выбросов;
- влагозащита;
- защита от вскрытия;
- резервная память;
- система автоматической перекалибровки.
У шасси есть ограничение по питанию и числу слотов. Нельзя одновременно получить максимальные дальность, скрытность, точность и автономность.
9. Покрытие Зоны
9.1. Предлагаемый масштаб
Для условной карты из 8–10 крупных регионов:
- 42–48 потенциальных площадок;
- 8 площадок показывает сюжетная цепочка;
- 26–30 сенсорных узлов достаточно для эффективного покрытия;
- дополнительно понадобится 6–10 дешёвых ретрансляторов;
- 88–93% оперативного покрытия — хорошая финальная сеть;
- теоретический максимум — около 95%.
Последние проценты невозможно закрыть постоянно из-за:
- пси-полей;
- подземелий;
- рельефа;
- разрушенных районов;
- мощных аномалий;
- территорий с устойчивым подавлением сигнала.
Почему не 100%: Зона не должна становиться полностью изученной таблицей. Кроме того, поиск последнего незначительного участка почти всегда раздражает игрока.
9.2. Как считается покрытие
Покрытие не является простой суммой кругов.
Каждая ячейка карты имеет:
- вес игровой значимости;
- коэффициент рельефа;
- пси-помехи;
- радиопомехи;
- тип среды;
- давность последнего наблюдения;
- качество сигнала.
Эффективное покрытие:
[
C = \frac{\sum_i W_i \cdot Freshness_i \cdot Confidence_i}{\sum_i W_i}
]
Где:
W— вес доступной и игровой территории;Freshness— насколько данные свежие;Confidence— качество наблюдения.
Недоступные скалы и декоративные области не должны влиять на процент.
9.3. Варианты площадок
| Площадка | Преимущество | Недостаток |
|---|---|---|
| Радиовышка | Большой радиус и связь | Заметна, повреждается Выбросами |
| Водонапорная башня | Хорошая высота | Сложный подъём |
| Заводская труба | Питание и обзор | Сильные электромагнитные помехи |
| Научный пост | Хорошая калибровка | Зависимость от учёных |
| Железнодорожная инфраструктура | Удобная линия связи | Ограниченный сектор обзора |
| Крыша многоэтажного здания | Хорошее покрытие города | Многолучевые радиопомехи |
| Вентиляционная шахта | Доступ к подземным сигналам | Требуется внешний ретранслятор |
| Лагерь сталкеров | Защита и обслуживание | Нужна договорённость с владельцами |
| Импровизированная мачта | Можно поставить почти везде | Малый радиус и низкая устойчивость |
10. Длинная цепочка заданий
Сюжетная линия должна быть адаптивной. Если игрок заранее купил технологию или уже установил узлы, задания не заставляют повторять действия.
Цели проверяются через системные условия:
- есть ли нужная возможность;
- сколько регионов подключено;
- достигнуто ли требуемое покрытие;
- получен ли сигнал определённого качества.
Акт I. «Белый шум»
1. Белый шум
Игрок находит повреждённый КПК полевого инженера или помогает раненому радиотехнику. Устройство периодически ловит странный сигнал.
Задача: откалибровать модуль и найти источник.
Источник оказывается живым сталкером, который не мог вызвать помощь обычной связью.
Награда:
- локальный пассивный скан;
- первое эмоционально понятное применение;
- контакт радиотехника.
2. Живое эхо
Для калибровки нужны три типа наблюдений:
- человек;
- мутант;
- аномальное возмущение.
Игрок может:
- наблюдать издалека;
- использовать труп мутанта как научный образец;
- купить архив измерений;
- выполнить задание учёных.
Награда:
- активный импульс;
- первичная фильтрация;
- отображение уверенности.
Почему: система не должна требовать обязательного убийства.
Акт II. «Первая точка»
3. Выше помех
Игрок находит старую вышку и получает первый готовый узел.
Варианты решения:
- восстановить местное питание;
- принести аккумулятор;
- подключиться к генератору лагеря;
- договориться с контролирующей группой.
После активации узел обнаруживает скопление активности, которое приводит к небольшому событию: спасению, встрече торговцев или опасной группе мутантов.
Награда:
- первый стационарный узел;
- видимый процент покрытия;
- рецепт базового шасси.
4. Разорванная нить
Станция сканирует, но не может отправить данные.
Игрок учится:
- строить ретранслятор;
- проверять качество линии;
- ориентировать направленную антенну;
- получать данные из локального кэша.
Награда:
- сетевой режим;
- ретранслятор;
- отдельные слои «покрытие» и «связность».
5. Не всё живое
Сеть несколько раз показывает несуществующую группу. Игрок исследует источник.
Варианты:
- пси-аномалия;
- остаточный передатчик;
- брошенный набор КПК;
- полтергейст;
- намеренно установленная ложная цель.
Награда:
- фильтр ложных сигналов;
- понимание, что низкая уверенность — не ошибка игры, а часть системы.
Акт III. «Люди в сети»
6. Позывные
Игрок просит нескольких NPC зарегистрировать цифровой отпечаток КПК.
Один соглашается, другой просит плату, третий отказывается.
Награда:
- реестр контактов;
- отображение известных позывных;
- запросы «найти знакомого».
7. После Выброса
Первый сюжетный Выброс повреждает сеть контролируемым образом.
Игрок знакомится с:
- удалённым перезапуском;
- физическим ремонтом;
- дрейфом калибровки;
- защитным модулем;
- региональным сервисом.
Первая авария не должна уничтожать станцию или заставлять ремонтировать все узлы.
8. Три точки
Для уверенного определения миграции мутантов нужны три перекрывающихся станции.
После построения контура игрок получает выбор:
- предупредить лагерь;
- передать данные охотникам;
- отдать информацию учёным;
- использовать миграцию, чтобы безопаснее пройти соседний маршрут.
Награда:
- корреляция;
- более точные диапазоны количества;
- история перемещения.
9. Чужой протокол
Игрок получает возможность распознавать фракционные радиопротоколы.
Способы:
- заслужить официальный ключ;
- найти КПК погибшего;
- купить декодер;
- долго собирать статистику;
- украсть данные.
Каждый способ влияет на отношение соответствующей стороны.
Награда: вероятностное определение группировки.
Акт IV. «Слепые зоны»
10. Ниже уровня земли
Обычный узел не видит активность под землёй. Игрок строит специализированный сейсмический сенсор и отдельную линию связи.
Награда:
- подземный сенсор;
- данные о движении в тоннелях;
- новый тип площадок.
11. Кто смотрит в ответ
Кто-то начинает анализировать импульсы сети игрока.
Возможные источники:
- наёмники;
- военизированная группировка;
- остаточная автоматическая система;
- враждебный техник;
- заинтересованный учёный.
Игрок выбирает:
- отключить активные импульсы;
- установить шифрование;
- создать ложный узел;
- договориться;
- открыть часть данных.
Награда: политика доступа и защитные модули.
12. Карта дышит
Условие:
- 8 активных узлов;
- 25–30% эффективного покрытия;
- связь между двумя или тремя регионами;
- хотя бы один зарегистрированный лагерь.
Здесь заканчивается полностью сопровождаемая часть. Игрок получает:
- региональные досье;
- приблизительные указания на старую инфраструктуру;
- возможность выбрать партнёра;
- финальные чертежи базовой архитектуры.
Дальше около 70% сети игрок строит самостоятельно.
Акт V. Региональные проекты
Каждый регион имеет один уникальный проект и несколько обычных площадок.
| Архетип региона | Уникальная задача |
|---|---|
| Болота | Коррозия, влагозащита, недостаток высоты |
| Лес | Плохая прямая видимость, необходимость тихих узлов |
| Индустриальный пояс | Сильные электромагнитные помехи, но доступное питание |
| Городские руины | Нужно три малых узла вместо одной большой станции |
| Пси-зона | Калибровка только в определённое окно после Выброса |
| Подземная сеть | Хранение данных с периодической физической синхронизацией |
| Фракционная граница | Переговоры, аренда, саботаж или скрытая установка |
| Высокорисковый северный регион | Мощные помехи, редкие компоненты, лучший радиогоризонт |
Финал. «Контур замкнут»
Требования:
- 85%+ эффективного покрытия;
- минимум три резервных кольца связи;
- несколько региональных концентраторов;
- стабильная работа во время Выброса;
- выбранная политика данных.
Игрок проводит синхронизированную калибровку сети. В процессе становится ясно, что сеть может быть не только научным инструментом, но и средством контроля над людьми.
Финальный выбор:
- Оставить сеть полностью приватной.
- Передать обезличенные данные учёным.
- Сделать открытую сталкерскую сеть.
- Заключить договор с силовой группировкой.
- Продать доступ на чёрном рынке.
- Уничтожить слой идентификации, сохранив только экологический мониторинг.
Финал не открывает точные позиции всех существ. Он даёт стратегическую карту и одновременно показывает, что у Зоны остаются области, которые система не способна объяснить.
11. Доступ к технологиям в начале игры
Чтобы сохранить свободу, каждый важный чертёж имеет минимум три способа получения.
| Способ | Цена |
|---|---|
| Сюжетная цепочка | Позже, безопаснее, почти бесплатно |
| Покупка у редкого техника | Рано, но в 2–2,5 раза дороже |
| Опасное исследование | Рано, но нужно проникнуть в сложную область |
| Сделка с фракцией | Рано, но с обязательствами |
| Кража или взлом | Рано, с репутационными последствиями |
Адаптация заданий
Если игрок уже построил сеть:
- обучающие этапы засчитываются ретроспективно;
- NPC комментируют его подготовленность;
- вместо дублирующего оборудования выдаются редкие модули;
- цепочка начинается с ближайшей неполученной возможности;
- игра не заставляет демонтировать или повторно устанавливать узлы.
12. Игровые циклы
12.1. Основной цикл
flowchart LR
A[Исследовать Зону] --> B[Найти площадку или чертёж]
B --> C[Получить компоненты]
C --> D[Выбрать конфигурацию узла]
D --> E[Установить и откалибровать]
E --> F[Получить новые данные]
F --> G[Принять решение и отправиться к событию]
G --> H[Получить ресурс, контакт или профиль]
H --> A
12.2. Краткосрочный цикл
На 5–15 минут:
- Получить сигнал.
- Оценить давность и уверенность.
- Решить, стоит ли отклоняться от маршрута.
- Исследовать источник.
- Получить подтверждение, контакт или небольшую награду.
12.3. Среднесрочный цикл
На 45–90 минут:
- Найти площадку.
- Подготовить комплект станции.
- Спланировать экспедицию.
- Решить локальную проблему.
- Увеличить покрытие.
- Открыть новое региональное событие.
12.4. Долгосрочный цикл
На 10–30 часов:
- Выбрать специализацию сети.
- Связать несколько регионов.
- Сформировать социальный реестр.
- Автоматизировать обслуживание.
- Выбрать политику доступа.
- Получить уникальную фракционную или научную ветку.
13. Крафт
13.1. Принципы
- Нет случайного шанса провала.
- Нет обязательной мини-игры при каждой сборке.
- Первый экземпляр собирается вручную.
- После нескольких установок техник может собирать партии.
- Снятие узла возвращает 70–85% компонентов.
- Неповреждённые модули возвращаются полностью.
- Для базовой станции не требуется редкий артефакт.
- Игрок может купить готовый комплект дороже.
13.2. Ресурсы
| Ресурс | Источники |
|---|---|
| Герметичный корпус | Промышленные объекты, мастерские, торговцы |
| Радиоплата | Вышки, военные посты, старые КПК, радиостанции |
| Экранированный кабель | Лаборатории, трансформаторные, техника |
| Малошумящий процессор | Научные объекты, редкие торговцы |
| Аккумуляторная кассета | Генераторы, техника, склады |
| Монтажный комплект | Строительные и промышленные зоны |
| Калибровочная пластина | Учёные, лаборатории, редкий демонтаж |
| Защита от импульсов | Военная электроника, научное оборудование |
| Сейсмический датчик | Шахты, бункеры, исследовательские объекты |
| Пси-резонатор | Специальные лаборатории и научные задания |
13.3. Пример рецептов
Полевой ретранслятор
- герметичный корпус ×1;
- радиоплата ×1;
- экранированный кабель ×2;
- аккумулятор ×1;
- монтажный комплект ×1.
Масса: 4–5 кг.
Назначение: связь и кэширование, почти без сенсорной функции.
Базовый сенсорный узел
- усиленный корпус ×1;
- радиоплата ×1;
- процессор ×1;
- биоаномальный сенсор ×1;
- аккумулятор ×1;
- калибровочная пластина ×1;
- монтажный комплект ×1.
Масса: 6–8 кг.
Стандартный узел
- базовое шасси ×1;
- малошумящий усилитель ×2;
- защищённый процессор ×1;
- импульсная защита ×1;
- направленная антенна ×1;
- аккумулятор повышенной ёмкости ×1.
Масса: 8–10 кг.
Магистральный узел
- усиленное шасси ×1;
- дальний радиомодуль ×1;
- направленная антенна ×2;
- резервное питание ×1;
- защищённый вычислительный блок ×1;
- модуль автоматической калибровки ×1.
Масса: 10–13 кг.
Игрок физически может нести такой узел, но это заметно влияет на подготовку экспедиции.
13.4. Логистика
После развития сети игрок открывает доставку оборудования:
- техник собирает комплект;
- знакомый проводник доставляет его в безопасный лагерь;
- добровольный оператор переносит его на доступную площадку;
- в опасную или враждебную зону игрок всё равно должен принести оборудование сам.
Это снижает поздний микроменеджмент и одновременно усиливает ценность NPC.
14. Экономика
Цены следует привязывать к реальной экономике проекта через относительные коэффициенты.
Для примера:
1 экономическая единица — чистая прибыль от обычного раннего побочного задания, условно 5–7 тысяч купонов.
| Объект | Стоимость компонентов | Покупка готового | Целевое время получения |
|---|---|---|---|
| Полевой ретранслятор | 0,8–1,0 ед. | 1,4 ед. | 20–40 минут |
| Базовый узел | 2,0–2,5 ед. | 3,5 ед. | 70–110 минут в начале |
| Стандартный узел | 3,5–4,5 ед. | 5,5–6 ед. | 50–80 минут в середине |
| Магистральный узел | 7–9 ед. | 11–13 ед. | 90–150 минут |
| Специализированный сенсор | 1,5–4 ед. | 2,5–6 ед. | Зависит от региона |
| Региональный концентратор | 5–7 ед. | 8–10 ед. | Один на крупный регион |
В условных купонах:
- базовый узел: 12–18 тысяч;
- стандартный: 24–36 тысяч;
- магистральный: 45–65 тысяч;
- готовые станции у торговца стоят примерно на 40–60% дороже.
Эти цифры являются стартовой настройкой, а не фиксированными значениями.
14.1. Общая стоимость сети
Эффективная сеть из:
- 26–30 сенсорных узлов;
- 6–10 ретрансляторов;
- 3–5 концентраторов;
- специализированных модулей
должна стоить примерно 25–35 часов среднего чистого заработка.
Однако:
- 2 первых узла выдаются или восстанавливаются по заданиям;
- около 20–25% шасси можно найти сломанными;
- часть компонентов приходит как награды;
- научные и фракционные контракты покрывают 25–35% расходов;
- позднее массовая сборка становится дешевле.
Итоговая продолжительность определяется не только деньгами, но и путешествием, переговорами и локальными задачами.
14.2. Продажа данных
Игрок может продавать не «время работы маяков», а уникальные наблюдения.
[
Value = Base \times Novelty \times Confidence \times Risk \times Policy
]
Ценность повышают:
- первый профиль вида;
- миграция после Выброса;
- неизвестная пси-сигнатура;
- подтверждённая активность в опасном регионе;
- данные с нескольких независимых станций.
Ценность снижают:
- повторяемость;
- низкая уверенность;
- большая давность;
- уже проданный набор данных.
Защита от AFK-фарма: обычные повторяющиеся данные почти ничего не стоят. Доход возникает из новых ситуаций и действий игрока.
15. Обслуживание без раздражения
15.1. Состояния узла
| Состояние | Эффект |
|---|---|
| 76–100% | Нормальная работа |
| 51–75% | Небольшой дрейф, ниже точность |
| 26–50% | Один модуль может быть отключён |
| 1–25% | Узел хранит данные, но почти не передаёт |
| 0% | Отключён, но восстанавливаем |
15.2. Источники повреждений
- Выброс;
- пси-буря;
- влага и коррозия;
- нестабильное питание;
- человеческий саботаж;
- повреждение несущей конструкции;
- использование слишком мощного импульса;
- редкая атака мутантов на наземное оборудование.
Мутанты не должны регулярно и целенаправленно нападать на радиовышки. Это нелогично. Исключение — активный высокочастотный сенсор, раздражающий пси-чувствительных существ.
15.3. Правила, защищающие игрока
- Узлы не ломаются, пока игра выключена.
- После одного Выброса физического ремонта требует максимум один узел на стандартной сложности.
- Остальные неисправности решаются:
- удалённым перезапуском;
- заменой предохранителя;
- региональным сервисом;
- автоматической перекалибровкой.
- Глобальное число заметных аварий ограничено директором событий.
- Не более одной обязательной поездки на ремонт за 2–3 часа активной игры.
- Отключённый узел не теряет локально накопленные данные.
- Захваченная фракцией площадка не уничтожает оборудование мгновенно.
- Игрок может оплатить обслуживание союзному технику.
- При зрелой сети обслуживание должно занимать не больше 5–8% игрового времени и 4–7% среднего дохода.
15.4. Региональная автоматизация
После установки концентратора игрок может:
- удалённо перезагружать узлы;
- видеть прогноз износа;
- нанять оператора;
- оплачивать автоматическое обслуживание;
- хранить запасные детали;
- обновлять программные модули сразу на весь регион.
Физически менять сенсор или аккумулятор всё ещё нужно на месте.
16. Награды игроку
16.1. Поиск NPC
Знакомые персонажи
Сеть показывает:
- последний подтверждённый сектор;
- время наблюдения;
- двигался ли человек;
- подтверждён ли биосигнал;
- был ли отправлен SOS.
Она не гарантирует, что NPC всё ещё там.
Публичные специалисты
Некоторые NPC могут добровольно публиковать статус:
- торговец;
- медик;
- проводник;
- техник;
- охотник;
- перевозчик.
Игрок не «сканирует профессию». Он получает объявление из КПК человека.
16.2. Поиск мутантов
Игрок получает:
- область повышенной активности;
- примерный размер стаи;
- вероятное семейство;
- направление миграции;
- повторяющиеся места появления;
- необычный профиль.
Редкий мутант не появляется автоматически ради награды. Сеть сначала фиксирует необычный след, после чего игрок исследует район.
16.3. Планирование маршрута
КПК может отображать:
- активность людей;
- активность мутантов;
- недавние перестрелки;
- давность данных;
- качество связи;
- уровень помех;
- предположительно безопасные временные окна.
Маршрут никогда не получает статус «100% безопасно».
16.4. Динамические задания
Сеть способна обнаруживать или формировать поводы:
- пропавший зарегистрированный сталкер;
- неожиданное прекращение сигналов лагеря;
- движение крупной стаи;
- неизвестный источник помех;
- брошенный работающий КПК;
- редкая миграция;
- временная стоянка торговца;
- скрытая группа;
- попытка взлома сети;
- спор за площадку;
- запрос учёных;
- сигнал проводника;
- повреждённый ретранслятор;
- ложная идентификация;
- поддельный SOS.
Не все события должны быть боями.
16.5. Экономические преимущества
- скидки на электронные компоненты;
- научные гранты;
- улучшенные цены за новые данные;
- бесплатная калибровка;
- более дешёвое региональное обслуживание;
- доступ к редким модулям;
- новые товары у техников;
- доставка тяжёлого оборудования;
- появление специалистов в подключённых лагерях.
Максимальная скидка не должна превышать 10–15% и не должна распространяться на всю экономику игры.
16.6. Влияние на мир
При открытой сети дружественные NPC могут использовать её данные:
- избегать недавно замеченной крупной стаи;
- быстрее реагировать на SOS;
- выбирать более безопасный маршрут;
- обслуживать узлы;
- прибывать в подключённые лагеря.
Это должно влиять на вероятность событий, но не гарантировать выживание всех союзников.
17. Фракции и политика данных
Игрок выбирает не только техническую конфигурацию, но и правила использования сети.
17.1. Приватная сеть
Плюсы:
- никто не получает данные;
- ниже риск политических последствий;
- проще контролировать личности.
Минусы:
- игрок сам оплачивает обслуживание;
- меньше социальных событий;
- меньше фракционных наград.
17.2. Научная сеть
Учёные получают обезличенную экологическую статистику.
Плюсы:
- лучшие классификаторы;
- научные модули;
- гранты;
- защита от пси-помех.
Минусы:
- часть редких данных автоматически резервируется для исследований;
- некоторые фракции подозревают игрока в слежке.
17.3. Открытая сталкерская сеть
Любой подключённый КПК может публиковать сигналы.
Плюсы:
- больше SOS;
- общественное обслуживание;
- поиск проводников и торговцев;
- рост доверия одиночек.
Минусы:
- ложные сигналы;
- попытки взлома;
- сеть проще обнаружить;
- враги тоже могут анализировать активность.
17.4. Силовой контракт
Игрок передаёт движение групп определённой структуре.
Плюсы:
- охрана станций;
- дешёвый ремонт;
- информация о контролируемых территориях;
- силовые награды.
Минусы:
- сеть используется для рейдов;
- часть NPC отключает свои КПК;
- растёт враждебность противников заказчика;
- возможны исчезновения знакомых.
17.5. Чёрный рынок
Плюсы:
- максимальная прибыль;
- доступ к взлому и подмене протоколов;
- редкие компоненты.
Минусы:
- частый саботаж;
- потеря доверия;
- данные могут быть использованы против знакомых NPC.
18. Реиграбельность
18.1. Разные конфигурации сети
- широкое, но неточное покрытие;
- плотная сеть вокруг опасных районов;
- охотничья специализация;
- поиск NPC и социальные протоколы;
- научная классификация;
- скрытая сеть;
- укреплённая сеть;
- коммерческая сеть.
18.2. Альтернативные площадки
На карте существует больше потенциальных площадок, чем нужно для покрытия. Поэтому игрок может выбрать:
- одну большую станцию на опасной вышке;
- три малых узла в безопасных местах;
- договориться с лагерем;
- построить скрытую сеть;
- отказаться от региона и усилить соседние.
18.3. Вариативность прохождений
В начале новой игры можно выбирать один из нескольких наборов условий:
- часть вышек разрушена;
- часть занята другими фракциями;
- разные маршруты миграций;
- разные источники помех;
- разные доступные операторы;
- разные цены и дефицит компонентов;
- альтернативный владелец ключевого чертежа.
Критические сюжетные места остаются авторскими. Случайность меняет условия, а не разрушает драматургию.
18.4. Региональные операторы
В каждом крупном регионе игрок может назначить одного NPC.
| Оператор | Бонус |
|---|---|
| Радиотехник | Быстрее восстановление связи |
| Учёный | Лучше классификация |
| Охотник | Точнее профили мутантов |
| Медик | Приоритет сигналов SOS |
| Проводник | Лучше прогноз маршрутов |
| Контрабандист | Скрытые пути и доставка, но риск утечки |
| Бывший военный | Защита от саботажа |
Это даёт редким NPC долгосрочную ценность.
19. Психология вовлечения
| Принцип | Реализация |
|---|---|
| Автономия | Игрок сам выбирает площадки, политику и специализацию |
| Компетентность | Учится понимать уверенность, шум и топологию сети |
| Связанность | Регистрирует знакомых NPC, помогает лагерям |
| Видимый прогресс | Карта физически заполняется покрытием |
| Эффект вложения | Каждая станция установлена самим игроком |
| Предвкушение | Неизвестный сигнал создаёт цель без точного маркера |
| Переменное вознаграждение | Сигнал может привести к человеку, мутанту, событию или обману |
| Завершение коллекции | Профили видов, регионов и протоколов |
| Признание миром | NPC обсуждают сеть и реагируют на её политику |
Что нельзя использовать
- ежедневные обязательные задания;
- реальные таймеры;
- разрушение сети во время отсутствия игрока;
- постоянные уведомления;
- исчезающие уникальные награды;
- искусственное обнуление покрытия;
- слишком частые ложные сигналы;
- ремонт каждого узла после каждого Выброса.
20. Интерфейс КПК
20.1. Вкладки
Карта сети
- сенсорное покрытие;
- связность;
- давность данных;
- уровень помех;
- перекрытие узлов.
Активность
- люди;
- мутанты;
- неизвестные сигналы;
- публичные сервисы;
- SOS;
- аномальные события.
Узлы
- состояние;
- питание;
- модули;
- локальный кэш;
- прогноз обслуживания;
- качество линии.
Архив
- история региона;
- миграции;
- известные маршруты;
- редкие профили;
- изменения после Выбросов.
Контакты
- знакомые позывные;
- последняя подтверждённая активность;
- публичный статус;
- разрешение на отслеживание.
Чертежи
- рецепты;
- отсутствующие компоненты;
- возможные источники;
- предварительная оценка покрытия.
20.2. Представление данных
Вместо точек используются:
- размытые области;
- секторы;
- диапазоны;
- пунктирные маршруты;
- интервалы времени;
- шкала уверенности;
- отметка последнего обновления.
Пример:
5–7 биологических объектов
Вероятно: мутанты, семейство собачьих — 74%
Движение на северо-восток
Последнее наблюдение: 2 минуты 18 секунд назад
Погрешность: около 140 метров
20.3. Контроль уведомлений
Игрок может включить фильтры:
- только SOS;
- только знакомые NPC;
- только редкие сигнатуры;
- только технические аварии;
- сводка раз в 15 минут;
- полный тихий режим.
Ограничение по умолчанию:
- не более двух обычных уведомлений в час;
- не более одного полноценного динамического события за 45–75 минут;
- критические уведомления только для реальной угрозы или знакомого NPC.
21. Баланс и защита от эксплойтов
| Эксплойт | Защита |
|---|---|
| Постоянный спам активным сканером | Энергетический буфер, зарядка, риск обнаружения |
| Перезагрузка ради нового результата | Детерминированный шум на временное окно |
| Бесконечная продажа данных | Коэффициент новизны и региональный спрос |
| Установка узлов вплотную | Снижение пользы одинакового перекрытия и взаимные радиопомехи |
| Фарм динамических событий | Глобальный бюджет событий и ограниченная новизна |
| Сон ради дохода | Данные без новых состояний мира почти не имеют ценности |
| Точные сведения о выгруженном AI | Только агрегированная симуляция, без чтения намерений |
| Сканирование через любой бетон | Материальное и региональное затухание |
| Определение врагов по фракции | Фракция не равна враждебности |
| Определение смерти NPC | Отдельно показываются устройство и биоподтверждение |
| Дублирование оборудования при сохранении | Транзакционная установка с уникальным GUID |
| Мгновенное покрытие покупкой | Высокая цена, логистика, площадки и калибровка |
22. Основные риски производства
| Риск | Решение |
|---|---|
| Система ломает хоррор и неизвестность | Нет точных точек, есть давность и ложные сигналы |
| Установка повторяется | 10 уникальных «геройских» площадок и набор системных сценариев |
| Несоответствие карты реальному AI | Общий источник данных с симуляцией населения |
| Слишком сложный интерфейс | Прогрессивное раскрытие вкладок |
| Обслуживание масштабируется линейно | Региональные концентраторы и директор аварий |
| Игрок игнорирует систему | Первая демонстрация должна дать очевидную эмоциональную выгоду |
| Игрок получает все технологии рано | Это допустимо, но требует высокого риска или цены |
| Случайные события выглядят искусственно | Большинство событий должно раскрывать уже существующее состояние мира |
| Идентификация кажется магией | Разделить биосигнал, радиоотпечаток и социальную регистрацию |
23. Техническая архитектура Unreal Engine 5.6
23.1. Общий принцип
Система не должна заставлять каждый маяк каждую секунду искать всех NPC в радиусе.
Запрещённый вариант:
GetAllActorsOfClass(...)
ForEachBeacon(...)
ForEachNPC(...)
Также стационарные маяки не должны использовать постоянные SphereOverlap и Tick.
Вместо этого применяется:
- пространственная сетка;
- агрегированные данные о населении;
- предварительно рассчитанные маски покрытия;
- пакетное планирование сканов;
- разные уровни детализации;
- асинхронная обработка;
- событийная модель.
23.2. Рекомендуемая модульная структура
Если архитектура проекта позволяет, систему стоит оформить как отдельный Game Feature Plugin:
ZoneMonitoring/
├── Runtime/
├── Editor/
├── UI/
├── MassIntegration/
├── WorldSimulationIntegration/
└── Tests/
Преимущества:
- слабая связанность с основной игрой;
- независимое тестирование;
- возможность отключения;
- удобная поставка контента;
- проще внедрять компоненты через Modular Gameplay.
23.3. Основные классы
| Класс | Назначение |
|---|---|
UZoneMonitoringWorldSubsystem | Хранит сеть, планирует сканы, маршрутизирует данные |
UZoneInterferenceSubsystem | Помехи, Выбросы, региональные модификаторы |
UZoneSignalEventDirectorSubsystem | Создаёт события из наблюдений |
UPDAScannerComponent | Локальный скан игрока |
USignatureEmitterComponent | Наблюдаемые сенсорные характеристики Actor |
AMonitoringAnchor | Авторская площадка установки |
ABeaconRepresentationActor | Загружаемое физическое представление узла |
UBeaconInstallationComponent | Установка, демонтаж, ремонт |
USocialTransponderComponent | Позывной и публичный статус NPC |
UBeaconModuleDataAsset | Характеристики модуля |
UBeaconChassisDataAsset | Слоты, питание, масса, устойчивость |
UAnchorCoverageDataAsset | Предрассчитанная маска покрытия |
USignatureProfileDataAsset | Сенсорный профиль существа |
UInterferenceProfileDataAsset | Региональные помехи |
UZoneNetworkSaveGame | Состояние сети |
UZoneNetworkViewModel | Данные UI через MVVM |
23.4. Persistent Record узла
Стационарный узел существует как запись данных, даже если его Actor не загружен.
USTRUCT(BlueprintType)
struct FBeaconPersistentRecord
{
GENERATED_BODY()
UPROPERTY()
FGuid BeaconId;
UPROPERTY()
FName AnchorId;
UPROPERTY()
FPrimaryAssetId ChassisId;
UPROPERTY()
TArray<FPrimaryAssetId> ModuleIds;
UPROPERTY()
float Integrity = 1.0f;
UPROPERTY()
float Calibration = 1.0f;
UPROPERTY()
float StoredEnergy = 1.0f;
UPROPERTY()
int64 LastScanGameTime = 0;
UPROPERTY()
int64 LastServiceGameTime = 0;
UPROPERTY()
int64 LastSuccessfulSyncGameTime = 0;
UPROPERTY()
FGameplayTagContainer StateTags;
UPROPERTY()
bool bInstalled = false;
};
ABeaconRepresentationActor лишь визуализирует эту запись, когда соответствующая ячейка World Partition загружена.
23.5. Наблюдаемая сигнатура
Важно создать отдельную границу данных. Сенсорная система не должна получать:
- инвентарь;
- здоровье;
- фракцию напрямую;
- боевую цель;
- планируемый AI-маршрут.
Пример:
USTRUCT()
struct FObservableSignatureSample
{
GENERATED_BODY()
FGuid AnonymousSourceId;
FIntPoint SpatialCell;
uint8 RadioEnergy;
uint8 BioAnomalousEnergy;
uint8 PsiEnergy;
uint8 AcousticEnergy;
uint8 ThermalEnergy;
uint8 MovementIntensity;
FGameplayTagContainer ObservableStateTags;
};
Фракция определяется не через NPC->Faction, а через:
- наблюдаемый протокол;
- зарегистрированный цифровой отпечаток;
- статистическую классификацию.
Это предотвращает случайное превращение системы в чит.
23.6. Структура наблюдения
USTRUCT()
struct FZoneObservation
{
GENERATED_BODY()
FGuid ObservationId;
FIntPoint Cell;
FVector2f EstimatedCenter;
uint16 UncertaintyRadius;
uint8 Confidence;
uint8 EstimatedMinCount;
uint8 EstimatedMaxCount;
uint8 HumanProbability;
uint8 MutantProbability;
uint8 AnomalousProbability;
int64 ObservationGameTime;
FGameplayTagContainer ClassificationTags;
TArray<FGuid> ContributingBeaconIds;
};
Для экономии памяти вероятности и координаты можно квантизировать.
24. Пространственная организация
24.1. Пространственная сетка
Мир разбивается на ячейки, например 128–256 метров.
Каждая ячейка хранит:
- агрегированное количество сигнатур;
- распределение сенсорных каналов;
- известных постоянных NPC;
- уровень помех;
- последнюю историю активности.
Стационарный узел проверяет только ячейки своей маски покрытия.
24.2. Предрасчёт покрытия
Для каждой авторской площадки в редакторе рассчитывается:
- базовая видимость;
- затухание по рельефу;
- радиогоризонт;
- пси-затухание;
- подземные блокировки;
- доступные направления антенны.
Результат хранится в UAnchorCoverageDataAsset в виде:
TBitArrayпокрываемых ячеек;- квантизированного затухания
uint8; - отдельных масок для радио-, био- и пси-каналов.
Преимущества:
- не нужны сотни runtime-трассировок;
- результат стабилен;
- дизайнер видит покрытие в редакторе;
- проще балансировать карту.
24.3. Динамические модификаторы
Runtime учитывает:
- Выброс;
- активную пси-зону;
- включённый подавитель;
- состояние узла;
- погоду, если она влияет на систему;
- временную потерю питания;
- смену ориентации антенны.
25. Алгоритм обнаружения
Упрощённая формула для каждого канала:
[
SNR = Sensitivity + Signature — DistanceLoss — TerrainLoss — Interference — Stealth
]
После этого:
- Сенсор получает набор наблюдаемых каналов.
- Добавляется детерминированный шум.
- Вычисляется вероятность классов.
- Формируется диапазон количества.
- Наблюдения нескольких узлов объединяются.
- Данные сохраняются локально.
- При наличии маршрута связи отправляются в КПК.
Псевдокод:
void UZoneMonitoringWorldSubsystem::ProcessBeaconScan(
const FBeaconPersistentRecord& Beacon,
const FGameTime& Now)
{
const FCoverageMask& Mask = CoverageDatabase.GetMask(
Beacon.AnchorId,
Beacon.ModuleIds);
for (const FZoneCellId CellId : Mask.ActiveCells)
{
const FPopulationSnapshot Snapshot =
PopulationProvider->GetCellSnapshot(CellId);
const FInterferenceSample Interference =
InterferenceSubsystem->GetSample(CellId, Now);
FZoneObservation Observation =
SensorModel.Evaluate(
Beacon,
Snapshot,
Interference,
DeterministicNoiseSeed);
LocalObservationBuffer.Add(MoveTemp(Observation));
}
FuseOverlappingObservations();
CacheOrTransmitBeaconData(Beacon.BeaconId);
}
25.1. Детерминированные ложные сигналы
Чтобы игрок не перезагружал сохранение ради другого результата:
NoiseSeed = Hash(
CellId,
BeaconId,
EmissionEpoch,
ScanTimeWindow
)
В пределах одного временного окна результат остаётся одинаковым.
Повторное наблюдение другим сенсором может подтвердить или опровергнуть сигнал.
26. Работа с сотнями NPC
26.1. Три уровня детализации
LOD 0 — рядом с игроком
- полноценные Actors;
- индивидуальные сигнатуры;
- локальный активный скан;
- ограниченные проверки препятствий.
LOD 1 — загруженный регион
- группы и отдельные важные NPC;
- пространственная сетка;
- обновление несколько раз в секунду или при переходе между ячейками.
LOD 2 — выгруженный регион
- агрегированная симуляция;
- количество по классам;
- направление потоков;
- записи постоянных NPC;
- обновление с большим интервалом.
Удалённый маяк никогда не должен становиться World Partition Streaming Source. Иначе сеть из 30 узлов заставит движок загрузить почти всю карту.
26.2. Интеграция с Mass Entity
Если население использует Mass:
struct FMassSignatureFragment : public FMassFragment
{
uint8 RadioEnergy;
uint8 BioEnergy;
uint8 PsiEnergy;
uint8 AcousticEnergy;
FPrimaryAssetId SignatureProfileId;
};
struct FMassMonitoringCellFragment : public FMassFragment
{
FIntPoint Cell;
};
FMassProcessor обновляет агрегат только:
- при переходе сущности между ячейками;
- при заметном изменении состояния;
- с частотой, зависящей от Mass LOD.
Сенсорные узлы не перебирают Mass-сущности напрямую. Они запрашивают готовый FPopulationSnapshot.
26.3. Интеграция с существующей симуляцией населения
Нужен интерфейс:
class IZonePopulationProvider
{
public:
virtual FPopulationSnapshot GetCellSnapshot(
const FZoneCellId& CellId) const = 0;
virtual bool GetPersistentEntityObservationProxy(
const FGuid& EntityId,
FPersistentEntityProxy& OutProxy) const = 0;
};
Это позволит подключить систему к существующей A-Life-подобной симуляции, не дублируя её.
Важно: интерфейс должен передавать только наблюдаемые признаки. Планируемый пункт назначения AI не должен попадать в прогноз игрока.
27. Предсказание маршрутов
Для прогноза используются:
- последние наблюдённые ячейки;
- скорость;
- повторяемость;
- известные проходы;
- ранее наблюдавшиеся маршруты;
ZoneGraphили собственный граф дорог.
Нельзя брать текущий MoveTarget или скрытую цель StateTree.
Алгоритм
- для отдельных знакомых NPC — фильтр движения и коридор вероятности;
- для групп — переходы между узлами маршрутного графа;
- для миграций — поток через несколько ячеек;
- прогноз ограничивается 5–10 игровыми минутами;
- область неопределённости быстро расширяется.
Если данных мало, прогноз не показывается.
28. World Partition и стриминг
28.1. Источник истины
Состояние узла хранится в UZoneMonitoringWorldSubsystem, а не в Actor.
При загрузке ячейки:
ABeaconRepresentationActorполучаетAnchorId.- Запрашивает
FBeaconPersistentRecord. - Восстанавливает меши, повреждения и модули.
- Регистрирует доступные Smart Objects.
При выгрузке:
- Физическое представление удаляется.
- Состояние остаётся в подсистеме.
- Сканирование продолжается через агрегированные данные.
28.2. Data Layers
Data Layers можно использовать для визуальных состояний:
- разрушенная вышка;
- восстановленная инфраструктура;
- фракционный пост;
- активная сеть;
- последствия сюжетного события.
Но состояние маяка всё равно не должно зависеть только от активности Data Layer.
28.3. HLOD
Крупная вышка входит в обычный HLOD. Маленький сенсорный блок можно:
- не показывать на больших дистанциях;
- заменить простым emissive-индикатором;
- не держать отдельным Actor вне загруженной ячейки.
29. Использование систем Unreal Engine 5.6
World Partition
Используется для:
- физического представления площадок;
- стриминга вышек и лагерей;
- авторских региональных состояний.
Не используется для симуляции удалённых маяков.
Mass Entity
Используется для:
- большого количества удалённых NPC и мутантов;
- агрегации сенсорных профилей;
- LOD населения.
Не обязателен, если проект уже имеет другую симуляцию. Нужен адаптер.
StateTree
Используется для поведения NPC:
- техник идёт ремонтировать узел;
- диверсант пытается отключить станцию;
- дружественный отряд реагирует на SOS;
- противник ищет источник активного импульса.
Не стоит использовать StateTree как хранилище сети.
Smart Objects
Подходят для:
- точки установки;
- ремонта;
- калибровки;
- саботажа;
- обслуживания NPC;
- подключения генератора;
- взаимодействия с антенной.
Gameplay Ability System
Если GAS уже используется проектом:
- активный скан —
Gameplay Ability; - заряд буфера — ресурс;
- пси-помеха —
Gameplay Effect; - раскрытие позиции — временный эффект;
- откат — cooldown-тег.
Не следует хранить в GAS:
- глобальную сеть;
- список узлов;
- покрытие;
- историю наблюдений.
Для этого лучше World Subsystem.
PCG
Подходит для:
- декоративных кабелей;
- локальных следов ремонта;
- небольших тайников компонентов;
- вариантов окружения площадки;
- второстепенных микроретрансляторов.
Не следует процедурно размещать все критические вышки. Авторские площадки должны быть стабильными и проверяемыми.
Gameplay Tags
Примеры:
Sensor.Channel.Radio
Sensor.Channel.Bio
Sensor.Channel.Psi
Sensor.Channel.Seismic
Beacon.State.Online
Beacon.State.Degraded
Beacon.State.Jammed
Beacon.State.CachedOnly
Signature.Class.Human
Signature.Class.Mutant
Signature.Class.Unknown
Interference.Psi
Interference.Emission
Interference.Industrial
Network.Policy.Private
Network.Policy.Scientific
Network.Policy.Open
Network.Policy.Security
Network.Policy.BlackMarket
Primary Data Assets и Asset Manager
Через UPrimaryDataAsset следует хранить:
- определения шасси;
- модули;
- профили существ;
- типы площадок;
- события;
- рецепты;
- кривые стоимости;
- правила классификации.
Это упрощает балансировку без перекомпиляции C++.
CommonUI и MVVM
UI КПК лучше строить через:
CommonUIдля поддержки разных устройств ввода;Model-View-ViewModelдля отделения интерфейса от симуляции;- асинхронные запросы истории;
- кэширование слоёв карты.
Widget не должен напрямую обходить список узлов или NPC.
30. Планировщик сканирования
У маяков нет собственного Tick.
UZoneMonitoringWorldSubsystem содержит очередь:
struct FBeaconScanJob
{
FGuid BeaconId;
double ScheduledGameTime;
int32 Priority;
};
Частота сканирования:
| Тип | Интервал |
|---|---|
| Базовый узел | 90–180 секунд |
| Стандартный | 45–90 секунд |
| Продвинутый | 20–45 секунд |
| Тихий | 120–240 секунд |
| Активный запрос | Немедленно, но с расходом энергии |
За один кадр обрабатывается ограниченное число задач. Тяжёлая математика выполняется через UE::Tasks на копиях POD-данных.
Правило потокобезопасности:
- UObject не читаются в фоне;
- на основном потоке формируется снимок;
- фон рассчитывает сенсорную модель;
- результат возвращается и публикуется на основном потоке.
31. Граф связи
Сеть представляется графом:
- узлы — станции и концентраторы;
- рёбра — доступные радиолинии;
- вес ребра — качество связи.
Граф пересчитывается только при:
- установке или демонтаже;
- повреждении;
- смене ориентации;
- Выбросе;
- включении подавителя;
- существенном изменении помех.
Для поиска лучшего пути используется Dijkstra или его упрощённая версия.
Если путь до корневого концентратора отсутствует:
- данные остаются в кэше;
- UI показывает время последней синхронизации;
- при восстановлении связи передаётся сжатая история.
32. Хранение истории
Не нужно сохранять каждую позицию каждого NPC.
Для обычных региональных данных используется кольцевой буфер:
USTRUCT()
struct FCellHistoryBucket
{
int64 StartGameTime;
uint8 HumanMin;
uint8 HumanMax;
uint8 MutantMin;
uint8 MutantMax;
uint8 Confidence;
FGameplayTag DominantActivity;
};
Рекомендуется:
- 48–96 временных корзин на активную ячейку;
- более старые данные агрегировать;
- точную историю хранить только для знакомых уникальных NPC;
- ограничить реестр последних наблюдений, например, 128–256 персонажами.
33. Сохранение и загрузка
Сохраняются:
- версии прошивки;
- открытые чертежи;
- найденные площадки;
- установленные узлы;
- модули;
- состояние и калибровка;
- связность;
- краткая история;
- реестр контактов;
- политика сети;
- активные события;
- глобальный seed помех;
- эпоха последнего Выброса.
Не сохраняются:
- прямые указатели на Actors;
- полные списки всех временных NPC;
- runtime-кэш UI;
- каждое отдельное измерение.
Защита от дублирования
Установка должна быть транзакционной:
- Резервируется комплект.
- Создаётся
BeaconId. - Запись добавляется в подсистему.
- Предмет удаляется из инвентаря.
- При ошибке транзакция откатывается.
34. Событийный директор
UZoneSignalEventDirectorSubsystem слушает опубликованные наблюдения через GameplayMessageSubsystem.
Типовой Data Asset события содержит:
- обязательные теги;
- минимальную уверенность;
- тип региона;
- нужную историю;
- запрещающие условия;
- глобальный cooldown;
- региональный cooldown;
- вес;
- последствия;
- варианты награды.
Предпочтительная структура контента
- 60% событий раскрывают уже существующее состояние мира;
- 25% создают модульную встречу;
- 15% являются редкими авторскими цепочками.
Это снижает ощущение, что сеть искусственно создаёт награды из воздуха.
35. Интеграция с квестовой системой
Квесты должны проверять способности, а не конкретный порядок действий.
Плохое условие:
Установить Item_Beacon_Tier2 в Anchor_07
Хорошее условие:
Network.Coverage >= 0.10
HasConnectedRegions >= 2
HasCapability(Network.Triangulation)
HasObservation(Signature.Mutant, Confidence >= 0.70)
Преимущества:
- игрок может пройти систему раньше;
- альтернативные площадки работают;
- задания не ломаются после демонтажа;
- не требуется повторять уже выполненное;
- легче поддержать нелинейность.
36. Производительность
Целевой стресс-тест
- 64 установленных узла;
- 10 000 Mass-сущностей или их агрегатов;
- 2 000 Actor-сущностей в загруженных областях;
- несколько сотен активных ячеек истории;
- 9 региональных концентраторов;
- Выброс с глобальным изменением помех.
Целевые ограничения
- средняя стоимость мониторинга: менее 0,2–0,4 мс CPU на кадр;
- редкий пик пакетного расчёта: менее 2 мс;
- память системы: до 10–20 МБ без UI-текстур;
- не более 1–2 тяжёлых scan-job за кадр;
- открытие карты не должно инициировать полный пересчёт мира.
Инструменты
- Unreal Insights;
- CSV Profiler;
- Mass Debugger;
- Automation Tests;
- Functional Tests;
- World Partition streaming visualization.
37. Авторский инструментарий
Нужен отдельный редакторский режим покрытия.
Дизайнер размещает AMonitoringAnchor и задаёт:
- стабильный
AnchorId; - тип площадки;
- доступные шасси;
- базовое питание;
- владельца;
- набор локальных испытаний;
- условия открытия;
- профиль помех;
- ориентацию антенны.
Команда BuildMonitoringCoverage:
- Проверяет уникальность ID.
- Рассчитывает маски.
- Создаёт превью.
- Показывает перекрытия.
- Считает потенциальный процент покрытия.
- Проверяет возможность собрать сеть без обязательной единственной площадки.
- Выдаёт предупреждение о слепых или слишком выгодных узлах.
38. Контентный объём AAA-версии
Полная версия
- 42–48 площадок;
- 10 уникальных «геройских» площадок;
- 18 гибридных площадок с комбинациями условий;
- 14–20 системных площадок;
- 6 типов шасси;
- 15–20 аппаратных модулей;
- 4 ветки прошивки;
- 20–30 семейств динамических событий;
- 4–5 политик сети;
- 8–10 региональных проектов;
- 5–8 возможных операторских архетипов;
- несколько финальных решений.
Вертикальный срез
Для первоначальной проверки достаточно:
- локального сканера;
- трёх площадок;
- одного ретранслятора;
- двух профилей мутантов;
- одного знакомого NPC;
- одного Выброса;
- шести динамических событий;
- карты покрытия и давности;
- одного регионального концентратора.
39. Метрики для плейтестов
| Метрика | Цель |
|---|---|
| Время от получения сканера до первой понятной пользы | До 10 минут |
| Время до первой станции | До 60–90 минут |
| Средний интервал между установками в середине игры | 50–80 минут |
| Доля времени на обслуживание | Не более 5–8% |
| Физические поездки на ремонт | Не чаще одной за 2–3 часа |
| Частота обычных уведомлений | Не более двух в час |
| Частота значимых событий | Одно за 45–75 минут |
| Ложные сигналы на низком уровне | 10–15%, явно помечены низкой уверенностью |
| Ложные сигналы на высоком уровне | 2–5% |
| Эффективное финальное покрытие | 88–93% |
| Нормальное время завершения сети | 45–70 часов |
| Раннее скоростное завершение | 30–40 часов, при высоком риске |
40. Итоговая формула системы
«Контур» должен быть не коллекцией вышек, а системой, в которой:
- Игрок физически исследует Зону.
- Находит инфраструктуру.
- Собирает и конфигурирует оборудование.
- Создаёт сеть со своей топологией.
- Получает несовершенные, но полезные данные.
- Использует их для поиска людей, событий и мутантов.
- Выстраивает отношения с NPC и фракциями.
- Решает, кому позволено видеть Зону через его сеть.
- Поддерживает оборудование без превращения игры в симулятор ремонта.
- В финале получает не всеведение, а собственный стратегический слой мира.
Главный результат для игрока должен ощущаться так:
В начале Зона для него — набор неизвестных маршрутов и слухов.
В середине — пространство, где он начинает замечать связи и закономерности.
В конце — живая карта людей, миграций, конфликтов и слепых пятен, которую он построил собственными руками.
При этом Зона всё равно остаётся опаснее и сложнее любой карты.