The Official Quake FAQ Version .01 (logo soon to come.. maybe)

Table of Contents
-----------------

[0] Introduction
    [0.0] Copyright notice
    [0.1] What this document is
    [0.2] Why it exists
    [0.3] About the author (and how to contact him)
    [0.4] Disclaimer

[1] The basics
    [1.1] What is Quake (not actually a FAQ, but..)
    [1.2] What software/hardware do I need to run Quake?
    [1.3] Will Quake support my xxxxx ?
    [1.4] How fast will Quake run on my computer?
    [1.5] What component should I upgrade for the best performance?

[2] Customizing Quake
    [2.1] What is the console?
    [2.2] What do I use it for?
    [2.3] Is there a full list of console commands?
	  [2.3.1] Wow! That's a lot! Which ones do I actually need?
    [2.4] RC (CFG) files
          [2.4.1] What's the difference between a RC and CFG file?
          [2.4.2] Should I use the extension rc or cfg?
          [2.4.3] How large can they be?
          [2.4.4] Why not just edit quake.rc?
          [2.4.5] It's complaining that it can't find my rc/cfg file! help!
          [2.4.6] I'm too lazy to make my own. Where can I find some?
          [2.4.7] How do I make my own rc/cfg file?
	  [2.4.8] How does that quick rocket alias work?
    [2.5] Custom levels
          [2.5.1] How can I create my own?
          [2.5.2] What is this whole qbsp/vis/light thing anyway?
          [2.5.3] Where can I find an editor?
          [2.5.4] Which editor is best?
          [2.5.5] Where can I find custom levels/Where can I put my custom
                  levels?
          [2.5.6] How can I create my own level editor?
    [2.6] Quake-C
          [2.6.1] What is Quake-C, anyway?
          [2.6.2] Where can I learn Quake-C?
          [2.6.3] What do I need to use Quake-C?
          [2.6.4] Where can I find Quake-C patches, and where can I put my own?

[3] Multiplayer
    [3.1] Modem play
          [3.1.1] Does modem play work?
    [3.2] Network play over a LAN
          [3.2.1] What do I need for Quake to work over my IPX network?
          [3.2.2] What do I need for Quake to work over my TCP/IP network?
          [3.2.3] Who should be the server?
    [3.3] Network play over the Internet
          [3.3.1] What do I need to play Quake over the Internet?
          [3.3.2] I can't get pppquake to work!! Help!
          [3.3.3] Can't it go any faster than this?
          [3.3.4] WTF do wierd things keep happening when I play on certain
                  servers?
          [3.3.5] Where can I get a list of servers?
          [3.3.6] I have a server I'd like to make known.. Where should I
                  advertise it?



Chapter 0
Introduction
-------------


[0.0] Copyright notice
----------------------

This document Copyright (C) 1996 Justin Ward. You may copy this document
only if all of the following criterea are met:

1) This document is copied in its entirety, and is not changed, mutiliated,
   or altered in any way, shape or form.
2) This copyright notice (section 0.0) stays in tact.
3) No profit is earned. This includes but is not limited to being
   published in a book, magazine, or any other commercial product,
   including but not limited to electronic publications. For permission
   do use this document in such a manner, please contact me, the author,
   Justin Ward, at justin@yoss.canweb.net or ward@stealth.net.
4) If this is translated into another form/language (HTML, Windows
   Helpfile, texinfo, PostScript, etc), please contact me before
   distributing (see rule #3 for contact information).

Quake is a registered trademark of Id Software, Inc. All trademarks are
property of their respective owner(s).

[0.1] What this document is
---------------------------

This is an effort to answer many of the Frequently Asked Questions (FAQs)
about the popular PC game Quake. It is being written currently only by
me, Justin Ward, however I would appreciate any help. This is a huge
project, and while I have plenty of time for it now during the summer,
this will change in September when I have to (eek, ack) go back to
school.

[0.2] Why it exists (this is boring, you can skip it if you want).
-------------------

For the purpose of this FAQ, see [0.1].

The story of the creation of this document is quite a tale, in all
honesty. At first, it was believed that Hank Leukert (the author of
the Official Doom FAQ) and Joost Schuur (a grumpy Klingon, and former
Aftershock site maintainer) were going to do the FAQ. However, time
went on and this did not happen. I, and many others, spent lots of
time on EFNet IRC channel #quake answering the same questions over and
over again. Time went on. Nothing changed. Then one day I received a
piece of email on a mailing list (actually this happened just about
every day). But this one had at the bottom of it "PS - We need a FAQ
for Quake like Hank did for Doom. Who wants to be famous?" (NetJ,
1996). So I thought to myself.. hmm.. I have nothing better to do this
summer.. and it would keep the llamas quiet in the channel.. and I
just might get a little publicity. So here it is. Even though right
now it sucks.

