The architecture of the C4 Engine is that of a layered collection of software components, in which the lowest layers interact with the computer hardware and operating system, and the higher layers provide
platform-independent services to the game code. While a considerable portion of the engine is dedicated to 3D graphics, there are also large components dedicated to functionality pertaining to audio, networking, physics, input devices, and scripting. Documentation for the engine is available online through a set of
API web pages and a wiki.
Graphics The C4 Engine is based on the
OpenGL library on Windows, Mac, Linux, and iOS platforms, and it uses a one-pass-per-light forward rendering model. The engine is capable of rendering with several different types of light sources and shadowing methods. The primary method for rendering dynamic shadows is
shadow mapping, and a variant of cascaded shadow mapping is used for very large outdoor scenes.
Shaders are created in C4 using one of two available methods, both of which isolate the user from the shader code required by the underlying graphics library. Simple shaders can be created by specifying a set of material attributes such as a
diffuse reflection color, a
specular reflection color, and a group of
texture maps. The engine internally generates the necessary shader code for each combination of material and light type that it encounters when rendering a scene. Material attributes can be used to produce effects such as
normal mapping,
parallax mapping,
horizon mapping, and bumpy reflections or refractions. C4 also includes a graphical Shader Editor that allows complex custom materials to be created using a large set of predefined operations. This method of designing materials enables greater creative freedom and functionality for expert users, but requires somewhat more work by the user. Materials created using the standard material attributes can be converted to custom shaders to serve as a starting point in the Shader Editor. The terrain capabilities of the C4 Engine are based on a voxel technology, allowing full 3D sculpting to produce features such as overhangs, arches, and truly vertical cliffs that would not be possible under a conventional height-based terrain system. Triangle meshes are generated from voxel data using the
Marching cubes algorithm, and seamless multiresolution
level of detail is made possible by using the
Transvoxel algorithm to stitch together regions of differing resolutions. The engine is capable of rendering a large variety of special effects, including
particle systems, procedural fire, electrical effects, volumetric fog, and weather phenomena. During a post-processing stage, the engine can also apply full-scene cinematic
motion blur to the final image using a technique based on a
velocity buffer, as well as glow and distortion effects. The engine does not provide the capability to design custom post-processing effects.
Audio The C4 Engine can play sounds stored in the
WAV format using 16-bit mono or stereo sampling, and audio data can be played from memory or streamed from disk. The engine plays sounds using a custom mixer that provides capabilities such as frequency shifting,
Doppler effect,
reverberation, and atmospheric absorption.
Networking Multiplayer gameplay in C4 is supported by a two-layer messaging system that uses the
User Datagram Protocol to communicate among different computers connected to a game.
Physics The C4 Engine has a native physics engine which can be used or allows the option for implementing a 3rd party solution instead. == Tools ==