DEV DIARY №10 - ВИЗУАЛ РАСКОПОК, РЕФАКТОРИНГ И ОПТИМИЗАЦИЯ ОВЕРМАЙНДА
Визуал раскопок
Грунт на подземном уровне занимает >80% процентов игрового экрана, так что он должен круто выглядеть.
Оптимизация этого элемента игры, как занимающего весь экран, тоже критически важна.
Таким образом требования к визуалу раскопок:
- Оптимизация
- Детализированность
- Отсутствие ограничений на размер уровня
- Отображение процесса раскопки (разрушаемость)
- Удобное редактирования (желательно инструментами 3Д пакетов) и процесса раскопки, и невыкопанного состояния.
Были определены три подхода:
Воксели
- Есть возможность оптимизировать
- Неплохая детализация (хотя визуал достаточно «мультяшный»)
- Практически без ограничений на размер мира
- Отлично разрушаются
- Нельзя редактировать извне
- Процедурный меш
- Оптимизация хорошая, но в руках программиста полный контроль, чтобы сделать ее отличной
- Высокая детализация
- Нет ограничений по размеру
- Код разрушения писать руками или вставлять разрушаемый квадрат другого рода
- Можно как редактировать как угодно и откуда угодно
Инстансы
- Высокая оптимизация
- Высокая детализация, но заметен шов и элементы сами по себе квадратные
- Нет ограничений на количество
- Для разрушения нужен шейдер или вставлять кусок другого рода, но шов никуда не денется
- Можно редактировать модель, и если написать шейдер — редактировать и другие параметры
Когда нашлась идея и способ сделать разрушение, маскировку швов и деформацию квадратных очертаний инстанс меша шейдером + гудини, был выбран именно инстанс, так как он соответствует всем остальным критериям.
Рефакторинг
В ходе разработки определились точные требования к каждой системе. Но излишняя взаимосвязанность и громоздкость узлов не позволяла переписывать их отдельно друг от друга.
Мы приняли решение четко описать задачи каждого узла и последовательно переписать их в чистовой проект.
Четкая картина всей системы в целом и понимание узлов в частности открыли нам путь к оптимизации вычислений, многие из которых мы смогли и вовсе исключить из алгоритмов.
Четкое API взаимосвязи узлов значительно облегчит добавление новых узлов, а прозрачная архитектура в целом положительно сказывается на успехе отладки.
В двух словах от Олега:
Все что мы написали криво и неоптимизированно, мы с ясной картиной переписываем в чистовик и грязные куски отваливаются.
Оптимизация овермайнда
Градиент на полу давал информацию о профессии, которая более актуальна в этой клеточке (например копать, или носить), но дальше требовались вычисления, какую именно работу выбрать (какую именно клетку ехать пилить).
Если бы бот, глядя под ноги, сразу мог узнать куда ему ехать, это бы радикально упростило расчеты. Идея существовала давно.
В ходе рефакторинга овермайнда мы решили упростить систему рисования градиента, но увеличить количество слоев.
Полученная прозрачность позволила нам ввести так же механизмы для оптимизации расчетов: «незначительные» изменения приоритетов мы можем не отражать на градиенте сразу и это радикально увеличивает производительность.
Мы сделали овермайнд чище, производительнее и устранили систему выбора задач — рассадник большого количества багов.
Recent posts
- Концепция боевой системы в The Crust
- Dev diary №21 - Расширение механик колонистов, добыча льда и новые интерфейсы
- The Crust live on Kickstarter
- Сборщик с заданиями для колонистов
- DEV DIARY №20 - Оптимизация, интерфейс и новые юниты.
- Итоги Steam Next Fest
- Закрытое бета-тестирование The Crust официально началось!
- New Logo Reveal The Crust
- DEV DIARY №19 - STORY LINE, POI AND NEW CONTRACT SYSTEM
- НОВЫЕ КОНЦЕПТЫ - ЭКСПЕДИЦИОННЫЙ ЦНЕТР, ПРЕСОВАЛЬНЯ И ПОСАДОЧНАЯ ПЛАТФОРМА
- FIRST DEMO ON STEAM BASE BUILDER FEST
- DEV DIARY №18 - Механики на глобальной карте, обновленный интерфейс и логистические инновации
- DEV DIARY №17 - Конвейеры, визуал и оптимизация - что нового у The Crust?
- ИНТЕРВЬЮ ДЛЯ UE4 DAILY
- DEV DIARY №16 - КАК ТВОРИТЬ ИСТОРИЮ: НЕМНОГО О НАШИХ КВЕСТАХ
- ЛЕТИМ НА ЛУНУ?
- СОЗДАНИЕ 3D-МОДЕЛИ АККУМУЛЯТОРА ДЛЯ THE CRUST
- DEV DIARY №15 - О СИСТЕМЕ КОММУНИКАЦИЙ НА ЛУННОЙ БАЗЕ
- ЛОМАТЬ - НЕ СТРОИТЬ, ИЛИ ПОЧЕМУ В ИГРАХ РАЗРУШАТЬ ТАК ЖЕ СЛОЖНО, КАК И СОЗИДАТЬ
- DEV DIARY №14 - 50 ОТТЕНКОВ РЕГОЛИТА, ИЛИ ДОБЫЧА И ПЕРЕРАБОТКА РЕСУРСОВ В THE CRUST
- DEV DIARY №13 - ГАЛАКТИЧЕСКИЙ РЫНОК
- РЕФАКТОРИНГ ПРОЕКТА THE CRUST 2020/2021
- DEV DIARY №12 - КОМНАТЫ И СТЕНЫ
- DEV DIARY №11 - РЕФАКТОРИНГ И НАРРАТИВ
- DEV DIARY №10 - ВИЗУАЛ РАСКОПОК, РЕФАКТОРИНГ И ОПТИМИЗАЦИЯ ОВЕРМАЙНДА
- DEV DIARY №9 - ОПТИМИЗАЦИЯ И ПРОЦЕДУРНАЯ ГЕНЕРАЦИЯ
- PATCH NOTE 0.72.19
- DEV DIARY №8 - РАБОТА НАД СЕТТИНГОМ - ЧАСТЬ 2
- PREALPHA GAMEPLAY TRAILER
- DEV DIARY №7 - ГРУЗОВЫЕ КАПСУЛЫ
- PATCH NOTE 0.63.14
- PATCH NOTE 0.6.09
- DEV DIARY №6 - КОЛОНИСТЫ, ЧАСТЬ 1
- DEV DIARY №5 - РАБОТА НАД СЕТТИНГОМ, ЧАСТЬ ПЕРВАЯ
- DEV DIARY №4 - СИСТЕМА СТРОИТЕЛЬСТВА ПОМЕЩЕНИЙ