Home > Engine > Sound of Life

Sound of Life

Sound – this integral part of every modern entertainment form. We’ve had experiments for playing sound quite a few times up to now, all being considered more functional prototypes and proof of concepts but we hadn’t solidified the design till very recently.

The basic API we use for playing sound in the game is OpenAL. A nice wrapper has been provided for it called FreeSL. OpenAL has most of the functionality we need for Garshasp and FreeSL provides useful abstractions and memory management on top of it.

As part of the seamlessness initiative we are following to seamlessly load and unload the portions of the level, we needed to handle all the resources for the level and one main resource which needs good attention to, after graphics, is sound. We needed to be able to manage the memory load and unload for sound files. For this means, fhm, worked on integrating sound as an OGRE resource. (OGRE provides great ways for extending its basic features) This task proved successful and seamlessness handles sound just like any other ogre resource now using the back ground thread functionalities which OGRE provides along with its resource management, which is quite nice.

The play, stop, pause for inidvidual character and environment sounds is handled in the scripting layer which brings good control over to the designers.

There are a few challenges facing us currently regarding sound, one is to find the optimal gain and attenuation for different sound generated by different objects in the game which needs some tweaking. The second issue is to find optimal blend, fade solutions for in game sound.

A rather technical challenge which we might need to address soon is the idea of streaming sound during playback and not loading the whole data before play which we are currently doing. The second technical challenge is to use the decoded .ogg format in memory to playback sound, currently the .ogg compressed format gets decompressed first and then gets played in memory.

Being developers for the loose, chaotic world of PC game developers, I don’t know how critical the two technical issues above will really be but I’m sure we needed to optimize every bit of sound and fix the above issues if we were dancing on top of any of the console platforms. Our new system memory monitors should come in handy in the coming days.

VN:F [1.9.11_1134]
Rating: 8.0/10 (24 votes cast)
VN:F [1.9.11_1134]
Rating: +4 (from 8 votes)
Sound of Life, 8.0 out of 10 based on 24 ratings
Author: Categories: Engine Tags:
  1. Siamak
    July 8th, 2009 at 14:03 | #1

    not using OgreAl as wrapper for your OpenAl api? it worked just great for my prototype and it has just enough effects included like fade in/out and gain.
    not sure about the streaming though, i assume it uses streaming by default but i might be wrong.
    still waiting for your game to be released btw, and i would love to do some blind testing for you guys :D .

    VA:F [1.9.11_1134]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.11_1134]
    Rating: 0 (from 0 votes)
  2. July 26th, 2009 at 00:49 | #2

    I think someone in our team did evaluate OgreAL once. There is another project called OgreOgg which supports streaming too. I guess that feature would be a little lower on our priority lists right now.

    VN:F [1.9.11_1134]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.11_1134]
    Rating: 0 (from 0 votes)
  1. No trackbacks yet.