Reactor Breach — небольшой 3D-прототип на Unity про аварийный сектор космической станции. По жанру это физическая головоломка от первого лица с лёгким хоррор-настроением: нужно не стрелять во всё подряд, а пользоваться инструментами, двигать объекты, открывать проходы и не подпускать к себе тварей слишком близко.
Сейчас в проекте собран обучающий уровень. Он проходит через несколько отсеков и по очереди показывает три основные механики: сварку, изменение массы и монтажную пену.
Движок: Unity 6.3 LTS 6000.3.8f1
Рендер: Universal Render Pipeline
Платформа: Windows
Язык: C#
Основные пакеты уже лежат в Packages/manifest.json: URP, Input System, AI Navigation, Cinemachine, TextMeshPro, Shader Graph, ProBuilder и стандартные Unity-модули. Отдельную готовую сборку репозиторий не хранит, проект открывается и запускается из редактора.
- Открой в Unity папку
game-dev, то есть ту, где лежатAssets,PackagesиProjectSettings. - Дождись первого импорта проекта. Если Unity попросит импортировать ресурсы TextMeshPro, выбери
Window -> TextMeshPro -> Import TMP Essential Resources. - Открой сцену
Assets/Scenes/Level_01_Tutorial.unity. - Если сцены нет, она пустая или нужно пересобрать уровень заново, в верхнем меню Unity нажми
ReactorBreach -> Build Level 1 (Tutorial). - После сборки открой
Level_01_Tutorialи нажми Play.
Билдер уровня создаёт не только геометрию сцены, но и нужные ScriptableObject-настройки, Input Actions, менеджеры, UI, игрока, двери, плиты, врагов и NavMesh. Поэтому сцену можно восстановить прямо из редактора без ручной расстановки объектов.
W A S D— движение- мышь — обзор
Space— прыжокLeft Shift— бег1,2,3— выбрать инструмент- колесо мыши — переключить инструмент
ЛКМ— основное действиеПКМ— вторичное действиеEsc— пауза или закрытие подсказки
На экране есть прицел, здоровье, текущая цель, индикатор инструментов и короткая подсказка по выбранному инструменту.
Игрок появляется в учебном секторе станции Кольцо-7. Задача уровня простая: пройти через аварийные отсеки и добраться до главного пульта управления. По пути встречаются пропасти, двери, нажимные плиты, физические ящики, мосты, технические палубы и враги, которые реагируют на шум и вибрации.
Главная идея прототипа — инструменты работают через физику:
- Сварка соединяет два свариваемых объекта. Ей можно закрепить балку к анкеру и сделать временный мост. У сварки есть энергия, лимит активных соединений и время жизни соединения.
- Гравитация меняет массу объекта.
ЛКМделает предмет тяжёлым,ПКМвременно облегчает его. Это нужно для нажимных плит и для того, чтобы сдвигать ящики, которые в обычном состоянии плохо поддаются игроку. - Пена ставится на поверхность, создаёт зону замедления и может фиксировать медленно движущиеся физические объекты. Её удобно использовать против врагов, чтобы выиграть время.
Двери открываются через зелёные панели или через плиты, которые считают реальную суммарную массу Rigidbody в зоне. Враги ходят по NavMesh, слышат шаги, бег, удары инструментов и столкновения объектов. В упор они почти сразу убивают, поэтому уровень лучше проходить аккуратно.
Уровень начинается с небольшого хаба и дальше ведёт игрока по учебным отсекам.
В отсеке A на полу разрыв. Рядом лежат длинные балки, а на другой стороне стоят анкеры. Нужно выбрать сварку, соединить балку с анкером, перейти через пропасть и открыть дверь зелёной панелью. Падение в разрыв смертельно.
В отсеке B появляется задача на массу. Дверь дальше открывается жёлтой плитой: нужно поставить на неё куб и утяжелить его гравитацией. В этой же зоне патрулирует Ползун. Он включается в сценарий после подсказки, реагирует на вибрации и заставляет не возиться с кубами слишком спокойно.
В отсеке C механики начинают смешиваться. Это вертикальный техотсек с несколькими палубами: снизу нужно сдерживать врага пеной, выше — открыть проход через плиту и тяжёлый куб, а на верхнем уровне снова собрать сварочный мост через разрыв. После этого остаётся добраться до панели, открыть дверь в командный отсек и выйти к финальному пульту.
Финал срабатывает как цель типа Reach: достаточно дойти до зоны главного пульта.
Assets/Scripts/Core— состояние игры, цели уровня, переходы сцен.Assets/Scripts/Player— движение игрока, здоровье, ввод и переключение инструментов.Assets/Scripts/Tools— сварка, гравитация, пена и общая логика инструментов.Assets/Scripts/Environment— двери, плиты, свариваемые объекты, пена, панели, интерактивные элементы.Assets/Scripts/Enemies— базовая логика врагов, состояния AI, реакция на вибрации.Assets/Scripts/UI— HUD, подсказки, меню паузы, экран смерти.Assets/Editor/Level1Builder.cs— редакторский скрипт, который собирает первый уровень одной командой.Assets/ScriptableObjects— конфиги инструментов, врагов и целей уровня.
Проект пока выглядит как рабочий прототип: часть ассетов и визуала сделана простыми примитивами, зато основные системы уже связаны между собой и уровень можно пройти от старта до финального пульта.
Геймплей представлен в файле game-dev\gameplay-demo.mp4. Важная оговорка - в main ветке версия игры без модельки монстра, которого можно увидеть в демонстрации. В основной версии игры там капсулы в качестве опенсорс ассета. Чтобы запустить версию игры с ассетом монстра, нужно перейти на ветку feature/graphics и собирать проект с нее. Там добавлен небольшой функционал для поворота монстра к игру лицом в независимости от того, где находится игрок. В основной версии игры монстер - это капсула, поэтому такой потребности реализовывать там такую фичу не было.