Implement a sound manager to allow Ember to have sounds
There's already an abandoned effort to provide a SoundServer inside Ember. I haven't done anything to it myself since I was hoping that the developer who actually took it upon himself to implement it would deliver, but alas.
The SoundManager should be independent of Ogre, dealing only with sounds. Things that needs to be solved are:
* Sound resource loading (this is however mostly solved already through the use of a couple of interfaces which allows for transparent loading from the Ogre resource system).
* Sound definition for entities in the world. The Model format should be extended with sound information. There's already some support for defining sounds for different actions, but since this haven't been tested against a working SoundManager these probably need to be revised or extended.
* Sound playing and mixing. We use OpenAL for sound playing, but even though a lot of the intricates of sound playing is taken care of by the internals of OpenAL there are still a lot of settings and tweaking to take care of.
* Prioritizing sounds and making sure that levels are sane. There's a finite number of concurrent sound sources which can be played at once without burdening the CPU too much. Thus there needs to be a mechanism which is able to handle the extreme cases. One such case could be that there's only eight channels available, but the 8 closest entities are eight chicken, each plucking away. And at the same time there's a swords fight a couple of meters away. Obviously we want to hear both the clashing of the swords as well as the chickens, but how will the system know this?
* Allow for background music. While not appropriate in all games and settings, we want to have basic support for this.
Blueprint information
- Status:
- Complete
- Approver:
- Erik Ogenvik
- Priority:
- Medium
- Drafter:
- Erik Ogenvik
- Direction:
- Needs approval
- Assignee:
- romulo fernandes
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Erik Ogenvik
- Completed by
- Erik Ogenvik
Related branches
Related bugs
Sprints
Whiteboard
Note that the sound manager must be completely separate from Ogre and only use Eris data.