[quake3-bugzilla] [Bug 4962] Protocol version 69 + legacy support

bugzilla-daemon at icculus.org bugzilla-daemon at icculus.org
Thu Jun 30 08:54:05 EDT 2011


https://bugzilla.icculus.org/show_bug.cgi?id=4962

--- Comment #18 from Tim Angus <tim at ngus.net> 2011-06-30 08:54:02 EDT ---
(In reply to comment #15)
> > * The cvar names protocol and protocolver are pretty horrible and misleading. I
> > see why you've named them like this, but I think a better solution would be a
> > well placed hack to translate requests for the value of "protocol" coming from
> > legacy qvms to "oldprotocol".
> 
> Yes, it is necessary so the server browser won't break.
> How do you detect legacy QVMs though? I proposed something some time ago which
> was rejected.
> Besides, I don't like this kind of a hack. We'd have to add an extra if
> condition to Cvar_VariableStringBuffer(), or at least in cg_ui.c where that
> function is called.
> I'd rather stay with the current solution of just adding a new cvar name. If
> you know a better name, go ahead.

Hmm, I'll think about it a bit more. Having "protocol" and "protocolver" isn't
good though. "protocolnew" doesn't really fit, nor does "protocol_not_legacy".
Do we really need to expose that cvar anyway? It seems like the only reason
we're allowing "protocol" to be changed by the user is to allow ioq3 to be used
with OA? Is there a reason to allow "protocolver" to be changed as well?

> Do you mean for each project to then call its protocol like "ioq3_1" for our
> ioquake3, maybe "wq3_1" for western quake3 or "wop_1" for world of padman? Sure
> we can do it, no question about it. The protocol version is already transmitted
> in the infoString as a string to the server. But do we really need this? Most
> standalone games seem to be separated via master server anyways, and the cvars
> give full control over which protocol version number to regard as legacy, and
> which as new protocol

Yes that's what I mean. I realise other games are separated by master server
but right now there is nothing stopping me connecting a Tremulous client, for
example, to something else ioq3 based that advertises protocol 69. The server
won't complain at the connection. It'll break later obviously, but not in a
controlled or graceful way. If we have a string for protocol identification
then this awkwardness goes away.

(In reply to comment #17)
> Another issue this raises that I forgot about is that dpmaster does not support
> non-numeric protocol values (yet).
> This may not be a problem for legacy quake3, as we always send protocol ver. 68
> anyways. But this is definitely a problem for standalone game without legacy
> protocol.

Problems like this was why I was suggesting possibly using a FOURCC code
instead of a string. Providing we have 32 bits to play with for the protocol
field, we can have much more unique protocol identification without any storage
changes. In theory much of the existing code dealing with protocol number
wouldn't need to be changed, except where user facing.

-- 
Configure bugmail: https://bugzilla.icculus.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the quake3-bugzilla mailing list