Linux Quake 位于两个计算革命的十字路口;GNU/Linux - 流行的免费操作系统,以及 GLQuake - 第一个使用 OpenGL 的“第一人称射击游戏”。感谢 John Carmack 以 GPL 许可发布该软件,我们能够在非专有平台上享受它。并且,尽管它已经过时,但仍然定期发布很棒的新地图。
本文档是安装 Quake 及其许多相关游戏和修改的指南。它包括编译说明、技巧和最佳网络资源的指针,以及有关 Quake II、III 和 IV 的一些信息。您还会发现许多与 Linux 游戏相关的常见问题。
在某些地方,使用简写来表示程序源代码的更改。 形式如下
- code to be removed + code to be inserted in its place类似于 GNU "diff" 程序在生成统一补丁时的输出。
当使用术语“$PWD”时,用户应已执行命令 cd {Linux Quake 目录},并将其作为当前目录。
安装 Quake 需要几个基本步骤。
获取游戏数据文件通常通过使用 Microsoft Windows 或 Wine 或 Dosbox 等模拟器安装游戏(或游戏演示),然后将已安装游戏的 id1 目录复制到您的 Linux Quake 目录 - 确保所有文件都采用小写。
或者,您可以使用lha 实用程序来提取数据文件。 对于早期的 CD,您必须先
cat /mnt/cdrom/quake101.1 /mnt/cdrom/quake101.2 > resource.1
cd /usr/local/games/quake lha e {some directory}/resource.1
游戏的更高版本,包括 WinQuake,其数据文件采用未压缩形式,并且可以直接从 CD 复制 id1 目录。
您执行以运行 Quake 的程序称为游戏引擎。 有几个可供选择,但最简单的选择是TyrQuake,或更增强的QuakeSpasm。 下载或编译游戏引擎后,将此二进制文件放在 Quake 目录中的 id1 目录旁边。
最后,您应该具有类似于此的目录结构,所有文件均为小写
/usr/local/games/quake +- quakespasm (or another game engine) | +- progs.dat | +- id1 -+- pak0.pak | +- pak1.pak现在,从 xterm 窗口中,键入(例如)
./quakespasm -fullscreen -width 800 -height 600
这听起来很简单,但是如果您是 Linux 新手并且不熟悉命令行,请尝试以下链接之一以获取更多信息
命令行选项是在程序名称后在 Linux 命令行中键入的额外参数。 Quake 有大量的命令行选项,其中一些选项因引擎而异。 最有用/常见的选项是
在窗口模式下运行游戏
在全屏模式下运行游戏
加载 Mod NAME。
为内部堆保留 N 兆字节的内存。 这通常默认为 8 或 16 兆,但在玩较大的 Mod 时必须增加。
窗口/全屏宽度
窗口/全屏高度
默认使用此目录
设置声音采样率(例如 44100、22050、11025)
将声音位设置为 N = 8 或 16
禁用声音。 当声音不存在/未配置以防止游戏崩溃时,这是必需的。
禁用 GL 多重纹理。
允许最多 N 个玩家/Bot 加入多人游戏。
使用 DEVICE 播放 CD 音乐
禁用 CD 音频
您还可以通过在 Linux 命令行中以加号开头来附加 Quake 命令。 例如,要以困难技能自动开始新游戏,请使用
quakespasm +skill 2 +map e1m1
有关更多信息,请参见http://www.planetquake.com/console/commands/quake.html
控制台是一个游戏内命令行,您可以在其中发出命令、更改变量和作弊。 在游戏中按下波浪号“~”键即可切换控制台。 主要命令包括 -
无敌
穿墙
敌人不会攻击玩家
以最高速度播放 DEMO(例如“demo1”)并显示帧速率
发出“impulse N”
这些是游戏内命令,可以赋予特殊用途。 一些有用的命令是
绑定一个键以执行命令
加载 MAP
加载 MAP 而不重置玩家设置
退出到系统
value = 0(简单)- 3(不可能)
难度等级。 必须重新启动关卡才能生效
value = 0.0 - 1.0
支持透明水的地图中水的透明度(请参阅Watervis)
value = 0.1 - 1.0
提高此值是加快游戏速度的好方法,但会牺牲一些声音延迟。 我在较慢的计算机上使用 0.3
value = gl_nearest | gl_nearest_mipmap_nearest | gl_linear_mipmap_nearest | gl_linear_mipmap_linear
从最差到最佳的纹理质量。
flag = 0 | 1
显示模型阴影
flag = 0 | 1
将视频输出与屏幕刷新同步
flag = 0 | 1
从第三人称视角显示玩家
TyrQuake 是一个相当完整的项目,包括 OpenGL、Software Quake 和 QuakeWorld 客户端,以及其他工具,包括流行的 TyrLite。 Tyrann 的重点是功能齐全但简约的跨平台引擎。
最新版本是 0.60,现在支持 Power PC 平台、FreeBSD 和每个用户的配置文件。 其他较新的功能包括复杂的命令行补全和炫酷的控制台效果 (gl_constretch)。
键入 make 将构建所有客户端。 要仅编译单人游戏客户端,请在解压缩源代码后键入: make prepare tyr-glquake 。 Tyrann 具有良好的简洁构建系统,但是如果您希望查看编译反馈,请在命令行中添加 V=1。
修补后的 TyrQuake 二进制文件可在此处获取。
http://disenchant.net/engine.html
FitzQuake 长期以来一直是 Quake 地图制作社区的事实标准,而这个新项目基于 Fitz 的SDL 端口。
除了出色的 FitzQuake 功能(例如天空盒、雾、彩色光和对大型地图的支持)外,QuakeSpasm 还包括
http://quakespasm.sourceforge.net
Darkplaces 是一个惊人的 Quake 引擎,具有广泛的视觉增强功能和颜色、效果和声音选项。 它使用与 Tenebrae 相同的 Doom3 照明功能,因此比 GLQuake 和 QuakeForge 需要更强大的计算机。
它还支持许多其他不兼容的 Mod,包括Nehahra 和 Nexuiz,并改进了对官方任务包的支持。 最近的更改包括菜单系统的改进和速度的提高,尽管似乎也出现了一些 Mod 兼容性问题。
Havoc 的文件存档可能有点令人困惑。 大型“darkplacesengine”tarball 包括预编译的二进制文件和第二个 tarball 中的游戏源代码。 要编译您自己的程序,请解压缩第二个 tarball,键入 make 以查看可能的目标(程序)列表,然后选择一个。 例如 - 要构建带有 ALSA 声音的 OpenGL 引擎,请键入 make cl-release,或者要使用 OSS 声音进行构建,请键入 make cl-release DP_SOUND_API=OSS。
感谢 LordHavoc 的这个伟大项目。
http://www.icculus.org/twilight/darkplaces
来自 Quore 网站
Quore 是一个在大气层中运行的 Quake 引擎,在 GNU/Linux 系统上运行,具有增强的图形、增加的限制、可配置的 HUD 和氛围,以及用于更改游戏玩法的不同模式。 它基于 JoeQuake,并具有来自 Qrack、ezQuake 的附加效果以及来自 Fitzquake 的引擎限制调整这款游戏很棒,可能是图形修改最多的 Linux 引擎。 但它也有许多恼人的错误。
http://quore.free.fr/index.html
QuDos 在 BSD 和 Linux 的 Quake 引擎方面做了很多工作。 过去,他移植了 Nehahra、JoeQuake 等,但目前他的网站上只有几个可用。
他出色的 NehQuake 端口仍然可以在 LinuxQuake.Org 上找到,但那些想要源代码的人可以尝试联系他。
http://qudos.quakedev.com/linux/quake1
在这里,您将找到一些相关的文档和故障排除技巧,以及适用于 Linux 的 OpenGL Quake 的基本版本。 按照 Linux 标准,它相当无痛,它支持大多数 Quake Mod,但伽玛(亮度)支持已损坏。
Tenebrae 是一款华丽的 Quake 引擎,其照明效果类似于 Doom III 中的照明效果。 这是一个古老的项目,需要一个好的 GPU,并且可能与所有...文档不太兼容。
这里有几个值得关注的点...
Tenebrae 安装程序将安装共享软件 Quake 关卡以及所有精美的 Tenebrae 模型和纹理,但下载量为 100 兆。(确保在 32 bpp 模式下运行游戏 - 见下文)。 尝试此处获取一些二进制文件。
源代码的编译可能并不直接。 首先
cd linux ; ln -s Makefile.i386linux Makefile ; make如果编译失败并显示“../glquake.h:1137: conflicting types for ....”,则需要删除第 1137 行和第 1138 行。 您可能还需要更改 net_udp.c 中的 gethostname 声明,如下所示
- extern int gethostname (char *, int); + extern int gethostname (char *, size_t);
编译后,将二进制文件“debugi386.glibc/bin/tenebrae.run”和 Tenebrae 数据文件复制到您的 Quake 文件夹。 最后,游戏仅以 32 bpp 颜色(X11 颜色深度 24)运行,因此如果需要,请在此模式下重新启动 X,并使用以下命令执行游戏:tenebrae.run -basedir $PWD。 或者,您可以使用以下命令启动新的 X 会话
startx $PWD/tenebrae.run -basedir $PWD -- :1 -depth 24
http://tenebrae.sourceforge.net/
QF 是一个全面的 Linux Quake 项目。 它具有优雅的图形增强功能、众多单人游戏和QuakeWorld客户端以及 Quake C 工具。 其功能包括:经过修改的菜单系统、新的“平视显示器”和游戏内帮助。
可能是由于其大小,QuakeForge 多年来未更新,并且其文档从未完全完成。 常规的“configure && make && make install”将构建整个项目,但它似乎不支持最小的单人游戏构建选项。 QuakeForge 的默认目录是“/usr/local/share/games/quakeforge”,因此请确保从此处链接到您的“id1”目录。 (例如 ln -s /usr/local/games/quake/id1 /usr/local/share/games/quakeforge/id1)。
有关在 BSD Unices 上构建 QuakeForge 的信息,请参阅 FreeBSD 部分。
感谢 QuakeForge 团队的庞大项目,该项目为其他开源游戏提供了许多灵感。
http://www.quakeforge.net
http://sourceforge.net/projects/quake/
另一个已移植到 Linux 的 Quake 引擎是 NPRQuake,但据我所知,它已经几年没有被触及过了。 值得注意的是,它具有动态加载不同渲染器的能力,这非常酷。 Linux 端口包括对卡通渲染器 ainpr 的支持,并且对我来说效果非常好。
SDL 版本已重写鼠标和视频代码,但声音 API 尚未移植到 SDL,并且它不是完全可移植的引擎。
http://www.cs.wisc.edu/graphics/Gallery/NPRQuake/
Twilight Project “是一组相当简约的 NQ 和 QW 引擎,专注于疯狂的渲染速度,但目前有点不稳定。”
这款游戏速度~很快~,具有外观简洁但有用的菜单系统,因此计算机速度较慢的用户绝对应该尝试一下。 它还具有一些独特的图形效果和不寻常的用户界面。
要编译此项目的 0.2.2 版本,您需要安装 python 脚本语言,并且可能需要对 src/nq/pr_edict.c 的第 1108 行进行此更改
- if (progs->ofs_strings + pr_stringssize >= com_filesize) + if (progs->ofs_strings + pr_stringssize >= (uint)com_filesize)执行 scons.py 现在(希望)构建二进制文件,并将单人游戏客户端 (twilight-nq) 复制到您的 quake 目录后,键入 twilight-nq -basedir $PWD 以启动游戏。
如果您在编译时遇到问题,版本 0.2.01 使用传统的“configure && make && make install”方法,因此您可能想要尝试一下。
游戏保存在此引擎中是一个问题。 没有游戏保存或加载菜单,这只能使用“F6”和“F9”键进行快速保存和加载来完成。 此外,如果您使用“map MAPNAME”命令启动游戏,此功能通常不起作用,因此请确保您以正常方式通过“开始游戏”菜单开始游戏。
此引擎适用于视障人士,并使用声音来帮助导航。 它包括 OpenGL 和 SDL 客户端。
这个 Quake 的基本版本对于 Linux 用户来说实际上并不有趣,因为它使用非常旧的代码库,并且功能很少。 它的主要特点是使用 SDL 编程 API 进行声音、视频和鼠标处理,并且应该在所有 SDL 支持的操作系统上运行,而无需进行重大更改。
SDL Quake 确实存在与音乐相关的错误:在驱动器中运行带有音频 CD 的游戏会限制游戏的速度。 要避免这种情况,只需取出 CD,或使用 -nocdaudio 选项。
游戏以固定分辨率运行; 宽度和高度无法更改。 要在全屏模式下播放,请使用 -fullscreen 选项。
http://www.libsdl.org/projects/quake
WindowMaker 是 X11 的窗口管理器,而这个微小的 Quake 版本适合 64x64 像素的可停靠小程序。 即使您没有 WindowMaker,也可以对其进行测试,但如果游戏获得键盘焦点,则会崩溃。
对于好奇的人,在从 sys_linux.c 中删除“usleep”命令后,可以使用 timedemo demo1 对此游戏进行基准测试。
http://freshmeat.net/projects/wmquake/
有关 Software Quake 的更深入处理,请参阅本 HOWTO 的先前版本.
原始 WinQuake 源代码还附带了两个像素化版本的游戏
但是编译它们不再直接。 它涉及将 Makefile.linux 复制到 Makefile,编辑此文件以删除额外的目标,将 /usr/X11/lib 替换为 /usr/X11R6/lib 并键入 make build_release。
不过,还有更简单的选择。 TyrQuake 和 QuakeForge 具有软件客户端,并且 SDL 的作者 Sam Lantinga 还编写了一个旧的 SDLQuake,它应该可以在所有现代平台上运行。
Quake 有数百个用户创建的关卡 - 俗称“Mod”、“完全转换”或简称为“地图”。 要运行新地图,请将 bsp 文件放入“quake/id1/maps”子目录,并使用 +map MAPNAME 选项启动 Quake。
安装 Mod 只是创建一个子目录 DIR 并将 Mod zip 文件/tarball 的内容提取到此目录中的问题。 然后,通过使用 -game DIR 命令行选项以及有时使用 +map MAPNAME (其中 MAPNAME 是 Mod 的起始地图)来加载它。
对于地图和 Mod,所有文件都应采用小写。
最近有人努力在 Quaddicted 上存档许多 Quake 地图。 地图,Mod。
一些更值得注意的 Mod 是
这个最新的 Mod 是必备的。 它包括 15 个单人游戏关卡、令人惊叹的 Boss 以及几个扭曲的蜘蛛出没的洞穴。 Distrans 还贡献了由忧郁而有趣的电子氛围组成的专业品质原声带。 链接
Quoth 最初是令人惊叹的 Mod Contract Revoked 的续集,但最近获得了地图制作者的大力支持,并且正在成为 Quake I 的事实扩展。
它的新功能包括众多具有强大 AI 的疯狂敌人、可破坏的环境以及其他物品,包括梯子和手电筒。 链接
Ijed 制作的巨型大气 Quoth Mod。 最新和最棒的。 链接
华丽的中世纪主题 Mod,具有两个单人游戏剧集、一个近战风格的竞技场模式和不错的文档。 非常感谢 Tronwyn、Fat Controller 及其合著者。 链接
史诗般的。 雄心勃勃的。 超凡脱俗的。 Nehahra 是权威的 Quake Mod,在 Linux 中由 LordHavoc 的 Darkplaces 和 QuDos 的 NehQuake 引擎端口支持。 它有一些很棒的模型和地图,很好地使用了雾效果,并且有一个(可选的)两小时的电影/演示,它与最初的 Quake “故事情节”很好地结合在一起,但也迫切需要编辑。
Nehahra 还具有改进的敌人 AI - 步兵在掩体后方扫射,而开阔空间中的 scrag 可能很难被压制。 新玩家可能希望通过在游戏控制台中键入 nomonsters 1 来禁用此功能。 链接
黑暗而血腥,带有 Doom 的偏执气氛。 经典之作。 Zerstörer 也有一些不错的死亡竞赛关卡 - 链接
Neil 编写了权威的半条命 Mod “They Hunger”。 这些地图的质量和乐趣也体现在其中 - alba01、alba02、sofsp1、sofsp2、starshp2,链接
Oum 是少数具有科幻感的 Quake 1 Mod 之一。 它有五个制作精良的关卡,带有过场动画和许多新武器 - 下载,链接
SdS 是 Mission Pack 1, Scourge of Armagon 的速通。 搞笑又惊人。 链接
Scourge of Armagon,由 Ritual Entertainment(前身为 Hipnotic Interactive)制作。
玩完 Armagon 后,您还应该查看 Death's Dominion 关卡包。
Dissolution of Eternity,由 Rogue Entertainment 制作。
两个官方任务包通常被认为比原始游戏更好.
非常原创的 Quake 完全转换,具有我所释放过的最伟大的(虚拟)机关枪。 值得付费。
商业 Mod 现已免费提供:链接
Xmen Mod! 很棒的模型。 可惜游戏玩法...当好的 Mod 变坏时。
此 Mod 现已免费发布,可以在此处找到。
最早的商业 Mod 之一。 它具有建模精良且全新的怪物,但游戏玩法并不出色。
Nexuiz 是一款使用 Darkplaces 引擎的独立游戏。 最近发布的第二个版本是 200 兆下载,包括 Linux 和 Windows 二进制文件、源代码和一个新的战役模式。
此引擎利用了许多高级照明功能,因此视频卡功能较弱的用户应尝试禁用这些功能,以使游戏以适当的速度运行。
这个项目现在对我有用了,而且看起来非常不错。
与 GL、X11 和 SVGA 客户端一样,它具有出色的图形和游戏玩法增强功能以及一些不错的文档。 这绝对是一个值得关注的项目。
声音可能是一个问题。 它默认为 ALSA,但要从 OSS 开始,请尝试:“ezquake-gl.glx +set s_device /dev/dsp”。 要编译 GL 客户端,请键入“make glx”。 您可能必须像这样更改 Makefile
- LDFLAGS = -lm -lpthread + LDFLAGS = -lm -lpthread -L/usr/X11R6/lib
http://ezquake.sourceforge.net
http://ezquake.sourceforge.net/forum/
一个雄心勃勃的项目,FTE Quakeworld 旨在为多人 Quake 以及 Hexen II 等类似项目提供支持。 GB 报告:“FTE 引擎还运行 NQ 内容,甚至 Nehahra... 即使在软件中也是如此!”
来自 ProQuake 网站:“...您将找到的是对未修改的 netquake 的一套坚如磐石的增强功能。 Quake 从一开始就应该拥有的东西……例如精确瞄准。 微小、简单的更改极大地提高了网络游戏的质量。 ProQuake 与标准 NetQuake 完全兼容。 .... ProQuake 还与 Clanring CRMod++ 6.0 版的高级功能完全兼容。”
ZQuake 是一个具有良好多人游戏支持的 QuakeWorld 客户端。
流行的死亡竞赛 Mod,包括新武器。
SoE 在竞技场模式下有一些很棒的近战动作。
Battle Mech 是一个自上而下的 Mechwarrior 风格 Mod。 确保使用 1.1 tarball。
Bot 是具有人工智能的计算机生成的玩家。 有些需要“路点”才能成功导航。
流行的 Bot,旨在轻松集成到 Mod 中。
被高度评价为最好的 Bot 之一,支持数百张地图。
由 Elusive 先生制作的受人尊敬的 Mod,他继续为 Q2 和 Q3:Arena Bot 创建了 Gladiator Bot。 不需要路点。
XQF 是一个功能丰富的游戏服务器浏览器和启动器,适用于 Quake 和许多其他游戏。 它依赖于单独的程序 QStat,该程序显示有关 Internet 游戏服务器的信息。 您还需要 Gnome Gtk 和 Gdk 工具包。
Hexen II 是 Quake 引擎的彩色改编版,就源代码和主题而言,它比 Quake II 更接近原始游戏。 不幸的是,Raven Software 发布的游戏存在许多缺陷……如此美丽,却又如此残酷。
Hammer of Thyrion 是主要的 Linux Hexen II 端口,并且在消除错误和增强 OpenGL 图形方面做了很多工作。 虽然它不像 Quake 那样广泛分布,但 HoT 演示包含该游戏的一些最佳关卡,并且可以从 Sourceforge 项目页面获得。
地图制作者应注意 Quest 世界编辑器和 HexenC 编译器 FTEQCC。
Quake II 是 Quake 的科幻主题续集。 早期的 Linux 版本不是很稳定,尤其是鼠标处理,但现在有几个相关的项目可供选择。
QuDos' Quake II 是最值得注意的。 它基于 Icculus Quake II,并包括一些精美的图形增强功能 - 包括卡通渲染 - 以及对 FreeBSD 和 XMMS 插件的支持。 仍在开发中的另一个项目是 Quetoo,它具有速度和安全性增强功能,但也有非常精简的界面和一些错误。
Yamagi Quake II,也基于 Icculus,是一个活跃的 Q2 项目,专注于单人游戏和合作游戏模式。
Qfusion 看起来是一个有趣的项目……直到现在才引起我的注意。一个基于 Quake II 的高级多用途引擎。
较旧的项目包括 Michael Olson 的 源代码 和 二进制 rpm 包(似乎基于旧版本的 Icculus 发行版)以及 QuakeForge Quake II 项目,该项目支持多种操作系统。 稍微不同的是 - Jake2 项目是用 Java 编写的 Quake II 版本。
一个常用的命令行选项是
+set vid_ref glx +set gl_driver /usr/lib/libGL.so.1
它告诉游戏以 OpenGL 模式启动。
有关其他 Quake II 故障排除技巧,请参阅此操作指南的旧版本。
Digital Paint 2 是一款基于 Quake II 引擎的“原创”多人游戏。它色彩鲜艳、充满乐趣,与大多数 Quake 游戏的通常黑暗基调截然不同。 作为一个完全重塑的游戏,它不需要你拥有原始的 Quake II ;->。
Argonium 是一款外观时尚的死亡竞赛模组,也是可以自由分发的。
Quake III 是首批获得完整 Linux 商业版本的游戏之一。 这是一个很棒的游戏,它经久不衰。 模组数量众多,视觉质量比 Quake I 或 II 更好。 有关安装游戏的更多信息,请尝试 idsoftware 的 Faq,或 Linuxgamer 的 Quake III How-To。
零售附加组件Quake III Team Arena 受到支持,尽管评价平平,但仍然是一款很棒的游戏。 大多数用户模组应该可以在 Linux 上运行。《Linux Gamers FAQ》报告说
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.
Icculus Quake III 项目最近已迁移到 IOQuake。 他们正在添加额外的功能,包括支持《星际迷航:航海家号:精英力量》Holomatch(多人游戏)。
Sourceforge Quake III - Cell Shading
Warsow 是一款使用经过大幅修改的引擎的卡通渲染风格的完全转换模组。 它的界面非常简洁,图形令人惊艳,游戏玩法还可以。
World of Padman 是一款高质量的独立转换模组。 它设置在一个微型的郊区世界中,具有奇异的卡通主题,目前仅支持多人游戏,但具有完整的机器人支持。
在 Alien Arena 中,你将在令人难以置信的 OpenGL 环境中与尖头火星人对战。
The Dark Conjunction 是一款具有氛围的 Q3 单人游戏转换模组。
试试以外星人为主题的 Tremulous,这是一个原创的多人游戏模组。
Zerowing 安装 和 已知问题 指南,由 id Software 托管。
Linuxgamer 的 Quake III How-To。
Linux Questions 的 Quake III 论坛,用于解决 声音 和 鼠标 问题。
关于 Quake III 的一切,尽在 Planet Quake
Quake IV 是 Raven Software 制作的一款史诗级 FPS 游戏。 它基于 Doom-III 引擎,硬件配置要求很高:官方最低要求是 2GHz P4(或 AMD 同等产品)和 512MB 内存。 这是一个精美的游戏,应该在中等或高等图形设置下玩。 因此,作者不建议使用 FX5200 等入门级显卡。
该游戏在 Linux 下运行良好,但仍然存在一些问题
startx `which quake4` -- :1 -depth 24
quake4 +set s_driver oss
Linux Questions Quake IV 错误论坛
模组的创建是通过地图编辑器和编译器完成的,但也涉及到……纹理创建、制作 pak 文件、建模、蒙皮、编辑声音和图形文件,以及使用 Quake C 编写你自己的 progs.dat。 Linux 支持是可用的,但并不全面。
Quake C 是 Quake 自己的游戏语言(它是第一个这样的游戏),它允许模组在所有操作系统上无缝运行。
Quake 的主要地图编辑器。 它基于 id Software 自己的编辑器,需要 OpenGL。
一个多游戏世界编辑器。 它有一个陡峭的学习曲线,但在你掌握它之后非常高效。
最常用的地图编译器的 Linux 端口。
Tyrann 流行的地图编译器,包括 qbsp、vis 和 tyrlite。 支持旋转实体和彩色灯光。
LordHavoc 的编译器。 它可以编译有漏洞或不完整的地图(仅用于测试!)并执行大量其他操作,包括彩色照明。
用于处理 pak 和 wad 文件的命令行工具(仅源代码)。
全面的、高级的 QuakeC 编译器,具有 gui 和命令行版本。 如果这个都编译不了,那就没有能编译的了!
QuakeC 编译器
Wine 是一个允许许多 Windows 程序在 Linux 上工作的项目。
多用途纹理编辑工具。 可以批量将 BMP 文件转换为 Quake 纹理等。 还提供多种绘画功能,以及铆钉和贴花等宏。
QuArK 是一款多用途 Quake 编辑工具。 它可以加载、编辑和导出多种文件格式,并且已经成熟为一个多游戏、多格式的工具。 不过,某些功能已损坏,并且可能不适用于所有版本的 Wine。
光照工具,可以进行基于辐射度的光照,如 Quake II。
其他故障排除资源可以在以下位置找到:《Linux Gamers FAQ》、《J�rgen's GLQuake Site》和此操作指南的旧版本。
通常,使用 QuakeSpasm 或 Darkplaces 等替代游戏引擎将解决鼠标和声音相关的问题。
“bash: ./glquake.glx: 权限被拒绝 (Permission denied)”
“bash: glquake.glx: 命令未找到 (command not found)”
这不太好,但可以尝试一些简单的选项
文件未小写 (Files not lowercased) 或 数据文件丢失 (Data files missing)。
Linux Quake 要求(大多数)文件名均为小写。 如果你收到类似于“Error: W_LoadWadFile: couldn't load gfx.wad”的错误,则表示游戏找不到数据文件,可能是因为它们并非全部小写。
缺少库:“error while loading shared libraries: libGL.so.1: cannot open shared object file”
类似这样的消息意味着程序无法运行,因为它找不到所需的系统文件。 也许
动态库(或 Windows 用户所知的 DLL)可能非常复杂。 有关更多信息,请尝试 ldd 和 ldconfig 手册页。
“Memory overwrite in Sys_Printf”
GCC 4 的问题
大多数 Quake 游戏都依赖 OpenGL (libGL.so) 来实现其图形功能。 设置 OpenGL 超出了本文档的范围。 非常慢的性能意味着你可能正在使用 Mesa GL 而不是合适的硬件 GL 加速。
还可以通过禁用花哨的效果(如光晕 (light bloom))以及使用控制台命令 “_snd_mixahead .4”来减慢声音混合速度来提高性能。
使用 Nvidia 硬件时,轻微的游戏减速也可能归因于使用冲突的 AGP 驱动程序。 有关此问题的更多信息,请参阅Nvidia AGP 问题
有关更多信息,请参阅驱动程序部分。
诸如“/dev/dsp: Device or resource busy”之类的错误表示某些程序已在使用你的声卡,你必须停止该程序才能获得 Quake 音效。
“Quake 引擎游戏退出,并且我看到一个关于 mmap 的错误!”
声音断断续续或不太好。
SDL 提供了一种使用 SDL_AUDIODRIVER 环境变量更改声音驱动程序的简单方法。 使用如下命令行运行游戏
SDL_AUDIODRIVER=xxx darkplaces-sdl
Linux 上的有效值有:dsp(使用 OSS)、alsa(使用 ALSA)、esd(使用 ESD 守护程序)以及可能的 arts(使用 aRTs 守护程序)
GNU/Linux 的动态特性意味着编译旧软件通常很困难,即使是对于没有 C 编程经验的人来说,很小的障碍也是无法逾越的。 以下是一些相关问题。
GNU C 编译器最近进行了重大修订,大多数现代发行版现在都包含 GCC-4.1。 (要查找你正在使用的版本,请键入 gcc --version)。 作者通常使用 GCC-3.2.2,而使用 GCC-4.x 的人在编译程序时可能会发现更多问题
与 3.x 相比,GCC-4.x 发出更多编译警告。 这些是通常可以忽略的小错误,但是当编译器被赋予 "-Werror" 标志时,警告将使一切停止。 要解决此问题,你可以安全地从程序的 Makefile 中删除 "-Werror"。
又一个声音问题。 通过如下更改 snd_mix.c 可以修复此常见问题
- snd_scaletable[i][j] = ((signed char)j) * i * 8; + snd_scaletable[i][j] = ((j < 128) ? j : j - 0xff) * i * 8;
特别是 GCC-4.0 在 "-O" 标志破坏某些变量类型转换方面存在问题。 如果你能够编译程序,但它发生段错误,请尝试通过从任何 makefile 中删除 "-O" 选项来禁用这些优化。
如果你在 GCC-4 上编译时遇到以前不存在的问题,则可以并行安装 GCC-3.x 和 4.x。 大多数人都会希望从他们的 Linux 发行版中寻找预编译的软件包。
一旦安装了 GCC-3.x,就必须告诉程序使用此版本而不是默认的 4.x 版本进行编译。 附带配置脚本的项目通常具有用于定义要使用哪个编译器的选项(键入 ./configure --help 并查找提示),其他时候你可以使用 export CC=gcc32 或编辑 Makefile 并手动将出现的 “gcc” 替换为 “gcc32”(或 “gcc-3.2.2” 等)。
大多数这些旧程序可能无法作为 64 位二进制文件工作。 QuakeSpasm 是一个例外。
但是,仍然可以在 64 位操作系统上编译 32 位二进制文件。 为此,请编辑 Makefile 并在加载和编译标志 (LDFLAGS, CFLAGS) 中添加 “-m32”。 这告诉 GCC 构建和链接 32 位程序(如果也安装了 32 位 SDL 和 OpenGL 库)。 你可能还必须禁用 x86 汇编的使用。
如果你在运行 32 位应用程序时遇到问题,请尝试使用 linux32 命令。 例如:linux32 tyr-glquake。
如果更改选项菜单中的亮度设置不起作用,你可以使用 xgamma 程序来调亮整个显示器。
“这个游戏不让我正常环顾四周。 %$!$@”
尝试以下操作 -
如果你以普通用户身份运行 Quake 并且遇到这些问题,则可能是由于你没有足够的权限写入游戏目录。 解决方案包括
Quake 使用一种令人困惑的方法来保存和恢复游戏选项,尤其是在玩附加组件时,即使文件权限不是问题,有时也必须重新初始化游戏选项。 在这种情况下,作者无法提供简单的建议 %-/。
Quake 的某些任务包/模组可能会导致现有玩家/怪物模型在各处绘制线条。 要修复此问题,请删除目录 “quake/id1/glquake”。 下次运行游戏时,它将重建此目录,一切都应该正常。
3Dfx 显卡的常见问题是屏幕上闪烁的线条。
某些 Quake 引擎使用称为多重纹理的 OpenGL 加速技术。 这通常工作正常,但如果你遇到故障,你可以使用 -nomtex 选项禁用此功能。
较旧的显卡有时可能会以白色绘制单个模型。 有关微调性能的游戏内 GL 变量,请参阅 PlanetQuake 命令列表。
某些 Linux 软件以 Loki Installer shell 存档形式提供,后缀为 “.run”。 以下提示来自 Icculus Gamers Faq
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.
Linux 有两个主要的音频系统 - Open Sound System 和 ALSA。 如果你遇到声音问题,并且故障排除部分没有帮助,你可以考虑更改声音驱动程序。 这可能很困难,仅适用于经验丰富的用户。
要确定你当前正在使用的驱动程序,请键入 lsmod 以列出当前加载的内核模块。 ALSA 声音模块的名称冗长,以 “snd_” 开头,而 OSS 模块的名称更简洁。 例如,ALSA Sound Blaster Live 模块是 “snd_emu10k1”,而 OSS 模块是 “emu10k1”。 自 Linux 内核 2.6 以来,ALSA 一直是标准音频系统,而 2.4 及更早版本更可能附带 OSS 音频。
有关 ALSA 的信息,请访问 Alsa 首页 和 Linux Journal 的 ALSA 指南。
对于已经使用 ALSA 并希望尝试 OSS 模块的用户,可能需要重新编译内核。
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 {variable}={value} 访问,然后在同一命令行启动 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,并且他的修补过的 TyrQuake 包括正确的 3Dfx 亮度控制。 此处 是旧 3Dfx 显卡的 README。
作者对这个操作系统经验有限,并且在安装了 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 是一个商业实时操作系统,对于爱好者来说,最引人注目的是它是一个成功的微内核操作系统。 在运行 configure --host=QNX 然后进行这些更改后,SDL Quake-1.0.9 可以在 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 的游戏内控制台是一个很棒的功能,已被许多其他游戏采用。 现在你也可以使用“波浪号 (tilda)” 键来访问 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 命令。
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
感谢
本网页是使用 Linuxdoc-Tools-0.9.20 (目前未维护), Vim 和 Bash 构建的。
添加了关于 Industri 和 Tenebrae 的注释。
+ QuakeSpasm, AudioQuake, Quore
修复了目录层次结构图。
许多小的引擎更新
添加了详细的映射部分,其中包含来自 GB 的大量输入。
完全重新排序了文档
为其他游戏类型(如 CTF 和 Rocket Arena)添加了注释,并删除了 FuhQuake。
添加了一些指向 id 商店的链接。
添加了关于性能问题和 NvAGP 的部分。
重写了 Q3 部分。
重组了文档的多人游戏 mod 部分,特别是 Quake II 部分。
添加了 FitzQuake(!), Alien Arena, FTE QuakeWorld。
更新了 VisPatch 链接。
添加了关于 SDL_AUDIODRIVER 的注释。
将 mods 部分中的链接合并到 Quaddicted。
删除了关于旧版本 fluxbox 的注释。
包含了 Travail mod,删除了一些其他的。
添加了 EzQuake, World of Padman, IOQuake。
更新了 TyrQuake (和二进制文件), Darkplaces, FuhQuake 和 QuDos。
重写了文档摘要,以及 NVidia 和 3Dfx 部分。
在故障排除部分添加了关于(缺失)库的注释。
各种链接更新。
各种链接更新。
一个针对 64 位 cpu 的小节。
将 “链接” 移动到它自己的部分。
为 Quake IV 添加了一些故障排除提示。
一个关于 (gcc-4.1) 编译问题的新部分。
链接到 Quake III Cell Shading 项目。
更改了游戏引擎的顺序,添加了额外的编译注释,并扩展了 Tenebrae、SDLQuake 和 wmQuake 部分。
ProQuake、XQF 和 Tremulous 的新多人游戏条目。
重新组织了 “其他” 部分中的几个类别,包括新的 Nvidia Tweaks、License、Changelog 和 Vispatch 部分。
更新了作者修补的 Tyr-Quake 二进制文件,其中向 TyrQuake-0.54 添加了一些新的 hacks。
对精选模组进行了一些小的更改。
本文档根据 GPLv2 许可发布。
Quake How-To 也可作为 文本文件、单个 html 文件 和 土耳其语 提供。
Quake How-To 的 v1.0.1.14 版本 (1998 年 8 月 30 日) 位于原始作者的网站。
Stevenaaus 在澳大利亚乡村生活和工作。