Sound is second only to sight as our most important sensory experience. In games, sound subtly communicates information about our surroundings to us, like where we are and even the material our surroundings are made of. Sound is provided in Leadwerks Engine with OpenAL. The engine provides sound and source classes which are thin wrappers on top the OpenAL buffer and source objects.
3D Spatialization
Because our world is 3D, we need sounds to be heard in 3D as well. 3D spatialization gives us auditory clues about where a sound is emanating from.
EAX Effects
Leadwerks Engine provides support for hardware EAX effects. This allows the programmer to add echo and reverb to a sound, to simulate the acoustic environment of a tiled bathroom or a spooky cave.
Asset Management
All media assets are automatically instanced and managed by the engine. When the user calls LoadMesh("mymesh.gmf") twice, an instance of the reference object is automatically returned and rendered with fast GPU batching. The moment a mesh, model, texture, shader, or material are no longer referenced by the user or any other objects (i.e. a material applied to a mesh) the asset will be deleted from memory. The abstract file system allows the user to load any kind of file without knowing exactly where in the game directory it exists. This is done by specifying the "abstract" file protocol.
For example, the following two lines will both return instances of the same material:
LoadMaterial( "meshes\vehicles\car01.mat" );
LoadMaterial( "abstract::car01.mat" );
Related Lessons: