服务器
《军团要塞 2》里的比赛在服务器(server)上游玩。与其它所有基于 Valve 的起源引擎的多人游戏一样,《军团要塞 2》使用客户端—服务器架构。客户端是指在玩家电脑上运行的一份游戏,而服务器是指玩家客户端连接的软件。
服务器负责处理《军团要塞 2》游玩过程中的许多方面。它通过更新玩家们各自的位置与状态对玩家的行为做出响应(例如武器开火),之后决定适当的响应(例如对目标造成伤害),然后向玩家广播结果(例如显示造成的伤害值)。服务器还负责管理非玩家控制的事件,如地图事件、步哨枪行为等。
优点
除了加入现存的服务器,玩家还可以创建自己的服务器以主持游戏。这使得主机玩家可以设置地图轮换,决定要游玩的地图与随后的游戏模式。另外,也可以调整其它内置的设置,例如重力、兵种数量限制、Highlander 模式限制等等。服务器还能安装自定义模组以提供额外的玩法。
服务器类型
目前可运行起源引擎游戏的服务器类型有 2 种。
监听/本地服务器
监听服务器(Listen Server)是一种在玩家的 TF2 客户端内运行的基础服务器。其可通过主菜单的“创建服务器”按钮轻松创建。其他玩家可连接到这种服务器,但是在同一系统的客户端上运行服务器的开销通常会加速主机玩家的硬件损耗。这种服务器最适合用于局域网联机的情况。
专用服务器
专用服务器(Dedicated Server)是一种不需要 Steam 即可运行的独立服务器。专用服务器在其它因素外,适合用于减少开销。另外,许多专用服务器运行在数据中心内的高端硬件上,能为玩家提供高端性能与快速、可靠的连接,这些都是住宅连接很少能做到的。专用服务器通常在端口 27000 至 27050 之间运行,但通常是端口 27015。
需求
虽然 GSP(游戏服务器提供商)通常使用配置了高端服务器专用的硬件用于运行游戏服务器,但任何人都可以使用满足以下配置的电脑运行服务器:
监听服务器
- Mac OS X 操作系统 10.5.8 或 10.6.3 版本或更高。
- Windows XP 操作系统或更高。
专用服务器
- GNU/Linux (x86 或amd64)并装有glibc 2.3.2 版或更高版本。
- FreeBSD (x86 或 amd64)并装有 Linux 内核兼容代码以及近期版本的 Linux 基础型系统。
- Windows 2000 或更高。
更新历史
- Linux 专用服务器测试版发布。
- 专用服务器上的主线程未明确设置由哪个核心负责处理。这次更新后使得多核处理器所有核心能均分处理任务。而在客户端以及监听服务器上默认的主线程处理核心则设为 CPU 1。
- 移除了服务器的
mp_friendlyfire控制台变量。此变量开启时《军团要塞 2》会以多种方式崩溃。
- 修复了一个罕见的、由网络数据堆积过多导致的服务器崩溃错误。
- 修复了一个与电子工兵有关的服务器崩溃错误。
- 为“创建服务器”菜单选项增添了新的设置选项。
- 改进了网络初始化设定,以解决服务器防火墙程序在初始化期间弹出的问题。
- 为服务器增加了
sv_pure代码,目前默认值为关闭。在控制台中输入“sv_pure”可获得详细的说明。 - 添加了服务器日志项:Round_Start、Round_Setup_Begin、Round_Setup_End、Round_Overtime、Round_SuddenDeath、Round_Stalemate、Round_Win、Round_Length、Mini_Round_Selected、Mini_Round_Start、Mini_Round_Win 以及 Mini_Round_Length。
- 服务器日志项 Round_Win 以及关卡更换的记录现在会附有详细队伍得分以玩家数目信息。
- 服务器日志中与记录情报夺取有关的项目现在会显示具体的情报夺取数目以及
tf_flag_caps_per_round的数值。 - 修复了使用了 -console 模式启动的 Windows 专用服务器的视窗位置不正确的错误。
- 修复了在 Windows 专用服务器中(以 -console 模式运行),在控制台输入信息时速度过慢且繁琐的错误。
- 修复了服务器无法正确更新第 32 名玩家的名称的错误。
- 骤死模式现在被设置为服务器的可选选项(一个控制台变量)而且其默认为关闭。
- 修复了一个可能会导致服务器崩溃的控制台指令。
- 修复了一个由正在接受治疗的玩家突然离开服务器而导致游戏崩溃的罕见错误。
- 为服务器增加了能在 cfg 文件夹中创建与地图特殊设置相关的 .cfg 文件的功能。
- 为服务器日志增加了与玩家位置有关的值(player_death、player_builtobject、teamplay_flag_event、object_destroyed、teamplay_point_captured、teamplay_capture_blocked)。
- 在选项->多人游戏对话框中添加了筛选从服务器下载自定义游戏文件的选项。
- 为服务器增加了“
nextlevel”指令。如果为此指令设置一个有效的地图名称,那么在服务器更换地图时就会更换为指定的地图。
- 在服务器日志中增加了记录由建造者亲自摧毁的建筑的值。
- 修复了服务器
mp_allowspectators设置为0时挂机玩家没有被踢出服务器的问题。
- 现在如果连接服务器的端口均在同一台机器上时,游戏服务器会尝试以 32 个连续的端口的形式进行连接。之前端口会在 10 停止。
- 修复了由代码
mp_forcecamera被设置成 1 时导致的服务器崩溃问题(回退到代码添加之前)。 - 修复了SourceTV更改不生效,除非服务器在命令行中以 +tv_enable 1 启动的问题。
- 服务器现在会显示创建者自定义的设置标签。
- 为服务器增加了一些自定义设置选项:禁用爆击(
tf_weapon_criticals)、取消重生时间(mp_disable_respawn_times)以及最大人数上限可超过 24 人。 - 对服务器端的统计报告进行了一些改进(不涉及玩家的个人统计信息)。
- 修复了 “-maxplayers” 指令未能正确的设置服务器最大人数上限的问题。
- 移除了
sv_alltalk指令,因为该指令会影响自定义服务器标签的显示。 - 修复了最大人数设置没有超过 24 人的服务器在开启 SourceTV 功能时会显示 “increased_maxplayers” 标签的错误。
- 修复了使用特定 Athlon 处理器的 Linux 专用服务器的地图载入问题。
- 修复了 Linux 版本的游戏未能执行
FCVAR_REPLICATED以及FCVAR_NOTIFY两条指令的错误。 - 修复了一个使得服务器能向客户端发送可执行代码的漏洞。
- 增加了
mp_stalemate_at_timelimit指令,服务器管理员可以使用此指令为第三方地图设置进入骤死模式前的mp_timelimit。
- 修复了一个使得一些服务器不能上传游戏统计数据的错误。
- 修复了 Linux 专用服务器在更换地图时崩溃的问题。
- 修复了客户端可以在服务器中激活 rigger sv_soundscape_printdebuginfo 指令的错误。
- 修复了管理员子系统中一个潜在的“毁灭性”漏洞。
- 修复了使用 _resetgamestats 指令导致服务器崩溃的问题。
- 改进了连接设置,以帮助那些没有自动重连 Steam 的服务器重连。
- 修复了一个设置方面的漏洞,该漏洞使得一些禁止使用的指令在连接到服务器后依然可以使用。
- 修复了与“灵敏度”有关的控制台指令没有数值上限的问题,该问题在某些时候会导致服务器崩溃。
- 增加了客户端连接时客户端/服务器版本检测。
- 修复了服务器生成机器人时有时会陷入无尽循环的问题。
- 修复了与在回合开始时携带建筑相关的服务器崩溃问题。
- 改进了连接与客户端不同版本的服务器时显示的版本不匹配的错误信息。
- 修复了一个由异常网络数据包导致的服务器崩溃漏洞。
- 修复了另一个由异常网络数据包导致的服务器崩溃错误。
- [未记载] 修复了在进行多物品交易后,只显示其中一件的错误。
- 增加了新的检测设置,以防止多人游戏服务器向正在连接的客户端传输 1 为它的最大玩家数。
- 修复了客户端用户可以在开启了sv_pure 的服务器中使用某些粒子效果漏洞的问题。
- 修复了当座头市之刀击中没有手持武器的目标时导致服务器崩溃的错误。
- 修复了一个由服务器发起的下一张地图投票导致的崩溃错误。
- 修复了一个在地图更换期间使用TFBots可能触发的服务器崩溃漏洞。
- 回放发布系统会对本地 HTTP 录像进行重命名,但当出现了重命名失败的情况时,就需要手动复制与删除相关的录像文件,该情况会在文件来源与路径不在同一个硬盘分区中时发生。
- 修复了 Linux 系统上的一些线程问题,这些问题会导致严重的延迟现象。
- 修复了回放清理系统的一些问题,该系统会在回合结束时清理存储的回放文件。这个非同步操作可以通过在服务器使用 replay_docleanup 指令来使用。
- 回放系统
- 修复了在录像数据清理时服务器被锁定的问题。
- 修复了一个由物品大纲不一致而导致的服务器崩溃错误。
- 修复了一些由回放系统导致的服务器崩溃错误。
- 修复了一个由投票系统导致的服务器崩溃错误。
- 添加了一条玩家通过匹配系统加入服务器时的服务器控制台信息。
- 修复了一个 Linux 专用服务器在 vphysics.so 崩溃的问题。
- 修复了 Linux 服务器中的踏步靴伤害计算问题,该问题可能导致物理崩溃。
- 修复了一个由无效的玩家视角导致的服务器崩溃漏洞。
- 修复了一个频繁发生的服务器崩溃问题,由游戏文件包导致。
2011年10月18日补丁 2
- 修复了一个与非预缓存模型有关的服务器错误。
- 改进了玩家因 Steam 身份验证失败而与服务器断开的显示信息,现在其表述会更清楚。
- 现在服务器上的重要信息也会被记录在服务器日志中,而不只是控制台。
- 修复了一个当欢乐拳套的爆击攻击击中物件时导致的服务器崩溃错误。
- 修复了专用服务器在更新发布时没有收到重启请求的错误。
- 修复了
+randommap代码在服务器启动时不能正常工作的问题。 - 修复了由回放客户端以及玩家视角导致的专用服务器控制台不停跳出的错误。
- 修复了当服务器使用
SetCustomModel代码来更换玩家人物模型时导致的客户端崩溃问题。
- 修复了一个有时会阻止服务器重新与物品服务器连接的漏洞。
- 增加了
changelevel_next指令,管理员使用这条指令可以直接将当前地图更换到地图循环列表中的下一张地图。
- 增加了两条新的控制台变量:
sv_rcon_maxpacketsize以及sv_rcon_maxpacketbans,管理员可以借此设置服务器的最大 RCON 数据包大小限制以及让服务器自动禁封超过设定大小的玩家,默认设置为当前的游戏设置状态。 - 修复了在专用服务器上无法触发地图注解事件的错误。
- 现在由服务器发起的投票不再会触发投票失败冷却。
- 现在在游戏中使用名称标签改名会提示全服玩家。
- [未记载] 现在服务器不再需要在满月期间重启以允许玩家装备万圣节物品。
- 修复了一个伪造的 IP 地址可以连接游戏服务器的错误。
- 修复了一个重新连接物品服务器时发生的客户端/服务器崩溃错误。
- 增加了
sv_namechange_cooldown_seconds指令,以防止客户端过于频繁地修改名字(默认为20秒)。 - 增加了
sv_netspike_on_reliable_snapshot_overflow指令,使得服务器可以有选择性地清理与那些由于“reliable snapshot overflow”问题而掉线的客户端的网络数据文件(默认为0,即不会调试)。 - 增加了服务器检测机制,以防止玩家在名字中添加颜色代码。
- 修复了游戏服务器无法正确接收客户端库存最新数据的错误(通常与“与你游玩的服务器丢失与物品服务器的连接”错误导致)。
- 修复了专用服务器无法设置
sv_region的问题。
- 修复了在使用地图指令使用
tf_mm_servermode指令会导致服务器崩溃的漏洞。
- 更新了专用服务器设置,现在以最大人数上限少于 32 人的设定运行曼恩 vs. 机器地图时,游戏就会自动退出。
- 修复了
mp_timelimit指令在曼恩 vs. 机器模式中导致回合失败后无法重启的问题。 - 更新了匹配控制台指令
tf_mm_strict。- 当值设置为 2 时,会将服务器从服务器列表中隐藏,但是依然能通过直连方式连接。
2012年8月17日补丁 2
- 修复了一个被拒绝的玩家可留下一个“幽灵”玩家,在服务器浏览器中占据一个位置的漏洞。
- 修复了一个由即时命中武器开火导致的罕见服务器崩溃漏洞。
- 新增了 “
kickall” 指令,这个指令会将除了回放、HLTV以及监听服务器主机(如果设置了)以外的所有已连接游戏的客户端踢出服务器。
- 修复了一个恶意服务器可以对玩家执行限制的控制台命令的漏洞。
- 修复了一个恶意服务器可以阻止玩家执行控制台命令的漏洞。
- 修复了一个与爆破手人机有关的崩溃错误。
- 社区请求:
- 新增了 “
tf_avoidteammates_pushaway” 服务器控制台变量,控制同队玩家占据相同位置时是否要互相推动。 - 新增了 “
tf_arena_override_team_size” 服务器控制台变量,允许服务器拥有者在竞技场模式设置最大队伍大小。
- 新增了 “
2012年9月21日补丁 2
- 修复了游戏服务器向匹配系统报告自身已满的问漏洞。
- 修复了一个间谍所伪装的人物手持枪炮工之臂时可能出现的游戏崩溃错误。
- 修复了一个与曼恩 vs. 机器模式有关的 Linux 专用服务器崩溃错误。
- 修复了专用服务器持续人机寻路的问题。
- 修复了与游戏状态相关的服务器崩溃漏洞。
- 在玩家通过匹配系统或快速游玩连接服务器时,阻止游戏服务器打开每日消息菜单多于一次。
- 提升了 Linux 专用服务器二进制数的性能。
- 禁用了允许用户在命令行指定了 -insecure 时,允许用户连接安全游戏服务器的插件。
- 添加了控制台变量
sv_motd_unload_on_dismissal,允许服务器操作者控制每日消息的默认行为。
- [未记载] 修复了服务器、客户端和引擎的问题。
- 修复了于非法客户端命令相关的专用服务器崩溃的漏洞。
- 修复了与社区服务器模组相关的罕见客户端崩溃漏洞。
- 修复了服务器不能加载创意工坊地图的曼恩 vs. 机器的 .pop 文件的问题。
- 添加了
-unrestricted_maxplayers,以将maxplayer增加到 100(功能不受支持且不建议开启)。
- 使监听服务器的默认服务器名称包含玩家的名称。
- 修复了不能通过 Steam 邀请或游戏信息加入社区服务器的问题。
- 添加了更多详细的创建服务器时的选项,关于服务器可见性与私密性:
- “使用 Steam 网络”勾选框被替换为下拉菜单,允许创建本地、仅限好友、不显示与显示服务器,默认为不显示。
- 现在使用
map命令创建游戏默认不再会创建可加入的游戏。
2025年5月13日补丁 2
- 修复了有些玩家不能启动仅限好友服务器的问题。
另见
外部链接
- Source Dedicated Server (英语) ,源于 Valve 开发者社区 (英语)
- 如何搭建 Steam 起源游戏专用服务器 – Steam 支持网站