old-www/HOWTO/Quake-HOWTO-3.html

351 lines
14 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
<TITLE>Linux Quake HOWTO: Game Engines </TITLE>
<LINK HREF="Quake-HOWTO-4.html" REL=next>
<LINK HREF="Quake-HOWTO-2.html" REL=previous>
<LINK HREF="Quake-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="Quake-HOWTO-4.html">Next</A>
<A HREF="Quake-HOWTO-2.html">Previous</A>
<A HREF="Quake-HOWTO.html#toc3">Contents</A>
<HR>
<H2><A NAME="engine_"></A> <A NAME="s3">3.</A> <A HREF="Quake-HOWTO.html#toc3">Game Engines </A> </H2>
<P>
<A NAME="tyrquake_"></A> </P>
<H2><A NAME="ss3.1">3.1</A> <A HREF="Quake-HOWTO.html#toc3.1">TyrQuake </A>
</H2>
<P>TyrQuake is a fairly complete project including OpenGL, Software Quake and
QuakeWorld clients, and
<A HREF="http://disenchant.net/utils.html">other tools</A> including the popular TyrLite. Tyrann's focus is on a fully featured
but minimalist cross-platform engine.</P>
<P>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).</P>
<P>Typing <B>make</B> will build all the clients. To compile only
the single player client, after unpacking the source code type:
<B> make prepare tyr-glquake </B>.
Tyrann has a nice clean build system, but if you wish to see compilation feedback, add <B>V=1</B> to the command line.</P>
<P>A patched TyrQuake binary is available
<A HREF="http://prdownloads.sourceforge.net/uhexen2/quake-lq-1.0.1.tgz?download">here</A>.</P>
<P>
<A HREF="http://disenchant.net/engine.html">http://disenchant.net/engine.html</A></P>
<P>
<A NAME="quakespasm_"></A> </P>
<H2><A NAME="ss3.2">3.2</A> <A HREF="Quake-HOWTO.html#toc3.2">QuakeSpasm </A>
</H2>
<P>
<A HREF="http://www.celephais.net/fitzquake">FitzQuake</A> has long been
the defacto standard for the Quake mapping community, and this new project is
based on the
<A HREF="http://www.kristianduske.com/fitzquake">SDL Port</A>
of Fitz.</P>
<H3>Features</H3>
<P>As well as great FitzQuake features such as skyboxes, fog, coloured light, and support for huge maps,
QuakeSpasm includes:
<UL>
<LI>64 bit CPU support</LI>
<LI>Should work with most SDL platforms</LI>
<LI>Restructured sound driver</LI>
<LI>Custom console background</LI>
<LI>SDL CD audio</LI>
<LI>Tweaked command line completion, and a map name autocomplete</LI>
<LI>Alt+Enter toggles fullscreen</LI>
</UL>
</P>
<H3>Tips</H3>
<P>
<UL>
<LI> <B>scr_sbaralpha .99</B> - Give a nicer status bar</LI>
<LI> <B>maps</B> - List available maps</LI>
<LI> <B>game GAMENAME</B> - On-the-fly change of game</LI>
<LI> <B>./quakespasm -fitz</B> - Run game in FitzQuake mode</LI>
</UL>
</P>
<P>
<A HREF="http://quakespasm.sourceforge.net">http://quakespasm.sourceforge.net</A></P>
<P>
<A NAME="darkplaces_"></A> </P>
<H2><A NAME="ss3.3">3.3</A> <A HREF="Quake-HOWTO.html#toc3.3">Darkplaces </A>
</H2>
<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.</P>
<P>It also supports many otherwise incompatible mods including
<A HREF="Quake-HOWTO-4.html#nehahra_">Nehahra</A> and
<A HREF="Quake-HOWTO-5.html#nexuiz_">Nexuiz</A>, 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.</P>
<P>Havoc's
<A HREF="http://icculus.org/twilight/darkplaces/files/">file archive</A> 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
<B>make</B> to see a list of possible targets (programs), and select one.
For example - to build the OpenGL engine with ALSA sound type <B>make
cl-release</B>, or to build with OSS sound, <B>make cl-release
DP_SOUND_API=OSS</B>.</P>
<P>Thanks to LordHavoc for this great project.</P>
<P>
<A HREF="http://www.icculus.org/twilight/darkplaces">http://www.icculus.org/twilight/darkplaces</A></P>
<H2><A NAME="ss3.4">3.4</A> <A HREF="Quake-HOWTO.html#toc3.4">Quore </A>
</H2>
<P>From the Quore website:
<BLOCKQUOTE>
<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>
</BLOCKQUOTE>
This game is great, and probably the most graphically modified Linux engine.
But it also has many niggling bugs.</P>
<P>
<A HREF="http://quore.free.fr/index.html">http://quore.free.fr/index.html</A></P>
<P>
<A NAME="qudos_"></A> </P>
<H2><A NAME="ss3.5">3.5</A> <A HREF="Quake-HOWTO.html#toc3.5">QuDos Quake Ports </A>
</H2>
<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.</P>
<P>His excellent
<A HREF="Quake-HOWTO-4.html#nehahra_">NehQuake</A> port is still available at
<A HREF="http://linuxquake.org/index8.html">LinuxQuake.Org</A>
, but those after the source code may try contacting him.</P>
<P>
<A HREF="http://qudos.quakedev.com/linux/quake1">http://qudos.quakedev.com/linux/quake1</A></P>
<H2><A NAME="glquake_"></A> <A NAME="ss3.6">3.6</A> <A HREF="Quake-HOWTO.html#toc3.6">MFCN's GLQuake </A>
</H2>
<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.</P>
<P>
<A HREF="http://mfcn.ilo.de/glxquake">http://mfcn.ilo.de/glxquake</A></P>
<H2><A NAME="ss3.7">3.7</A> <A HREF="Quake-HOWTO.html#toc3.7">Tenebrae </A>
</H2>
<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.</P>
<P>There are several points of interest here...</P>
<P>
<UL>
<LI> Tenebrae has an "easter egg". In the quit game dialog press "d".</LI>
<LI> It includes the interesting "bumptest" and "zoo" maps.</LI>
<LI> A custom Tenebrae-1.0 engine is included with the atmospheric
<A HREF="http://industri.sourceforge.net">Industri</A> mod.</LI>
<LI> Tenebrae doesn't run user mods.</LI>
</UL>
</P>
<P>The Tenebrae
<A HREF="http://www.liflg.org/?what=dl&amp;catid=6&amp;gameid=12&amp;filename=tenebrae.quake_1.04-english-2.run">installer</A>
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
<A HREF="http://www.cynapses.org/tmp/tenebrae/">here</A>
for some binaries.</P>
<P>Compilation of the source code may not be straight forward. Firstly:
<PRE>
cd linux ; ln -s Makefile.i386linux Makefile ; make
</PRE>
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:
<PRE>
- extern int gethostname (char *, int);
+ extern int gethostname (char *, size_t);
</PRE>
</P>
<P>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:
<B>tenebrae.run -basedir $PWD</B>.
Alternatively you can start a new X session with the command:
<PRE>
startx $PWD/tenebrae.run -basedir $PWD -- :1 -depth 24
</PRE>
</P>
<P>
<A HREF="http://tenebrae.sourceforge.net/">http://tenebrae.sourceforge.net/</A></P>
<P>
<A NAME="quakeforge_"></A> </P>
<H2><A NAME="ss3.8">3.8</A> <A HREF="Quake-HOWTO.html#toc3.8">QuakeForge </A>
</H2>
<P>QF is a comprehensive Linux Quake project. It has elegant graphical enhancements,
numerous single player and
<A HREF="Quake-HOWTO-4.html#quakeworld_">QuakeWorld</A> clients and
Quake C tools. Amongst it's features are:
an overhauled menuing system, a new "heads up display", and in-game help.</P>
<P>Possibly because of it's size, QuakeForge hasn't been updated in years
and it's documentation was never quite finished.
The usual "configure &amp;&amp; make &amp;&amp; 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
<B>ln -s /usr/local/games/quake/id1 /usr/local/share/games/quakeforge/id1</B>).</P>
<P>For information about building QuakeForge on the BSD Unices, see the
<A HREF="Quake-HOWTO-9.html#freebsd_">FreeBSD</A> section.</P>
<P>Kudos to the QuakeForge team for a huge project which has provided much inspiration
for other open source games.</P>
<P>
<A HREF="http://www.quakeforge.net">http://www.quakeforge.net</A><BR>
<A HREF="http://sourceforge.net/projects/quake/">http://sourceforge.net/projects/quake/</A> </P>
<P>
<A NAME="nprquake_"></A> </P>
<H2><A NAME="ss3.9">3.9</A> <A HREF="Quake-HOWTO.html#toc3.9">NPRQuake </A>
</H2>
<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
<A HREF="http://www.geocities.com/coolguywithgun">Linux port</A> includes
support for the cartoon renderer
<A HREF="http://www.cs.unc.edu/%7Eadyilie/comp238/Final/Final.htm">ainpr</A>, and works really well for me.</P>
<P>The
<A HREF="http://www.tempestgames.com/ryan/">SDL version</A> has
rewritten mouse and video code, but the sound APIs have not been ported to SDL,
and it is not a fully portable engine.</P>
<P>
<A HREF="http://www.cs.wisc.edu/graphics/Gallery/NPRQuake/">http://www.cs.wisc.edu/graphics/Gallery/NPRQuake/</A></P>
<H2><A NAME="ss3.10">3.10</A> <A HREF="Quake-HOWTO.html#toc3.10">Twilight Project </A>
</H2>
<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."</P>
<P>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.</P>
<P>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:
<PRE>
- if (progs->ofs_strings + pr_stringssize >= com_filesize)
+ if (progs->ofs_strings + pr_stringssize >= (uint)com_filesize)
</PRE>
Executing <B>scons.py</B> will now (hopefully) build the binaries, and after copying the single
player client (twilight-nq) to your quake directory,
type <B>twilight-nq -basedir $PWD</B> to start the game.</P>
<P>If you're having trouble with compilation, version 0.2.01 uses the traditional
"configure &amp;&amp; make &amp;&amp; make install" method, so you may want to try it.</P>
<P>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.</P>
<P>
<A HREF="http://icculus.org/twilight">http://icculus.org/twilight</A></P>
<H2><A NAME="ss3.11">3.11</A> <A HREF="Quake-HOWTO.html#toc3.11">Audio Quake </A>
</H2>
<P>This engine is for visually disabled people, and uses sound to help with navigation.
It includes OpenGL and SDL clients.</P>
<P>
<A HREF="http://www.agrip.org.uk/">http://www.agrip.org.uk/</A></P>
<P>
<A NAME="sdlquake_"></A> </P>
<H2><A NAME="ss3.12">3.12</A> <A HREF="Quake-HOWTO.html#toc3.12">SDL Quake </A>
</H2>
<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.</P>
<P>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 <B>-nocdaudio</B> option.</P>
<P>The game runs at a fixed resolution; the width and height can't be changed.
To play in fullscreen mode, use the <B>-fullscreen</B> option.</P>
<P>
<A HREF="http://www.libsdl.org/projects/quake">http://www.libsdl.org/projects/quake</A></P>
<H2><A NAME="ss3.13">3.13</A> <A HREF="Quake-HOWTO.html#toc3.13">wmQuake </A>
</H2>
<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.<BR><BR>
For the curious, this game can be benchmarked with <B>timedemo demo1</B> after removing the "usleep" commands from
sys_linux.c.</P>
<P>
<A HREF="http://freshmeat.net/projects/wmquake/">http://freshmeat.net/projects/wmquake/</A></P>
<H2><A NAME="ss3.14">3.14</A> <A HREF="Quake-HOWTO.html#toc3.14">Software Quake </A>
</H2>
<P><EM>For a more in-depth treatment of Software Quake, see the
<A HREF="Quake-HOWTO-10.html#other_">previous version</A> of this how-to</EM>.</P>
<P>The
<A HREF="http://www.quakeforge.net/files/q1source.zip">original WinQuake source</A> also came with two pixelated versions of the game:</P>
<P>
<UL>
<LI> X Quake (quake.x11)</LI>
<LI> Svga Quake (squake)</LI>
</UL>
</P>
<P>but compiling them is no longer straight forward. It involves copying
<B>Makefile.linux</B> to <B>Makefile</B>, editing this file to remove the extra
targets , replacing <B>/usr/X11/lib</B> with <B>/usr/X11R6/lib</B> and typing
<B>make build_release</B>.</P>
<P>There are easier options though.
<A HREF="#tyrquake_">TyrQuake</A>
and
<A HREF="#quakeforge_">QuakeForge</A> have software clients, and there is
also an old
<A HREF="#sdlquake_">SDLQuake</A>
written by SDL's author, Sam Lantinga, which should work on all modern platforms.</P>
<HR>
<A HREF="Quake-HOWTO-4.html">Next</A>
<A HREF="Quake-HOWTO-2.html">Previous</A>
<A HREF="Quake-HOWTO.html#toc3">Contents</A>
</BODY>
</HTML>