на главную
об игре
City Car Driving 2.0 сентябрь 2024 г.

City Car Driving 2.0 - Дневники разработчиков #2

Сегодня мы немного расскажем о технических решениях в City Car Driving 2.0: про используемый движок при создании игры, поговорим о графике, покажем несколько рабочих материалов.

Когда для нас стало понятно, что изначальный движок City Car Driving сильно устарел, мы стали искать новое решение, которое было бы:

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

Было проведено сравнительное тестирование четырёх игровых движков. В итоге, наши поиски остановились на Unreal Engine, прежде всего, из-за его гибкости при работе и вариативности инструментария, позволяющего художникам и дизайнерам выполнять многие задачи самостоятельно. Кроме этих причин, несомненным преимуществом UE является его совместимость с нашими внутренними редакторами: ландшафта, трафика, и так далее.

Примерно год назад мы создали пилотный проект на UE4, используемый внутри компании, после чего было принято решение о плавном начале работ над CCD 2.0, в дальнейшем, мы перенесли все свои наработки в UE5.

Начинается все с создания ландшафта. Основная часть ландшафта и дорог создаются специально разработанным нами генератором, не являющимся частью UE. В этом же генераторе задаются основные параметры ИИ городского автомобильного и пешеходного трафика, а также логика их работы. В обязательном порядке к этому прилагается контроль ПДД. Вторичные части ландшафта, не попавшие в генерируемую область, достраиваются художниками как 3D модели. С помощью такого подхода мы можем обеспечить для себя довольно высокую скорость создания реалистичного базового ландшафта локаций с разветвлённой сетью дорог.

На скриншоте показано, как происходит наполнение локации: объекты без текстур и детализации - это blockout (заготовка под объект). Левел-дизайнеры при наполнении локации используют также режим отображения физики локации, отслеживая «дыры» или невидимые стены. После наполнения локации, объекты проверяются на возможность коллизии с машиной игрока.

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

  • Levels of Detail (как созданные вручную, так и автоматически сгенерированные)
  • Geometry Instancing
  • Material instancing
  • Комбинирование текстур в атласы, (как ручное комбинирование так и автоматическое при создании групп HLODов)

На всех объектах используются PBR (Physically Based Rendering) материалы с возможностью их гибкой настройки левел-дизайнерами.

Отражения в игре работают на основе свойств PBR материалов (Roughness-metalness). Материалы без шероховатостей (Roughness) имеют ярко выраженную отражательную способность. Сами отражения генерируются по технологии SSR (screenspace reflections).

Для придания большей реалистичности к указанным выше отражениям мы добавили отражения на основе HDR (High Dynamic Range) на автомобиле. В правой части скриншота - изображение, полученное в режиме отображения Reflection Capture. Этот режим демонстрирует просчёт отражений в реальном времени, это основная технология, которая и рисует на текстурах отражения.

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

UE позволял для нас выбрать один из двух методов шейдинга - Forward Rendering либо Deferred Rendering. Forward Rendering в некоторых условиях "быстрее", но лишает возможности использования многих эффектов, усложняет просчет и снижает общее качество динамического освещения. Для соблюдения баланса наличия современных графических технологий, скорости работы и возможностей оптимизации финальной картинки при учете использования динамического освещения остановились на Deferred Rendering.

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

Смену времени суток было решено сделать динамической, таким образом будет меняться интенсивность цвета солнца и заполняющего света. Далее при определении наличия динамических источников света (фонарные столбы, светящиеся вывески, интерьеры) были проведены тесты и замеры производительности. Результаты замеров показали, что необходимо комбинировать различные способы освещения - динамическое (от определенных источников света в реальном времени) и статическое (имитация освещенности в рамках текстуры).

Тени в игре реализованы с помощью различных функций UE и запекания теней на уровне моделей. Например вблизи игрока работают "каскадные тени". На правой стороне скриншота - режим обработки теней.

В отдалении каскадные тени исчезают и включаются DistanceField Shadows, гораздо более легкие для компьютера.

В CCD 2.0. будут разные регионы, страны и т.д.?

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

В CCD 2.0. будет имитация повреждений автомобиля, после которого он теряет свой функционал?

Будет, в будущих дневниках мы обязательно расскажем, как мы хотим реализовать этот функционал.

Будут машины из оригинального CCD в 2.0.?

Нет, мы хотим сохранить уникальность продуктов и не будем смешивать транспорт. В CCD 2.0 будут только новые автомобили.

Будет поддержка TrackIR?

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

Будет поддержка VR?

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

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

Да, будет. На данный момент, мы подготавливаем дискорд, и как только будем готовы запустить сервер - сразу всем сообщим.

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

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

Комментарии: 0
Ваш комментарий