Native cross-platform code

  • Modern C++
  • 64-bit only, 32-bit is not supported
  • Not bound to any particular operating system
  • Based on the latest SDL library
  • Fast compilation, fast execution, zero-overhead
  • Direct3D 12 and Vulkan renderers

Same HLSL shader code for all APIs

  • Single HLSL source file can produce different shaders using preprocessor macros (ubershader)
  • Single HLSL source file stores code for all shader stages
  • Quick compilation during game launch
  • Same uniform buffer structure is reused for HLSL and C++
  • No limits other than those imposed by graphics APIs

Deferred shading

  • Geometry pass, lighting pass, composition
  • Three 32-bit render-targets and one 32-bit depth buffer
  • Vulkan renderer uses input attachments and subpasses
  • High dynamic range support, pixel brightness is measured in cd/m2
Deferred shading

Efficient textures and streaming

  • No limits other than those imposed by graphics APIs
  • Preferred format is BC7 (BPTC)
  • Small mipmaps are always in memory, bigger ones are loaded on demand
  • sRGB awareness

Large terrain support

  • Limited by maximum texture size (for example, 16 by 16 kilometers)
  • Many terrain objects can be stitched together to make unlimited terrain
  • Up to four textures are blended per patch (16 by 16 meters)

Built-in audio system

  • Powered by OpenAL Soft
  • Mono, stereo, 3D positioned, looped sounds with adjustable gain and pitch
  • Multiple asynchronous streams can output background music and ambience
  • Ogg Vorbis compression supported

Multiplayer support

  • No third-party code, uses plain sockets
  • UDP with ability to send reliable packets
  • Clients are handled asynchronously

Custom user interface module

  • Familiar widgets like labels, editable text, images and sizers
  • Views are defined with declarative XML, can also be adjusted in code
  • Inspired by model-view-controller design pattern

Collision and physics support

  • Based on Bullet Physics
  • Character controller is available
  • Seamless transition from animation to ragdoll and back
  • Vehicle physics

A bunch of post-processing effects

  • Bloom
  • Screen space ambient occlusion (SSAO)
  • Screen space reflections (SSR)
  • Motion blur
  • Depth of field
  • Cinema

Filesystem abstraction

  • Resources can be packed into single file
  • Helper classes to handle XML and JSON
  • Asynchronous resource loading (streaming)

Other things

  • Skeletal animation with blending
  • Math library based on Sony Vector Math and OpenGL Mathematics (GLM)
  • Cascaded shadow maps (CSM) for large outdoor scenes
  • Speech to lips movement conversion
  • And much more