I mean, it already has VoIP right?

I built the VoIP stuff so that something like this could be added later. Zakk and I had talked about this in terms of the webcam support in Burnout Paradise (or some racing game like that), where it takes a picture at the point of your car crash, and shows your face to everyone else.

We thought it might be interesting to have it take a picture of someone as they die and of the person who killed him, so you can see the anguish and mocking that occurs, and just pop it up in the HUD for a second or two.

We never had time to actually hook up a camera to the software, of course, so we never built any image transmission packet, either.

But the gist is this:

Legacy Quake3 builds (including those released by id software, and ioquake3 before the VoIP stuff landed), get a svc_EOF byte at the end of any given packet. They don't care if it's actually the end of the data, they throw the payload away at this point.

ioquake3 will see if there's an svc_extension byte after this EOF, and know to keep reading for more data in that packet. This is how VoIP doesn't screw up retail quake3 builds. They just ignore it.

At this moment, the only svc_extension command is svc_voip, which means there is more voice data attached to this packet. The client will decompress it and queue it for playback if we want.

There is also a clc_extension and clc_voip, for data traveling from client to server.

If you wanted to do video, or still frames, from a webcam, you could probably add a clc_video packet or something. You'd have to be careful about sending too much data in one packet. Ideally, you'd want to dither down the image to be tiny (64x64 or something), and maybe jpeg-encode it, so it fits in a single packet. Otherwise, you have to deal with splitting it up and unreliable transmission.

If you want to add this, grep -ir voip in the source code. Most of it will apply to this, too (blocking specific users, retransmission from the server to the clients, etc).

Also: there's probably a real risk, ala ChatRoulette, of letting quake players have webcams. I believe zakk's official technical term for this technology was the "cock'n'ball cam." But I'm just talking about technical, not social, issues here.

--ryan.

_______________________________________________
ioquake3 mailing list
[email protected]
http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org
By sending this message I agree to love ioquake3 and libsdl.

Reply via email to