Skip to content

kingxl111/game-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reactor Breach

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-модули. Отдельную готовую сборку репозиторий не хранит, проект открывается и запускается из редактора.

Как запустить

  1. Открой в Unity папку game-dev, то есть ту, где лежат Assets, Packages и ProjectSettings.
  2. Дождись первого импорта проекта. Если Unity попросит импортировать ресурсы TextMeshPro, выбери Window -> TextMeshPro -> Import TMP Essential Resources.
  3. Открой сцену Assets/Scenes/Level_01_Tutorial.unity.
  4. Если сцены нет, она пустая или нужно пересобрать уровень заново, в верхнем меню Unity нажми ReactorBreach -> Build Level 1 (Tutorial).
  5. После сборки открой 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 и собирать проект с нее. Там добавлен небольшой функционал для поворота монстра к игру лицом в независимости от того, где находится игрок. В основной версии игры монстер - это капсула, поэтому такой потребности реализовывать там такую фичу не было.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors