Comment Re:Quake1, not Quake3 (Score 2) 339
Actually, netrek didn't solve the problem --
it just made cheating beyond the reach of your
standard CS undergrad. You can still cheat
at netrek by writing a customized X server,
since netrek has to use X to display itself and
get input from the user. I used this technique
to write a two-mouse netrek client back when my
ulnar nerve was all screwed up.
It is possible to make protocols with untrusted
clients heavily well-defended, as long as you
can demand that you execute native code on the
target machine, which Quake is able to do. All
you have to do is send down to each client a
specialized, randomized protocol handler with
its own uniquely generated key, mix it up so
there are millions of unique protocol handlers,
each of which defends itself differently and
makes sure it's not being tampered with, and
hey presto, it's just way too inconvenient for
nearly everyone to screw with it. This isn't
possible with netrek because it runs on an
infinity of different architectures and tries to
be platform independent, but since Q3 only runs
on x86 and mac platforms...
it just made cheating beyond the reach of your
standard CS undergrad. You can still cheat
at netrek by writing a customized X server,
since netrek has to use X to display itself and
get input from the user. I used this technique
to write a two-mouse netrek client back when my
ulnar nerve was all screwed up.
It is possible to make protocols with untrusted
clients heavily well-defended, as long as you
can demand that you execute native code on the
target machine, which Quake is able to do. All
you have to do is send down to each client a
specialized, randomized protocol handler with
its own uniquely generated key, mix it up so
there are millions of unique protocol handlers,
each of which defends itself differently and
makes sure it's not being tampered with, and
hey presto, it's just way too inconvenient for
nearly everyone to screw with it. This isn't
possible with netrek because it runs on an
infinity of different architectures and tries to
be platform independent, but since Q3 only runs
on x86 and mac platforms...