Sound System
(Go back to the main GSoC 2011 page)
Skills needed
Our server and client are all coded in C++ and the sounds are defined in XML files. For this project C++ knowledge is needed, some basic knowledge of XML. No MySQL knowledge is required.
Sound improvements
- Sound Manager: today the sound manager is inside the main planeshift client sources, will be nice to have it made as a plugin to have a cleaner abstraction layer.
- add ability to limit number of channels
- sounds in factories. In CS every object has a factory and multiple instances, so you can have a mesh factory, which is a rock, and then instanciate it multiple times by changing its coords, rotation and texture. We would like to have the ability to associate sounds to the factories present in the world.
- special actions to do when particular sound types are being played (for example reducing all other sounds/music volume)
- distance lag effect of 3d emitters (sound has a certain speed and openal unfortunately doesn't handle this factor so, even if it lowers the volume of distant sources, it will still make the sound of them run at the same time making the actual volume sound higher than it is actually. This would be about making emitters slow down when the player goes away from the source in order to unsync it from the other, more near emitters and go back to the normal speed after it has reached a certain offset from the more near object, in order to simulate this effect of distance and avoid equal sounds to stack)
- overall code cleanup.
Allow to spawn sound within those events:
- random sounds on monsters
- sounds associated to a specific behaviour or action of monsters
- sounds for each weapon and attack
- random sounds from environment
Allow players to play sounds with musical instruments.
(Optional) Allow voice speech in game through peer to peer connection.
Difficulty
medium to difficult, depending on the parts of this which are picked up