[0.3] About the author (and how to contact him)
----------------------

My name is Justin Ward. I live in Brooklyn, NY where I go to Midwood
High School. You can email me at ward@stealth.net or
justin@yoss.canweb.net. My home page is http://www.stealth.net/~ward/,
but don't expect too much from it. I also made a WWW page for my
school (which is a much nicer page, I might add) at
http://www.stealth.net/~ward/midwood.

[0.4] Disclaimer
----------------

I, Justin Ward, do not approve of graphic violence, mass destruction,
or any of the other things that make playing Quake fun. So, like, if
you go out and do something you shouldn't, don't blame me. Yeah I
know.. the old Doom FAQ disclaimer was a lot more fun to read. But I
can't remember it right now, so bleh.


Chapter 1
The Basics
----------

[1.1] What is Quake?
--------------------

Quake is a three dimensional first person shoot 'em up type game from
Id Software. It is the next generation of Wolf3d- and Doom-ish
games. It is also a game containing lots of graphic violence, blood,
and destruction. If you don't approve of this, DON'T PLAY THE GAME!
Quake is unlike Doom, Wolf3d, and Duke3d in many ways, namely it's
true 3D engine and the way it handles all entities in a level as
groups of polygons, rather than sprites. This creates much more
realistic images and movements.

[1.1] What software/hardware do I need to run Quake?
----------------------------------------------------

Let's start with this: To run Quake decently, you need a Pentium
processor with at least 16 megabytes of RAM. Quake *WILL* run on
a Pentium with 8 megabytes of RAM. That is the official minimum
requirements. But it is very slow and damn near unplayable.

As for 486 chips: You can play Quake with somewhat reasonable
performance (or so I'm told) on high end 486 machines (100Mhz or
better). However, the official minimum requirements are a Pentium for
a reason, I'm sure. Quake on a DX2/66 is absolutely unplayable.

Quake also needs a VGA compatible video card. This should be no surprise.
Quake supports SVGA resolutions as well. Again, no real surprise.

What video card Quake works best with has been a very hot topic. With
the exception of 3D accelerated cards, which are still very new and
largely untested, Quake works as well with any video card as any other
application does.. that is, if most applications run faster with video
card A than with video card B, Quake will probably run faster with
video card B as well. VRAM is always faster than DRAM when compared on
the same video card model (a Stealth 64D is slower than a Stealth
64V), and I have heard that WRAM is even faster than VRAM, however
I've also read in Computer Shopper that WRAM is somewhere between DRAM
and VRAM.

As far as software goes. To play Quake, you need DOS 5.0 or better.
It will also run under Windows 95 and Windows NT, it will not run
under Windows 3.x however. For multiplayer Quake over the Internet,
you will need either Windows 95 or B&W TCP (not shareware) for DOS.

[1.3] Will Quake support my xxxxx ?
-----------------------------------

Lots of people have been wondering if Quake will support a particular
piece of hardware. Here is a trimmed down list of supported hardware:
See the notes below, however.

Sound cards: 
             Sound Blaster
	     Sound Blaster Pro
             Sound Blaster 16
	     AWE 32
	     GUS           

Video cards:
	     All ISA/VLB/PCI VGA/SVGA video adapters
	     Verite chip support has been promised, status unknown.
	     Matrox Millenium is supported.

Mouse:
             Any mouse device you have the proper driver for

Other:
             I-Glasses! support has been promised, status unknown.
	     VFX-1 support has been promised, status unknown.
             Mattel Power Glove. I don't think so, but I don't know.
             All standard joysticks are supported.

Important notes about the above list:

I don't know about the GUS sound card. I think there's support for it,
but I've heard lots of complaints about it not working. I also don't
know about the other cards not listed there.. The PAS, the Ensoniq,
etc.

