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

434 lines
18 KiB
HTML
Raw Permalink Blame History

<!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: Other</TITLE>
<LINK HREF="Quake-HOWTO-10.html" REL=next>
<LINK HREF="Quake-HOWTO-8.html" REL=previous>
<LINK HREF="Quake-HOWTO.html#toc9" REL=contents>
</HEAD>
<BODY>
<A HREF="Quake-HOWTO-10.html">Next</A>
<A HREF="Quake-HOWTO-8.html">Previous</A>
<A HREF="Quake-HOWTO.html#toc9">Contents</A>
<HR>
<H2><A NAME="s9">9.</A> <A HREF="Quake-HOWTO.html#toc9">Other</A></H2>
<H2><A NAME="ss9.1">9.1</A> <A HREF="Quake-HOWTO.html#toc9.1">Nvidia </A>
</H2>
<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
<A HREF="http://www.nvidia.com">http://www.nvidia.com</A> 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.</P>
<P>
<A NAME="nvagp_"></A> </P>
<H3>XOrg AGP Issues </H3>
<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.</P>
<P>From Nvidia's README:
<HR>
<PRE>
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.
</PRE>
<HR>
In the author's experience, Nvidia's AGP is necessary in order to get the linux kernel's <B>suspend to ram</B> working properly, and is also slightly faster.
Users with kernels with built-in AGPGART need to add <B>agp=off</B> to their boot
loader in order to use the NvAGP driver.</P>
<H3>Tweaks </H3>
<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 <B>export
{variable}={value}</B> and then starting the Quake engine from the same
command line. Alternatively, recent drivers have a <B>nvidia-settings</B>
command which starts up a user-friendly control panel.</P>
<P><EM>Full details of these tweaks are in the Nvidia README, normally installed at "/usr/share/doc/NVIDIA_GLX-1.0/README.txt"</EM>
<DL>
<DT><B>Full Screen Antialiasing</B><DD><P><B>export __GL_FSAA_MODE={value}</B>
<PRE>
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
-----------------------------------------------------
</PRE>
</P>
<DT><B>Synchronize Picture Redraw</B><DD><P><B>export __GL_SYNC_TO_VBLANK=1</B> </P>
<P>Synchronizes GL output with your monitor's vertical refresh,
giving a more stable image especially on slower video cards.</P>
</DL>
</P>
<H2><A NAME="ss9.2">9.2</A> <A HREF="Quake-HOWTO.html#toc9.2">3Dfx </A>
</H2>
<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
<A HREF="http://prdownloads.sourceforge.net/uhexen2/quake-lq-1.0.1.tgz?download">patched TyrQuake</A> includes proper 3Dfx brightness control.
<A HREF="http://sourceforge.net/docman/display_doc.php?docid=28982&amp;group_id=124987">Here</A> is a README for old 3Dfx cards.</P>
<P>
<A NAME="freebsd_"></A> </P>
<H2><A NAME="ss9.3">9.3</A> <A HREF="Quake-HOWTO.html#toc9.3">FreeBSD </A>
</H2>
<P>The author has limited experience with this OS and has tested projects on
FreeBSD 5.3 with Nvidia's proprietary drivers.
<A HREF="Quake-HOWTO-3.html#darkplaces_">Darkplaces</A>,
<A HREF="Quake-HOWTO-3.html#quakespasm_">QuakeSpasm</A>,
<A HREF="Quake-HOWTO-3.html#tyrquake_">TyrQuake</A> and
<A HREF="Quake-HOWTO-6.html#hexenII_">Hammer of Thyrion</A> work well with this system.</P>
<P>
<A HREF="Quake-HOWTO-3.html#qudos_">QuDos</A> has recently ported several
<A HREF="http://qudos.quakedev.com/linux/quake1">engines</A> to Linux and
has recently started work on FreeBSD compatibility. His great
<A HREF="http://qudos.quakedev.com/linux/quake2">Quake II project</A> is
also now BSD friendly.</P>
<P>For basic GLQuake support, you can find a hacked FreeBSD binary and source
tarball
<A HREF="http://prdownloads.sourceforge.net/uhexen2/GLQuake-FreeBSD-sa-1.0.tgz?download">here</A>.</P>
<P>
<A HREF="Quake-HOWTO-3.html#quakeforge_">QuakeForge</A> 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 <B>configure
LDFLAGS=-lpthread --with-static-plugins</B>.</P>
<H2><A NAME="ss9.4">9.4</A> <A HREF="Quake-HOWTO.html#toc9.4">QNX </A>
</H2>
<P>QNX is a commercial real-time operating system, probably most notable
to hobbyists as being a successful microkernel OS.
<A HREF="Quake-HOWTO-3.html#sdlquake_">SDL Quake</A>-1.0.9
compiles and runs on QNX-NC-6.2.1 after running <B>configure --host=QNX</B>
and then making these changes:
<PRE>
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 &lt;sys/shm.h>
-int psize = getpagesize();
+int psize = _SC_PAGESIZE;
</PRE>
</P>
<P>
<A NAME="watervis_"></A> </P>
<H2><A NAME="ss9.5">9.5</A> <A HREF="Quake-HOWTO.html#toc9.5">Transparent Water and VisPatch </A>
</H2>
<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 <B>r_wateralpha</B> &lt; 1.0, issuing the
console command <B>r_novis 1</B> 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. </P>
<P>To do this you'll need the vispatch utility, as well as the
<A HREF="http://www.atomicgamer.com/directory.php?id=3138">vispatch data files</A>
for the game you are patching.</P>
<P>To patch the main data files in "id1" -
from your Quake directory - type <B>vispatch -dir id1 -data id1.vis</B></P>
<P>
<A HREF="http://vispatch.sourceforge.net/">Vispatch Homepage</A></P>
<H2><A NAME="ss9.6">9.6</A> <A HREF="Quake-HOWTO.html#toc9.6">Quake Inspired XTerms </A>
</H2>
<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
<A HREF="http://yakuake.uv.ro/">Yakuake</A> and
<A HREF="http://tilda.sourceforge.net/">Tilda</A> are projects inspired by this
idea.</P>
<P>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.</P>
<H2><A NAME="ss9.7">9.7</A> <A HREF="Quake-HOWTO.html#toc9.7">Launching maps and demos </A>
</H2>
<P>
<A HREF="http://www.quaddicted.com/?p=374">http://www.quaddicted.com/?p=374</A></P>
<H2><A NAME="ss9.8">9.8</A> <A HREF="Quake-HOWTO.html#toc9.8">Interest </A>
</H2>
<P>
<UL>
<LI> Because of the way the original game renders the sky, any map with
numerous outdoor enemies suffers a big performance hit.
<BR><BR>
</LI>
<LI> You can jump further when strafing than when going forward or back 8-)
<BR><BR>
</LI>
<LI> The <B>timedemo demo1</B> command is a great way to benchmark your system.
<BR><BR>
</LI>
<LI> 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.
<BR><BR>
</LI>
<LI> 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.
</LI>
</UL>
</P>
<H2><A NAME="ss9.9">9.9</A> <A HREF="Quake-HOWTO.html#toc9.9">Quotes </A>
</H2>
<P>
<UL>
<LI> John Carmack -<BR>
"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"
<BR><BR>
</LI>
<LI> From the original Quake How-To -<BR>
"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."
<BR><BR>
</LI>
<LI> Func Message Board -<BR>
"... This Will Produce A Fully Functional Bouncing, Exploding Zombie."<BR>
Sounds like fun :-)
<BR><BR>
</LI>
<LI> Quake Wikipedia -<BR>
"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."
<BR><BR>
</LI>
<LI> Moby Games <BR>
(by Pathogen) <BR>
"... 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."<BR>
(by Ashley Pomeroy) <BR>
"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"
<BR><BR>
</LI>
<LI> Happy Penguin Q3 Forum -<BR>
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.
<BR><BR>
</LI>
<LI> Slashdot Tenebrae Forum -
<PRE>
... 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!"
</PRE>
</LI>
</UL>
</P>
<H2><A NAME="ss9.10">9.10</A> <A HREF="Quake-HOWTO.html#toc9.10">Glossary </A>
</H2>
<P>
<DL>
<DT><B>ALSA</B><DD><P>
<A HREF="http://www.alsa-project.org">Advanced Linux Sound Architecture</A>.</P>
<DT><B>API</B><DD><P>Application Program Interface. The computer libraries
which are used when programming, and link the game to the hardware.</P>
<DT><B>Bot</B><DD><P>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.</P>
<DT><B>Client</B><DD><P>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.</P>
<DT><B>FPS</B><DD><P>First Person Shooter. A shooting game viewed from the "first person" perspective.</P>
<DT><B>Mod</B><DD><P>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.</P>
<DT><B>Noob</B><DD><P>Newbie. Someone new to a computer related topic.</P>
<DT><B>Patch</B><DD><P>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.</P>
<P>Usage of the GNU patch utility is of the form <B>patch [--dry-run] -pNUM
&lt;FILE </B> 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 <B>control-C</B> character.</P>
<P>Of course you could always type <B>man patch</B> and learn for yourself
how to use this powerful unix command. ;-/</P>
<DT><B>SDL</B><DD><P>
<A HREF="http://www.libsdl.org/">Simple DirectMedia Layer</A>
cross platform hardware API widely used in Linux games.</P>
<DT><B>Segfault</B><DD><P>A broad term indicating a program is faulty and terminated
abruptly. Depending on the bash shell's <B>ulimit -c</B> setting, a dump of
the program's image (coredump) may be left behind for examination with
the GNU debugger (GDB).</P>
<DT><B>Server</B><DD><P>A program central to multiplayer games to which every player connects.</P>
<DT><B>Tarball</B><DD><P>An archive file such as <B>somefile.tar</B> 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
<B>.gz</B> or <B>.bz2</B>. The extension <B>.tar.gz</B>
is often shortened to <B>.tgz</B>.</P>
</DL>
</P>
<H2><A NAME="ss9.11">9.11</A> <A HREF="Quake-HOWTO.html#toc9.11">Links </A>
</H2>
<P>
<DL>
<DT><B>id Software</B><DD><P>
<A HREF="http://www.idsoftware.com">http://www.idsoftware.com</A></P>
<DT><B>id Downloads</B><DD><P>
<A HREF="http://http://www.idsoftware.com/business/techdownloads">http://http://www.idsoftware.com/business/techdownloads</A></P>
<DT><B>id Store</B><DD><P>
<A HREF="http://www.idsoftware.com/store/index.php?view=quake">http://www.idsoftware.com/store/index.php?view=quake</A></P>
<DT><B>Icculus</B><DD><P>
<A HREF="http://www.icculus.org">http://www.icculus.org</A></P>
<DT><B>Icculus Gamers FAQ</B><DD><P>
<A HREF="http://www.icculus.org/lgfaq">http://www.icculus.org/lgfaq</A></P>
<DT><B>Various Engine Links</B><DD><P>
<A HREF="http://icculus.org/~ravage/quake/">http://icculus.org/~ravage/quake/</A></P>
<DT><B>The Linux Game Tome</B><DD><P>
<A HREF="http://www.happypenguin.org">http://www.happypenguin.org</A></P>
<DT><B>Func_Msgboard - Q1 message board from hell ... No, really</B><DD><P>
<A HREF="http://www.celephais.net/board/forum.php">http://www.celephais.net/board/forum.php</A></P>
<DT><B>Quaddicted</B><DD><P>
<A HREF="http://www.quaddicted.com/">http://www.quaddicted.com/</A></P>
<DT><B>Planetquake</B><DD><P>
<A HREF="http://www.planetquake.com/quake1">http://www.planetquake.com/quake1</A></P>
<DT><B>PlanetQuake3.net</B><DD><P>
<A HREF="http://www.planetquake3.net/index.php">http://www.planetquake3.net/index.php</A></P>
<DT><B>Darkplaces Game Engine</B><DD><P>
<A HREF="http://www.icculus.org/twilight/darkplaces">http://www.icculus.org/twilight/darkplaces</A></P>
<DT><B>Quake One</B><DD><P>
<A HREF="http://www.quakeone.com">http://www.quakeone.com</A></P>
<DT><B>Linux Gamers</B><DD><P>
<A HREF="http://www.linux-gamers.net">http://www.linux-gamers.net</A></P>
<DT><B>Quake Terminus</B><DD><P>
<A HREF="http://www.quaketerminus.com">http://www.quaketerminus.com</A></P>
<DT><B>Retro Quake</B><DD><P>
<A HREF="http://www.planetquake.com/retroquake/quake/index.html">http://www.planetquake.com/retroquake/quake/index.html</A></P>
<DT><B>Quake Basics</B><DD><P>
<A HREF="http://www.quaketerminus.com/quakebible/index.htm">http://www.quaketerminus.com/quakebible/index.htm</A></P>
<DT><B>Quake Wikipedias</B><DD><P>
<A HREF="http://wiki.quakesrc.org/index.php/HomePage">http://wiki.quakesrc.org/index.php/HomePage</A>,
<A HREF="http://en.wikipedia.org/wiki/Quake">http://en.wikipedia.org/wiki/Quake</A></P>
<DT><B>J<EFBFBD>rgen's GLQuake Site</B><DD><P>
<A HREF="http://mfcn.ilo.de/glxquake">http://mfcn.ilo.de/glxquake</A></P>
<DT><B>LinuxQuake.Org</B><DD><P>
<A HREF="http://www.linuxquake.org">http://www.linuxquake.org</A></P>
<DT><B>Linux Hexen II project</B><DD><P>
<A HREF="http://uhexen2.sourceforge.net">http://uhexen2.sourceforge.net</A></P>
<DT><B>SDL - Cross platform hardware API</B><DD><P>
<A HREF="http://www.libsdl.org/">http://www.libsdl.org/</A></P>
<DT><B>ALSA - Linux sound project</B><DD><P>
<A HREF="http://www.alsa-project.org">http://www.alsa-project.org</A></P>
<DT><B>Lowercase utility</B><DD><P>
<A HREF="http://filerenameutils.sourceforge.net">http://filerenameutils.sourceforge.net</A></P>
</DL>
</P>
<HR>
<A HREF="Quake-HOWTO-10.html">Next</A>
<A HREF="Quake-HOWTO-8.html">Previous</A>
<A HREF="Quake-HOWTO.html#toc9">Contents</A>
</BODY>
</HTML>