Задать вопрос

Задавайте вопросы и получайте ответы от нашего сообщества

Ответы

Отвечайте на вопросы и станьте экспертом в своей теме

Связаться с Администрацией

Наши специалисты готовы ответить на ваши вопросы

Alpha 3 devblog: Техническая оптимизация

Admin

Администратор
Команда форума
Регистрация
19.01.2020
Сообщения
107
Реакции
1
Баллы
18
В этом специальном DevBloge мы рассмотрим некоторые технологические оптимизации, над которыми сейчас работаем, чтобы улучшить игру в будущем.

Когда мы выкатили новую дорожную карту в конце прошлого года, мы заявили, что этап после Alpha 3 будет состоять из оптимизации и исправления частей игры. Цель этого DevBlog - обсудить некоторые технологии оптимизации, с которыми мы работали, и их значение для игроков. Имейте в виду, что многие из них все еще находятся на ранней стадии разработки и могут даже не быть выпущены. Однако мы понимаем, что многие в нашем сообществе заинтересованы в разработке нашей игры, поэтому мы решили представить их.

Отбор графического процессора
Двойная вселенная отличается высокодетализированной средой, заполненной неинтерактивными элементами, которые мы называем «декорами». К ним относятся такие вещи, как трава, деревья, небольшие камни и многое другое. Движок, который мы используем для игры, Unigine, вычисляет геометрию этих предметов - обычно в десятки тысяч в любой момент времени - используя ЦП компьютера, и решает, какие из них важнее. Например, элементы, которые находятся позади игрока или менее видимы (то есть где-то на дальнем фоне), не будут отображаться. Это особенно важно в более плотных средах, таких как леса. Этот процесс известен как «отбраковка», и наша команда разработчиков кодировала движок, чтобы использовать графический процессор компьютера для выполнения этих вычислений вместо процессора. Учитывая, что он уже отвечает за визуализацию этих декоров, это значительно улучшит скорость выполнения этих расчетов. Для геймера это означает улучшение частоты кадров и более детальную среду.

Глобальное освещение
В любой момент в Двойной Вселенной (DU) в в любой сцене обычно бывает несколько источников света, как естественных, таких как солнечный свет, так и искусственных, таких как фары или прожекторы/светильники. Они предоставляют отдельные источники света с целью создания теней и в прошлом работали только таким образом (что неверно, учитывая, что мы все еще можем видеть в тенях из-за рассеянного света от различных поверхностей). Глобальное освещение направлено на то, чтобы источники света вели себя более реалистично, имитируя непрямое освещение: отражение, рассеяние и окклюзию окружающей среды. Отражение и рассеяние довольно очевидны, но давайте коснемся этой последней функции. Окружающая окклюзия - это геометрический подход, который определяет, насколько яркий объект относительно источника света - другими словами, были ли определенные его части заблокированы другими объектами в сцене. Используя динамическое глобальное освещение на основе световых полей, мы можем отобразить их для любой конкретной сцены, и это сделает игру более реалистичной и динамичной. Наконец, это также значительно улучшит видимость при слабом освещении, с чем у многих игроков возникли проблемы.

Земной шейдер
При рендеринге ландшафта в Dual Universe, существует множество требований в зависимости от среды, таких как тип биома, различные ориентации текстуры (например, скалы) и многое другое. В отличие от других игр, Dual Universe уникален тем, что он должен быть полностью настраиваемым игроками, поэтому смешивать различные текстуры вместе, чтобы создать один конгруэнтный участок местности, сложнее. В настоящее время мы визуализируем ландшафт за один проход через сеть вершин. То есть происходит много ненужных выборок текстур, которые съедают ценную вычислительную мощность. Новый метод затенения грунта, который все еще находится в стадии разработки, требует нескольких проходов для различных операций: рендеринг глубины геометрии, получение ландшафта геометрии, рендеринг высоты материалов, рендеринг текстуры поверхности материала (т.е. шероховатый или гладкий), а затем рендеринг любых переменных для веса объекта. Этот метод, который все еще находится в стадии разработки, потребляет меньше ресурсов при вычислении отдельных сцен путем преобразования рендеринга ландшафта в несколько проходов для его различных свойств (например, высоты, текстуры, ландшафта и т. д.). Это дает нам возможность значительно улучшить внешний вид планет, обеспечивая при этом более высокую производительность с точки зрения частоты кадров.

HexOctree
Эта новая технология была разработана полностью собственными силами, и была создана для решения проблем, связанных с процедурно генерируемыми вокселями планет. Двойная вселенная хранит свои воксели, которые составляют почти всю игру, за исключением определенных элементов, в кубической сетке. Hexoctree - это новый тип воксельной сетки, созданный специально для планет, который значительно упрощает многие внутренние операции, связанные с геометрией планеты. «Обычная» воксельная сетка не очень хорошо выравнивается по поверхности сферы, что делает вычисления утомительными, особенно когда мы приближаемся к ядру. Hexoctrees, с другой стороны, «изгибают» воксельную сетку в сферическую форму оболочки, делая ее идеально выровненной по поверхности планеты, что позволяет нам очень быстро рассуждать о связи между поверхностью планеты и воксельной сеткой.

height_map_diagram.jpg__720x366_q85_subsampling-2.jpg
Двойная вселенная также использует карты высот, определенные желтыми линиями на диаграмме выше, для моделирования высоты. Диаграмма слева - наш текущий способ использования этих карт высот для вычисления вокселей. Как вы можете видеть, когда уровень детализации (LOD) перемещается вверх по уровню, эти фигуры являются случайными. В примере справа они более однородны.

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

Видимость
Общая идея, лежащая в основе видимости в отношении серверных технологий, заключается в том, что сервер выбирает для показа игрокам, а также в количестве ресурсов, которые он решает выделить для них. Сервер также отвечает за принятие решения о частоте обновления объектов в игровом мире. Например, если вы идете по поверхности Алиота с компаньоном к кораблю на расстоянии, этому другому игроку потребуется высокая видимость из-за их близости, и сервер будет часто обновлять свои действия. Однако удаленный корабль будет менее подробным, и его нужно будет только периодически обновлять сервером. Конечно, объекты позади вашего игрока и плавающие километры над поверхностью планеты будут иметь нулевую видимость, поскольку они не влияют на ваши непосредственные обстоятельства.

Kubernetes
Эта технология управления сервером, которая контролирует жизненный цикл наших серверных компонентов, автоматизирует работу, развертывание и масштабирование приложения. Думайте о каждом серверном компоненте как о отдельном человеке, который является частью одного гигантского кластера. Когда отдельным компонентам нужно проделать больше работы, эта система добавит больше реплик, а затем удалит их, когда эта нагрузка уменьшится. Таким образом, мы можем легче сбалансировать нагрузку на несколько реплик и обеспечить постоянный игровой процесс с низкой задержкой. Эта система также предлагает будущий потенциал предоставления игрового процесса в режиме 24/7 с минимальными простоями для обслуживания.

Сетчатый сервер
Иногда при запуске Dual Universe некоторые объекты могут выглядеть мутными или некачественными. Это связано с тем, что сервер должен загружать большое количество отдельных данных вокселей и накладывает LOD с низким числом поли. Тем не менее, то, что позволяет нам делать технология ячеистых серверов, - это предварительно загружать конструкции ячеек, которые значительно дешевле и в итоге будут выглядеть намного лучше. Нет больше общих, уродливых форм и более детализированных моделей! В случае PvP это также значительно повысит эффективность обнаружения боевых действий.

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