quake/articles/1996/art-544
Path: mantis!not-for-mail
From: sheaslip@panix.com (Stephen Heaslip)
Newsgroups: rec.games.computer.quake.announce
Subject: Quake Internet Proposal 0.92 beta
Date: 27 Sep 1996 11:22:01 +0100
Organization: Justice League of America
Lines: 197
Sender: olly@mantis.co.uk
Approved: quake@mantis.co.uk
Message-ID: <52eph6$jb@news1.panix.com>
I am posting this at the request of Jack Mathews (one of the QSpy Authors):
Quake Internet Proposal 0.92 beta
A proposal to standardizing Quake over the Internet, not just
for the use of Quake-Spy, but for a wide variety of programs
on any platform that Quake is made on. Note that this is not
finished, and is only in beta, meaning that it is open to
suggestions from the public. It won't be until a couple
weeks before this is finalized as 1.0 and begins to be used.
This is good for intranets, modded servers, and the world in
general. None of this specification is copywritten and no
one needs permission to write programs to use it. It is
totally free as an attempt to make Quake even easier over
the Internet. However, I would wait until the 1.0
specification is out before writing code for it. Hell,
*I'm* waiting for 1.0 before writing code.
Section I. Finger servers
A. Introduction
Now that there are so many Quake-C modifications out there, it
seems to be very important for people to get the files they
need before logging into the server. The best way I could
think of doing this would be the finger protocol. There is a
way, too, to let server searching programs know that a server
DOES support the finger protocol.
B. Letting programs know you are running the finger server
If you want programs to know you run a finger server, just
add an "f" to the teamplay variable. For instance, for
servers with teamplay disabled at the console or in the
AUTOEXEC.CFG, just put in
TEAMPLAY 0f
and for servers with teamplay enabled, put
TEAMPLAY 1f
This will not affect gameplay in any way, shape, or form.
C. The finger query
Now, the finger query itself is easy (and will follow all
conventions of the finger protocol). The Quake program will
send a query name of
quakeinf
plain and simple, no uppercase, just quakeinf. What is
returned can be any response, or you can use some of the...
C1. Special tags in the finger response
Again, the finger response does not REQUIRE these flags, but
they make the response all the better. They need not be in any
particular order, nor do they need any particular capitalization.
Note that all these tags must be surrounded by two less-than
symbols (<<) and two greater-than symbols (>>). They need not
be terminated like in HTML, and a CRLF must follow each tag,
otherwise text after each tag will be ignored. Also, any blank
lines in any tag but the "text block" should be ignored.
<
The "text block" or comments field begins at the beginning of the
finger query. However, if you would like to start this variable
over, so as to filter out the "Last logged in" and ".plan:" lines,
or whatever, this tag will reset the text block to empty and start
"recording" again on the next line after this tag.
<
This begins a list of URLs for the user to refer to, possibly
referred to in the comments field. Each URL will be on one line,
and spaces will be considered part of the URL. It is recommended
that the program that parses these will put the URLs in a list box
for the user to click (or double-click) on to start their web
browser. Note that you can have more than one Recommended URLs
section, which will not reset the list, due to the next tag:
<
This acts EXACTLY like the recommended URLs section, except these
are platform specific. So far, %PLATFORM% can represent:
DOS
WIN32
WINNT
LINUXPC
MAC
MAC68000
MACPPC
OTHER
Other is a very special tag, and is last. Basically, if the parser
goes through other "Recommended URLs Platform" tags, and none of
them apply, then it will use the "OTHER" section. You can have
multiple "Other" sections as well. Some of these platforms can
also be "backwards traced" to others. For instance, if the
following platforms aren't specified, it looks in this order:
WIN32 -> DOS
WINNT -> WIN32 -> DOS
MAC68000 -> MAC
MACPPC -> MAC
So if a user is running on a Win32 system (and not WinNT) and a
"DOS" section in there, but no "Win32" section, it will use the
DOS section.
If a user is running WinNT, and there is no "WinNT" section, it
will look for a "Win32" section. If there is no "Win32" section,
it will look for a "DOS" section. If there is no "DOS" section,
it will use "OTHER"
Also, if a user in running on a Win32 system, and the only
sections are "MAC" and "OTHER", it will use OTHER.
If you use this tag, you MUST end in an OTHER section, even if
it is empty. By the way, in usage, percent signs do not surround
the platform name. Here is example usage:
<
http://www.quake.com/dos.html
<
http://www.quake.com/mac.html
<
<
<
This tag allows you to specify a few custom configuration lines to
be passed to Quake, such as "bind" commands. The lines afterward
should be exactly as they appear in the configuration. It is
recommended, but not required, that the parser have the user
verify these lines before playing Quake, in case some joker
decides to put "QUIT" as one of the lines.
<
This tag is not at all required, but is just for the paranoid
who think the finger query may add extra lines to their text.
D. Quake Shortcuts
This will be a multi-platform file type to be passed in the
Internet. The file extension is ".QSC", and can be configured
as a File Type in Internet Explorer or a "helper" in Netscape.
This will be the exact same format as the returned Finger query,
with an extra tag. Note that since finger queries return lines
with a CRLF (Carriage return/linefeed), the Quake Shortcuts WILL
keep this convention.
D1. The extra tag
<
This is the extra tag. It allows you to specify the address to
the server. This can be an IP or a domain name address. If you
wish to specify a port, it must be in the form of "server:port".
Note that all Shortcut handlers should pass the server name
directly to Quake, so that it can support future network protocols.
Anything between this tag and the next should be ignored by the
Shortcut parser. Here are some examples of usage:
<
<
Note that if the shortcut does NOT contain this tag, the parser
should warn the user, but not fail to show the shortcut. That
is because this specification is forward compatible and the
comments field may still contain important information.
E. Conclusion
This is a pretty simple way of handling things, and I think it
should be damned obvious to everyone that the finger and shortcuts
parsers should be the same program. I've left a lot of leeway in
how to display the data, because that is up to the individual
programmer. I've only laid the groundwork. This specification
is also subject to change, and your programs should be
forward-compatible if you stick to this specification. If you
wish to add anything to this spec or have suggestions, email me
at jack@opportunist.com.
Jack Mathews
--
blue
----------------------------------------------------------------
blue's Quake Rag http://www.panix.com/~sheaslip/quake/
"If triangles had a God, he would have 3 sides." - Montesquieu
----------------------------------------------------------------