Using a Game Object pool
...a at first glance. You would reserve a fixed amount of object at startup thus fixing the amount of memory used by those objects. It would ensure that your game never over-use objects. However, thin...
Tips to reduce memory usage
Lower Engine Pool Memory: The memory in this pool is used to play sounds. It is directly influenced by the number of sounds playing at the same time. It is also influenced by the number and type of ...
When the Stream I/O pool is full, streaming sounds start to hang around and never get serviced
This is by design.
If you don't plan enough memory for streaming, you will have starvation. It was a conscious design choice to favor having low priority sounds starve "a lot" and high priority ...
Vorbis seek table
...eed a seek table in order to be seeked into at arbitrary positions, whether they are streamed or in-memory. You may specify whether you want to embed a seek table or not: in the Conversion Settings d...
Advanced settings: usage and dynamic mixing techniques
...naudible: - Specify the behavior of sounds when they are inaudible for performance reasons, to save memory and CPU. - Limiting the number sounds playing is useful for both performance, and to help you...
Optimizing CPU and memory usage per Platform
...de/exclude objects used per platform with the platform exclusion check box. This is perfect to save memory space; for example, a random container might have 10 child objects for platform X but only 5 ...
Organizing Objects to Save Memory
To help optimize memory usage, here is some useful information about organizing objects by properties.
It is good practice to organize your sounds under a common actor-mixer or container to share the...
How to avoid duplication of source files when a sound exists in multiple soundbanks
...de the soundbanks). If the game loads Banks 1 and 2, source files for sound B will be duplicated in memory.
To avoid this, you can:
Exclude sound B's media data (WAV files) from banks 1 and 2.
...
When the game must choose between multiple variants of a sound (for example footsteps on different ground materials), should I create separate events or a single event with switches?
...n mind when using switches is that by default, everything in the Switch Container will be loaded in memory when you load the soundbank that contains it. For example let's say you have one Switch Conta...
Streamed audio file with too many markers fails to play
...nularity determined for your project), the audio fails to play.
To prevent overtaking the header memory, you can both reduce the number of markers per file and/or use shorter names for the markers ...
XMA 2.0 Block Size
...the smaller the block size, the easier it is for the sound engine to control the XMA decoder.
In-memory XMA: The block size has an impact on CPU usage with XMA sources that have the "From Time Elap...
XMAHAL: XMA packets need to be 2K aligned
In order to successfully playback XMA, XMA data must be located in memory which was allocated with XPhysicalAlloc(). The default memory pool in which the sound engine loads bank is created using AK::P...
Do I really need to call ::XPhysicalAlloc() in my implementation of AK::PhysicalAllocHook()?
... which requires that data be allocated by ::XPhysicalAlloc(). Every time the sound engine allocates memory that is likely to contain XMA data on the Xbox 360, it calls AK::MemoryMgr::CreatePool() with...
Storing audio data in local/video memory on PS3
As your game grows big, you may start to run low on memory. One way to reduce audio memory footprint is by streaming audio files, so instead of being completely loaded in memory, they are streamed ...
Allocating Memory on the Wii
When allocating memory on the Wii, it is important to know which memory pool is allocated to which memory region. The following table shows you where the different memory pools are allocated on the...
Do I really need to call ::VirtualAlloc() in my implementation of AK::VirtualAllocHook()?
...'s initialization setting AkDeviceSettings::pIOMemory is NULL (default), the device creates its own memory pool for I/O transfers, with a size defined by AkDeviceSettings::uIOMemorySize, and attribute...
Performing unbuffered I/O on Windows
...FILE_FLAG_NO_BUFFERING and FILE_FLAG_OVERLAPPED flags. These flags, combined with correctly aligned memory, give optimal unbuffered I/O performance according to the Windows' documentation (refer to ::...