Version
menu_open

Lower Engine Memory Pool

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 effects that are used at the same time. So to trim this down, you need to ask yourself how many sounds do you want to hear at the same time. Some games will rarely have a scenario where more than 10 sounds are heard, others will have 100. When setting the size of the your memory pools, remember to use your worst case scenario.

As a guideline, we have profiled a few games using the Xbox360 and have come up with the following guidelines for the lower engine memory pool:

  • 1 MB will let you play between 50 and 80 voices.

  • 2 MB will let you play between 130 and 170 voices.

As you can see, it scales mostly linearly but really depends on which codec is used, how many effects are used, among other things.

You also need to ask yourself if playing back 170 sounds simultaneously actually adds any value to your game. At a certain point, the human ear can't decipher the different sounds and it just becomes noise. You need to find the appropriate number of voices that is valuable for your game. This, of course, will require some experimentation. You can profile multiple scenarios in your game and use the Memory tab of the Advanced Profiler to note how much of the resources are used.

To reduce the memory used in the lower engine pool, you need to reduce the number of simultaneous voices. This can be done by using any of the following strategies:

  • Playback Limits (Advanced Settings). For example, do you really need to hear 50 bullet ricochets? Most likely no, so you might want to limit those sounds to a more reasonable number, such as 15. Note that you can set limits on busses as well.

  • Playback Priority (Advanced Settings). For example, bullets could be less important than dialog. This means that bullets would get kicked first if there are too many sounds. Use in conjunction with Playback Limits.

  • Distance-based Priority Offset (Advanced Settings). Objects that are far are usually less important than closer ones. For example, we don't need to hear bullets that are 10 meters away if there are 15 other bullet sounds closer than that.

  • Memory Threshold (SDK). When initializing the sound engine memory pools, you can specify a percentage of the size of the pool at which voices will start to get killed based on priority. This will put a hard limit on memory that will avoid almost all Out Of Memory conditions in a controlled way. Note that memory can never be completely used because of fragmentation, so a good starting value would be 0.9 or 90%.

  • Volume Threshold (Project Settings). This will help kill the sounds that are too faint to be heard. This goes hand in hand with the Below Threshold Behavior and also the Attenuation settings, where farther usually means fainter. The default value is -80.

  • Below Volume Threshold Behavior (Advanced Settings). The least expensive option (CPU and memory) is 'Kill Voice'. This option is useful for short sounds or looping ambience sounds, where it kills the voice, but not the loop. The second preferable option is 'Send To Virtual' + 'Play from beginning', then 'Send To Virtual' + 'Resume' and then 'Send To Virtual' + 'Play from elapsed time'. 'Continue to play' and 'Play from elapsed time' are the most costly options. Be aware that Wwise's default value is 'Continue To Play'.


Cette page a-t-elle été utile ?

Besoin d'aide ?

Des questions ? Des problèmes ? Besoin de plus d'informations ? Contactez-nous, nous pouvons vous aider !

Visitez notre page d'Aide

Décrivez-nous de votre projet. Nous sommes là pour vous aider.

Enregistrez votre projet et nous vous aiderons à démarrer sans aucune obligation !

Partir du bon pied avec Wwise