
Дневники разработчиков

Последние пару месяцев мы были заняты изменением графического пайплайна после перехода на Unity 2019.4 и интеграцией с Playfab. Обо всем по порядку.
LWRP -> URP
В новой версии Unity разработчики отказались от развития Light Weight Render Pipeline и предоставили игроделам Universal Render Pipeline. Пайплайн обещал быть быстрым, удобоваримым и простым в использовании.
В действительности URP (как и в LWRP) имеет достаточное количество недоработок и багов, которые приходится фиксить творчески. Адаптация ассета Sharp Shadows, которым мы пользуемся для отрисовки четких теней, стала возможна после того, как Unity пофиксили критическую проблему URP, из-за которой поддержка Sharp Shadows была невозможна в новой версии движка. Отделались малой кровью - игра быстро вернула былые краски без ущерба производительности.
Второй проблемой стала некорректная обработка стандартным шейдеров эмбиента - реакции цветов на глобальное освещение и skybox. Мы устранили ее написав дубликат стандартного коробочного шейдера, который корректно обрабатывает данные эмбиента. Написали, кстати, используя Shader Graph - стандартный инструмент Unity, который позволяет конструировать шейдеры с помощью нод.
Из плюсов перехода на новую версию стоит отметить поддержку SRP (Scriptable Render Pipeline - читать тут), благодаря которой мы получили значительную прибавку к производительности. В его настройке есть некоторые подводные камни. Чтобы убедиться, поддерживает ли шейдер SRP необходимо заглянуть в его конфиг:

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

Без постобработки стали бросаться в глаза черные впадины на бэкграунде, скудный эффект света, тусклые цвета от светлых поверхностей
В итоге мы пришли примерно к той же картинке со значительным приростом к перфомансу - около 50 drawcall'ов без учета неоптимизированного скининга собираемого из кусков персонажа.
Playfab
Так как у нас игра сетевая, данные игрока и сущности необходимо хранить в каком-то сетевом решении, менеджить их с клиентом. Для этого мы используем Playfab, сервис Microsoft, который представляет собой коробочную игровую базу данных с заготовленной конфигурацией под основные фичи любой игры.
Радостной новостью разработчика будет тот факт, что ценник Playfab гибкий и до определенного уровня данных, запросов и месячного CCU (количества играющих) сервис бесплатен для использования.
Сейчас игра умеет хранить все наши сущности, выдавать их с сервера на клиент, обрабатывать команды и возвращать эти данные в хранилище.
В ближайшее время мы донастроим шероховатости, вытащим все уровни на глобальную карту и с высокой вероятностью начнем двигаться в сторону закрытой альфы.
Оставайтесь с нами!
За подписон вконтакте респект и увОжение! - ТЫК
Смотрите также:
Комментарии
Здесь еще никто не оставил комментарий
<a href= http://mosros.flybb.ru/viewtopic.php?f=2&t=635>Процесс получения диплома стоматолога: реально ли это сделать быстро?</a>