Nvidia 为其所有现代显卡提供的驱动程序都不是开源的。因此,许多发行版不包含它们。如果您的 Nvidia 显卡运行缓慢,这可能是原因,您应该访问 http://www.nvidia.com 下载 Linux 安装程序。根据作者的经验,这些驱动程序非常出色,但并非所有版本都能 100% 适用于所有显卡和内核。如果您的 Nvidia 显卡出现异常,请尝试不同的驱动程序。
安装 Nvidia 的专有驱动程序后,Linux 可以使用 AGPGART 或 Nvidia 的 AGP 驱动程序进行 AGP 访问。此选项由您的 /etc/X11/xorg.conf 文件中的 "NvAGP" 设置。
来自 Nvidia 的 README 文件
Option "NvAGP" "integer" Configure AGP support. Integer argument can be one of: Value Behavior -------------- --------------------------------------------------- 0 disable AGP 1 use NVIDIA's internal AGP support, if possible 2 use AGPGART, if possible 3 use any AGP support (try AGPGART, then NVIDIA's Please note that NVIDIA's internal AGP support cannot work if AGPGART is either statically compiled into your kernel or is built as a module and loaded into your kernel.
这些优化适用于拥有 GeForce 显卡(或更好)和 Nvidia 专有驱动程序的用户。它们通过 bash 命令 export {变量}={值} 访问,然后从同一命令行启动 Quake 引擎。或者,最近的驱动程序有一个 nvidia-settings 命令,可以启动用户友好的控制面板。
这些优化的完整详细信息在 Nvidia README 文件中,通常安装在 "/usr/share/doc/NVIDIA_GLX-1.0/README.txt"
export __GL_FSAA_MODE={value}
video card effect value ===================================================== all disable 0 ----------------------------------------------------- GeForce, GeForce2 1.5x1.5 Supersampling 3 2x2 Supersampling 4 ----------------------------------------------------- GeForce4 2x Bilinear 1 2x2 Supersampling 4 ----------------------------------------------------- GeForce3, GeForce4 Ti, 2x Bilinear 1 GeForce FX 4x Bilinear 4 -----------------------------------------------------
export __GL_SYNC_TO_VBLANK=1
将 GL 输出与显示器的垂直刷新率同步,从而提供更稳定的图像,尤其是在较慢的显卡上。
虽然新版本的 XFree 和 XOrg 对 Voodoo 3、4 和 5 提供了很好的支持,但早期的 3Dfx 硬件(如 Voodoo1、Voodoo2 和 Rush)不再进行硬件加速。要使 OpenGL 在这些显卡上工作,您需要下载、安装和/或编译名为 Glide 和 Mesa 的软件库,但这并非易事。作者确实有 Voodoo2 的预编译 libGL,并且他的 patched TyrQuake 包括适当的 3Dfx 亮度控制。这里 是旧 3Dfx 显卡的 README 文件。
作者对这个操作系统 (OS) 的经验有限,并且在使用 Nvidia 专有驱动程序的 FreeBSD 5.3 上测试过项目。Darkplaces、QuakeSpasm、TyrQuake 和 Hammer of Thyrion 在此系统上运行良好。
QuDos 最近将几个 引擎 移植到 Linux,并且最近开始致力于 FreeBSD 兼容性。他的出色的 Quake II 项目 现在也与 BSD 兼容。
对于基本的 GLQuake 支持,您可以在 此处 找到一个破解的 FreeBSD 二进制文件和源代码 tarball。
QuakeForge 是一个全面的 Quake 项目,但在较新的 FreeBSD 版本中可能存在安装问题。内存分配例程 "alloca" 在 FreeBSD 5.3 上无法正确检测到。解决方法是在运行 "configure" 后,将 "#define C_ALLOCA 1" 添加到 "include/config.h" 并取消定义其他 ALLOCA 变量。另一个问题是插件的打开。如果项目构建成功,但您无法获得控制台或菜单,您可能需要使用 configure LDFLAGS=-lpthread --with-static-plugins 启用静态插件。
QNX 是一个商业实时操作系统,对于爱好者来说,最引人注目的是它是一个成功的微内核操作系统。SDL Quake-1.0.9 在运行 configure --host=QNX 然后进行以下更改后,可以在 QNX-NC-6.2.1 上编译和运行
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;
游戏变量 "r_wateralpha" 允许水面透明 - 但大多数地图没有必要的 "vis" 信息。有两种方法可以获得此信息。在设置 r_wateralpha < 1.0 后,发出控制台命令 r_novis 1 可以使游戏计算自己的 vis 信息,但会牺牲 cpu 周期。或者,vispatch 是一个实用程序,可以修补您的 Quake/QuakeWorld 关卡以支持透明水面。
为此,您需要 vispatch 实用程序,以及您要修补的游戏的 vispatch 数据文件。
要修补 "id1" 中的主数据文件 - 从您的 Quake 目录 - 键入 vispatch -dir id1 -data id1.vis
Quake 的游戏内控制台是一个很棒的功能,已被许多其他游戏采用。现在您还可以使用“反引号”键来访问 X 终端窗口。Yakuake 和 Tilda 都是受此想法启发的项目。
不幸的是,两者都不容易从源代码安装。Yakuake 是一个 KDE 应用程序,需要 KDE 开发包,而编译 Tilda 则更复杂。它需要几个不常见的库,并给作者带来了编译错误,因此寻找 RPM 包可能是一个更好的选择。作者可以推荐 Yakuake 作为一个非常方便的 X 终端。
http://www.quaddicted.com/?p=374
... 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!"
应用程序编程接口 (Application Program Interface)。编程时使用的计算机库,并将游戏链接到硬件。
多人游戏中具有人工智能(咳嗽)的计算机生成玩家。用于在无人或未连接到网络时进行多人游戏。
这个词有两种细微不同的用法。在单人游戏中,Quake 游戏被称为客户端,不同的客户端使用自己的图形库(例如,GL 客户端 "quake.glx" 或 X11 客户端 "quake.x11")。用法在多人游戏中类似,但也意味着连接到单个“服务器”程序的每个用户程序,该程序让所有玩家存在于同一个世界中。
第一人称射击游戏 (First Person Shooter)。从“第一人称”视角观看的射击游戏。
对原始 Quake 游戏的修改 - 从完整的游戏大修(完全转换)到简单的地图/模型重制。Quake 旨在通过其自己的计算机语言 "Quake C" 实现平台的轻松可移植性,使地图制作者可以控制其 Quake 世界的几乎每个方面。
新手 (Newbie)。对计算机相关主题不熟悉的人。
软件补丁(或差异 diff)是用于在编译之前更改源代码树的单个文件。它通常用于修复错误或添加原始作者未包含的新功能。
GNU patch 实用程序的用法形式为 patch [--dry-run] -pNUM <FILE ,其中 NUM 是要从补丁文件中剥离的目录数(通常为 0 或 1)。除非是 unix 大师,否则这个数字并不明显,但使用 "--dry-run" 选项可以让您测试运行 patch,以便您可以找到正确的 NUM。 ...使用错误的数字将使 patch 输出各种神秘消息,可以使用 control-C 字符终止这些消息。
当然,您可以随时键入 man patch 并亲自学习如何使用这个强大的 unix 命令。;-/
简易DirectMedia层 (Simple DirectMedia Layer) 跨平台硬件 API,广泛用于 Linux 游戏中。
一个广泛的术语,表示程序有缺陷并突然终止。根据 bash shell 的 ulimit -c 设置,程序的映像转储(核心转储 coredump)可能会被留下,以便使用 GNU 调试器 (GDB) 进行检查。
多人游戏的核心程序,每个玩家都连接到该程序。
由 "tar" 程序创建的存档文件,例如 somefile.tar。它通常使用程序 "gzip" 或 "bzip2" 进行压缩,在这种情况下,它通常以字母 .gz 或 .bz2 结尾。扩展名 .tar.gz 通常缩短为 .tgz。
http://wiki.quakesrc.org/index.php/HomePage, http://en.wikipedia.org/wiki/Quake