The 3D video card support status is unknown at this time. Romero,
Carmack, and the gang have told us since the start that the Verite
chip will be supported, but since the Verite chip isn't even out yet,
we have no verification of this. The Matrox Millenium *IS* supported,
which is from my understanding a very hot card indeed.

The support status of the VR helmets is at this time unknown.. if
anybody out there has one of these, and can confirm whether or not they
work with Quake, please let me know! Same goes for the power glove.

[1.4] How fast will Quake run on my computer?
-----------------------

This question has been so common that a large database of computer
descriptions and performance reports has actually been put
together. Go to http://www.stomped.com/performance.html to see for
yourself. This is being updated quite often and including it here
would be a waste of time. Beware, however, that lots of people have
posted fake performance results. The admin of stomped.com I'm sure
is aware of this and goes through pulling out fakes, but just as a
general rule, if one of the performance reports looks fishy, it very
well may be.

[1.5] What component should I upgrade for the best performace?
------------------

The answer to this, of course, depends on your current system. A lot
of the time, you'd do better upgrading your CPU than upgrading your
video card, despite what you might think. So long as you have a decent
video card (VRAM, and not a Diamond Stealth 64), chances are you'd do
better getting a new CPU. This is especially true if you're currently
running on a 90 Mhz Pentium or slower.

I'm told that PPros are really good for Quake. I'd like some
confirmation on this, however.


Chapter 2
Customizing Quake

[2.1] What is the console?
------------------

The console is a way of entering commands directly, rather than the
usual method of pressing a key or mouse button to do something. For
example, pressing the up arrow is actually another way of running the
command "+forward."

[2.2] What do I use it for?
------------------

Very little, if anything at all. With the menus and everything, you
don't really need the console any more. Unless you're going to
customize your key configuration or you need some debugging console
commands when you're making your own levels.

[2.3] Is there a full list of console commands?
-------------------

Yes. Here it is, along with a description of each command. A ? for the
description means that the command has no noticable effect, or if it
does, it has not yet been detected.


[2.3.1] Wow! That's a lot! Which ones do I actually need?
------------------

Well, most people get by just fine with the following:

+/-forward
+/-back
+/-left
+/-right
+/-mlook
+/-strafe
+/-jump
+/-attack
wait
impulse[1-10] (9 is all weapons, 10 is cycle)
bind
unbind
alias

[2.4] RC (CFG) files
--------------------

[2.4.1] What's the difference between a RC and CFG file?
--------------------

