Нативный кроссплатформенный код

  • Современный Си++
  • Исключительно 64-бит, 32-бит не поддерживается
  • Не привязан к какой-либо конкретной операционной системе
  • Использует последнюю версию библиотеки SDL
  • Быстрая компиляция, быстрое выполнение, нулевые накладные расходы
  • Рендереры Direct3D 12 и Vulkan
Code
HLSL

Один и тот же код шейдера HLSL для всех API

  • Один исходный файл HLSL может создавать разные шейдеры, используя макросы препроцессора (убершейдер)
  • В одном исходном файле HLSL хранится код для всех типов шейдеров
  • Быстрая компиляция при запуске игры
  • Одна и та же структура буфера используется для HLSL и Си++
  • Никаких ограничений, кроме установленных графическими API

Отложенное освещение и затенение

  • Проход геометрии, проход освещения, композиция
  • Три 32-битных рендер-таргета и один 32-битный буфер глубины
  • Рендерер Vulkan использует input attachments и subpasses
  • Поддержка широкого динамического диапазона, яркость пикселей измеряется в кд/м2
Deferred shading

Эффективные текстуры и стриминг

  • Никаких ограничений, кроме тех, которые налагаются графическими API
  • Предпочтительный формат текстуры – BC7 (BPTC)
  • Маленькие MIP-уровни всегда в памяти, большие загружаются по мере необходимости
  • Использование sRGB

Поддержка больших ландшафтов

  • Ограничен максимальным размером текстуры (например 16 на 16 километров)
  • Несколько ландшафтов могут быть сшиты вместе, чтобы образовать неограниченный ландшафт
  • Патч (16 на 16 метров) смешивает до четырех текстур
Audio

Встроенная аудиосистема

  • Основана на OpenAL Soft
  • Моно, стерео, трехмерные, зацикленные звуки с регулируемыми громкостью и высотой тона
  • Несколько асинхронных потоков могут выводить фоновую музыку и атмосферные звуки
  • Поддерживается сжатие Ogg Vorbis

Поддержка мультиплеера

  • Нет стороннего кода, используются простые сокеты
  • UDP с возможностью отправки надежных пакетов
  • Клиенты обрабатываются асинхронно

Свой модуль графического интерфейса

  • Знакомые виджеты, такие как метки, редактируемый текст, изображения и сайзеры
  • Виды определены с помощью декларативного XML, также могут быть скорректированы в коде
  • На основе шаблона проектирования модель-вид-контроллер

Поддержка столкновений и физики

  • На основе Bullet Physics
  • Доступен контроллер персонажа
  • Плавный переход от анимации к рэгдоллу и обратно
  • Физика автомобиля
Bullet

Разные эффекты постобработки

  • Блум
  • Окклюзия в экранном пространстве (SSAO)
  • Отражения в экранном пространстве (SSR)
  • Размытость движения
  • Глубина резкости
  • Кино

Абстракция файловой системы

  • Ресурсы можно упаковать в один файл
  • Вспомогательные классы для обработки XML и JSON
  • Асинхронная загрузка ресурсов (стриминг)

Другие вещи

  • Скелетная анимация со смешиванием
  • Математическая библиотека на основе Sony Vector Math и OpenGL Mathematics (GLM)
  • Каскадные карты теней (CSM) для больших сцен на открытом пространстве
  • Преобразование речи в движение губ
  • И многое другое