Quake 入门指南
Quake 是任何平台上最酷的游戏之一。感谢 Dave Taylor,他于 1995 年以 Linux Doom 开始了 id Software 将其游戏移植到 Linux 的传统,今天我们有了 Linux 版 Quake。本文旨在快速入门,帮助您在 Intel Linux 系统上运行 Quake。如果您遇到本文未解决的问题,请查看 Linux Quake HOWTO,网址为 http://www.linuxquake.com/howto,获取更详细的故障排除信息。
Quake 的最低系统要求显示在“系统要求”侧边栏中。要在您的 Linux 系统上安装 Quake,您需要某种官方 Quake 发行版——来自软件商店的零售 DOS/Windows CD-ROM,或者从网上下载的共享软件版本。或者,如果您已经在 DOS/Windows 机器上安装了 Quake,则可以使用该安装中的相关文件。
除了官方 Quake 文件外,您还需要 Linux 特定的二进制文件。所有必要的 Linux Quake 文件都可以在 ftp://ftp.idsoftware.com/ 找到。id 的网站可能非常繁忙,因此您可能需要使用他们的镜像站点之一(请参阅“资源”)。
本文中的版本号是截至 1998 年 9 月的最新版本,并且不太可能更改。Quake 被认为是已完成的产品,因此只有在发现重大错误时才会发布新版本。
如果您没有 Quake CD-ROM,则只需 Windows 共享软件版 Quake(ftp://ftp.idsoftware.com/idstuff/quake/quake106.zip)。
Quake 可以通过三种方式渲染其图形:在 X11 窗口中、全屏 SVGA 或硬件加速 OpenGL。您只需下载您计划使用的渲染器的二进制文件。(请参阅“资源”。)
QuakeWorld 是 Quake 的多人游戏版本,针对通过互联网进行游戏进行了优化。如果您计划在线玩游戏,请获取“资源”中列出的软件包之一。Red Hat 5.x/Debian 2.x 用户应获取 glibc 版本。.rpm 和 .tar.gz 软件包内容相同。根据您的发行版选择一个。
如果您计划运行 Internet QuakeWorld 服务器,请选择一个专用的服务器专用二进制文件(请参阅“资源”)。大多数人不需要它们。
首先创建您将安装 Quake 的目录。“标准”位置是 /usr/local/games/quake。QuakeWorld RPM 软件包将其文件安装在此目录中,因此如果您计划稍后安装 QuakeWorld,最好安装在此处。
mkdir /usr/local/games/quake
如果您拥有非常早期的 Quake CD-ROM 版本,则这些说明将不起作用。有关从旧 CD-ROM 安装的详细信息,请参阅 Linux Quake HOWTO。
您的 Quake CD-ROM 上的文件 resource.1 是所有 Quake 游戏文件的 lha 压缩包(lha 是一种文件压缩和归档格式,如 tar 或 zip)。我们将使用 lha 命令(请参阅“资源”)来解压缩它。
挂载您的 Quake CD-ROM,移动到您的 Quake 目录并解压缩 resource.1 压缩包
mount /dev/cdrom /cdrom #change for your system cd /usr/local/games/quake lha e /mnt/cdrom/resource.1
您的 /usr/local/games/quake 目录现在应该包含一堆新文件和一个名为 /id1 的子目录。Linux Quake 最重要的文件位于 /id1 中,因此您可以安全地删除其他所有内容。如果您完全不熟悉 Quake(或者即使您不是),您可能希望保留 *.txt 文件以供参考。在我的系统上,我将所有累积的 README 文件放入 /doc 子目录中。
单集共享软件版 Quake 具有完整版 Quake 的所有功能,但有两个主要限制:您不能使用它玩 QuakeWorld(多人游戏),也不能玩自定义或修改的关卡。
安装共享软件版 Quake 与从 CD-ROM 安装没有太大区别。将 quake106.zip 文件放入您的 Quake 目录中,然后解压缩 resource.1 lha 压缩包
cd /usr/local/games/quake unzip -L quake106.zip lha e resource.1
现在保存 README 文件(可选)并删除除 /id1 目录之外的所有其他内容
mkdir doc mv *.txt doc rm -f *
如果您在另一台机器上的 Windows 或 DOS 下安装了 Quake,则可以通过 FTP 或其他某种机制将 quake/id1/ 中的文件传输到您的 Linux 系统。请记住,您的 Linux 系统上的文件名必须为小写,Quake 才能找到它们,因此您可能需要在传输后重命名它们。另请注意,您可能需要在执行此操作后删除您的 DOS/Windows 安装,以遵守 id 软件许可的条款。
如果您的 DOS/Windows 和 Linux 系统在同一台机器上,则您有两种选择:将文件从您的 DOS/Windows 分区复制到您的 Linux 分区,或者从 Linux 链接到必要的文件。两种选择的效果都一样好。当您链接而不是复制时,您可以节省大约 50MB 的磁盘空间。
无论您选择做什么,首先切换到您的 Quake 目录并创建一个名为 /id1 的新子目录
cd /usr/local/games/quake mkdir id1
要从您的 DOS/Windows 分区复制文件,请键入
cp /win95/games/quake/id1/*.pak id1要创建到您的 DOS/Windows Quake 文件的链接,请改为键入此命令
cd id1 ln -s /win95/games/quake/id1/*.pak .当然,您应该将上面示例中的 /win95/games/quake 替换为您 DOS/Windows 分区和 Quake 目录的正确路径。
现在是决定您要安装三个 Quake 可执行文件中的哪一个的时候了。
X11 Quake 允许您在 X 桌面的窗口中运行 Quake。它是最不激动人心的客户端,但却是测试您的安装的好方法,也很安全。
Squake 是 SVGAlib Quake 客户端;它在您的控制台上全屏运行。
GLQuake 是 OpenGL Quake 客户端。如果您有 3Dfx 卡,这是必备的。
下载您想要的软件包(请参阅“必要文件”部分)并将它们解压缩到您的 Quake 目录
cd /usr/local/games/quake tar -xzf XXXX-i386-unknown-linux2.0.tar.gz
如果您想要 Quake 的声音,则 /dev/dsp 需要是可读写的。大多数发行版默认情况下会赋予它 662 (rw-rw—w-) 权限。最简单的解决方案是只需 chmod 666 /dev/dsp。在大多数系统上,从声音设备读取的能力不会构成重大的安全威胁。如果这种方法对您的系统来说不可接受,请创建一个拥有 /dev/dsp 的组,并使您的 Quake 玩家成为该组的成员。
如果您没有安装或配置用于您的系统的声卡,请确保在启动 Quake 时使用 -nosound 命令行选项。如果不使用 -nosound,Quake 在尝试初始化您不存在的声卡时将以段错误退出。
如果您安装了 X11 客户端,您的系统可能需要进一步配置才能使用 glquake 和 squake,但在此时,quake.x11 应该可以运行了。
cd /usr/local/games/quake ./quake.x11
如果一切顺利,应该会出现一个运行 Quake 演示的小窗口。您应该听到声音效果,如果 CD 已挂载,则可能会听到音乐。您可以使用 -width 和 -height 命令行选项来创建更大的窗口。
squake 和 glquake 都需要 SVGAlib 才能运行(glquake 使用 SVGAlib 进行键盘和鼠标输入,以防您想知道)。SVGAlib 随附大多数现代发行版,并且必须正确配置后 squake 或 glquake 才能正确运行。
libvga.config 是 SVGAlib 的配置文件。在大多数系统上,您会在 /etc 或 /etc/vga 中找到它。确保此文件中的鼠标、显示器和显卡设置对您的系统正确。有关更多详细信息,请参阅 SVGAlib 文档。
如果您的系统上还没有 SVGAlib,则可以在 Sunsite 上找到它(请参阅“资源”)。
如果您有 Red Hat 5.x 或其他基于 glibc 的 Linux 发行版,请记住,由于 Quake 是使用 libc5 编译的,因此它链接到的所有库(如 SVGAlib)也必须是基于 libc5 的。如果您要自己编译较新版本的 SVGAlib,请确保它链接到 libc5(及其朋友)而不是 glibc,否则 Quake 将无法运行。
一旦 svgalib 正确安装,您几乎可以运行 squake 了。squake 需要以 root 权限运行才能访问您的声音和显卡。一种(糟糕的)处理方法是始终以 root 身份运行它。负责任的系统管理员会对这种肮脏的建议感到畏缩。使 Quake 二进制文件 setuid root 是一种更可接受的解决方案。然后,普通用户可以运行 Quake,并且仍然拥有访问图形和声音设备所需的权限。请注意,任何 setuid 程序都代表着安全风险。聪明的用户可能会利用 setuid 程序中的错误或安全漏洞来获得对您系统的 root 访问权限。如果您不运行多用户系统,这将不会是一个大问题。
使用以下命令使 squake setuid root
chown root squake chmod 4755 squake
请注意,您应该从虚拟控制台运行 squake。除非您在启动时是 root 用户,否则它不会从 X 运行,并且以 root 用户身份运行游戏是一种应该避免的情况。如果您在 X 中,请执行 ctrl+alt+f1,登录,然后
cd /usr/local/games/quake ./squake
硬件加速 OpenGL Quake 是 Quake 的预期运行方式。没有替代品——一旦您体验过它,就再也回不去了。
要使 GLQuake 工作,您需要一张带有 3Dfx Voodoo 或 Voodoo2 芯片组的 3D 卡、glide 库、Mesa 库和 SVGAlib。在 Linux 下使您的 3Dfx 卡工作是一个很大的主题,我在这里将非常简要地讨论一下。有关查找更多信息的地方,请参阅“资源”。
首先,确保 SVGAlib 已安装并按照上一节中的概述正确配置。请记住,glquake 使用 SVGAlib 来获取鼠标和键盘输入。
接下来,获取并安装 glide 库。Glide 是一个库,它为基于 3Dfx 的卡提供 API 以进行编程。如果您希望 Mesa 图形库使用您的 3Dfx 卡,您必须拥有它。选择适合您系统的软件包(请参阅“资源”)并按照网页上的说明进行安装。
请注意,除非您除了 Glide 库之外还下载了 3Dfx-device-driver 软件包,否则您只能以 root 身份运行 Glide 应用程序(如 GLQuake)。安装 /dev/3dfx 模块,您就可以作为普通用户玩 GLQuake。
安装 glide 后,试用随附的测试程序。记住这个测试程序;如果您遇到 glide 应用程序(如 GLQuake)崩溃,导致屏幕关闭,它是重置显示的好方法。从 VC 而不是 X 运行此测试。测试应用程序可能会在 X 中丢失鼠标和键盘焦点;然后您将无法关闭它。键入 usr/local/glide/bin/test3Dfx,您的屏幕将变为蓝色并提示您按任意键。按下一个键后,您将返回到提示符。
现在您需要安装 Mesa,这是一个由 Brian Paul (brianp@elastic.avid.com) 编写的免费类 OpenGL 图形库。幸运的是,您不必看得太远,因为 Mesa 2.6 包含在 QLQuake 和 QuakeWorld 二进制文件中。您所要做的就是将其移动到正确的位置
cd /usr/local/games/quake cp libMesaGL.so.2.6 /usr/local/lib ldconfig
如果您想将 Mesa 升级到更新的版本(Mesa 3.0 应该会在本文印刷时发布),请从 ftp://iris.ssec.wisc.edu/pub/Mesa 下载最新版本。安装 Mesa 3.0 或更高版本时,请记住 glquake 是链接到 libMesaGL.so.2 的,因此您必须从新的 libMesaGL.so.3.0 创建一个到 libMesaGL.so.2 的符号链接,glquake 才能找到它。此外,正如我之前提到的,请记住,由于 Quake 是基于 libc5 的应用程序,因此它链接到的所有库也必须使用 libc5 构建。链接到 glibc 的 libMesaGL 将导致 glquake 以段错误中止,并可能使您的系统挂起。
现在 SVGAlib、glide 和 Mesa 都已安装,您应该能够运行 glquake 了。如果您在 X 中,请切换到 VC (ctrl+alt+f1) 并启动 glquake
cd /usr/local/games/quake ./glquake
QuakeWorld 是 Quake 的多人游戏版本,针对通过调制解调器进行的互联网游戏进行了优化。原始 Quake 的网络代码问题,如过度延迟和数据包丢失,在 QuakeWorld 中已减少或消除。
要玩 QuakeWorld,您需要完整、注册或零售版的 Quake 和 Linux QuakeWorld 客户端。QuakeWorld 客户端与普通 Quake 具有相同的风格(X11、SVGAlib 和 OpenGL),但捆绑在一个软件包中。这些二进制文件的先决条件和配置与普通 Quake 相同,因此如有必要,请参阅前面的章节,以获取有关设置 SVGAlib 或 glide/Mesa 的帮助。
如果您正在安装 RPM QuakeWorld 软件包之一,则安装应该像键入以下命令一样简单
su root rpm -Uvh qwcl-xxxxx.i386.rpm
要从 tar.gz 软件包安装,请键入
cd /usr/local/games/quake su root tar -xzf qwcl-xxxx-i386-unknown-linux2.0.tar.gz四个新的可执行文件(qwcl、qwcl.x11、glqwcl 和 glqwcl.glx)将安装在 /usr/local/quake 中。glqwcl.glx 是一个 GLX 应用程序,链接到标准 OpenGL 库。这应该允许 QuakeWorld 与 Mesa 以外的 OpenGL 实现一起运行。程序 qwcl、glqwcl 和 glqwcl.glx 以 setuid root 方式安装,以便可以访问您系统上的图形设备。如果您安装了 GLQuake 部分中提到的 /dev/3dfx 驱动程序,则可以删除 glqwcl 和 glqwcl.glx 的 setuid 权限。
一旦 QuakeWorld 与您的 Quake 文件一起安装,您可以通过键入以下命令启动它
./qwcl +connect some.server.address
Qstat 是由 Steve Jankowski (steve@activesw.com) 创建的命令行实用程序,它返回 Internet Quake、QuakeWorld 和 Quake 2 服务器的状态。如果您计划进行任何 Internet Quaking,Qstat(请参阅“资源”)是必备工具。
XQF(请参阅“资源”)是 Qstat 的图形前端,它使用 GTK 工具包。这是目前最好的 QuakeWorld/Quake 2 服务器浏览器。Roman Pozlevich (roma@botik.ru) 仍在以每月大约一个版本的速度发布新版本。如果您熟悉 Windows 平台上的 GameSpy,那么这是 Linux 上最接近它的东西。
