Однажды я долго искал интересные 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.

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

Игровой процесс
Игровой процесс

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

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

Комментарии (29)


  1. Kotman
    31.01.2022 21:35
    +3

    Выглядит как первый "Сталкер", только на телефоне. Не искушённый игроман, потому впечатляет!


    1. MrGh0st Автор
      31.01.2022 21:46
      +2

      Да визуально немного похоже получилось, может потому что в прошлом слишком много играли в сталкера :)


      1. Kotman
        01.02.2022 10:30
        +2

        В этом есть плюс. Какое-то количество подобных мне неигроманов захочет установить и поиграть.


    1. OptimumOption
      02.02.2022 12:04

      Ага, тоже сразу про «Сталкера» подумал :)


    1. Rub_paul
      02.02.2022 23:00

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


  1. motoroller95
    31.01.2022 23:16
    +1

    сколько по времени делал игру?


    1. MrGh0st Автор
      01.02.2022 10:17
      +2

      Больше года, саму карту начали делать еще в 2020ом.


  1. shybovycha
    01.02.2022 05:54
    +20

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

    Раздел "разработка" разочаровал больше всего. Добавили бы деталей во все самые интересные этапы:

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

    Как мерили производительность? Что было медленно, а что быстро? Что приоритезировали при измерениях?

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

    Как модели оптимизировали? О каких наложениях идет речь? Какого прироста производительности добились?

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

    Что же это за настройки такие? Как свет запекался в ситуациях "правильно" и "неправильно"? Как это выглядело? Какая производительность была / стала?

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

    Какие шейдеры реализовывали? Какие были ньюансы реализаций?

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

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

    Какую проблемму решали? Как решили? Неужто просто убрали смешивание текстур?

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

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

    Какие эффекты в игре присутствуют? Как их реализовывали в конце-концов?

    В общем, мне не понравилась статья.

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

    Пока что я бы поиграл только чтобы понять что это такое и поглядеть на картинку (как кто-то выше написал, напоминает ламповый "сталкер").


    1. MrGh0st Автор
      01.02.2022 10:43
      +7

      Как мерили производительность? Что было медленно, а что быстро? Что приоритезировали при измерениях?

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

      Как модели оптимизировали? О каких наложениях идет речь? Какого прироста производительности добились?

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

      Что же это за настройки такие? Как свет запекался в ситуациях "правильно" и "неправильно"? Как это выглядело? Какая производительность была / стала?

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

      Какие шейдеры реализовывали? Какие были ньюансы реализаций?

      Все. В игре не осталось стандартных шейдеров от юнити, кроме UI элементов. Они и так довольно быстро работают. Ньюансов тоже было довольно много, начиная с функции clip которую половина телефонов долго рисуют а половина быстро.

      Какую проблемму решали? Как решили? Неужто просто убрали смешивание текстур?

      Сделали, как в старых ПК играх, тайлинг текстур без смешивания.

      Какие эффекты в игре присутствуют? Как их реализовывали в конце-концов?

      Bloom, Шум, туман, коррекция цветов, гаммы, туман, антиалиасинг.

      В общем, мне не понравилась статья.

      Это моя первая статья на хабре, думаю в будущем будет лучше.


      1. shybovycha
        02.02.2022 05:20
        +1

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


  1. OpenMind4423
    01.02.2022 09:29
    +2

    Интересно, почему выбрали Unity, ещё и 2018 года? Оно на компе тормозит, а на телефоне вообще жуть.


    1. MrGh0st Автор
      01.02.2022 10:20
      +3

      Откуда такие данные?... Именно на телефоне скомпилированная сцена с моделями быстрее всего работала какраз в 2018 версии.


      1. OpenMind4423
        01.02.2022 12:07
        +2

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


        1. MrGh0st Автор
          02.02.2022 22:59

          Какие например? Мобильные игры на 80% наверное написанны на юнити)


          1. OpenMind4423
            03.02.2022 09:29

            мобильные игры на Юнити видны издалека: тормозит на любом телефоне, весит несколько сотен МБ, несмотря на то что это платформер с пиксельной графикой. Если нужно было получить лучшую картинку, то я бы использовал либо Unreal, либо Godot, который плохо покажет себя на больших сценах и отлично на маленьких. Да и шейдеры там писать одно удовольствие для души.


  1. someoneinthebox
    01.02.2022 09:40

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


    1. Ra-Jah
      01.02.2022 09:46
      +4

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


      1. Kotman
        01.02.2022 10:35
        +10

        В 99 году подсел на Railroad Tycoon. А работал я тогда оператором на ПТО РЖД и был рабочий компьютер с w98. Я таскал из дома звуковую карту в рабочий комп и гонял в Магната в ночные смены. Пришли колеги по смене передать данные о неисправных вагонах, а я сижу составы мышкой собираю. Небольшая пауза и слышу за спиной: "Ты что, дебил? Тебе на работе поездов мало?" ????????????


        1. Earthsea
          01.02.2022 13:38
          +3

          Небольшая пауза и слышу за спиной: "Ты что, дебил? Тебе на работе поездов мало?"

          По теме:


          1. Kotman
            01.02.2022 14:05
            +1

            Не встречал ранее этой картинки. :-)

            Ну вот как у меня было с Магнатом. До сих пор переигрываю порой.


      1. Dismal
        01.02.2022 12:59
        +1

        Лучше симулятор кредитов и ипотеки!


        1. LyohaProto
          02.02.2022 18:48

          Animal Crossing :)


    1. MrGh0st Автор
      01.02.2022 10:25
      +4

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


  1. alnite
    01.02.2022 10:24
    +1

    А вы игру в качестве хобби делаете? Или же, как видится, в качестве работы?

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

    Впрочем, в любом случае - удачи!


    1. MrGh0st Автор
      01.02.2022 13:07
      +1

      По началу было как хобби, но со временем переросло почти в работу))) Довольно много времени уходит теперь на разработку.

      Основная аудитория как оказалось мужчины до 24 лет. Спасибо :)


  1. besska
    01.02.2022 14:20

    А сколько человек у вас в команде?


    1. MrGh0st Автор
      01.02.2022 19:02
      +1

      Вообще всего 7 человек(тестирование, помощь с дизайном, часть звуков и т.п.), но основную работу делаем вдвоем.


      1. besska
        01.02.2022 22:38

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


        1. MrGh0st Автор
          02.02.2022 08:27
          +1

          Спасибо,мы стараемся, чтобы игра была интересной и требовала не самые топовые телефоны.