There is none. It's the same thing. It's just that Unix geeks (the
dudes at Id are Unix geeks in their spare time) end config files in rc
instead of cfg. Just in case you cared (and I know you don't), RC
stands for recorded commands.

[2.4.2] Should I use the extension rc or cfg?
---------------------

Use rc. It's a letter shorter to type.

[2.4.3] How large can they be?
-----------------------

There actually is an upper limit to the size of a rc/cfg file, beyond
which Quake will bitch and complain if asked to load. However, I have
yet to see a 'normal' Quake rc file (one that wasn't deliberately
large to test how large they could get) that crosses this boundary. So
don't worry about it.

[2.4.4] Why not just edit quake.rc?
------------------------

There are a few reasons to create your own .rc file and execute it
using the exec console command (or +exec filename on the command line)
instead of just edit the quake.rc file Quake automatically executes
when it starts up.

The first reason is so if you totally screw something up, you can just
not load it and have your default key configuration. On a similar
note, if you accidentally cut out a block of text in your own .rc
file, you're in a lot less trouble than if you cut out a block of text
from quake.rc.

The next reason is in case you find yourself some day playing on
another person's computer. It's much less of a hassle to just bring
your own .rc file on a disk with you than bring your entire quake.rc
file.. and if you brought your quake.rc file, you would either end up
overwriting the quake.rc file on the other person's computer, or you'd
have to rename it. It's just easier to keep track of it this way.

A third reason is so you can be cool and share your favorite keyboard
layouts with your friends by emailing or posting to Usenet or
uploading your .rc file to an archive or something.

[2.4.5] It's complaining that it can't find my rc/cfg file! Help!
-------------------

Make sure it's in the same directory as the .pak file, or in some
subdirectory of that directory. For the Shareware/full release, this
means it should reside in the ID1 directory, or some subdirectory
thereof. If you do put it in a subdirectory, use forward slashes
instead of backslashes when specifying the load path. For example, if
my rc file was in c:\quake\id1\rcfiles\justin.rc, I would run quake
with the command line argument +exec rcfiles/justin.rc. If it was just
in c:\quake\id1, I would just do +exec justin.rc.

[2.4.6] I'm too lazy to make my own. Where can I find some?
--------------------

Zach Beane, commonly known as Dr Sbaitso gone bad (it's a long story)
has put together a collection of raw RC files. You can browse them at
http://www.mint.net/~xach/quake/rcfiles. Make sure you use
Netscape. You may also want to check out
http://www.mint.net/~xach/quake.html, but don't say I didn't warn you.

[2.4.7] How do I make my own rc/cfg file?
-------------------

Well, an rc file is just a file of recorded commands. You could put
any set of commands in an rc file that you want to. However people
usually put in key configurations and aliases into their rc
files. Here are a few pointers:

+ you can put a comment in by putting two slashes (//) and then
  whatever you want to say. The comment runs to the end of the line.

+ comment things. It makes it look nicer, and if you ever have a
  problem, you'll appreciate it.

+ most people like to explicitly bind every key they use (function
  keys, weapon keys, etc), not just the non-default keys. This way
  if you find yourself playing on somebody else's computer, and their
  configuration is all screwed up, you can still play without any
  trouble.

+ Remember that you can use the alias and bind commands from aliases
  that have been bound to keys. For example, you could bind the A key
  to bind the D key to do something different. There are actually much
  more practical uses than this, which will be explained later in
  section [2.4.8].

+ Give yourself a little bit of credit at the end by using a few echo
  lines to have Quake type a few lines of text into the console window
  when it's loaded. For example:

  echo -------------
  echo Script loaded
  echo -------------

  Or whatever. Get creative. Just don't go totally overboard.

[2.4.8] How does that quick rocket alias work?
------------------

The quick rocket alias works basically by binding aliases to the
weapon selection keys (normally one through eight) to bind another
alias to another key. For example: the alias at01 does the following:
bind the alias rock1 to a key, and then selects the axe. At this
point, you should be wondering what rock1 does. Well, it switches to
the rocket launcher, fires for as long as the key is held down, and
then switches to the axe.

Similarly, at02, which is usually bound to the 2 key, is an alias for
"bind rock2 to another key and then select the shotgun." Rock2 of
course fires rockets as long as the key is held down and then switches
back to the shotgun. Here is the complete set of aliases and key
bindings. A full explanation of everything will be given after


-- begin snippet from my personal .rc file, fuckoff.rc --

// Thanks go to avatar for the original quick rocket.
// Heavily modified to allow for more than one rocket to be fired at a
// time, and quickshotgun for when you need to shoot a door open.
alias +rock1 "impulse 7 ; +attack"
alias +rock2 "impulse 7 ; +attack"
alias +rock3 "impulse 7 ; +attack"
alias +rock4 "impulse 7 ; +attack"
alias +rock5 "impulse 7 ; +attack"
alias +rock6 "impulse 7 ; +attack"
alias +rock7 "impulse 7 ; +attack"
alias +rock8 "impulse 7 ; +attack"

alias -rock1 "impulse 1 ; -attack"
alias -rock2 "impulse 2 ; -attack"
alias -rock3 "impulse 3 ; -attack"
alias -rock4 "impulse 4 ; -attack"
alias -rock5 "impulse 5 ; -attack"
alias -rock6 "impulse 6 ; -attack"
alias -rock7 "impulse 7 ; -attack"
alias -rock8 "impulse 8 ; -attack"

alias sg1 "impulse 2 ; +attack ; wait; impulse 1 ; -attack"
alias sg2 "impulse 2 ; +attack ; wait; impulse 2 ; -attack"
alias sg3 "impulse 2 ; +attack ; wait; impulse 3 ; -attack"
alias sg4 "impulse 2 ; +attack ; wait; impulse 4 ; -attack"
alias sg5 "impulse 2 ; +attack ; wait; impulse 5 ; -attack"
alias sg6 "impulse 2 ; +attack ; wait; impulse 6 ; -attack"
alias sg7 "impulse 2 ; +attack ; wait; impulse 7 ; -attack"
alias sg8 "impulse 2 ; +attack ; wait; impulse 8 ; -attack"

alias at01 "impulse 1 ; bind pgup +rock1 ; bind pgdn sg1"
alias at02 "impulse 2 ; bind pgup +rock2 ; bind pgdn sg2"
alias at03 "impulse 3 ; bind pgup +rock3 ; bind pgdn sg3"
alias at04 "impulse 4 ; bind pgup +rock4 ; bind pgdn sg4"
alias at05 "impulse 5 ; bind pgup +rock5 ; bind pgdn sg5"
alias at06 "impulse 6 ; bind pgup +rock6 ; bind pgdn sg6"
alias at07 "impulse 7 ; bind pgup +rock7 ; bind pgdn sg7"
alias at08 "impulse 8 ; bind pgup +rock8 ; bind pgdn sg8"

bind 1 "at01"
bind 2 "at02"
bind 3 "at03"
bind 4 "at04"
bind 5 "at05"
bind 6 "at06"
bind 7 "at07"
bind 8 "at08"

at02            // we start off with the shotgun, right?
                // I bound it to pgup because that's what I use for quickrocket
                // (I use those six keys above the cursor keys).

-- end snippet of my .rc file --

Okay. Now I know you're wondering just what in the hell all that
was. Let's go through it step by step. The first thing we do is define
a bunch of aliases. +rock1-8 and -rock1-8. Later, these will be used
in other aliases, which will be bound to the weapon keys.

To understand these aliases, you only have to know that impulse # is
how you change weapons (7 is rocket launcher), +attack is how you say
"I'm attacking now," and -attack is how you say "I've stopped
attacking now."

We have these aliases all starting with + or - because when you
bind an alias to a key that starts with a +, it acts a little
differently than when it starts with a letter. When that key is
released, the alias with the same name but a - is called. So, if I
had, say +rock4 bound to pgup, when I pressed down on the page up key,
it would switch to weapon #7 (the rocket launcher), and start
attacking (shooting rockets), because this is what +rock4 does. When I
let go of page up, -rock4 would be called. This switches back to
weapon #4 (the nail gun, although it's irrelevant right now) and stops
attacking.

Next we have a bunch of aliases for the shotgun. These aliases don't
start with a +, so all that happens when you press a key is the
commands in the alias are run. Nothing happens when you release the
key. It will be run exactly once for every time you press the button
(this is true of all commands bound to keys, not just aliases that do
not start with a +). The sg# commands just switch to the shotgun, fire
a shot, and return. The command 'wait' is used so that we don't switch
back to our previous weapon too soon.

Next we have a bunch of aliases, at0#. Why Avatar used at0# instead of
just at# I don't know, but it makes no real difference. These aliases
select a weapon and bind the appropriate aliases to page up and page
down for quick rocket and quick shotgun.

These aliases are then bound to the 1-8 keys. No big deal. Now when we
select a weapon, it will be selected and two other aliases will be
bound to two other keys.

Then we see "at02". This is just telling Quake to run the command
at02, which brings up a very useful fact: you can call your own
aliases as well as any command from a .rc file. In this case, we run
at02 which selects the shotgun and binds pageup and pagedown
accordingly.

[2.5] Custom levels

[2.5.1] How can I create my own?
----------------

Well, with a level editor (duh). Currently, there are many in
development, and none that are really working yet. There are some
geniuses (read: nerds with no lives) who managed to hack out some
small levels using hex editors (like the old first.bsp, a small cubic
room), as well as those who are making these editors, which are
semi-functional, but were able to produce some small level. For the
most up to date list of level editors in production, go to
http://www.stomped.com and look around. I know there's a list there,
but I've been having some trouble finding it as of late (?? help).

[2.5.2] What is this whole qbsp/vis/light thing anyway?
----------------

These are three utilities nessecary for converting a .MAP file (what a
level editor creates) to a .BSP file (what Quake reads for level
information). John Carmack wrote these for NextStep, however they have
been ported to Win95/NT as well as DOS. You can find these utilities
(as well as some documentation) at
ftp://ftp.stomped.com/pub/quake/editing/id/*.

[2.5.3] Where can I find an editor?
---------------

Currently there are no full editors out yet. But, you can find some
alphas, betas, and other miscellaneous utilities at
ftp://ftp.stomped.com/pub/quake/editing.

[2.5.4] Which editor is best?
-----------------

Well, it's kinda hard to say since we don't really have any. However
THRED and Shaker seem to be the two with the most promise. THRED is a
Win95/NT editor, and Shaker is an editor for X, but will also have a
95 port.

[2.5.5] Where can I find custom levels/Where can I put my custom levels?
-----------------

ftp.stomped.com:/pub/quake/levels/*

[2.5.6] How can I create my own level editor?
-----------------

Read the Quake specs. They're on stomped somewhere as well. I'm not
sure where though.

[2.6] Quake-C

[2.6.1] What is Quake-C, anyway?
----------------

Quake-C is another way of modifying Quake. It allows players to change
the way Quake handles certain events. For example, what happens when
you fire a weapon, or what happens when you walk into a teleporter is
controlled by Quake-C.

[2.6.2] Where can I learn Quake-C?
-------------------

There are no tutorials or documents that I know of to teach you
Quake-C. You need to just download the sources and compiler (qcc.zip,
on ftp.stomped.com:/pub/quake somewhere) and read through the .qc
files and figure out how it works.

[2.6.3] What do I need to use Quake-C?
------------------

You need the sources and the compiler, together in a file named
qcc.zip on stomped.com. You can get it from the web page,
http://www.stomped.com.

[2.6.4] Where can I find Quake-C patches, and where can I put my own?
-------------------

ftp.stomped.com:/pub/quake/quakec


[3] Multiplayer

[3.1] Modem play

[3.1.1] Does modem play work?
---------------------

Yes. In version 1.01. Use the menus. Everything is there and
working. Enjoy.

[3.2] Network play over a LAN

[3.2.1] What do I need for Quake to work over my IPX network?
---------------------

You need Quake, and an IPX packet driver for your PC. And if you're on
the network, you have the packet driver. So basically all you need is
Quake.

[3.2.2] What do I need for Quake to work over my TCP/IP network?
----------------------

Quake and a TCP/IP stack. This means either Windows 95/NT, or a DOS
TCP/IP stack. Quake does not support Trumpet Winsock. The only DOS
TCP/IP stack that is currently supported (and this probably will not
change) is B&W TCP. Be advised that this is NOT a shareware
product. There is a popular package named quakeppp.zip, which contains
the bare nessecity files to run B&W TCP under a PPP connection, so you
should be advised that this is pirated software.

[3.2.3] Who should be the server?
------------------

If at all possible, you should always have a dedicated server, and it
doesn't need to be the fastest computer on the network. In fact,
Carmack has said on many occasions that a 486 66/DX2 will make a
perfectly good server.

[3.3] Network play over the Internet

[3.3.1] What do I need to play Quake over the Internet?
----------------

You need Quake, and a network connection that Quake will support. This
means either Win 95/NT (NT is way better for this), or B&W TCP for
DOS. See Question 3.2.2 for more info on this. Playing over a TCP/IP
LAN is just like playing over the Internet, except you may not be able
to use a nameserver playing over the Internet. If this is the case,
you will have to use IP numbers for servers instead of their normal
names.

[3.3.2] I can't get pppquake to work!! Help!
----------------------

No. pppquake is pirated software. Delete it.

[3.3.3] Can't it go any faster than this?
-----------------------

Quake was not designed for 28.8 PPP connections. Currently, the only
way to make it go (substantially) faster is to get ISDN service or
better. I'm told playing over an ISDN line is just like playing on a
LAN with a bunch of Ethernet cards.. practically no lag at all. John
Carmack is currently doing a total rewrite of the net code, so we'll
see what we get. It should be way better. It will also require
registered Quake.

[3.3.4] WTF (why the fuck, for you newbies) do wierd things keep
        happening when I play on certain servers?
-----------------

Chances are the server is running with some modified Quake-C. Servers
have been known to greatly abuse it and make all sorts of strange
things happen. It's not your fault, and there's nothing you can do
about it, except play on another server.

[3.3.5] Where can I get a list of servers?
------------------

http://www.stomped.com has a huge list.

[3.3.6] I have a server I'd like to make known.. Where should I advertise it?
-------------------

See 3.3.5. This is the *ONLY* place you have to. Please DO NOT go onto
IRC #quake and advertise it. It's also not nessecary to post to
rec.games.computer.quake.* either.

