Linux Quake HOWTO
  Stevenaaus
  v2.09, 2010-03-01

  This document is a modern guide to id Software's Quake game, with some
  information about Quake's sequels and Linux gaming in general.
  ______________________________________________________________________

  Table of Contents



  1. Introduction
     1.1 Preamble
     1.2 About
     1.3 Notation

  2. General Info
     2.1 Getting Started
     2.2 Command Line Options
     2.3 Game Console Commands

  3. Game Engines
     3.1 TyrQuake
     3.2 QuakeSpasm
        3.2.1 Features
        3.2.2 Tips
     3.3 Darkplaces
     3.4 Quore
     3.5 QuDos Quake Ports
     3.6 MFCN's GLQuake
     3.7 Tenebrae
     3.8 QuakeForge
     3.9 NPRQuake
     3.10 Twilight Project
     3.11 Audio Quake
     3.12 SDL Quake
     3.13 wmQuake
     3.14 Software Quake

  4. Mods
     4.1 About
     4.2 Single Player Mods
     4.3 Commercial Mods

  5. Multiplayer
     5.1 Nexuiz
     5.2 EzQuake
     5.3 FTE QuakeWorld
     5.4 ProQuake
     5.5 ZQuake
     5.6 Other Game Types
        5.6.1 Deathmatch
        5.6.2 Capture the Flag
        5.6.3 Rocket Arena
        5.6.4 Rune Quake
     5.7 Other Multiplayer Mods
     5.8 Bots
     5.9 Servers

  6. Quake Sequels
     6.1 Hexen II
     6.2 Quake II
     6.3 Quake III Arena
     6.4 Quake IV

  7. Mapping Tools
     7.1 World Editors
     7.2 Tools
     7.3 Tools needing Wine
     7.4 Other Utilities
     7.5 Links

  8. Trouble-shooting
     8.1 Bash Won't Start the Program
     8.2 Program Dies at Startup
     8.3 Program Dies Loading Level
     8.4 Game Runs Slowly
     8.5 Sound Problems
     8.6 Compilation Issues
        8.6.1 GCC-4.x
        8.6.2 64 Bit CPUs
     8.7 Other Issues
     8.8 Sound Drivers

  9. Other
     9.1 Nvidia
        9.1.1 XOrg AGP Issues
        9.1.2 Tweaks
     9.2 3Dfx
     9.3 FreeBSD
     9.4 QNX
     9.5 Transparent Water and VisPatch
     9.6 Quake Inspired XTerms
     9.7 Launching maps and demos
     9.8 Interest
     9.9 Quotes
     9.10 Glossary
     9.11 Links

  10. Administrative
     10.1 Credits
     10.2 Todo
     10.3 Changelog
     10.4 License
     10.5 Other Formats
     10.6 Author


  ______________________________________________________________________

  1.  Introduction

  1.1.  Preamble


  Linux Quake sits at the crossroads of two computing revolutions;
  GNU/Linux - the popular free operating system, and GLQuake - the first
  "first person shooter" to use OpenGL.  Thanks to John Carmack
  releasing the software under the GPL we are able to enjoy it on non-
  proprietary platforms.  And, despite it's age, great new maps are
  still regularly released.


  1.2.  About


  This document is a guide to installing Quake and it's many related
  games and modifications.  It includes compilation notes, tips and
  pointers to the best web resources, as well as some information about
  Quake II, III and IV.  You'll also find many issues relevant to Linux
  gaming in general.


  1.3.  Notation


  In some places, a shorthand is used to represent changes to a
  program's source code.  This is of the form:

  - code to be removed
  + code to be inserted in its place


  and is similar to the output of the GNU "diff" program when generating
  unified patches.

  Where the term "$PWD" is used, the user should already have executed
  the command cd {Linux Quake directory}, and have this as their current
  directory.



  2.  General Info



  2.1.  Getting Started


  Installing Quake requires a few basic steps.



     Get the Game Data Files
        Getting the game data files is normally done by installing the
        game <http://www.idsoftware.com/games/quake/quake> (or game demo
        <ftp://ftp.idsoftware.com/idstuff/quake/quake106.zip>) using
        Microsoft Windows, or an emulator such as Wine or Dosbox, and
        then copying the id1 directory of the installed game to your
        Linux Quake directory - making sure all files are in
        ``lowercase''.

        Alternatively, you can use the lha utility
        <http://freshmeat.net/projects/lhaforunix/> to extract the data
        files.  For early CDs, you must first

        ________________________________________________________________
            cat /mnt/cdrom/quake101.1 /mnt/cdrom/quake101.2 > resource.1
        ________________________________________________________________


     Once you have the resource.1 file, then type

     ___________________________________________________________________
         cd /usr/local/games/quake
         lha e {some directory}/resource.1
     ___________________________________________________________________



     Later versions of the game, including WinQuake, come with the data
     files in an uncompressed form and the id1 directory can be directly
     copied from the CD.



     Install a Quake Executable
        The program you execute to run Quake is known as the ``game
        engine''.  There are several to choose from, but the simplest
        choice is either TyrQuake
        <http://prdownloads.sourceforge.net/uhexen2/quake-
        lq-1.0.1.tgz?download>, or the more enhanced ``QuakeSpasm''.
        After downloading or compiling a game engine, place this binary
        in your Quake directory alongside the id1 directory.


     Summary
        Finally, you should have a directory structure similar to this,
        with all files being in ``lowercase'':


        /usr/local/games/quake +- quakespasm (or another game engine)
                               |
                               +- progs.dat
                               |
                               +- id1 -+- pak0.pak
                                       |
                                       +- pak1.pak


     Now, from an xterm window, type (for example)

     ___________________________________________________________________
         ./quakespasm -fullscreen -width 800 -height 600
     ___________________________________________________________________


     to start the game.



     Help
        This sounds simple, but if you are new to Linux and you are not
        familiar with the command line, try one of these links for more
        information:


        ·  ``Trouble-shooting'' section

        ·  The ``old version'' of this how-to

        ·  Linuxgamers Quake How-To <http://www.linux-
           gamers.net/modules/wfsection/article.php?articleid=42>

        ·  Quake wiki <http://wiki.quakesrc.org/index.php/HomePage>

        ·  The Linux Game Tome <http://www.happypenguin.org>



  2.2.  Command Line Options


  Command Line Options are extra parameters that are typed on the Linux
  command line following the program's name.  Quake has a large number
  of them, some of which vary from engine to engine.  The most
  useful/common ones are:


     -window
        Run the game in windowed mode

     -fullscreen
        Run the game in fullscreen mode

     -game NAME
        Load the mod NAME.

     -mem N
        Reserve N megabytes of memory for the internal heap.  This
        generally defaults to 8 or 16 meg, but must be increased when
        playing larger mods.


     -width WIDTH
        window/fullscreen width

     -height HEIGHT
        window/fullscreen height

     -basedir DIRECTORY
        Use this directory by default

     -sndspeed MHz
        Set sound sampling rate (eg. 44100, 22050, 11025)

     -sndbits N
        Set sound bits to N = 8 or 16

     -nosound
        Disable sound. Necessary when sound is absent/unconfigured to
        stop the game from crashing.

     -nomtex
        Disable GL multitextures.

     -listen N
        Allow a maximum of N players/bots to join multiplayer games.

     -cddev DEVICE
        Use DEVICE for playing the cd music

     -nocdaudio
        Disable cd audio

  You can also append Quake commands to the Linux command line by
  prefixing them with a plus sign. For example, to automatically start a
  new game at hard skill, use

  ______________________________________________________________________
      quakespasm +skill 2 +map e1m1
  ______________________________________________________________________



  2.3.  Game Console Commands


  For more info see
  <http://www.planetquake.com/console/commands/quake.html>

  The console is an in-game command line at which you can issue
  commands, change variables and cheat. It is toggled by pressing the
  tilde "~" key when in a game. The main commands include -



     god
        Invulnerability

     noclip
        Walk through walls

     notarget
        Enemies won't attack player

     timedemo DEMO
        Play DEMO (eg. "demo1") at top speed and show frame rate

     impulse N
        Issue "impulse N"

        These are in-game commands which can be given special uses. A
        few usefull ones are:

        ·  impulse  9 Give all weapons

        ·  impulse 12 Select previous weapon (eg bind MWHEELUP "impulse
           12")

        ·  impulse 10 Select next weapon

        ·  impulse 255 Give Quad damage


     bind key
        Bind a key to perform a command

     map MAP
        Load MAP

     changelevel MAP
        Load MAP without resetting player settings

     quit
        Exit to system

     skill   VALUE
        value = 0 (easy) - 3 (impossible)

        Degree of difficulty. Level must be restarted to take effect


     r_wateralpha    VALUE
        value = 0.0 - 1.0

        Opacity of water in maps with transparent water support (See
        ``Watervis'')


     _snd_mixahead   VALUE
        value = 0.1 - 1.0

        Raising this value is a good way to speed up the game at the
        expense of some sound lag. I use 0.3 on my slower computers


     gl_texturemode  VALUE
        value = gl_nearest | gl_nearest_mipmap_nearest |
        gl_linear_mipmap_nearest | gl_linear_mipmap_linear

        Worst to best texture quality.


     r_shadows       FLAG
        flag = 0 | 1

        Display model shadows


     vid_wait        FLAG
        flag = 0 | 1

        Sync video output with screen refresh

     chase_active    FLAG
        flag = 0 | 1

        Show player from third person perspective



  3.  Game Engines



  3.1.  TyrQuake


  TyrQuake is a fairly complete project including OpenGL, Software Quake
  and QuakeWorld clients, and other tools
  <http://disenchant.net/utils.html> including the popular TyrLite.
  Tyrann's focus is on a fully featured but minimalist cross-platform
  engine.

  The latest version is 0.60, which now supports the Power PC platform,
  FreeBSD and per-user configuration files. Other newish features
  include sophisticated command line completion, and a cool console
  effect (gl_constretch).

  Typing make will build all the clients. To compile only the single
  player client, after unpacking the source code type:
   make prepare tyr-glquake .  Tyrann has a nice clean build system, but
  if you wish to see compilation feedback, add V=1 to the command line.


  A patched TyrQuake binary is available here
  <http://prdownloads.sourceforge.net/uhexen2/quake-
  lq-1.0.1.tgz?download>.

  <http://disenchant.net/engine.html>



  3.2.  QuakeSpasm


  FitzQuake <http://www.celephais.net/fitzquake> has long been the
  defacto standard for the Quake mapping community, and this new project
  is based on the SDL Port <http://www.kristianduske.com/fitzquake> of
  Fitz.


  3.2.1.  Features


  As well as great FitzQuake features such as skyboxes, fog, coloured
  light, and support for huge maps, QuakeSpasm includes:

  ·  64 bit CPU support

  ·  Should work with most SDL platforms

  ·  Restructured sound driver

  ·  Custom console background

  ·  SDL CD audio

  ·  Tweaked command line completion, and a map name autocomplete

  ·  Alt+Enter toggles fullscreen


  3.2.2.  Tips



  ·  scr_sbaralpha .99 - Give a nicer status bar

  ·  maps - List available maps

  ·  game GAMENAME - On-the-fly change of game

  ·  ./quakespasm -fitz - Run game in FitzQuake mode

  <http://quakespasm.sourceforge.net>



  3.3.  Darkplaces


  Darkplaces is an amazing Quake engine with a great range of visual
  enhancements and options for colour, effects and sound. It uses the
  same Doom3 lighting features as Tenebrae and thus requires a more
  powerful computer than GLQuake and QuakeForge.

  It also supports many otherwise incompatible mods including
  ``Nehahra'' and ``Nexuiz'', and has improved support for the official
  mission packs. Recent changes include improvements to the menuing
  system, and speed increases, though there also appears to be some mod
  compatability issues creeping in.

  Havoc's file archive <http://icculus.org/twilight/darkplaces/files/>
  can be a little confusing.  The large "darkplacesengine" tarballs
  include precompiled binaries and the game's source code in a second
  tarball. To compile your own program uncompress the second tarball ,
  type make to see a list of possible targets (programs), and select
  one.  For example - to build the OpenGL engine with ALSA sound type
  make cl-release, or to build with OSS sound, make cl-release
  DP_SOUND_API=OSS.

  Thanks to LordHavoc for this great project.

  <http://www.icculus.org/twilight/darkplaces>


  3.4.  Quore


  From the Quore website:

       Quore is an atmospheric Quake engine running on GNU/Linux
       systems with enhanced graphics, increased limits, config-
       urable HUD and ambiences, and different modes for changing
       the gameplay. It is based on JoeQuake with additional
       effects from Qrack, ezQuake and engine's limits tweaking
       from Fitzquake


  This game is great, and probably the most graphically modified Linux
  engine.  But it also has many niggling bugs.


  <http://quore.free.fr/index.html>



  3.5.  QuDos Quake Ports


  QuDos has done much work with Quake engines for BSD and Linux.  In the
  past he has ported Nehahra , JoeQuake and others, but currently has
  only a couple available at his website.

  His excellent ``NehQuake'' port is still available at LinuxQuake.Org
  <http://linuxquake.org/index8.html> , but those after the source code
  may try contacting him.

  <http://qudos.quakedev.com/linux/quake1>


  3.6.  MFCN's GLQuake


  Here you'll find some relevant documentation and trouble shooting
  tips, and a basic version of OpenGL Quake for Linux.  Fairly pain free
  by Linux standards, it supports most Quake mods, but gamma
  (brightness) support is broken.

  <http://mfcn.ilo.de/glxquake>


  3.7.  Tenebrae


  Tenebrae is a gorgeous Quake engine with lighting similar to that in
  Doom III.  It's is an old project requiring a good GPU, and may not be
  compatible with all... the documentation is a fairly sparse.

  There are several points of interest here...


  ·  Tenebrae has an "easter egg". In the quit game dialog press "d".

  ·  It includes the interesting "bumptest" and "zoo" maps.

  ·  A custom Tenebrae-1.0 engine is included with the atmospheric
     Industri <http://industri.sourceforge.net> mod.

  ·  Tenebrae doesn't run user mods.

  The Tenebrae installer
  <http://www.liflg.org/?what=dl&catid=6&gameid=12&filename=tenebrae.quake_1.04-english-2.run>
  will install the shareware Quake levels, and all fancy Tenebrae models
  and textures, but is a 100 meg download. (Make sure to run the game in
  32 bpp mode - see below). Try here
  <http://www.cynapses.org/tmp/tenebrae/> for some binaries.

  Compilation of the source code may not be straight forward. Firstly:

  cd linux ; ln -s Makefile.i386linux Makefile ; make


  If compilation fails with "../glquake.h:1137: conflicting types for
  ....",  lines 1137 and 1138 need removing. You may also have to change
  the gethostname declaration in net_udp.c thus:



  - extern int gethostname (char *, int);
  + extern int gethostname (char *, size_t);



  After compilation, copy the binary "debugi386.glibc/bin/tenebrae.run"
  and the Tenebrae data files to your Quake folder. Finally, the game
  only runs in 32 bpp colours (X11 colour depth 24), so restart X in
  this mode if you have to, and execute the game with: tenebrae.run
  -basedir $PWD.  Alternatively you can start a new X session with the
  command:

  startx $PWD/tenebrae.run -basedir $PWD -- :1 -depth 24



  <http://tenebrae.sourceforge.net/>



  3.8.  QuakeForge


  QF is a comprehensive Linux Quake project. It has elegant graphical
  enhancements, numerous single player and ``QuakeWorld'' clients and
  Quake C tools. Amongst it's features are: an overhauled menuing
  system, a new "heads up display", and in-game help.

  Possibly because of it's size, QuakeForge hasn't been updated in years
  and it's documentation was never quite finished.  The usual "configure
  && make && make install" will build the whole project, but it does not
  appear to support a minimal single player build option.  QuakeForge's
  default directory is "/usr/local/share/games/quakeforge", so ensure to
  link to your "id1" directory from here. (For example ln -s
  /usr/local/games/quake/id1 /usr/local/share/games/quakeforge/id1).

  For information about building QuakeForge on the BSD Unices, see the
  ``FreeBSD'' section.

  Kudos to the QuakeForge team for a huge project which has provided
  much inspiration for other open source games.

  <http://www.quakeforge.net>
  <http://sourceforge.net/projects/quake/>



  3.9.  NPRQuake


  Another Quake engine which has been ported to Linux but, as far as I
  know, hasn't been touched in a few years is NPRQuake.  Notably, it has
  the ability to load different renderers on the fly, which is pretty
  cool. The Linux port <http://www.geocities.com/coolguywithgun>
  includes support for the cartoon renderer ainpr
  <http://www.cs.unc.edu/%7Eadyilie/comp238/Final/Final.htm>, and works
  really well for me.

  The SDL version <http://www.tempestgames.com/ryan/> has rewritten
  mouse and video code, but the sound APIs have not been ported to SDL,
  and it is not a fully portable engine.

  <http://www.cs.wisc.edu/graphics/Gallery/NPRQuake/>



  3.10.  Twilight Project


  The Twilight Project "is a set of rather minimalist NQ and QW engines
  that focus on insane rendering speed, it is however a bit unstable at
  the moment."

  This game is ~quick~, with a plain looking, but useful menu system, so
  users with a slow computer should definitely give this a go. It also
  has some unique graphical effects and an unusual user interface.

  To compile version 0.2.2 of this project, you'll need the python
  scripting language installed, and perhaps to make this change to
  src/nq/pr_edict.c , line 1108:

  -               if (progs->ofs_strings + pr_stringssize >= com_filesize)
  +               if (progs->ofs_strings + pr_stringssize >= (uint)com_filesize)


  Executing scons.py will now (hopefully) build the binaries, and after
  copying the single player client (twilight-nq) to your quake direc-
  tory, type twilight-nq -basedir $PWD to start the game.

  If you're having trouble with compilation, version 0.2.01 uses the
  traditional "configure && make && make install" method, so you may
  want to try it.

  Game saves are an issue with this engine. There are no game save or
  load menus, and this can only be done using the "F6" and "F9" keys to
  quicksave and load. Additionally, this feature often won't work if you
  started with the "map MAPNAME" command, so make sure you begin games
  in a normal fashion, through the "Start Game" menu.

  <http://icculus.org/twilight>


  3.11.  Audio Quake


  This engine is for visually disabled people, and uses sound to help
  with navigation.  It includes OpenGL and SDL clients.

  <http://www.agrip.org.uk/>


  3.12.  SDL Quake


  This basic version of Quake is not really of interest to Linux users
  as it uses a very old code base, and has few features. It's main
  feature is the use of the SDL programming API for sound, video and
  mouse handling, and should run on all SDL supported operating systems
  without major changes.

  SDL Quake does have a bug relating to music: running the game with an
  audio CD in the drive will limit the game's speed. To avoid this
  simply remove the CD, or use the -nocdaudio option.

  The game runs at a fixed resolution; the width and height can't be
  changed.  To play in fullscreen mode, use the -fullscreen option.

  <http://www.libsdl.org/projects/quake>



  3.13.  wmQuake


  WindowMaker is a window manager for X11, and this tiny version of
  Quake fits in an 64x64 pixel dockable applet.  You can test it out
  even if you don't have WindowMaker, but the game will crash if it gets
  keyboard focus.
  For the curious, this game can  be benchmarked with timedemo demo1
  after removing the "usleep" commands from sys_linux.c.

  <http://freshmeat.net/projects/wmquake/>


  3.14.  Software Quake


  For a more in-depth treatment of Software Quake, see the  ``previous
  version'' of this how-to.

  The original WinQuake source
  <http://www.quakeforge.net/files/q1source.zip> also came with two
  pixelated versions of the game:


  ·  X Quake (quake.x11)

  ·  Svga Quake (squake)

  but compiling them is no longer straight forward. It involves copying
  Makefile.linux to Makefile, editing this file to remove the extra
  targets , replacing /usr/X11/lib with /usr/X11R6/lib and typing make
  build_release.

  There are easier options though. ``TyrQuake'' and ``QuakeForge'' have
  software clients, and there is also an old ``SDLQuake'' written by
  SDL's author, Sam Lantinga, which should work on all modern platforms.



  4.  Mods

  4.1.  About


  Quake has hundreds of user created levels - known variously as "mods",
  "total conversions" or simply "maps".  To run new maps, place the bsp
  file into the "quake/id1/maps" subdirectory, and start Quake with the
  +map MAPNAME option.

  Installing mods is simply a matter of creating a subdirectory DIR and
  extracting the contents of the mod zipfile/tarball into this
  directory.  It is then loaded by using the -game DIR command line
  option and, sometimes, +map MAPNAME where MAPNAME is the mod's start
  map.

  For both maps and mods, all files should be in ``lowercase''.


  4.2.  Single Player Mods


  There has recently been an effort to archive many Quake maps at
  Quaddicted.  Maps <http://www.quaddicted.com/spmaps.html>, Mods
  <http://www.quaddicted.com/spmods.html>.


  Some of the more notable mods are:



     Travail
        This recent mod is a must have. It includes 15 single player
        levels, stunning bosses, and a couple of twisting spider
        infested caverns. Distrans has also contributed a professional
        quality soundtrack
        <http://www.quaddicted.com/filebase/travail_soundtrack.zip>
        composed of moody and interesting electronic vibes.  Link
        <http://www.quakeone.com/travail>


     Quoth
        Quoth began life as a sequel to the draw-dropping mod, Contract
        Revoked <http://kell.spawnpoint.org/convoked.html>, but has
        recently gained much support from mappers, as is becoming the
        defacto extension of Quake I.

        It's new features include numerous crazy enemies with strong AI,
        destructable environments, and other items including ladders and
        flashlights.  Link <http://www.planetquake.com/necros/quoth/>


     W a r p s p a s m
        A huge atmospheric Quoth mod by Ijed. The latest and greatest.
        Link <http://gimme.badsectoracula.com/warpspasm-readme.html>


     Soul of Evil
        Gorgeous medieval themed mod with two single player episodes, a
        melee style arena mode and nice documentation.  Many thanks to
        Tronwyn, Fat Controller and their co-authors.  Link
        <http://www.planetquake.com/tronyn/soul>


     Nehahra
        Epic. Ambitious. Otherwordly.  Nehahra is the definitive Quake
        mod, supported in Linux by LordHavoc's ``Darkplaces'', and
        ``QuDos''' port of the NehQuake engine. It has some great models
        and maps, uses fog effects well, and has an (optional) two hour
        movie/demo which ties-in well with the original Quake "story-
        line" but is also in desperate need of an edit.

        Nehahra also features improved enemy AI - the grunts strafe
        behind cover, and scrags in open space can be very hard to pin
        down. New gamers may wish to disable this feature by typing
        nomonsters 1 at the game console.  Link
        <http://www.planetquake.com/nehahra>



     Zerst
        Dark and bloody, with Doom's paranoiac atmosphere. A classic.
        Zerst also has some good death match levels - Link
        <http://www.quaddicted.com/zer.html>


     Neil Manke's mods
        Neil wrote the definitive Half-Life mod "They Hunger".  The
        quality and fun is in these maps too - alba01, alba02, sofsp1,
        sofsp2, starshp2, Link <http://www.planethalflife.com/manke/>



     Operation: Urth Majik
        Oum is one of the few Quake 1 mods with a sci-fi feel. It has
        five well made levels, with cut-scenes and many new weapons -
        Download <http://disenchant.net/files/maps/oum.zip>, Link
        <http://www.planetquake.com/fatty/oum/>


     Scourge done Slick
        SdS is a speed run through Mission Pack 1, Scourge of Armagon.
        Hilarious and amazing.  Link
        <http://www.planetquake.com/QdQ/sds.html>



  4.3.  Commercial Mods



     Mission Pack 1
        Scourge of Armagon by Ritual Entertainment (formerly known as
        Hipnotic Interactive).
        After playing Armagon, you should also check out the Death's
        Dominion <http://www.google.com.au/search?q=dd.zip> Level Pack.


     Mission Pack 2
        Dissolution of Eternity by Rogue Entertainment.
        Both official mission packs are generally acknowledged as better
        than the original game.


     Malice
        Very original Quake total conversion, with the greatest
        (virtual) machine gun I've ever unleashed.  Worth paying for.


     Abyss of Pandemonium
        Commercial mod now freely available: Link
        <http://www.planetquake.com/impel>


     Ravages of Apocalypse
        Xmen mod! Great models. Shame about the game-play.  ...When good
        mods turn bad.
        This mod has now been released free of charge, and can be found
        here <http://www.zerogravity.com.au/xmen/>.


     Shrak
        One of the first commercial mods. It has well modelled and
        totally new monsters, but the game-play doesn't cut it.



  5.  Multiplayer



  5.1.  Nexuiz



  Nexuiz is a stand-alone game using the Darkplaces engine. The recently
  released second version is a 200 meg download, and includes Linux and
  Windows binaries, source code, and a new campaign mode.

  This engine makes use of many advanced lighting features, so users
  with less powerful video cards should try disabling these to run the
  game at a decent speed.

  <http://www.nexuiz.com>


  5.2.  EzQuake


  This project now works for me, and is looking very nice.

  As well and as GL, X11 and SVGA clients, it has serious graphical and
  game-play enhancements and some nice documentation. It is definately a
  project to keep up with.

  Sound may be an issue. It defaults to ALSA but to start with OSS try:
  "ezquake-gl.glx +set s_device /dev/dsp". To compile the GL client,
  type "make glx". You may have to change the Makefile thus:

  - LDFLAGS = -lm -lpthread
  + LDFLAGS = -lm -lpthread -L/usr/X11R6/lib



  <http://ezquake.sourceforge.net>

  <http://ezquake.sourceforge.net/forum/>


  5.3.  FTE QuakeWorld


  An ambitious project, FTE Quakeworld <http://www.fteqw.com> aims to
  offer support for multiplayer Quake as well as similar projects such
  as Hexen II. GB reports: "The FTE engine also runs NQ stuff and even
  Nehahra... even in software"!



  5.4.  ProQuake


  From the ProQuake website: "...What you will find is a rock solid set
  of enhancements to unmodified netquake.  Things that quake should have
  had from the get go.. like precise aim.  Small, simple changes that
  improve the quality of netplay enormously.  ProQuake is fully
  compatible with standard NetQuake.  .... ProQuake is also fully
  compatible with the advanced features of Clanring CRMod++ version
  6.0."

  ProQuake 4 <http://quakeone.com/proquake/>

  Older ftp repository <ftp://ftp.runequake.com/quake/engines/proquake>


  5.5.  ZQuake


  ZQuake is a QuakeWorld client with good multiplayer support.


  <http://zquake.frag.ru>


  5.6.  Other Game Types



  5.6.1.  Deathmatch



  5.6.2.  Capture the Flag



  5.6.3.  Rocket Arena



  5.6.4.  Rune Quake



  5.7.  Other Multiplayer Mods



     Painkeep
        Popular deathmatch mod including new weapons.


     Soul of Evil
        ``SoE'' in arena mode has some great melee action.


     Battle Mech
        Battle Mech is a top down Mechwarrior style mod. Make sure to
        use the 1.1
        <http://static.condemned.com/files/bmech_stuff/battlemech-1.1.tar.gz>
        tarball.

        <http://static.condemned.com/index.shtml>



  5.8.  Bots


  Bots are computer generated players with artificial intelligence. Some
  require "waypoints" to successfully navigate.



     Frikbot
        Popular bot designed for easy integration into mods.


     Frogbot
        Highly regarded as one of the best, hundreds of maps supported.


     Omicron
        Venerable mod by Mr. Elusive, who went on to create Gladiator
        bot for Q2 and the Q3:Arena bots. Needs no waypoints.

  5.9.  Servers



     XQF and QStat
        XQF <http://www.linuxgames.com/xqf/index.shtml> is a feature
        rich game server browser and launcher for Quake and many other
        games.  It is dependent on the separate program, QStat
        <http://www.qstat.org/> , which displays information about
        Internet game servers.  You'll also need the Gnome Gtk and Gdk
        toolkits.


      <http://www.quakeone.com>

      <http://www.quake1.net/servers.cgi>



  6.  Quake Sequels



  6.1.  Hexen II


  Hexen II is a colourful adaption of the Quake engine, and in terms of
  source code and theme is much closer than Quake II to the original
  game. Unfortunately, Raven Software <http://ravensoft.com> released
  the game with many rough edges... So beautiful, yet so cruel.

  Hammer of Thyrion <http://uhexen2.sourceforge.net> is the main Linux
  Hexen II port , and has had much work done towards squishing bugs and
  enhancing the OpenGL graphics.  While it is not as widely distributed
  as Quake, the HoT demo includes some of the game's best levels and is
  available from the Sourceforge project page
  <http://sourceforge.net/projects/uhexen2>.

  Mappers should note the Quest <http://quest-
  ed.sourceforge.net/index.html> world editor, and HexenC compiler
  FTEQCC <http://www.fteqw.com>.


  6.2.  Quake II


  Quake II is the sci-fi themed sequel to Quake.  Early Linux releases
  weren't very solid, especially the mouse handling, but there is now a
  few related projects to choose from.



     Open Source Projects
        QuDos' Quake II <http://qudos.quakedev.com/linux/quake2> is the
        most notable. It is based on Icculus Quake II
        <http://www.icculus.org/quake2/>, and includes some beautiful
        graphical enhancements - including cell shading - and support
        for FreeBSD and XMMS plugins.  Another project still in
        development is Quetoo
        <http://jdolan.dyndns.org/jaydolan/home.html> which has speed
        and security enhancements, but also a very stripped back
        interface and a few bugs.

        Yamagi Quake II <http://www.yamagi.org/quake2>, also based on
        Icculus, is an active Q2 project focusing on single player game
        and cooperative game modes.

        Qfusion <http://hkitchen.net/qfusion/> appears an interesting
        project... that's slipped under my radar till now. An advanced
        multipurpose engine based on Quake II.

        Older projects include Michael Olson's source
        <http://www.cs.odu.edu/~olson/linux/quake2-0.12-1jag.src.rpm>
        and binary
        <http://www.cs.odu.edu/~olson/linux/quake2-0.12-1jag.i386.rpm>
        rpms (which appear to be based on an old Icculus release) and
        the QuakeForge Quake II
        <http://www.quakeforge.net/files/quake2forge/quake2-0.3.tar.gz>
        project with support for multiple operating systems.  On a
        slightly different note - the Jake2
        <http://www.bytonic.de/html/jake2.html> project is a version of
        Quake II written in Java.


     Notes
        A common command line option is:
        which tells the game to start in OpenGL mode.

        See the ``old version'' of this how-to for other Quake II
        troubleshooting tips.


     Mods
        Digital Paint 2 <http://www.planetquake.com/digitalpaint/> is an
        "original" multiplayer game based on the Quake II engine. It's
        colourful and fun nature is a departure from the usual dark tone
        of most Quake games. Being a totally remodeled game, it doesn't
        require you to have the original Quake II ;->.

        Argonium <http://www.planetquake.com/td/argonium/> is a slick
        looking deathmatch mod which is also freely distributable.



  6.3.  Quake III Arena


  Quake III was one of the first games to receive a full Linux
  commercial release. It's a great game which more than survives. Mods
  are numerous, and of better visual quality than Quake I or II.  For
  more info about installing the game, try idsoftware's Faq
  <http://zerowing.idsoftware.com/linux/q3a/INSTALL>, or Linuxgamer's
  Quake III How-To <http://www.linux-
  gamers.net/modules/wfsection/article.php?articleid=30>.

  The retail add-on Quake III Team Arena is supported and, despite
  getting ordinary reviews, is a great game.  Most user mods should work
  with Linux. The Linux Gamers FAQ reports:

      Yes, ... modifications work in Linux as long as they are compiled to the
      Quake III ... VM bytecode as advised by id software.  ...  modifications
      compiled to Windows library files will not work.



     Open Source Projects
        The Icculus Quake III Project which has recently moved to
        IOQuake <http://ioquake3.org>.  They are adding extra features,
        including support for Star Trek Voyager: Elite Force Holomatch
        (multiplayer).

        Sourceforge Quake III - Cell Shading
        <http://q3cellshading.sourceforge.net>


     Mods
        Warsow <http://www.warsow.net> is a cell-shaded cartoon style
        total conversion using a heavily modified engine. It's interface
        is very slick, graphics to die for, and gameplay is ok.

        World of Padman <http://www.worldofpadman.com/> is a high
        quality stand-alone conversion. It's set in a miniature suburban
        world with a bizarre cartoon theme, and is currently multiplayer
        only but with full bot support.

        In Alien Arena <http://red.planetarena.org> you're matched
        against pin headed martians in unbelievable OpenGL environments.

        The Dark Conjunction <http://www.planetquake.com/tdc/> is an
        atmospheric Q3 single player conversion.


        Try the alien themed Tremulous <http://tremulous.net> for an
        original multiplayer mod.


     Links
        The Zerowing installation
        <http://zerowing.idsoftware.com/linux/q3a/INSTALL> and known
        issues <http://zerowing.idsoftware.com/linux/q3a/> guides hosted
        by id Software.

        Linuxgamer's Quake III How-To <http://www.linux-
        gamers.net/modules/wfsection/article.php?articleid=30>.

        Linux Questions' Quake III forums for Sound
        <http://www.linuxquestions.org/questions/history/260975> and
        Mouse <http://www.linuxquestions.org/questions/history/225821>
        problems.

        All things Quake III at Planet Quake
        <http://www.planetquake.com/quake3/q3aguide/>



  6.4.  Quake IV


  Quake IV is an epic FPS from Raven Software <http://ravensoft.com>.
  It is based on the Doom-III engine and has high hardware specs: A 2GHz
  P4 (or AMD equivalent) and 512meg ram are the official minimum
  requirements.  It's a beautiful game which should really be played
  with the graphical settings set to "medium" or "high". For this reason
  the author recommends against using entry level cards such as the
  FX5200.

  The game runs well under Linux, but still has a couple of issues:


  ·  Quake IV only runs in 32 bpp colours (X11 colour depth 24), so
     restart X in this mode if you have to. Attempting to run in 16 bpp
     colours will give you an error message like:

      Couldn't find matching GLX visual ..... Sys_Error: Unable to
     initialize OpenGL.

     Alternatively you can start a new X session with the command:

     startx `which quake4` -- :1 -depth 24



  ·  The Alsa sound libraries are used by default. To start with OSS
     sound , type:

     quake4 +set s_driver oss



  ·  The Quake IV  DVD Edition comes with several promotional movies.
     Although the movies appear to be Windows executables, they are in
     fact Bink videos, and can be viewed with the Linux Bink Player
     <http://www.radgametools.com/down/Bink/BinkLinuxPlayer.zip>.



     Quake IV Links
        The Official Linux Faq
        <http://zerowing.idsoftware.com/linux/quake4/>

        Linux Questions Quake IV bug forums
        <http://www.linuxquestions.org/>

        Quake IV demo
        <ftp://ftp.idsoftware.com/idstuff/quake4/demo/quake4-linux-1.0-demo.x86.run>

        Linux 1.4.2 SDK installer
        <http://www.iddevnet.com/quake4/GettingStarted>



  7.  Mapping Tools


  Creating mods is done with map editors and compilers, but also
  involves ....  texture creation, making pak files, modeling, skinning,
  editing sound and graphics files, and writing your own progs.dat with
  Quake C. Linux support is available, but is not comprehensive.

  Quake C is Quake's own game language (it was the first game such), and
  it allows mods to work seamlessly on all operating systems.


  7.1.  World Editors



     GtkRadiant <http://www.qeradiant.com/>
        The main map editor for Quake. It is based on id Software's own
        editor, and requires OpenGL.


     Quest <http://quest-ed.sourceforge.net/index.html>
        A multi-game world editor.  It has a stiff learning curve, but
        is very efficient after you master it.


        ·  keyboard shortcuts for effortless cut-and-paste operations on
           multiple brushes and entities

        ·  easy vertex manipulation using keyboard shortcuts and the
           mouse

        ·  edit the properties of multiple entities at once

        ·  texture and align multiple faces

        ·  texture locking function (crates)

        ·  can rotate, stretch and mirror textures

        ·  support for groups

        ·  variable grid size down to 1 px



  7.2.  Tools



     Bjptools <http://qexpo.tastyspleen.net/uploaded/157/bjp-
        tools-090908.zip>
        Linux port of the most used map compilers.

        ·  includes treeqbsp, vis and light

        ·  supports rotating entities

        ·  doesn't support coloured lights

        ·  modifications by Bengt Jardrup, Greg Lewis, and others


     Tyrutils <http://disenchant.net/utils.html>
        Tyrann's popular map compilers, including qbsp, vis and tyrlite.
        Supports rotating entities and coloured lights.


     Hmap2 <http://icculus.org/twilight/dark-
        places/files/hmap2build20080616.zip>
        LordHavoc's compiler. It can compile leaky or incomplete maps
        (use only for testing!) and does a ton of other stuff, including
        coloured lighting.


     QEU <http://gamers.org/pub/idgames2/utils/bsp_pak_tools/qeu03.zip>
        Command line tools to handle pak and wad files (source code
        only).


     FTEQCC <http://www.fteqw.com>
        Comprehensive, advanced QuakeC compiler with gui and command
        line versions. If this one can't compile it, nothing will!


     FrikQCC <http://www.inside3d.com/frikbot/frikqcc>
        QuakeC compiler



  7.3.  Tools needing Wine


   Wine <http://www.winehq.org/> is a project that allows many Windows
  programs to work with Linux.



     Wally <http://www.telefragged.com/wally>
        Multipurpose texture editing tool. Can batch convert BMP files
        to Quake textures, etc. Also provides several paint functions,
        and macros such as rivets and decals.


     The Quake Army Knife <http://dynamic.gamespy.com/~quark/>
        QuArK is a multipurpose Quake editing tool. It loads, edits and
        exports multiple file formats, and has matured into a multi-
        game, multi-format tool. Some functions are broken though, and
        it may not work with all versions of Wine.


     Q1Rad <http://icculus.org/homepages/riot/q1rad.zip>
        Light tool that does radiosity-based lighting, like Quake II.



  7.4.  Other Utilities



  ·  Gimp <http://www.gimp.org>. Graphics editor.

  ·  Sweep <http://www.metadecks.org/software/sweep>, Audacity
     <http://audacity.sourceforge.net>, Libsamplerate <http://www.mega-
     nerd.com/SRC>, Normalize <http://normalize.nungnu.org>, Sox
     <http://sox.sourceforge.net>.  Sound editing tools.


  7.5.  Links



  ·  Quake mappers' message board Func_Msgboard
     <http://www.celephais.net/board/forum.php>

  ·  Inside3D.com <http://inside3d.com> has lots of good stuff.

  ·  Bengt Jardrup's  homepage <http://user.tninet.se/~xir870k> is a
     must read, with documents about engine errors, map limits, and the
     like.

  ·  Quake Terminus <http://www.quaketerminus.com/tools.htm> tools
     section.

  ·  ``QuakeForge'' includes some Quake C tools with their tarball.

  ·  The Quake Wiki <http://wiki.quakesrc.org/index.php/HomePage> has
     some relevant links for the windows platforms.



  8.  Trouble-shooting


   Other trouble-shooting resources can be found at: The Linux Gamers
  FAQ <http://www.icculus.org/lgfaq>, Jn's GLQuake Site
  <http://mfcn.ilo.de/glxquake>, and the ``old version'' of this how-to.

  Often, using an alternative game engine such as ``QuakeSpasm'' or
  ``Darkplaces'' will fix mouse and sound related problems.


  8.1.  Bash Won't Start the Program


  "bash: ./glquake.glx: Permission denied"


  ·  The binary may not have the executable bit set.  Type chmod +x
     glquake.glx to fix this.

  ·  If the program is located on a windows partition, it is possible it
     has been mounted with the noexec option.
     Type (as root): mount -o remount,exec /mnt/windows

  "bash: glquake.glx: command not found"


  ·  Bash may not be including the current directory in it's path.
     Type: "export PATH=$PATH:."


  8.2.  Program Dies at Startup


  This is not good, but some simple options to try are:


  ·  - use -nosound   to test if sound is the problem.
     Sound issues are covered in detail below.

  ·  - use -noudp     if network is unconfigured.

  ·  - use -nocdaudio if cdrom is absent.

  ·  - use -height, -width and -fullscreen command line options to
     select a screen mode you know is properly configured.
     e.g.  glquake.glx -width 800 -height 600 -fullscreen -nosound


  Files not lowercased or Data files missing.

  Linux Quake requires (most) filenames to be in lowercase.  If you get
  an error similar to "Error: W_LoadWadFile: couldn't load gfx.wad" it
  means the game can't find the data files, possibly because they are
  not all lowercase.


  ·  Make sure you have the subdirectory "id1" (not "ID1") containing
     the files "pak0.pak" and "pak1.pak".

  ·  For a comprehensive lowercase utility, download this utility
     <http://prdownloads.sourceforge.net/uhexen2/lowercase?download> or
     visit <http://filerenameutils.sourceforge.net>.

  Missing libraries: "error while loading shared libraries: libGL.so.1:
  cannot open shared object file"

  A message like this means the program cannot run because it can't find
  a system file it needs.  Perhaps:


  ·  File is not installed - Just check with your package manager and
     install the correct package.

  ·  Links aren't properly set-up. If you have (say)
     /usr/lib/libGL.so.1.2, but get the above message, you should be
     able to remedy this with ln -s /usr/lib/libGL.so.1.2
     /usr/lib/libGL.so.1

  Dynamic libraries (or DLLs as they are known to Windows users) can be
  quite complex.  For more information try the ldd and ldconfig man
  pages.


  "Memory overwrite in Sys_Printf"


  ·  This error means you need to edit file sys_linux.c, procedure
     Sys_Printf, and change text[1024] to text[4096] and recompile.
     Many versions of Quake have what appear to be two versions of this
     procedure, but one is always commented out.  Obviously you'll need
     to change the value in the correct procedure.

  Problems with GCC 4


  ·  If you're experiencing core dumps and are using version 4.0 of the
     GNU compiler, see ``Compilation Issues'' below.


  8.3.  Program Dies Loading Level



  ·  Many mods require extra memory. Use the -mem 64 option to allocate
     64 meg of memory for the heap.


  ·  In some cases, this problem can be sound related. Try some of the
     tips in the sound section.


  ·  A few newer mods just won't work with standard GLQuake, and need an
     enhanced ``game engine''.  ``Darkplaces'' has the best large map
     support under Linux, but some are even too big for it, and are
     unsupported under Linux.


  8.4.  Game Runs Slowly


  Most Quake games rely on OpenGL (libGL.so) for their graphical
  features.  Setting up OpenGL is beyond the scope of this document.
  Very slow performance means you're probably using Mesa GL instead of
  proper hardware GL acceleration.

  Performance gains can also be made by disabling fancy effects such as
  light bloom, and by slowing sound mixing with the ``console command''
  "_snd_mixahead .4"

  Minor game slowdown's with Nvidia hardware can also be attributed to
  the use of conflicting AGP drivers. For more info about this see
  ``Nvidia AGP Issues''



  8.5.  Sound Problems


  For more information see the ``drivers'' section.

  An error such as: "/dev/dsp: Device or resource busy" indicates some
  program is already using your sound card, and you will have to halt
  this program to get Quake sound effects.


  ·  From the Linux command line, type killall artsd or pulseaudio -k to
     terminate either of these popular sound daemons.


  ·  Alternatively, to run Quake through the KDE sound daemon, type
     artsdsp glquake.glx ...

  "Quake engine games exit, and I see an error about mmap!"


  ·  The Linux Gamers FAQ <http://www.icculus.org/lgfaq> recommends
     "Your sound card/driver doesn't support this needed feature.
     However, if you use KDE/arts you may be able to bypass this with
     the -m switch to the artsdsp wrapper".
     Make sure the artsd program is running by typing ps -A | grep artsd
     and checking that this command returns at least one non-empty line.
     Then type artsdsp -m glquake.glx.

  ·  Try alternative sound drivers as outlined in the ``Sound Drivers''
     section.

  Sound stutters or is not very good.


  ·  See the sound note in ``Compilation Issues''.

  ·  Try using the -sndspeed or -sndbits option(s), or swapping sound
     drivers.

  SDL provides a simple way of changing the sound driver using the
  SDL_AUDIODRIVER environment variable. Run the game using a command
  line like:
       SDL_AUDIODRIVER=xxx darkplaces-sdl
  Valid values on linux are: dsp (uses OSS), alsa (uses ALSA), esd (uses
  the ESD daemon), and maybe arts (uses the aRTs daemon)



  8.6.  Compilation Issues


  The dynamic nature of GNU/Linux means compiling old software is often
  hard work, and even small hurdles are impossible for people not
  experienced in C programming. Below are a few relevant issues.


  8.6.1.  GCC-4.x



     The GNU C compiler has recently had a major revision, and most
     modern distributions now include GCC-4.1. (To find out which
     version you are using, type gcc --version).  The author generally
     uses GCC-3.2.2 , and people using  GCC-4.x may find extra problems
     when compiling programs:

     Warnings
        GCC-4.x issues many more compilation warnings than 3.x. These
        are small errors that can generally be ignored, but when the
        compiler is given the "-Werror" flag, warnings will bring
        everything to a halt. To fix this you can safely remove the
        "-Werror" from the program's Makefile.


     Slurred Sound
        Yet another sound issue. This common problem is fixed by
        altering snd_mix.c thus:

        -           snd_scaletable[i][j] = ((signed char)j) * i * 8;
        +           snd_scaletable[i][j] = ((j < 128) ? j : j - 0xff) * i * 8;



     Optimizations
        GCC-4.0 in particular had a problem with "-O" flags breaking
        some variable type-casting. If you are able to compile the
        program , but it segfaults, try disabling these optimizations by
        removing the "-O" options from any makefiles.


  If you are having troubles compiling with GCC-4 which weren't there
  previously, it's possible to install GCC-3.x alongside 4.x. Most
  people will want to look for precompiled packages from their Linux
  distribution.

  Once GCC-3.x is installed, the program must then be told to compile
  with this version rather than the default 4.x.  Projects that come
  with configuration scripts will often have options for defining which
  compiler to use (type ./configure --help and look for hints), and
  other times you be able to use export CC=gcc32 or edit the Makefile
  and replace occurrences of "gcc" with "gcc32" (or "gcc-3.2.2", etc)
  manually.


  8.6.2.  64 Bit CPUs


  Most of these legacy programs will probably not work as 64 bit
  binaries.  ``QuakeSpasm'' is an exception.

  It is still possible, however, to compile 32 bit binaries on a 64 bit
  operating system. To do so, edit Makefiles and add "-m32" to the load
  and compile flags (LDFLAGS, CFLAGS). This tells GCC to build and link
  a 32 bit program (if the 32 bit SDL and OpenGL libraries are also
  installed). You may also have to disable the use of x86 assembly.

  If you are having trouble running 32 bit apps, try using the linux32
  command. For example: linux32 tyr-glquake.


  8.7.  Other Issues



     Game is too dark
        If changing the brightness setting in the options menu doesn't
        work, you can use the xgamma program to brighten the whole
        display.


        ·  Type xgamma -gamma VALUE before running the game, where VALUE
           is a number larger than 1.  When you've finished, use xgamma
           -gamma 1 to restore the brightness.

        This tip will not work with poorly supported hardware. For
        Voodoo 1/2 users, visit here <http://sourceforge.net/docman/dis-
        play_doc.php?docid=28982&group_id=124987> for more information.


     Mouse look
        "This game won't let me look around properly. %$!$@"


        ·  Bring down the game console with the "~" key and enter
           +mlook.


     Mouse doesn't work properly
        Try the following -


        ·  Start the game in fullscreen mode by using the -fullscreen
           option.

        ·  From the game console, type _windowed_mouse 1

        ·  If still without success, try the ``QuakeSpasm'' or
           ``Darkplaces'' SDL clients.  Typing export
           SDL_VIDEO_X11_DGAMOUSE=0 before starting the game will
           disable hardware dga mouse.


     Game saves fail / Options not remembered
        If you are running Quake as a normal user and experiencing these
        problems it's probably due to having insufficient privileges to
        write to the game directories. Solutions include:


        ·  Run the game as super user: Type su and enter root's password
           before typing glquake.glx ... to start the game.

        ·  Change the game file permissions. Unix operating systems have
           strong security preventing unauthorized or accidental file
           changes.  The simplest way to overcome this in a single user
           environment is to become super user and change ownership of
           the quake directory with (as root): chown -R USERNAME
           /usr/local/games/quake. However it is recommended users read
           the chmod and chown man and info pages to better understand
           Unix file permissions.

        ·  In full multi-user environments it is recommended using the
           ``Darkplaces'', ``TyrQuake >= 0.56'' or ``QuakeForge'' game
           engines, which correctly place per-user data in their home
           directory.

        Quake uses a confusing method of saving and restoring game
        options, especially when playing add-ons, and game options
        sometimes have to be reinitialized even though file permissions
        are not an issue.  In such cases, the author can offer no simple
        advice %-/.


     Crazy polygons
        Some mission-packs/mods for Quake can cause existing
        player/monster models to be drawn with lines all over the place.
        To fix this, delete the directory "quake/id1/glquake".  When you
        next run the game, it will remake this directory and everything
        should be fine.


     Lines on screen
        A common problem with 3Dfx cards is a shower of flickering lines
        on the screen.


        ·  From the game console, type gl_ztrick 0.


     White textures and other graphical anomalies
        Some Quake engines use an OpenGL speed-up known as
        multitexturing.  This normally works fine, but if you are
        experiencing glitches you can disable this feature with the
        -nomtex option.

        Older video cards may occasionally draw single models in white.
        See the PlanetQuake command list
        <http://www.planetquake.com/console/commands/quake.html> for in-
        game GL variables to fine tune performance.


     Glibc Problems
        Some Linux software come as a Loki Installer shell archive with
        a ".run" suffix. The following tip is from the Icculus Gamers
        Faq:

        Q: I'm using {random loki_setup based installer}, and it's telling me the "installation doesn't support glibc-2.1" or something

        A: Just type the following before running setup.sh [or the installer]: export SETUP_LIBC=glibc-2.1.



     Links
        <http://www.x.org>

        Linux Gamers ATI How-To <http://www.linux-
        gamers.net/modules/wfsection/article.php?articleid=22>

        Linux Gamers Nvidia How-To <http://www.linux-
        gamers.net/modules/wfsection/article.php?articleid=31>



  8.8.  Sound Drivers


  There are two major Linux sound systems - Open Sound System and ALSA.
  If you are experiencing sound problems and the trouble-shooting
  section hasn't helped, you may consider changing the sound driver.
  This can be hard work, and is only for experienced users.

  To ascertain which driver you are currently using, type lsmod to list
  currently loaded kernel modules. The ALSA sound modules have verbose
  names starting with "snd_", while the OSS modules have more terse
  names. For example, the ALSA Sound Blaster Live module is
  "snd_emu10k1", while the OSS module is "emu10k1". Since Linux kernel
  2.6, ALSA has been the standard sound system, while 2.4 and earlier
  were more likely to come with OSS sound.

  Information about ALSA can be found at the Alsa Homepage
  <http://www.alsa-project.org> and Linux Journal's Guide to ALSA
  <http://www.linuxjournal.com/node/8234/print>.

  For those already with ALSA wishing to try the OSS modules, a kernel
  recompile <http://www.tldp.org/HOWTO/Kernel-HOWTO/> is probably
  necessary.



  9.  Other

  9.1.  Nvidia


  Nvidia's drivers for all of their modern video cards are not open
  source.  Because of this many distributions do not include them. If
  your Nvidia card is running slowly this is probably the cause and  you
  should visit  <http://www.nvidia.com> to download the Linux installer.
  In the author's experience these drivers are great, but not all
  versions work 100% with all cards and kernels. If you have a
  misbehaving Nvidia video card, try a different driver.


  9.1.1.  XOrg AGP Issues


  With Nvidia's proprietry drivers installed, Linux can use either
  AGPGART or Nvidia's AGP drivers for AGP access. This option is set by
  "NvAGP" in your /etc/X11/xorg.conf file.

  From Nvidia's README:

  ______________________________________________________________________
  Option "NvAGP" "integer"

      Configure AGP support. Integer argument can be one of:

          Value             Behavior
          --------------    ---------------------------------------------------
          0                 disable AGP
          1                 use NVIDIA's internal AGP support, if possible
          2                 use AGPGART, if possible
          3                 use any AGP support (try AGPGART, then NVIDIA's

      Please note that NVIDIA's internal AGP support cannot work if AGPGART is
      either statically compiled into your kernel or is built as a module and
      loaded into your kernel.
  ______________________________________________________________________


  In the author's experience, Nvidia's AGP is necessary in order to get
  the linux kernel's suspend to ram working properly, and is also
  slightly faster.  Users with kernels with built-in AGPGART need to add
  agp=off to their boot loader in order to use the NvAGP driver.



  9.1.2.  Tweaks


  These tweaks are for users with a GeForce video card (or better) and
  Nvidia's proprietary drivers.  They are accessed using the bash
  command export {variable}={value} and then starting the Quake engine
  from the same command line. Alternatively, recent drivers have a
  nvidia-settings command which starts up a user-friendly control panel.
  Full details of these tweaks are in the Nvidia README, normally
  installed at "/usr/share/doc/NVIDIA_GLX-1.0/README.txt"


     Full Screen Antialiasing
        export  __GL_FSAA_MODE={value}

        video card              effect                  value
        =====================================================
        all                     disable                 0
        -----------------------------------------------------
        GeForce, GeForce2       1.5x1.5 Supersampling   3
                                2x2 Supersampling       4
        -----------------------------------------------------
        GeForce4                2x Bilinear             1
                                2x2 Supersampling       4
        -----------------------------------------------------
        GeForce3, GeForce4 Ti,  2x Bilinear             1
        GeForce FX              4x Bilinear             4
        -----------------------------------------------------



     Synchronize Picture Redraw
        export __GL_SYNC_TO_VBLANK=1

        Synchronizes GL output with your monitor's vertical refresh,
        giving a more stable image especially on slower video cards.



  9.2.  3Dfx


  While new versions of XFree and XOrg have great support for Voodoo 3,
  4 and 5, early 3Dfx hardware such as Voodoo1, Voodoo2 and Rush are no
  longer hardware accelerated. To get OpenGL working for these cards,
  you'll need to download, install and/or compile the software libraries
  called Glide and Mesa, though this is not trivial. The author does
  have precompiled libGL for the Voodoo2, and his patched TyrQuake
  <http://prdownloads.sourceforge.net/uhexen2/quake-
  lq-1.0.1.tgz?download> includes proper 3Dfx brightness control.  Here
  <http://sourceforge.net/docman/display_doc.php?docid=28982&group_id=124987>
  is a README for old 3Dfx cards.



  9.3.  FreeBSD


  The author has limited experience with this OS and has tested projects
  on FreeBSD 5.3 with Nvidia's proprietary drivers.  ``Darkplaces'',
  ``QuakeSpasm'', ``TyrQuake'' and ``Hammer of Thyrion'' work well with
  this system.

  ``QuDos'' has recently ported several engines
  <http://qudos.quakedev.com/linux/quake1> to Linux and has recently
  started work on FreeBSD compatibility. His great Quake II project
  <http://qudos.quakedev.com/linux/quake2> is also now BSD friendly.

  For basic GLQuake support, you can find a hacked FreeBSD binary and
  source tarball here
  <http://prdownloads.sourceforge.net/uhexen2/GLQuake-FreeBSD-
  sa-1.0.tgz?download>.

  ``QuakeForge'' is a comprehensive Quake project, but may have
  installation issues with newer FreeBSD releases. The memory allocator
  routine "alloca" is not correctly detected on FreeBSD 5.3. The fix is,
  after running "configure", to add "#define C_ALLOCA 1" to
  "include/config.h" and undefine other ALLOCA variables.  Another issue
  is the opening of plugins. If the project builds, but you can't get
  the console or menus, you may have to enable static plugins using
  configure LDFLAGS=-lpthread --with-static-plugins.


  9.4.  QNX


  QNX is a commercial real-time operating system, probably most notable
  to hobbyists as being a successful microkernel OS.  ``SDL
  Quake''-1.0.9 compiles and runs on QNX-NC-6.2.1 after running
  configure --host=QNX and then making these changes:

  Makefile:
      -LIBS =  -L/usr/local/lib -lSDL -lm -lph -lasound
      +LIBS =  -L/usr/local/lib -lSDL -lm -lph -lasound -lsocket
  net.h:
      -extern unsigned long htonl (unsigned long hostlong);
      -extern unsigned long ntohl (unsigned long netlong);
  sys_sdl.c:
      -#include <sys/shm.h>
      -int psize = getpagesize();
      +int psize = _SC_PAGESIZE;



  9.5.  Transparent Water and VisPatch


  The game variable "r_wateralpha" allows for water transparency - but
  most maps don't have the necessary "vis" information. There are two
  ways to get this.  After setting r_wateralpha < 1.0, issuing the
  console command r_novis 1 enables the game to calculate it's own vis
  information at the penalty of cpu cycles.  Alternatively, vispatch is
  a utility that patches your Quake/QuakeWorld levels to support
  transparent water.

  To do this you'll need the vispatch utility, as well as the vispatch
  data files <http://www.atomicgamer.com/directory.php?id=3138> for the
  game you are patching.

  To patch the main data files in "id1" - from your Quake directory -
  type vispatch -dir id1 -data id1.vis

  Vispatch Homepage <http://vispatch.sourceforge.net/>


  9.6.  Quake Inspired XTerms


  Quake's in-game console is a great feature and has been adopted by
  many other games. Now you can also use the 'tilda' key to access X
  terminal windows.  Both Yakuake <http://yakuake.uv.ro/> and Tilda
  <http://tilda.sourceforge.net/> are projects inspired by this idea.

  Unfortunately neither are easy to install from source. Yakuake is a
  KDE application and needs the KDE development packages, and compiling
  Tilda is more complicated.  It requires a couple of unusual libraries,
  and gave this author compilation errors, so perhaps looking for a RPM
  package is a better choice.  The author can recommend Yakuake as a
  very handy X terminal.


  9.7.  Launching maps and demos


  <http://www.quaddicted.com/?p=374>


  9.8.  Interest



  ·  Because of the way the original game renders the sky, any map with
     numerous outdoor enemies suffers a big performance hit.

  ·  You can jump further when strafing than when going forward or back
     8-)

  ·  The timedemo demo1 command is a great way to benchmark your system.

  ·  Rocket-jumping is the technique of using a rocket or grenade
     explosion to jump further than normal. For a demonstration see the
     Scourge done Slick speed run.

  ·  Popular games derived from the Quake engine include - Return to
     Castle Wolfenstein, Half-Life, Star Trek Voyager - Elite Force,
     Soldier of Fortune, American McGee's Alice, and - distantly - Doom
     III.


  9.9.  Quotes



  ·  John Carmack -
     "At this time (march '97), the only standard opengl hardware that
     can play glquake reasonably is an intergraph realizm, which is a
     VERY expensive card"

  ·  From the original Quake How-To -
     "Hardware-accelerated OpenGL Quake is Quake the way God intended it
     to be. There is no substitute, and once you've experienced it
     there's no going back."

  ·  Func Message Board -
     "... This Will Produce A Fully Functional Bouncing, Exploding
     Zombie."
     Sounds like fun :-)

  ·  Quake Wikipedia -
     "Quake and its three follow up games, Quake II,Quake III Arena and
     Quake 4 (which many do not regard as true sequels), have sold over
     4 million copies combined.  In 2005, a version of Quake was
     produced for mobile phones."

  ·  Moby Games
     (by  Pathogen)
     "... Quake was the first FPS to introduce realistic lighting and
     shadows.  Of course, this came at a price. Quake has taken a lot of
     flak because it's all dull brown and grey. This was necessary
     because it was the only way to get the lighting to work properly.
     Since each surface needs a wide variety of reserved colors for
     displaying darkened/brightened portions of the surface, the game
     was limited to just a few colors and all their respective shades."
     (by Ashley Pomeroy)
     "Almost incidentally, Quake introduced the now-standard concept of
     a FPS control interface.  Although the specifications required a
     Pentium, Quake ran acceptably well on a 486 DX4/100"

  ·  Happy Penguin Q3 Forum -

     As for [Q3] open source.....earliest date seems to be second half
     2005. The reason?  They are still selling the code, over 5 years
     later to game devs.  Either they are stupid devs, or the Q3 code
     still offers something....I'm inclined believe the latter.

  ·  Slashdot Tenebrae Forum -

     ... this ... now officially labels this guy as a badass graphics programmer. I can hear it now:

     MR. BURNS: "I need a programmer! Get John Carmack on the line!"
     SMITHERS:  "He's unavailable sir."
     MR. BURNS: "Then get me his non-union Belgian equivalent!"



  9.10.  Glossary



     ALSA
        Advanced Linux Sound Architecture <http://www.alsa-project.org>.


     API
        Application Program Interface. The computer libraries which are
        used when programming, and link the game to the hardware.


     Bot
        A computer generated player with artificial intelligence
        (cough), in a multiplayer game. Used to play multiplayer when
        no-one's around or not connected to a network.


     Client
        This word is used in two subtly different ways. In single
        player, the Quake game is known as a client, with different
        clients using their own graphics libraries (for example, the GL
        client "quake.glx" or the X11 client "quake.x11"). The usage is
        similar in multiplayer games, but also means the per-user
        program which connects to a single "server" program which lets
        all the players exist in the same world.


     FPS
        First Person Shooter. A shooting game viewed from the "first
        person" perspective.


     Mod
        Modification to the original Quake game - varying from a
        complete game overhaul (total conversion) to simple map/model
        reworks.  Quake was designed to allow for ease of platform
        portability with it's own computer language "Quake C" giving
        mappers control over most every aspect of their Quake world.

     Noob
        Newbie. Someone new to a computer related topic.


     Patch
        A software patch (or diff) is a single file used to alter a
        source code tree before compilation. It is often used to fix
        bugs or add new features that the original author didn't
        include.

        Usage of the GNU patch utility is of the form patch [--dry-run]
        -pNUM <FILE  where NUM is the number (usually 0 or 1) of
        directories to strip from the patch file. This number is not
        obvious except to unix gurus, but using the "--dry-run" option
        will let you test run patch so you can find the correct NUM.
        ...Using the wrong number will make patch output all sorts of
        cryptic messages which can be terminated with a control-C
        character.

        Of course you could always type man patch and learn for yourself
        how to use this powerful unix command. ;-/


     SDL
        Simple DirectMedia Layer <http://www.libsdl.org/> cross platform
        hardware API widely used in Linux games.


     Segfault
        A broad term indicating a program is faulty and terminated
        abruptly.  Depending on the bash shell's ulimit -c setting, a
        dump of the program's image (coredump) may be left behind for
        examination with the GNU debugger (GDB).


     Server
        A program central to multiplayer games to which every player
        connects.


     Tarball
        An archive file such as somefile.tar created by the "tar"
        program.  It is often compressed using the programs "gzip" or
        "bzip2", in which case it will normally end in the letters .gz
        or .bz2. The extension .tar.gz is often shortened to .tgz.



  9.11.  Links



     id Software
        <http://www.idsoftware.com>

     id Downloads
        <http://http://www.idsoftware.com/business/techdownloads>

     id Store
        <http://www.idsoftware.com/store/index.php?view=quake>

     Icculus
        <http://www.icculus.org>


     Icculus Gamers FAQ
        <http://www.icculus.org/lgfaq>

     Various Engine Links
        <http://icculus.org/~ravage/quake/>

     The Linux Game Tome
        <http://www.happypenguin.org>

     Func_Msgboard - Q1 message board from hell ... No, really
        <http://www.celephais.net/board/forum.php>

     Quaddicted
        <http://www.quaddicted.com/>

     Planetquake
        <http://www.planetquake.com/quake1>

     PlanetQuake3.net
        <http://www.planetquake3.net/index.php>

     Darkplaces Game Engine
        <http://www.icculus.org/twilight/darkplaces>

     Quake One
        <http://www.quakeone.com>

     Linux Gamers
        <http://www.linux-gamers.net>

     Quake Terminus
        <http://www.quaketerminus.com>

     Retro Quake
        <http://www.planetquake.com/retroquake/quake/index.html>

     Quake Basics
        <http://www.quaketerminus.com/quakebible/index.htm>

     Quake Wikipedias
        <http://wiki.quakesrc.org/index.php/HomePage>,
        <http://en.wikipedia.org/wiki/Quake>

     Jn's GLQuake Site
        <http://mfcn.ilo.de/glxquake>

     LinuxQuake.Org
        <http://www.linuxquake.org>

     Linux Hexen II project
        <http://uhexen2.sourceforge.net>

     SDL - Cross platform hardware API
        <http://www.libsdl.org/>

     ALSA - Linux sound project
        <http://www.alsa-project.org>

     Lowercase utility
        <http://filerenameutils.sourceforge.net>



  10.  Administrative



  10.1.  Credits


  Thanks to:

  ·  The Linux Documentation Project <http://www.tldp.org>.

  ·  Linus Torvalds for hacking together his free operating system
     kernel.

  ·  id Software <http://www.idsoftware.com>.

  ·  O. Sezer for pointers to some of the many things I'm clueless
     about.

  ·  Goldenboy for the mapping section.

  ·  Quake modders great and small.

  This webpage was constructed using Linuxdoc-Tools-0.9.20 (currently
  unmaintained), Vim <http://www.vim.org/> and Bash
  <http://www.gnu.org/software/bash/bash.html>.


  10.2.  Todo



  ·  Flesh out multiplayer/ctf/bots sections


  10.3.  Changelog



     2.09 (March 1 2010)
        Added a note about Industri with Tenebrae.

        + QuakeSpasm, AudioQuake, Quore

        Fixed the directory hierarchy diagram.

        Many minor engine updates


     2.08 (Nov 2008)
        Added detailed mapping section, with much input from GB.

        Quite reordered document

        Added notes for other game types such as CTF and Rocket Arena,
        and removed FuhQuake.

        Added a few links to the id store.

        Added sections about performance issues, and NvAGP.

        Rewrote Q3 section..

        Restructured multiplayer mods sections of the document,
        especially the Quake II section.
     2.07 (May 2008)
        Added FitzQuake(!), Alien Arena, FTE QuakeWorld.

        Updated VisPatch links.

        Added note about SDL_AUDIODRIVER.

        Consolidated links in mods section to Quaddicted.

        Removed note about old versions of fluxbox.


     2.06 (July 2007)
        Included Travail mod, removing a few others.

        Added EzQuake, World of Padman, IOQuake.

        Updated TyrQuake (and binary), Darkplaces, FuhQuake and QuDos.

        Re-wrote document abstracts, and the NVidia and 3Dfx sections.

        Added to trouble-shooting section a note about (missing)
        libraries.

        Miscellaneous link updates.


     2.05 (February 2007)
        Miscellaneous link updates.

        A small section for 64 bit cpus.

        Moved "Links" to it's own section.


     2.04 (November 2006)
        Added some troubleshooting hints for Quake IV.

        A new section for (gcc-4.1) compilation issues.

        Links to the Quake III Cell Shading project.


     2.03 (July 2006)
        Changed order of game engines, added extra compilation notes,
        and expanded the Tenebrae, SDLQuake and wmQuake sections.

        New multiplayer entries for ProQuake, XQF and Tremulous.

        Reorganised several categories in the "Other" section, including
        new Nvidia Tweaks, License, Changelog and Vispatch sections.

        Updated the author's patched Tyr-Quake binary, with a few new
        hacks added to TyrQuake-0.54.

        Some small changes to the featured mods.


     2.02 (February 2006)


  10.4.  License


  This document is released under GPLv2.

  10.5.  Other Formats



  The Quake How-To is also available as a text file
  <http://tldp.org/HOWTO/text/Quake-HOWTO>, a single html file
  <http://tldp.org/HOWTO/html_single/Quake-HOWTO>.  and in Turkish
  <http://docs.comu.edu.tr/howto/quake-howto.html>.

  The latest version should be available here
  <http://tldp.org/HOWTO/Quake-HOWTO.html> or here
  <http://prdownloads.sourceforge.net/uhexen2/Quake-
  HOWTO.html?download>.

  Version v1.0.1.14 (30 August 1998) of the Quake How-To is located at
  the original author's site <http://webpages.mr.net/bobz/howto/>.


  10.6.  Author


  Stevenaaus lives and works in rural australia.

  Projects <http://www.myspace.com/stevenaaus>

  Email <mailto:yahoo - dot - com - username - stevenaaus>