Absylon 7 - Дневник разработки. Часть 1: Общие концепции и работа с дизайном

Всем доброго времени суток.

Уже совсем скоро закончится прием работ на IndieCup S'21, в котором мы решил принимать участие, и я решил рассказать о том, как велась и ведется разработка нашего проекта.

Сегодня хотелось бы рассказать об общей концепции игры, а также поделиться аспектами работы над уровнями и геймплеем. Поскольку это наш первый проект для PC (раньше мы занимался в основном мобильными и социальными играми), для нас это весьма интересный опыт, которым я хотел бы поделиться в этой серии статей.

Absylon 7
Absylon 7

Начнем с идеи

Изначально, нам казалось прикольным и простым начать погружение в мир разработки PC-игр с хоррора, но чем больше мы погружались в работу над проектом, тем больше понимали, что это далеко не самый простой жанр, но от того, работа была только интереснее.

Сначала мы начали с проработки сюжета и базовых механик, а потом пришли к тому, что нужно сильно погрузиться в работу со звуком, освещением и окружением, поскольку оно так же важно (если не важнее), чем базовая концепция игры.

Сюжет игры в двух словах очень прост:

Главный герой - бывший бизнесмен Сергей Валин. Лишившись своего капитала, он решил продать имущество и заняться сельским хозяйством в отдаленных европейских деревушках. Переехав в деревню Абстон, по началу все шло прекрасно, и нашему герою даже удалось сдружиться с местными и наладить небольшой бизнес. Но однажды ночью он просыпается от стука в дверь и дальше все идет совсем не так, как он ожидал.

Absylon 7
Absylon 7

В его доме твориться какая-то чертовщина. Лампы гаснут, стекла бьются, повсюду какие-то странные звуки. До того, как покинуть свою спальню, герой заметил странное существо, и (решив, что ему привиделось), решил проследовать за ним, а заодно посмотреть, что же все таки происходит. Поднявшись на чердак - он замечает пауко-образное существо, но никак не может до него добраться, поскольку то постоянно куда-то исчезает.

Absylon 7 - Дневник разработки. Часть 1: Общие концепции и работа с дизайном

Решив, что стоит все же спросить у соседей, что здесь происходит, а также как часто в таких местах люди видели странные вещи - герой спускается на улицу, но и там происходит абсолютно то же самое. Дойдя до дома одного из соседей, Сергей замечает, что они мертвы, а в соседнем амбаре загорается свет и кто-то блуждает.

Absylon 7 - Дневник разработки. Часть 1: Общие концепции и работа с дизайном

Таким образом, герою предстоит изучать деревню, встречаясь со все более странными вещами и осознавая, что он попал в какое-то адское место.

Покинув свой родной дом, попутно убегая и сражаясь с неизвестными существами, герой доходит до входа в церковь, где обнаруживает открытый подвал из которого доносятся крики о помощи. Спустившись в этот подвал он понимает, что попал в странную лабораторию, в которой ученные проводили эксперименты над животными и другими людьми, чтобы разработать вакцину от вируса KDJ-23, но видимо что-то пошло не так.

Герою предстоит разобраться, что же происходило в этой лаборатории и как выбраться из этого места, чтобы уехать от него как можно дальше.

Absylon 7
Absylon 7

Работа над локациями

Работа над локациями, как и вся работа над игрой ведется на движке Unity. Для более качественного и управляемого рендера мы используем HDRP.

Absylon 7 - Дневник разработки. Часть 1: Общие концепции и работа с дизайном

Локации в игре разбиты на карты. В некоторых местах они линейны, а где-то дают больше свободы. Карты в свое время разбиты на Чанки (части), что позволяет выгружать/загружать объекты в памяти.

Absylon 7
Absylon 7

На примере первой локации видно, что дом главного героя это определенный чанк (часть) локации, которая будет выгружена, когда игрок покинет это место и подгружена обратно, когда он вернется. За подгрузку отвечает специальный триггер (Segment Loader). Также для ускорения работы мы просчитываем Occlusion Culling и создаем для каждого объекта свои LOD.

Так выглядит подгруженный сегмент:

Аbsylon 7 - подгруженный сегмент
Аbsylon 7 - подгруженный сегмент

А так, выгруженный из памяти:

Absylon 7 - Дневник разработки. Часть 1: Общие концепции и работа с дизайном

При помощи системы с подгрузкой сегментов, LOD и Occlusion Culling, мы можем создавать открытые локации с бесшовной загрузкой для переходов интерьера / экстерьера. Что дает нам больший полет для творчества.

Освещение и динамика

