Soviet Project — Хоррор игра о недалеком прошлом

Однажды я долго искал интересные 3D игры в Play Market и к своему сожалению не нашел почти ничего интересного.

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

Мне показалось странным, сейчас в мобильные телефоны устанавливают мощные графические процессоры, а качество графики сомнительное.

Игра Soviet ProjectИгра Soviet Project

Позже оказалось не все так просто, запустив Unity, настроив проект на URP, добавив пост обработку, несколько моделей и пару источников света с тенями я получил примерно 5 кадров в секунду на своем телефоне.

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

Про игру

Мы вместе решили сделать свою игру в духе Silent Hill, но в советском сеттинге.

Квартира из игры Soviet ProjectКвартира из игры Soviet Project

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

Будут присутствовать монстры — куклы. (разумеется, это же хоррор, куда же без них). Но не всё так просто, им можно будет дать отпор.

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

Всего в игре будет два варианта прохождения совершенно независимых.

Карта представляет собой полуоткрытый мир. Можно будет зайти во многие здания находящиеся в городе, все места по своему уникальные.

В кресле и с гитарой.В кресле и с гитарой.

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

Разработка

Для начала я провел тот же тест, но среди разных версий Unity и наиболее быстрой оказалась 2018 версия движка.

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

Мы подобрали оптимальные настройки для запекания света и доработали модели чтобы свет запекался максимально правильно.

КПП и шейдер тумана.КПП и шейдер тумана.

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

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

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

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

В движке Unity есть доступ к низкоуровневым функциям отрисовки графики через класс GL. Написав свой шейдер обработки изображений и отрисовав его на низком уровне удалось получить быстрые эффекты.

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

Настройки графики.Настройки графики.

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

Для отрисовки шрифта больше всего приглянулась программа Fontographer. В будущем мы решили перевести игру на несколько языков и помимо русских и латинских букв я отрисовал все буквы юникода.

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

Часть улицы и шейдер огня.Часть улицы и шейдер огня.ШрифтШрифт

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

Самый тяжелый скрипт используется на куклах, но и он показал себя отлично даже на самых слабых телефонах.

## Итог

На данный момент игра готова на 80% и в скором времени она выйдет под платформы Android и IOS.

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

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

Все последние новости по игре мы с другом публикуем в нашей группе ВК.

© Habrahabr.ru