LDP/LDP/howto/linuxdoc/Quake-HOWTO.sgml

2060 lines
73 KiB
Plaintext
Raw Permalink Blame History

<!doctype linuxdoc system>
<article>
<title>Linux Quake HOWTO
<author>Stevenaaus
<date>v2.09, 2010-03-01
<abstract>
This document is a modern guide to id Software's Quake game,
with some information about Quake's sequels and Linux gaming in general.
</abstract>
<toc>
<sect> Introduction
<sect1> Preamble <p>
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.
<sect1> About <p>
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.
<sect1> Notation <p>
In some places, a shorthand is used to represent changes to a program's source code.
This is of the form:
<verb>
- code to be removed
+ code to be inserted in its place
</verb>
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 <bf>cd {Linux Quake directory}</bf>, and have this as their
current directory.
<!-- horizontalline -->
<sect> General Info <p>
<sect1> Getting Started <p>
Installing Quake requires a few basic steps.
<descrip>
<tag/Get the Game Data Files/
Getting the game data files is normally done by installing the
<url url="http://www.idsoftware.com/games/quake/quake" name="game"> (or
<url url="ftp://ftp.idsoftware.com/idstuff/quake/quake106.zip" name="game demo">) using
Microsoft Windows, or an emulator such as Wine or Dosbox, and then
copying the <bf>id1</bf> directory of the installed game to your Linux Quake
directory - making sure all files are in <ref id="lowercase_" name="lowercase">.
Alternatively, you can use the
<url url="http://freshmeat.net/projects/lhaforunix/" name="lha utility">
to extract the data files. For early CDs, you must first
<code> cat /mnt/cdrom/quake101.1 /mnt/cdrom/quake101.2 > resource.1</code>
Once you have the resource.1 file, then type
<code>
cd /usr/local/games/quake
lha e {some directory}/resource.1
</code>
Later versions of the game, including WinQuake, come with the data files in an
uncompressed form and the <bf>id1</bf> directory can be directly copied from
the CD.
<tag/Install a Quake Executable/
The program you execute to run Quake is known as the <ref id="engine_"
name="game engine">. There are several to choose from, but the simplest choice
is either <url
url="http://prdownloads.sourceforge.net/uhexen2/quake-lq-1.0.1.tgz?download"
name="TyrQuake">, or the more enhanced <ref id="quakespasm_" name="QuakeSpasm">.
After downloading or compiling a game engine, place this
binary in your Quake directory alongside the <bf>id1</bf> directory.
<tag/Summary/
Finally, you should have a directory structure similar to this, with all files
being in <ref id="lowercase_" name="lowercase">:
<verb>
/usr/local/games/quake +- quakespasm (or another game engine)
|
+- progs.dat
|
+- id1 -+- pak0.pak
|
+- pak1.pak
</verb>
Now, from an xterm window, type (for example)
<code> ./quakespasm -fullscreen -width 800 -height 600</code>
to start the game.
<tag/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:
<itemize>
<item> <ref id="troubleshooting_" name="Trouble-shooting"> section
<item> The <ref id="other_" name="old version"> of this how-to
<item> <url url="http://www.linux-gamers.net/modules/wfsection/article.php?articleid=42" name="Linuxgamers Quake How-To">
<item> <url url="http://wiki.quakesrc.org/index.php/HomePage" name="Quake wiki">
<item> <url url="http://www.happypenguin.org" name="The Linux Game Tome">
</itemize>
</descrip>
<sect1> Command Line Options <p>
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:
<descrip>
<tag/-window/Run the game in windowed mode
<tag/-fullscreen/Run the game in fullscreen mode
<tag/-game NAME/Load the mod NAME.
<tag/-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.
<tag/-width WIDTH/window/fullscreen width
<tag/-height HEIGHT/window/fullscreen height
<tag/-basedir DIRECTORY/Use this directory by default
<tag/-sndspeed MHz/Set sound sampling rate (eg. 44100, 22050, 11025)
<tag/-sndbits N/Set sound bits to N = 8 or 16
<tag/-nosound/Disable sound. Necessary when sound is
absent/unconfigured to stop the game from crashing.
<tag/-nomtex/Disable GL multitextures.
<tag/-listen N/Allow a maximum of N players/bots to join multiplayer games.
<tag/-cddev DEVICE/Use DEVICE for playing the cd music
<tag/-nocdaudio/Disable cd audio
</descrip>
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
<code> quakespasm +skill 2 +map e1m1</code>
<label id="console_">
<sect1> Game Console Commands <p>
<em>For more info see <url url="http://www.planetquake.com/console/commands/quake.html"></em>
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 "&tilde;" key when
in a game. The main commands include -
<descrip>
<tag/god/Invulnerability
<tag/noclip/Walk through walls
<tag/notarget/Enemies won't attack player
<tag/timedemo DEMO/Play DEMO (eg. "demo1") at top speed and show frame rate
<tag/impulse N/Issue "impulse N"
These are in-game commands which can be given special uses. A few usefull ones are:
<itemize>
<item><bf>impulse 9</bf> Give all weapons
<item><bf>impulse 12</bf> Select previous weapon
(eg <bf>bind MWHEELUP "impulse 12"</bf>)
<item><bf>impulse 10</bf> Select next weapon
<item><bf>impulse 255</bf> Give Quad damage
</itemize>
<tag/bind key "COMMAND"/Bind a key to perform a command
<tag/map MAP/Load MAP
<tag/changelevel MAP/Load MAP without resetting player settings
<tag/quit/Exit to system
<tag/skill VALUE/value = 0 (easy) - 3 (impossible)
Degree of difficulty. Level must be restarted to take effect
<tag/r_wateralpha VALUE/value = 0.0 - 1.0
Opacity of water in maps with transparent water support (See <ref id="watervis_" name="Watervis">)
<tag/_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
<tag/gl_texturemode VALUE/value = gl_nearest | gl_nearest_mipmap_nearest | gl_linear_mipmap_nearest | gl_linear_mipmap_linear
Worst to best texture quality.
<tag/r_shadows FLAG/flag = 0 | 1
Display model shadows
<tag/vid_wait FLAG/flag = 0 | 1
Sync video output with screen refresh
<tag/chase_active FLAG/flag = 0 | 1
Show player from third person perspective
</descrip>
<!-- horizontalline -->
<sect> Game Engines <label id="engine_"> <p>
<label id="tyrquake_">
<sect1> TyrQuake <p>
TyrQuake is a fairly complete project including OpenGL, Software Quake and
QuakeWorld clients, and <url url="http://disenchant.net/utils.html" name="other
tools"> 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 <bf>make</bf> will build all the clients. To compile only
the single player client, after unpacking the source code type:
<bf> make prepare tyr-glquake </bf>.
Tyrann has a nice clean build system, but if you wish to see compilation feedback, add <bf>V=1</bf> to the command line.
A patched TyrQuake binary is available
<url url="http://prdownloads.sourceforge.net/uhexen2/quake-lq-1.0.1.tgz?download" name="here">.
<url url="http://disenchant.net/engine.html">
<label id="quakespasm_">
<sect1> QuakeSpasm <p>
<url url="http://www.celephais.net/fitzquake" name="FitzQuake"> has long been
the defacto standard for the Quake mapping community, and this new project is
based on the <url url="http://www.kristianduske.com/fitzquake" name="SDL Port">
of Fitz.
<sect2>Features<p>
As well as great FitzQuake features such as skyboxes, fog, coloured light, and support for huge maps,
QuakeSpasm includes:
<itemize>
<item>64 bit CPU support
<item>Should work with most SDL platforms
<item>Restructured sound driver
<item>Custom console background
<item>SDL CD audio
<item>Tweaked command line completion, and a map name autocomplete
<item>Alt+Enter toggles fullscreen
</itemize>
<sect2>Tips<p>
<itemize>
<item> <bf>scr_sbaralpha .99</bf> - Give a nicer status bar
<item> <bf>maps</bf> - List available maps
<item> <bf>game GAMENAME</bf> - On-the-fly change of game
<item> <bf>./quakespasm -fitz</bf> - Run game in FitzQuake mode
</itemize>
<url url="http://quakespasm.sourceforge.net">
<label id="darkplaces_">
<sect1> Darkplaces <p>
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 <ref id="nehahra_"
name="Nehahra"> and <ref id="nexuiz_" name="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 <url url="http://icculus.org/twilight/darkplaces/files/" name="file
archive"> 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
<bf>make</bf> to see a list of possible targets (programs), and select one.
For example - to build the OpenGL engine with ALSA sound type <bf>make
cl-release</bf>, or to build with OSS sound, <bf>make cl-release
DP_SOUND_API=OSS</bf>.
Thanks to LordHavoc for this great project.
<url url="http://www.icculus.org/twilight/darkplaces">
<sect1> Quore <p>
From the Quore website:
<quote><em>Quore is an atmospheric Quake engine running on GNU/Linux systems
with enhanced graphics, increased limits, configurable 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</em></quote>
This game is great, and probably the most graphically modified Linux engine.
But it also has many niggling bugs.
<url url="http://quore.free.fr/index.html">
<label id="qudos_">
<sect1> QuDos Quake Ports <p>
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 <ref id="nehahra_" name="NehQuake"> port is still available at
<url url="http://linuxquake.org/index8.html" name="LinuxQuake.Org">
, but those after the source code may try contacting him.
<url url="http://qudos.quakedev.com/linux/quake1">
<sect1> MFCN's GLQuake <label id="glquake_"> <p>
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.
<url url="http://mfcn.ilo.de/glxquake">
<sect1> Tenebrae <p>
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...
<itemize>
<item> Tenebrae has an "easter egg". In the quit game dialog press "d".
<item> It includes the interesting "bumptest" and "zoo" maps.
<item> A custom Tenebrae-1.0 engine is included with the atmospheric
<url name="Industri" url="http://industri.sourceforge.net"> mod.
<item> Tenebrae doesn't run user mods.
</itemize>
The Tenebrae <url url="http://www.liflg.org/?what=dl&amp;catid=6&amp;gameid=12&amp;filename=tenebrae.quake_1.04-english-2.run" name="installer">
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
<url url="http://www.cynapses.org/tmp/tenebrae/" name="here">
for some binaries.
Compilation of the source code may not be straight forward. Firstly:
<verb>
cd linux ; ln -s Makefile.i386linux Makefile ; make
</verb>
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:
<verb>
- extern int gethostname (char *, int);
+ extern int gethostname (char *, size_t);
</verb>
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:
<bf>tenebrae.run -basedir $PWD</bf>.
Alternatively you can start a new X session with the command:
<verb>
startx $PWD/tenebrae.run -basedir $PWD -- :1 -depth 24
</verb>
<url url="http://tenebrae.sourceforge.net/">
<label id="quakeforge_">
<sect1> QuakeForge <p>
QF is a comprehensive Linux Quake project. It has elegant graphical enhancements,
numerous single player and <ref id="quakeworld_" name="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
<bf>ln -s /usr/local/games/quake/id1 /usr/local/share/games/quakeforge/id1</bf>).
For information about building QuakeForge on the BSD Unices, see the <ref
id="freebsd_" name="FreeBSD"> section.
Kudos to the QuakeForge team for a huge project which has provided much inspiration
for other open source games.
<url url="http://www.quakeforge.net">
<newline>
<url url="http://sourceforge.net/projects/quake/">
<label id="nprquake_">
<sect1> NPRQuake <p>
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 <url
url="http://www.geocities.com/coolguywithgun" name="Linux port"> includes
support for the cartoon renderer <url
url="http://www.cs.unc.edu/%7Eadyilie/comp238/Final/Final.htm"
name="ainpr">, and works really well for me.
The <url url="http://www.tempestgames.com/ryan/" name="SDL version"> has
rewritten mouse and video code, but the sound APIs have not been ported to SDL,
and it is not a fully portable engine.
<url url="http://www.cs.wisc.edu/graphics/Gallery/NPRQuake/">
<sect1> Twilight Project <p>
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 &tilde;quick&tilde;, 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:
<verb>
- if (progs->ofs_strings + pr_stringssize >= com_filesize)
+ if (progs->ofs_strings + pr_stringssize >= (uint)com_filesize)
</verb>
Executing <bf>scons.py</bf> will now (hopefully) build the binaries, and after copying the single
player client (twilight-nq) to your quake directory,
type <bf>twilight-nq -basedir $PWD</bf> 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.
<url url="http://icculus.org/twilight">
<sect1> Audio Quake <p>
This engine is for visually disabled people, and uses sound to help with navigation.
It includes OpenGL and SDL clients.
<url url="http://www.agrip.org.uk/">
<label id="sdlquake_">
<sect1> SDL Quake <p>
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 <bf>-nocdaudio</bf> option.
The game runs at a fixed resolution; the width and height can't be changed.
To play in fullscreen mode, use the <bf>-fullscreen</bf> option.
<url url="http://www.libsdl.org/projects/quake">
<sect1> wmQuake <p>
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.
<newline><newline>
For the curious, this game can be benchmarked with <bf>timedemo demo1</bf> after removing the "usleep" commands from
sys_linux.c.
<url url="http://freshmeat.net/projects/wmquake/">
<sect1> Software Quake <p>
<em>For a more in-depth treatment of Software Quake, see the <ref id="other_" name="previous version"> of this how-to</em>.
The <url url="http://www.quakeforge.net/files/q1source.zip" name="original
WinQuake source"> also came with two pixelated versions of the game:
<itemize>
<item> X Quake (quake.x11)
<item> Svga Quake (squake)
</itemize>
but compiling them is no longer straight forward. It involves copying
<bf>Makefile.linux</bf> to <bf>Makefile</bf>, editing this file to remove the extra
targets , replacing <bf>/usr/X11/lib</bf> with <bf>/usr/X11R6/lib</bf> and typing
<bf>make build_release</bf>.
There are easier options though. <ref id="tyrquake_" name="TyrQuake">
and <ref id="quakeforge_" name="QuakeForge"> have software clients, and there is
also an old <ref id="sdlquake_" name="SDLQuake">
written by SDL's author, Sam Lantinga, which should work on all modern platforms.
<!-- horizontalline -->
<sect> Mods
<sect1> About <p>
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 <bf>+map MAPNAME</bf> 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 <bf>-game DIR</bf> command line option and,
sometimes, <bf>+map MAPNAME</bf> where MAPNAME is the mod's start map.
For both maps and mods, all files should be in <ref id="lowercase_" name="lowercase">.
<sect1> Single Player Mods <p>
There has recently been an effort to archive many Quake maps at Quaddicted.
<url url="http://www.quaddicted.com/spmaps.html" name="Maps">,
<url url="http://www.quaddicted.com/spmods.html" name="Mods">.
Some of the more notable mods are:
<descrip>
<tag/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
<url url="http://www.quaddicted.com/filebase/travail_soundtrack.zip"
name="soundtrack">
composed of moody and interesting electronic vibes.
<url url="http://www.quakeone.com/travail" name="Link">
<tag/Quoth/
Quoth began life as a sequel to the draw-dropping mod,
<url url="http://kell.spawnpoint.org/convoked.html" name="Contract Revoked">, 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.
<url url="http://www.planetquake.com/necros/quoth/" name="Link">
<tag/W a r p s p a s m/A huge atmospheric Quoth mod by Ijed. The latest and greatest.
<url url="http://gimme.badsectoracula.com/warpspasm-readme.html" name="Link">
<label id="soe_"><tag/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.
<url url="http://www.planetquake.com/tronyn/soul" name="Link">
<label id="nehahra_"><tag/Nehahra/
Epic. Ambitious. Otherwordly.
Nehahra is the definitive Quake mod, supported in Linux by LordHavoc's
<ref id="darkplaces_" name="Darkplaces">, and <ref id="qudos_" name="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 <bf>nomonsters 1</bf> at the game console.
<url url="http://www.planetquake.com/nehahra" name="Link">
<tag/Zerst<73>rer/
Dark and bloody, with Doom's paranoiac atmosphere. A classic.
Zerst<EFBFBD>rer also has some good death match levels -
<url url="http://www.quaddicted.com/zer.html" name="Link">
<tag/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,
<url url="http://www.planethalflife.com/manke/" name="Link">
<tag/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 -
<url url="http://disenchant.net/files/maps/oum.zip" name="Download">,
<url url="http://www.planetquake.com/fatty/oum/" name="Link">
<tag/Scourge done Slick/
SdS is a speed run through Mission Pack 1, Scourge of Armagon. Hilarious and
amazing.
<url url="http://www.planetquake.com/QdQ/sds.html" name="Link">
</descrip>
<sect1> Commercial Mods <p>
<descrip>
<tag/Mission Pack 1/
Scourge of Armagon by Ritual Entertainment (formerly known as Hipnotic Interactive).
<newline>
After playing Armagon, you should also check out the
<url url="http://www.google.com.au/search?q=dd.zip" name="Death's Dominion"> Level Pack.
<tag/Mission Pack 2/
Dissolution of Eternity by Rogue Entertainment.
<newline><newline>
<em>Both official mission packs are generally acknowledged as better than the original game</em>.
<tag/Malice/
Very original Quake total conversion, with the greatest
(virtual) machine gun I've ever unleashed. Worth paying for.
<tag/Abyss of Pandemonium/
Commercial mod now freely available:
<url url="http://www.planetquake.com/impel" name="Link">
<tag/Ravages of Apocalypse/
Xmen mod! Great models. Shame about the game-play. ...When good mods turn bad.
<newline>
This mod has now been released free of charge, and can be found
<url url="http://www.zerogravity.com.au/xmen/" name="here">.
<tag/Shrak/
One of the first commercial mods. It has well modelled and totally
new monsters, but the game-play doesn't cut it.
</descrip>
<!-- horizontalline -->
<label id="quakeworld_">
<sect> Multiplayer <p>
<label id="nexuiz_">
<sect1> Nexuiz <p>
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.
<url url="http://www.nexuiz.com">
<label id="ezquake_">
<sect1> EzQuake <p>
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:
"<bf>ezquake-gl.glx +set s_device /dev/dsp</bf>". To compile the GL client,
type "<bf>make glx</bf>". You may have to change the Makefile thus:
<verb>
- LDFLAGS = -lm -lpthread
+ LDFLAGS = -lm -lpthread -L/usr/X11R6/lib
</verb>
<url url="http://ezquake.sourceforge.net">
<url url="http://ezquake.sourceforge.net/forum/">
<sect1> FTE QuakeWorld <p>
An ambitious project, <url url="http://www.fteqw.com" name="FTE
Quakeworld"> 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"!
<label id="proquake_">
<sect1> ProQuake <p>
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."
<url url="http://quakeone.com/proquake/" name="ProQuake 4">
<url url="ftp://ftp.runequake.com/quake/engines/proquake" name="Older ftp repository">
<sect1> ZQuake <p>
ZQuake is a QuakeWorld client with good multiplayer support.
<url url="http://zquake.frag.ru">
<sect1> Other Game Types <p>
<sect2> Deathmatch <p>
<sect2> Capture the Flag <p>
<sect2> Rocket Arena <p>
<sect2> Rune Quake <p>
<sect1> Other Multiplayer Mods <p>
<descrip>
<tag/Painkeep/
Popular deathmatch mod including new weapons.
<tag/Soul of Evil/
<ref id="soe_" name="SoE"> in arena mode has some great melee action.
<tag/Battle Mech/
Battle Mech is a top down Mechwarrior style mod. Make sure to use the
<url url="http://static.condemned.com/files/bmech_stuff/battlemech-1.1.tar.gz"
name="1.1"> tarball.
<url url="http://static.condemned.com/index.shtml">
</descrip>
<sect1> Bots <p>
<em>Bots are computer generated players with artificial intelligence. Some require "waypoints" to successfully navigate.</em>
<descrip>
<tag/Frikbot/ Popular bot designed for easy integration into mods.
<tag/Frogbot/ Highly regarded as one of the best, hundreds of maps supported.
<tag/Omicron/ Venerable mod by Mr. Elusive, who went on to create Gladiator bot for Q2 and the Q3:Arena bots. Needs no waypoints.
</descrip>
<sect1> Servers <p>
<descrip>
<tag/XQF and QStat/
<url url="http://www.linuxgames.com/xqf/index.shtml" name="XQF">
is a feature rich game server browser and launcher for Quake and many other
games. It is dependent on the separate program,
<url url="http://www.qstat.org/" name="QStat">
, which displays information about Internet game servers. You'll also need the
Gnome Gtk and Gdk toolkits.
<tag/<url url="http://www.quakeone.com">/
<tag/<url url="http://www.quake1.net/servers.cgi">/
</descrip>
<!-- horizontalline -->
<sect> Quake Sequels <p>
<label id="hexenII_">
<sect1> Hexen II <p>
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, <url url="http://ravensoft.com" name="Raven Software">
released the game with many rough edges... So beautiful, yet so cruel.
<url url="http://uhexen2.sourceforge.net" name="Hammer of Thyrion">
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 <url
url="http://sourceforge.net/projects/uhexen2" name="project page">.
Mappers should note the
<url url="http://quest-ed.sourceforge.net/index.html" name="Quest">
world editor, and
HexenC compiler <url url="http://www.fteqw.com" name="FTEQCC">.
<sect1> Quake II <label id="quakeII_"> <p>
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.
<descrip>
<tag/Open Source Projects/
<url url="http://qudos.quakedev.com/linux/quake2" name="QuDos' Quake II">
is the most notable. It is based on
<url url="http://www.icculus.org/quake2/" name="Icculus Quake II">,
and includes some beautiful graphical enhancements - including cell shading -
and support for FreeBSD and XMMS plugins. Another project still in development
is <url url="http://jdolan.dyndns.org/jaydolan/home.html" name="Quetoo"> which
has speed and security enhancements, but also a very stripped back interface
and a few bugs.
<url url="http://www.yamagi.org/quake2" name="Yamagi Quake II">, also based on Icculus, is an active Q2
project focusing on single player game and cooperative game modes.
<url url="http://hkitchen.net/qfusion/" name="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 <url
url="http://www.cs.odu.edu/~olson/linux/quake2-0.12-1jag.src.rpm"
name="source"> and <url
url="http://www.cs.odu.edu/~olson/linux/quake2-0.12-1jag.i386.rpm"
name="binary"> rpms (which appear to be based on an old Icculus release) and
the <url url="http://www.quakeforge.net/files/quake2forge/quake2-0.3.tar.gz"
name="QuakeForge Quake II"> project with support for multiple operating
systems. On a slightly different note - the <url
url="http://www.bytonic.de/html/jake2.html" name="Jake2"> project is a version
of Quake II written in Java.
<tag/Notes/
A common command line option is: <newline><bf> +set vid_ref glx +set gl_driver /usr/lib/libGL.so.1 </bf><newline>
which tells the game to start in OpenGL mode.
See the <ref id="other_" name="old version"> of this how-to for other Quake II troubleshooting tips.
<tag/Mods/
<url url="http://www.planetquake.com/digitalpaint/" name="Digital Paint 2"> 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
;->.
<url url="http://www.planetquake.com/td/argonium/" name="Argonium">
is a slick looking deathmatch mod which is also freely distributable.
</descrip>
<sect1> Quake III Arena <p>
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
<url url="http://zerowing.idsoftware.com/linux/q3a/INSTALL" name="idsoftware's Faq">, or
<url url="http://www.linux-gamers.net/modules/wfsection/article.php?articleid=30" name="Linuxgamer's Quake III How-To">.
The retail add-on <bf>Quake III Team Arena</bf> is supported and, despite getting
ordinary reviews, is a great game. Most user mods should work with Linux. The
Linux Gamers FAQ reports:
<verb>
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.</verb>
<descrip>
<tag/Open Source Projects/
The Icculus Quake III Project
which has recently moved to
<url url="http://ioquake3.org" name="IOQuake">.
They are adding extra features, including support for Star Trek Voyager: Elite Force Holomatch (multiplayer).
Sourceforge <url url="http://q3cellshading.sourceforge.net" name="Quake III - Cell Shading">
<tag/Mods
<url url="http://www.warsow.net" name="Warsow"> 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.
<url url="http://www.worldofpadman.com/" name="World of Padman"> 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 <url url="http://red.planetarena.org" name="Alien Arena"> you're matched against pin headed martians in unbelievable OpenGL environments.
<url url="http://www.planetquake.com/tdc/" name="The Dark Conjunction">
is an atmospheric Q3 single player conversion.
Try the alien themed <url url="http://tremulous.net" name="Tremulous">
for an original multiplayer mod.
<tag/Links/
The Zerowing <url url="http://zerowing.idsoftware.com/linux/q3a/INSTALL" name="installation">
and <url url="http://zerowing.idsoftware.com/linux/q3a/" name="known issues">
guides hosted by id Software.
Linuxgamer's <url url="http://www.linux-gamers.net/modules/wfsection/article.php?articleid=30" name="Quake III How-To">.
Linux Questions' Quake III forums for
<url url="http://www.linuxquestions.org/questions/history/260975" name="Sound">
and
<url url="http://www.linuxquestions.org/questions/history/225821" name="Mouse">
problems.
All things Quake III at <url url="http://www.planetquake.com/quake3/q3aguide/" name="Planet Quake">
</descrip>
<sect1> Quake IV <p>
Quake IV is an epic FPS from <url url="http://ravensoft.com"
name="Raven Software">. 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:
<itemize>
<item> 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:
<bf> Couldn't find matching GLX visual ..... Sys_Error: Unable to initialize OpenGL.</bf>
Alternatively you can start a new X session with the command:
<verb>
startx `which quake4` -- :1 -depth 24
</verb>
<item> The Alsa sound libraries are used by default. To start with OSS sound , type:
<verb>
quake4 +set s_driver oss
</verb>
<item> 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
<url url="http://www.radgametools.com/down/Bink/BinkLinuxPlayer.zip" name="Linux Bink Player">.
</itemize>
<descrip>
<tag/Quake IV Links/
The <url url="http://zerowing.idsoftware.com/linux/quake4/" name="Official Linux Faq">
Linux Questions <url url="http://www.linuxquestions.org/" name="Quake IV bug forums">
<url url="ftp://ftp.idsoftware.com/idstuff/quake4/demo/quake4-linux-1.0-demo.x86.run"
name="Quake IV demo">
<url url="http://www.iddevnet.com/quake4/GettingStarted" name="Linux 1.4.2 SDK installer">
</descrip>
<!-- horizontalline -->
<sect> Mapping Tools <p>
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.
<em>
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.
</em>
<sect1> World Editors <p>
<descrip>
<tag/<url url="http://www.qeradiant.com/" name="GtkRadiant">/
The main map editor for Quake. It is based on id Software's own editor, and requires OpenGL.
<tag/<url url="http://quest-ed.sourceforge.net/index.html" name="Quest">/
A multi-game world editor. It has a stiff learning curve, but is very
efficient after you master it.
<itemize>
<item> keyboard shortcuts for effortless cut-and-paste operations on multiple brushes and entities
<item> easy vertex manipulation using keyboard shortcuts and the mouse
<item> edit the properties of multiple entities at once
<item> texture and align multiple faces
<item> texture locking function (crates)
<item> can rotate, stretch and mirror textures
<item> support for groups
<item> variable grid size down to 1 px
</itemize>
</descrip>
<sect1> Tools <p>
<descrip>
<tag/<url url="http://qexpo.tastyspleen.net/uploaded/157/bjptools-090908.zip" name="Bjptools">/
Linux port of the most used map compilers.
<itemize>
<item> includes treeqbsp, vis and light
<item> supports rotating entities
<item> doesn't support coloured lights
<item> modifications by Bengt Jardrup, Greg Lewis, and others
</itemize>
<tag/<url url="http://disenchant.net/utils.html" name="Tyrutils">/
Tyrann's popular map compilers, including qbsp, vis and tyrlite. Supports rotating entities and coloured lights.
<tag/<url url="http://icculus.org/twilight/darkplaces/files/hmap2build20080616.zip" name="Hmap2">/
LordHavoc's compiler. It can compile leaky or incomplete maps (use only for testing!) and does a ton of other stuff, including coloured lighting.
<tag/<url url="http://gamers.org/pub/idgames2/utils/bsp_pak_tools/qeu03.zip" name="QEU">/
Command line tools to handle pak and wad files (source code only).
<tag/<url url="http://www.fteqw.com" name="FTEQCC">/
Comprehensive, advanced QuakeC compiler with gui and command line versions. If this one can't compile it, nothing will!
<tag/<url url="http://www.inside3d.com/frikbot/frikqcc" name="FrikQCC">/
QuakeC compiler
</descrip>
<sect1> Tools needing Wine <p>
<em> <url url="http://www.winehq.org/" name="Wine"> is a project that allows many Windows programs to work with Linux.
</em>
<descrip>
<tag/<url url="http://www.telefragged.com/wally" name="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.
<tag/<url url="http://dynamic.gamespy.com/~quark/" name="The Quake Army Knife">/
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.
<tag/<url url="http://icculus.org/homepages/riot/q1rad.zip" name="Q1Rad">/
Light tool that does radiosity-based lighting, like Quake II.
</descrip>
<sect1> Other Utilities <p>
<itemize>
<item> <url url="http://www.gimp.org" name="Gimp">. Graphics editor.
<item> <url url="http://www.metadecks.org/software/sweep" name="Sweep">,
<url url="http://audacity.sourceforge.net" name="Audacity">,
<url url="http://www.mega-nerd.com/SRC" name="Libsamplerate">,
<url url="http://normalize.nungnu.org" name="Normalize">,
<url url="http://sox.sourceforge.net" name="Sox">.
Sound editing tools.
</itemize>
<sect1> Links <p>
<itemize>
<item> Quake mappers' message board <url url="http://www.celephais.net/board/forum.php" name="Func_Msgboard">
<item> <url url="http://inside3d.com" name="Inside3D.com"> has lots of good stuff.
<item> Bengt Jardrup's <url url="http://user.tninet.se/~xir870k" name="homepage">
is a must read, with documents about engine errors, map limits, and the like.
<item> <url url="http://www.quaketerminus.com/tools.htm" name="Quake Terminus"> tools section.
<item> <ref id="quakeforge_" name="QuakeForge"> includes some Quake C tools with their tarball.
<item> The <url url="http://wiki.quakesrc.org/index.php/HomePage" name="Quake Wiki">
has some relevant links for the windows platforms.
</itemize>
<!-- horizontalline -->
<sect> Trouble-shooting <label id="troubleshooting_"> <p>
<em> Other trouble-shooting resources can be found at:
The <url url="http://www.icculus.org/lgfaq" name="Linux Gamers FAQ">,
<url url="http://mfcn.ilo.de/glxquake" name="J<>rgen's GLQuake Site">, and
the <ref id="other_" name="old version"> of this how-to.
</em>
Often, using an alternative game engine such as
<ref id="quakespasm_" name="QuakeSpasm"> or
<ref id="darkplaces_" name="Darkplaces"> will fix mouse and sound related problems.
<sect1> Bash Won't Start the Program <p>
<bf>"bash: ./glquake.glx: Permission denied"</bf>
<itemize>
<item> The binary may not have the executable bit set.
Type <bf>chmod +x glquake.glx</bf> to fix this.
<newline><newline>
<item> If the program is located on a windows partition, it is possible it has
been mounted with the <bf>noexec</bf> option.
<newline>Type (as root): <bf>mount -o remount,exec /mnt/windows</bf>
</itemize>
<bf>"bash: glquake.glx: command not found"</bf>
<itemize>
<item> Bash may not be including the current directory in it's path. Type:
"<bf>export PATH=$PATH:.</bf>"
</itemize>
<sect1> Program Dies at Startup <p>
This is not good, but some simple options to try are:
<itemize>
<item> - use <bf>-nosound</bf> to test if sound is the problem.
<newline>
Sound issues are covered in detail below.
<newline><newline>
<item> - use <bf>-noudp</bf> if network is unconfigured.
<newline><newline>
<item> - use <bf>-nocdaudio</bf> if cdrom is absent.
<newline><newline>
<item> - use <bf>-height</bf>, <bf>-width</bf> and
<bf>-fullscreen</bf> command line options to select a screen
mode you know is properly configured.
<newline>
e.g. <bf>glquake.glx -width 800 -height 600 -fullscreen -nosound</bf>
<newline> <newline>
</itemize>
<label id="lowercase_"><bf>Files not lowercased</bf> or <bf>Data files missing</bf>.
Linux Quake requires (most) filenames to be in lowercase. If you get an error
similar to "<bf>Error: W_LoadWadFile: couldn't load gfx.wad</bf>" it means the game
can't find the data files, possibly because they are not all lowercase.
<itemize>
<item> Make sure you have the subdirectory "id1" (not "ID1")
containing the files "pak0.pak" and "pak1.pak".
<newline><newline>
<item> For a comprehensive lowercase utility, download
<url url="http://prdownloads.sourceforge.net/uhexen2/lowercase?download" name="this utility"> or visit
<url url="http://filerenameutils.sourceforge.net">.
</itemize>
<bf>Missing libraries: "error while loading shared libraries: libGL.so.1: cannot open shared object file"</bf>
A message like this means the program cannot run because it can't find a system file it needs.
Perhaps:
<itemize>
<item> File is not installed - Just check with your package manager and install the correct package.
<newline><newline>
<item> 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 <bf>ln -s /usr/lib/libGL.so.1.2 /usr/lib/libGL.so.1</bf>
</itemize>
Dynamic libraries (or DLLs as they are known to Windows users) can be quite
complex. For more information try the <bf>ldd</bf> and <bf>ldconfig</bf> man
pages.
<label id="Sys_Printf_">
"<bf>Memory overwrite in Sys_Printf</bf>"
<itemize>
<item> This error means you need to edit file <bf>sys_linux.c</bf>,
procedure <bf>Sys_Printf</bf>, and change <bf>text&lsqb;1024&rsqb;</bf> to
<bf>text&lsqb;4096&rsqb;</bf> and recompile.
<newline><newline>
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.
</itemize>
<bf>Problems with GCC 4</bf>
<itemize>If you're experiencing core dumps and are using version 4.0 of the GNU
compiler, see <ref id="compissues_" name="Compilation Issues"> below.
</itemize>
<sect1> Program Dies Loading Level <p>
<itemize>
<item> Many mods require extra memory. Use the <bf>-mem 64</bf> option
to allocate 64 meg of memory for the heap.
<newline> <newline>
<item> In some cases, this problem can be sound related. Try some of the tips
in the sound section.
<newline> <newline>
<item> A few newer mods just won't work with standard GLQuake, and need an
enhanced <ref id="engine_" name="game engine">. <ref id="darkplaces_"
name="Darkplaces"> has the best large map support under Linux, but some
are even too big for it, and are unsupported under Linux.
</itemize>
<sect1>Game Runs Slowly<p>
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 <bf>light
bloom</bf>, and by slowing sound mixing with the <ref id="console_"
name="console command"> "<bf>_snd_mixahead .4</bf>"
Minor game slowdown's with Nvidia hardware can also be
attributed to the use of conflicting AGP drivers. For more info about this see <ref
id="nvagp_" name="Nvidia AGP Issues">
<sect1> Sound Problems <p>
<em>For more information see the <ref id="sound_" name="drivers"> section.
</em>
An error such as: "<bf>/dev/dsp: Device or resource busy</bf>" indicates some program is
already using your sound card, and you will have to halt this program to get
Quake sound effects.
<itemize>
<item> From the Linux command line, type <bf>killall artsd</bf>
or <bf>pulseaudio -k</bf> to terminate either of these popular sound daemons.
<newline> <newline>
<item> Alternatively, to run Quake through the KDE sound daemon, type
<bf>artsdsp glquake.glx ...</bf>
</itemize>
"Quake engine games exit, and I see an error about <bf>mmap</bf>!"
<itemize>
<item> The <url url="http://www.icculus.org/lgfaq" name="Linux Gamers FAQ">
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".
<newline><newline>
Make sure the <bf>artsd</bf> program is running
by typing <bf>ps -A | grep artsd</bf> and checking that this command returns
at least one non-empty line. Then type <bf>artsdsp -m glquake.glx</bf>.
<newline><newline>
<item> Try alternative sound drivers as outlined in the
<ref id="sound_" name="Sound Drivers"> section.
</itemize>
Sound stutters or is not very good.
<itemize>
<item> See the sound note in <ref id="compissues_" name="Compilation Issues">.
<newline><newline>
<item> Try using the <bf>-sndspeed</bf> or <bf>-sndbits</bf> option(s), or
swapping sound drivers.
</itemize>
SDL provides a simple way of changing the sound driver using the
SDL_AUDIODRIVER environment variable. Run the game using a command line like:
<newline>
<bf>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SDL_AUDIODRIVER=xxx darkplaces-sdl</bf>
<newline>
Valid values on linux are: dsp (uses OSS), alsa (uses
ALSA), esd (uses the ESD daemon), and maybe arts (uses
the aRTs daemon)
<label id="compissues_">
<sect1> Compilation Issues <p>
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.
<sect2> GCC-4.x <p>
<descrip>
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 <bf>gcc --version</bf>).
The author generally uses GCC-3.2.2 , and people using GCC-4.x may find
extra problems when compiling programs:
<tag/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.
<tag/Slurred Sound/
Yet another sound issue. This common problem is fixed by altering snd_mix.c thus:
<verb>
- snd_scaletable[i][j] = ((signed char)j) * i * 8;
+ snd_scaletable[i][j] = ((j < 128) ? j : j - 0xff) * i * 8;
</verb>
<tag/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.
</descrip>
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
<bf>./configure --help</bf> and look for hints), and other times you be able
to use <bf>export CC=gcc32</bf> or edit the Makefile and replace occurrences of
"gcc" with "gcc32" (or "gcc-3.2.2", etc) manually.
<sect2> 64 Bit CPUs <p>
Most of these legacy programs will probably not work as 64 bit binaries.
<ref id="quakespasm_" name="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 "<bf>-m32</bf>" 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: <bf>linux32 tyr-glquake</bf>.
<sect1> Other Issues <p>
<descrip>
<tag/Game is too dark/If changing the brightness setting in the options menu
doesn't work, you can use the <bf>xgamma</bf> program to brighten the whole display.
<itemize>
<item> Type <bf>xgamma -gamma VALUE</bf> before running the game, where VALUE is a number larger than 1.
When you've finished, use <bf>xgamma -gamma 1</bf> to restore the brightness.
</itemize>
This tip will not work with poorly supported hardware. For Voodoo 1/2 users, visit
<url url="http://sourceforge.net/docman/display_doc.php?docid=28982&amp;group_id=124987" name="here"> for more information.
<newline> <newline>
<tag/Mouse look/"This game won't let me look around properly. %$!$@"
<itemize>
<item> Bring down the game console with the "&tilde;" key and enter <bf>+mlook</bf>.
</itemize>
<tag/Mouse doesn't work properly/ Try the following -
<itemize>
<item> Start the game in fullscreen mode by using the <bf>-fullscreen</bf> option.
<newline><newline>
<item> From the game console, type <bf>_windowed_mouse 1</bf>
<newline><newline>
<item> If still without success, try the
<ref id="quakespasm_" name="QuakeSpasm"> or <ref id="darkplaces_" name="Darkplaces">
SDL clients.
Typing <bf>export SDL_VIDEO_X11_DGAMOUSE=0</bf> before starting
the game will disable hardware dga mouse.
<newline><newline>
</itemize>
<tag/Game saves fail &sol; 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:
<itemize>
<item> Run the game as super user: Type <bf>su</bf> and enter root's
password before typing <bf>glquake.glx ...</bf> to start the game.
<newline><newline>
<item> 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):
<bf>chown -R USERNAME /usr/local/games/quake</bf>. However it is
recommended users read the <bf>chmod</bf> and <bf>chown</bf> man
and info pages to better understand Unix file permissions.
<newline><newline>
<item> In full multi-user environments it is recommended using the
<ref id="darkplaces_" name="Darkplaces">,
<ref id="tyrquake_" name="TyrQuake >= 0.56"> or
<ref id="quakeforge_" name="QuakeForge"> game engines, which correctly
place per-user data in their home directory.
</itemize>
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 %-/.
<tag/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.
<tag/Lines on screen/
A common problem with 3Dfx cards is a shower of flickering lines on the screen.
<itemize>
<item> From the game console, type <bf>gl_ztrick 0</bf>.
</itemize>
<tag/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 <bf>-nomtex</bf> option.
Older video cards may occasionally draw single models in white.
See the PlanetQuake <url url="http://www.planetquake.com/console/commands/quake.html"
name="command list"> for in-game GL variables to fine tune performance.
<tag/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:
<verb>
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.
</verb>
</descrip>
<descrip>
<tag/Links/
<url url="http://www.x.org">
<url url="http://www.linux-gamers.net/modules/wfsection/article.php?articleid=22" name="Linux Gamers ATI How-To">
<url url="http://www.linux-gamers.net/modules/wfsection/article.php?articleid=31" name="Linux Gamers Nvidia How-To">
</descrip>
<sect1> Sound Drivers <label id="sound_"> <p>
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 <bf>lsmod</bf> 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
<url url="http://www.alsa-project.org" name="Alsa Homepage">
and Linux Journal's
<url url="http://www.linuxjournal.com/node/8234/print" name="Guide to ALSA">.
For those already with ALSA wishing to try the OSS modules, a
<url url="http://www.tldp.org/HOWTO/Kernel-HOWTO/" name="kernel recompile">
is probably necessary.
<!-- horizontalline -->
<sect> Other
<sect1> Nvidia <p>
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 <url
url="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.
<label id="nvagp_">
<sect2> XOrg AGP Issues <p>
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:
<code>
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.
</code>
In the author's experience, Nvidia's AGP is necessary in order to get the linux kernel's <bf>suspend to ram</bf> working properly, and is also slightly faster.
Users with kernels with built-in AGPGART need to add <bf>agp=off</bf> to their boot
loader in order to use the NvAGP driver.
<sect2> Tweaks <p>
These tweaks are for users with a GeForce video card (or better) and Nvidia's
proprietary drivers. They are accessed using the bash command <bf>export
{variable}={value}</bf> and then starting the Quake engine from the same
command line. Alternatively, recent drivers have a <bf>nvidia-settings</bf>
command which starts up a user-friendly control panel.
<em>Full details of these tweaks are in the Nvidia README, normally installed at "/usr/share/doc/NVIDIA_GLX-1.0/README.txt"</em>
<descrip>
<tag/Full Screen Antialiasing/
<bf>export __GL_FSAA_MODE={value}</bf>
<verb>
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
-----------------------------------------------------
</verb>
<tag/Synchronize Picture Redraw/
<bf>export __GL_SYNC_TO_VBLANK=1</bf>
Synchronizes GL output with your monitor's vertical refresh,
giving a more stable image especially on slower video cards.
</descrip>
<sect1> 3Dfx <p>
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 <url
url="http://prdownloads.sourceforge.net/uhexen2/quake-lq-1.0.1.tgz?download"
name="patched TyrQuake"> includes proper 3Dfx brightness control. <url
url="http://sourceforge.net/docman/display_doc.php?docid=28982&amp;group_id=124987"
name="Here"> is a README for old 3Dfx cards.
<label id="freebsd_">
<sect1> FreeBSD <p>
The author has limited experience with this OS and has tested projects on
FreeBSD 5.3 with Nvidia's proprietary drivers. <ref id="darkplaces_"
name="Darkplaces">, <ref id="quakespasm_" name="QuakeSpasm">, <ref id="tyrquake_" name="TyrQuake"> and <ref id="hexenII_"
name="Hammer of Thyrion"> work well with this system.
<ref id="qudos_" name="QuDos"> has recently ported several
<url url="http://qudos.quakedev.com/linux/quake1" name="engines"> to Linux and
has recently started work on FreeBSD compatibility. His great <url
url="http://qudos.quakedev.com/linux/quake2" name="Quake II project"> is
also now BSD friendly.
For basic GLQuake support, you can find a hacked FreeBSD binary and source
tarball <url url="http://prdownloads.sourceforge.net/uhexen2/GLQuake-FreeBSD-sa-1.0.tgz?download" name="here">.
<ref id="quakeforge_" name="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 <bf>configure
LDFLAGS=-lpthread --with-static-plugins</bf>.
<sect1> QNX <p>
QNX is a commercial real-time operating system, probably most notable
to hobbyists as being a successful microkernel OS.
<ref id="sdlquake_" name="SDL Quake">-1.0.9
compiles and runs on QNX-NC-6.2.1 after running <bf>configure --host=QNX</bf>
and then making these changes:
<verb>
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;
</verb>
<label id="watervis_">
<sect1> Transparent Water and VisPatch <p>
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 <bf>r_wateralpha</bf> &lt; 1.0, issuing the
console command <bf>r_novis 1</bf> 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
<url url="http://www.atomicgamer.com/directory.php?id=3138" name="vispatch data files">
for the game you are patching.
To patch the main data files in "id1" -
from your Quake directory - type <bf>vispatch -dir id1 -data id1.vis</bf>
<url url="http://vispatch.sourceforge.net/" name="Vispatch Homepage">
<sect1> Quake Inspired XTerms <p>
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 <url url="http://yakuake.uv.ro/" name="Yakuake"> and <url
url="http://tilda.sourceforge.net/" name="Tilda"> 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.
<sect1> Launching maps and demos <p>
<url url="http://www.quaddicted.com/?p=374">
<sect1> Interest <p>
<itemize>
<item> Because of the way the original game renders the sky, any map with
numerous outdoor enemies suffers a big performance hit.
<newline><newline>
<item> You can jump further when strafing than when going forward or back 8-)
<newline><newline>
<item> The <bf>timedemo demo1</bf> command is a great way to benchmark your system.
<newline><newline>
<item> 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.
<newline><newline>
<item> 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.
</itemize>
<sect1> Quotes <p>
<itemize>
<item> John Carmack -
<newline>
"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"
<newline><newline>
<item> From the original Quake How-To -
<newline>
"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."
<newline><newline>
<item> Func Message Board -
<newline> "... This Will Produce A Fully Functional Bouncing, Exploding Zombie."
<newline> Sounds like fun :-)
<newline><newline>
<item> Quake Wikipedia -
<newline>"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."
<newline><newline>
<item> Moby Games
<newline> (by Pathogen) <newline>
"... 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."
<newline> (by Ashley Pomeroy) <newline>
"Almost incidentally, Quake introduced the now-standard concept of a FPS
'console', and popularised 'mouselook' as *the* absolute standard
control interface. Although the specifications required a Pentium,
Quake ran acceptably well on a 486 DX4/100"
<newline><newline>
<item> Happy Penguin Q3 Forum -
<newline>
As for &lsqb;Q3&rsqb; 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.
<newline><newline>
<item> Slashdot Tenebrae Forum -
<verb>
... 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!"
</verb>
</itemize>
<sect1> Glossary <p>
<descrip>
<tag/ALSA/ <url url="http://www.alsa-project.org" name="Advanced Linux Sound Architecture">.
<tag/API/Application Program Interface. The computer libraries
which are used when programming, and link the game to the hardware.
<tag/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.
<tag/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.
<tag/FPS/First Person Shooter. A shooting game viewed from the "first person" perspective.
<tag/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.
<tag/Noob/Newbie. Someone new to a computer related topic.
<tag/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 <bf>patch [--dry-run] -pNUM
&lt;FILE </bf> 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 <bf>control-C</bf> character.
Of course you could always type <bf>man patch</bf> and learn for yourself
how to use this powerful unix command. ;-/
<tag/SDL/<url url="http://www.libsdl.org/" name="Simple DirectMedia Layer">
cross platform hardware API widely used in Linux games.
<tag/Segfault/A broad term indicating a program is faulty and terminated
abruptly. Depending on the bash shell's <bf>ulimit -c</bf> setting, a dump of
the program's image (coredump) may be left behind for examination with
the GNU debugger (GDB).
<tag/Server/A program central to multiplayer games to which every player connects.
<tag/Tarball/An archive file such as <bf>somefile.tar</bf> 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
<bf>.gz</bf> or <bf>.bz2</bf>. The extension <bf>.tar.gz</bf>
is often shortened to <bf>.tgz</bf>.
</descrip>
<sect1> Links <p>
<descrip>
<tag/id Software/<url url="http://www.idsoftware.com">
<tag/id Downloads/<url url="http://http://www.idsoftware.com/business/techdownloads">
<tag/id Store/<url url="http://www.idsoftware.com/store/index.php?view=quake">
<tag/Icculus/<url url="http://www.icculus.org">
<tag/Icculus Gamers FAQ/<url url="http://www.icculus.org/lgfaq">
<tag/Various Engine Links/<url url="http://icculus.org/~ravage/quake/">
<tag/The Linux Game Tome/<url url="http://www.happypenguin.org">
<tag/Func_Msgboard - Q1 message board from hell ... No, really/<url url="http://www.celephais.net/board/forum.php">
<tag/Quaddicted/<url url="http://www.quaddicted.com/">
<tag/Planetquake/<url url="http://www.planetquake.com/quake1">
<tag/PlanetQuake3.net/<url url="http://www.planetquake3.net/index.php">
<tag/Darkplaces Game Engine/<url url="http://www.icculus.org/twilight/darkplaces">
<tag/Quake One/<url url="http://www.quakeone.com">
<tag/Linux Gamers/<url url="http://www.linux-gamers.net">
<tag/Quake Terminus/<url url="http://www.quaketerminus.com">
<tag/Retro Quake/<url url="http://www.planetquake.com/retroquake/quake/index.html">
<tag/Quake Basics/<url url="http://www.quaketerminus.com/quakebible/index.htm">
<tag/Quake Wikipedias/<url url="http://wiki.quakesrc.org/index.php/HomePage">, <url url="http://en.wikipedia.org/wiki/Quake">
<tag/J<>rgen's GLQuake Site/<url url="http://mfcn.ilo.de/glxquake">
<tag/LinuxQuake.Org/<url url="http://www.linuxquake.org">
<tag/Linux Hexen II project/<url url="http://uhexen2.sourceforge.net">
<tag/SDL - Cross platform hardware API/<url url="http://www.libsdl.org/">
<tag/ALSA - Linux sound project/<url url="http://www.alsa-project.org">
<tag/Lowercase utility/<url url="http://filerenameutils.sourceforge.net">
</descrip>
<!-- horizontalline -->
<sect> Administrative <p>
<sect1> Credits <p>
Thanks to:
<itemize>
<item>The <url url="http://www.tldp.org" name="Linux Documentation Project">.
<item>Linus Torvalds for hacking together his free operating system kernel.
<item><url url="http://www.idsoftware.com" name="id Software">.
<item>O. Sezer for pointers to some of the many things I'm clueless about.
<item>Goldenboy for the mapping section.
<item>Quake modders great and small.
</itemize>
This webpage was constructed using Linuxdoc-Tools-0.9.20 (currently unmaintained),
<url url="http://www.vim.org/" name="Vim"> and
<url url="http://www.gnu.org/software/bash/bash.html" name="Bash">.
<sect1> Todo <p>
<itemize>
<item>Flesh out multiplayer/ctf/bots sections
</itemize>
<sect1> Changelog <p>
<descrip>
<tag/2.09 (March 1 2010)/
Added a note about Industri with Tenebrae.
+ QuakeSpasm, AudioQuake, Quore
Fixed the directory hierarchy diagram.
Many minor engine updates
<tag/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.
<tag/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.
<tag/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.
<tag/2.05 (February 2007)/
Miscellaneous link updates.
A small section for 64 bit cpus.
Moved "Links" to it's own section.
<tag/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.
<tag/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.
<tag/2.02 (February 2006)/
</descrip>
<sect1> License <p>
This document is released under GPLv2.
<label id="other_">
<sect1> Other Formats <p>
<!-- http://www.ibiblio.org/pub/Linux/docs/HOWTO/Quake-HOWTO -->
The Quake How-To is also available as a
<url url="http://tldp.org/HOWTO/text/Quake-HOWTO" name="text file">, a
<url url="http://tldp.org/HOWTO/html_single/Quake-HOWTO" name="single html file">.
and in <url url="http://docs.comu.edu.tr/howto/quake-howto.html" name="Turkish">.
The latest version should be available
<url url="http://tldp.org/HOWTO/Quake-HOWTO.html" name="here"> or
<url url="http://prdownloads.sourceforge.net/uhexen2/Quake-HOWTO.html?download" name="here">.
Version v1.0.1.14 (30 August 1998) of the Quake How-To is located at the
<url url="http://webpages.mr.net/bobz/howto/" name="original author's site">.
<sect1> Author <p>
Stevenaaus lives and works in rural australia.
<url url="http://www.myspace.com/stevenaaus" name="Projects">
<url url="mailto:yahoo - dot - com - username - stevenaaus" name="Email">
</article>