id Software's Usenet Group Posts Archive!

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


----------------------------------------------------------------