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.