Absylon 7 - Дневник разработки. Часть 2: Продолжаем шлифовку уровня. Второе демо игры
Всем привет. В сегодняшней записи мы продолжаем шлифовать наш уровень в игре, а также запускаем второе демо игры.
Предисловие
В прошлом выпуске я рассказал о базовых принципах работы над локациями и немного о сюжете. В этот раз я расскажу о детализации уровня, катсценах и первой оптимизации.
До этого мы уже выпустили первое демо игры, где показали базовые примеры уровня. Да, там была плохая оптимизация, некоторые глюки/баги и низкая детализация. В этой статье - мы практически в Live-режиме меняем это в лучшую сторону.
Детализация уровней
Для повышения детализации на уровнях - мы используем несколько подходов. Первый - добавление деколей (мусор, кровь, грязь, камешки, дощечки) и субдеталей у текстур. Помимо этого - мы добавляем интерактивные объекты, которые можно потаскать, побросать и попинать (в дальнейшем это пригодиться для решения некоторых головоломок).
Для придания более живой картинки мы настраиваем пост-обработку, пичкаем локации фоновыми звуками и объектами.
Катсцены на контроллер игрока при помощи DoTween
Для некоторых сцен мы отключаем контроллер игрока и управляем камерой и его перемещением при помощи DoTween. Почему именно он? Он работает быстро, а главное так, как надо и позволяет нам отслеживать события завершения анимаций.
Мы стараемся не перегружать уровни большими катсценами и, по возможности, передавать все через окружение, чтобы игрок исследовал и пугался в том порядке, в котором захочет.
Первая оптимизация
Мы делим оптимизацию на множество этапов. Это очень трудоемкая работа со своими тонкостями, но здесь мы быстро пробежимся по всем аспектам, которые учитывались в подготовке этой статьи и второго демо.
1) Настройка LOD - Мы досконально настроили для каждого объекта уровни детализации (LOD). У каких-то объектов их несколько, какие-то обладают лишь 2-мя состояниями (отрендеривается и нет). Это дает прирост к производительности, в особенности в сочетании с Occlusion Culling.
2) Подключаем технологии NVidia. Используем мощь искусственного интеллекта для апскейлинга/даунскейлинга нашего итогового рендера. Для этого мы подключаем DLSS от NVidia. Естественно, это дает ряд ограничений и прирост к производительности только на картах NVidia, но мы надеемся, в дальнейшем мы сможем внедрить технологию и от AMD.
3) Комбинируем меши. Если есть возможность объединять несколько моделей в одну - делаем это для снижения количества отрисовок и отброса теней.
4) Настраиваем тени. Там, где это нужно - просто отключаем отбрасывание (где может справиться Ambient Occlusion, например на мелких камушках и травинках), где-то - уменьшаем размер, делаем тени статичными. Ну и конечно настраиваем дистанцию отрисовки теней.
5) Оптимизируем скрипты. Здесь мы стараемся максимально избавляться от монобехов и прочей ерунды, которая нагружает нам CPU.
6) Настраиваем размер лайтмапов, запекаем все пробы и свет.
Собираем второе демо
После всех манипуляций - мы запустили вторую демо-версию игры. Более оптимизированную, красивую и живую. Также мы включили в неё кусочек второго уровня с лабораторией.
Ознакомиться с демо-версией бесплатно можно здесь:
Минимальные системные требования для запуска демо:
- Процессор Intel Core i5, 7-го поколения;
- Видеокарта NVidia GeForce GTX 1660 Super и выше;
- 8 ГБ Оперативной памяти;
- DirectX 11;
- Windows 10;
- 4 ГБ свободного места на диске;
Рекомендуемые системные требования для запуска демо:
- Процессор Intel Core i5, 10-го поколения;
- Видеокарта NVidia GeForce RTX2060 и выше;
- 16 ГБ Оперативной памяти;
- DirectX 12;
- Windows 10;
- 4 ГБ свободного места на диске;
Ну а если ПК не позволяет, либо у вас нет времени - у нас есть видос с демо-геймплеем:
Итоги
За эту неделю мы подались на IndieCup S'21 и прошли отбор, обновили демо-версию игры и продолжаем активную разработку. Впереди огромная куча работы и, надеемся, у нас все получится.
Если хотите поддержать нас, это можно сделать в соц. сетях: