[CF-Devel] Sound proposal

crossfire-devel at archives.real-time.com crossfire-devel at archives.real-time.com
Wed Apr 14 04:24:56 CDT 2004


Hello.

There has been some discussion about sound support.
If no one works on it, i'll fix it, and try to improve.

Here's how I see the stuff:

* add a new line for archetypes, 'sound <event name>, <sound file>, 
<optional parameters like relative volume etc>'
with <event name> something like 'cast, die, move', you get the clue

* put .raw files with archetypes

* assign generic sounds to archetypes. Ex: goblin archetype gets a 
'sound die, goblin_horrible_death' line

* change collect.pl to copy .raw files to crossfire/share/sounds (or 
wherever we want) and generate a /share/arch_sounds file containing a 
simple list with filenames

* server will then read this file, give a unique identifier to each 
sound. When loading archetypes, link sound_event to that identifier

* client can request arch_sounds file, then individual sound files (like 
1024 bytes by 1024 bytes)

* when a sound event needs to occur, server just sends the unique sound 
identifier

Client can then have a sound cache, based on filename.

An extension which could be nice: allow map-specific sounds. Like a 
special sound when your mega-monster dies :)

I'd see this this way:
* add sounds in same directory as map file, or in a sound subdir 
(whatever). This way, we know which sounds go with which maps. Also, 
give a unique sound to the file - like <mapnams>_<sound_event>.raw

* at some point, collect the sounds, and copy'em to the same directory 
as other sounds from archetypes

* override sound event on object from archetype, as any other field


The only thing which I don't like with this is that it requires 2 
passes: collect sounds from archetypes, collect sounds from maps.

Comments or brilliant ideas?

Nicolas


_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list