Пожалуй, одна из важных частей в работе над проектом - это работа над его освещением. Для этого, мы прорабатываем где и как будет стоять источник света, будет ли он динамическим или статическим, что может выключить его (возможно, какое-то событие или выключатель на стене, а может и все вместе).

Absylon 7 - Дневник разработки. Часть 1: Общие концепции и работа с дизайном

Но помимо этого, нужно и учитывать окружение. Также проводить для него настройки статичности или динамичности, настраивать качество теней и их отбрасываемость, а также десятки других параметров, чтобы добиться более-менее хороших результатов. В этом также отлично помогают Light Probes и Reflection Probes (пробы света и отражений).

Работа со светом в Absylon 7
Работа со светом в Absylon 7

Ну и финальное - это запекание LightMap (карт освещения), работа с пост-обработкой и финальными штрихами (подключением скрипта выключателя, к примеру).

Контроллер персонажа

Вообще, контроллер состоит из множества маленьких деталей, которые работают достаточно по-разному и могут зависеть от многих параметров. Но я просто опишу вкратце, что умеет главный герой.

1) Бегать (с затратами энергии), ходить, красться;

2) Подобрав оружие (которое найти очень тяжело), может стрелять;

3) Может поднимать различные физические предметы и перемещать их (к примеру, для решения головоломок);

4) Приближать / отдалять камеру, чтобы искать мелкие предметы (например, ключи в куче мусора);

5) Взаимодействовать с интерактивными предметами (выключатели, двери, кнопки и многое другое);

6) Издавать звуки (шаги, голос), в зависимости от ситуации;

7) Включать / выключать фонарик;

Absylon 7 - контроллер персонажа
Absylon 7 - контроллер персонажа

Да, это достаточно простой контроллер, но большего нам и не нужно.

Звуковое сопровождение

Одна из самых тяжелых, но и важных частей в игре - работа над звуком. Чтобы добиться хорошего результата нам пришлось учитывать и разработать несколько систем.

1) Музыка (может микшироваться в зависимости от ситуации на сцене);

2) Звуки физических объектов при столкновении / падении в разных вариациях для каждого объекта;

3) Звуки интерактива (выключатели, ключи, ламы и прочее);

4) Заскриптованные звуки и триггер-зоны (когда звук включается при определенном условии, например для испуга игрока);

5) Звуки шагов по разным поверхностям. Каждая поверхность в игре имеет свой физический материал, от которого подстраивается свой звук хотьбы / бега.

Все это создает более полную картину погружения, и может между собой сочетаться, создавая не предусмотренные ситуации (игрок случайно задел топорик на подоконнике, когда проходил мимо, тот упал, издав звук и испугал игрока).

Триггеры и события

Для прогресса в игре, включения света, заскриптованных сцен, звуков, физических явлений и систем частиц, была создана система триггеров. Каждый из них дает нам невидимый рычажок, может строиться в последовательность или же случаться рандомно, что также повышает некую внезапность для игрока.

Absylon 7 - Дневник разработки. Часть 1: Общие концепции и работа с дизайном

Первый геймплейный трейлер

На данный момент у нас имеется демо-версия, которая будет доступна в рамках Indie Cup S'21, а также первый геймплейный трейлер, который я оставлю здесь на обсуждение.

Буду ждать вашего фидбека, пожеланий и предложений. Увидимся в следующей статье!

И конечно, нам будет приятно, если вы будете вступать к нам в сообщество:

1515
7 комментариев

Люблю хоррора. Сил вам довести дело до конца.
На сколько я понял причина монстров это неудачный поиск вакцины. Лаборатория в подвалах церкви звучит интересно. Не совсем понятно, почему в доме происходят глюки с вещами. Учёные под церковью работали с сатаной? Или это чисто глюки героя, после вакцинации?

1
Ответить

Пока раскрывать все детали не стал, иначе будет не интересно 🤣

1
Ответить

Комментарий недоступен

1
Ответить

молодцы, пилите дальше. Юнити с HDRP та еще попаболь. Но вы не унывайте.

1
Ответить

Ну Unity впринципе может отдавать болью, если не знать некоторых нюансов, но в целом, терпимо)

Ответить

Выглядит круто, желаю успехов! На мой взгляд делать подъем камеры сразу в начале движения - не самый удачный вариант, потому что когда герой делает маленький шаг и останавливается камера все равно делает подъем, получается если игроку страшно, и он проходит комнату маленькими шажками и шарахается от каждого звука - то камера у него будет трястись знатно

1
Ответить

Интересное замечание. Можно попробовать учитывать дистанцию. Спасибо

Ответить