[quake3] About adding (VoIP) voice chat support

Ryan C. Gordon icculus at icculus.org
Sun Jun 10 04:59:33 EDT 2007


> Did you do some mixing on the server?
> (decode all incoming packets, mix them, reencode to one single stream)
> Or did you just resend all incoming packets to all clients?
> The first approach would lower the traffic to the client
> but would need more CPU-time on the server.

Generally you don't have enough voice traffic to make server-side mixing 
worth the trouble of adding server-side mixing...OpenAL gives you that 
for free on the client.

Speex actually makes voice transmission fairly cheap, as it's designed 
to packetize data, and recover gracefully from dropped packets. It can 
really compress the hell out of the data, too, especially when audio 
fidelity isn't that important...which it isn't, when it's someone 
screaming one-time sounds into a 5-dollar microphone.

The server just decides to whom it should rebroadcast the data, but 
didn't spend any more CPU time on it than that. Speex validates the 
packets on the client side and decides what to do with them.

--ryan.





More information about the quake3 mailing list