CS2 更新(2026年7月9日)
本次构建侧重引擎、工具与调试改进:新增炸弹伤害与可被射击手雷选项、扩展的导航与节奏模式音频工具、GPU 裁剪与阴影调整,以及内部 schema 与地图池配置变化。
快速摘要
- 新增控制台变量与命令用于炸弹伤害可视化,并添加了可选规则让掉落手雷在被射击时触发(`mp_shoot_dropped_grenades`)。
- 导航与机器人路径获得新的调试辅助与路径平滑调整,包括 `nav_edit_draw_navlinks` 与 `nav_smooth_push_from_walls` 的变更。
- 渲染与阴影扩展了 GPU 裁剪与 meshlet 可视化选项,开发配置中默认启用了稀疏阴影树渲染。
- 音频系统由旧的 sequencer 迁移到 Beat Pattern 框架,新增 `snd_beatpattern_*` 命令和更详细的 SOS 调试标志。
- 匹配与否决地图列表在内部更新,包含像 Cache、Boulder、Fachwerk、Shelter、Debris 与 Eldorado 等地图条目。
- 客户端、服务器、Pulse、物理、音频与工具等大量 schema 与元数据重构,提升引擎可检视性与未来功能灵活性。
本次更新主要是引擎与工具链层面的内部改进,但也偷偷加入了若干与炸弹伤害、手雷、导航、音频与渲染相关的游戏与调试钩子,关心地图编辑、模组、服务器运营和工具使用的读者可能想了解这些变化。
游戏性与服务器端变更
- 可被射击的掉落手雷(
mp_shoot_dropped_grenades): 新增一个已复制、发布级别的控制台变量,决定掉落的手雷是否会在被射击时引爆。它是一个服务器规则(客户端也可见),便于自定义服务器或未来模式尝试更具反应性的手雷行为。官方匹配默认不会改变,除非 Valve 在那里面启用。 - 炸弹伤害可视化工具(
cs2_bomb_damage_showdebugwindow、bake_bomb_damage_render_visualization、cl_bake_bomb_damage_debug): 新增针对炸弹伤害可视化的开发/作弊选项,表明 Valve 在迭代炸弹伤害的计算与预览方式,可能是为更精确或面向创作者的炸弹半径工具做准备。 - 重新插炸弹命令(
replant_bomb): 在游戏 DLL 中新增的作弊命令,可用于重新插炸弹。主要用于调试、重放场景或内部工具,不是一般对战流程的一部分。 - Steam 认证校正标志(
sv_steamauth_correct): 新增的发布级控制台变量描述为“Correct behavior”,与已有的sv_steamauth_enforce配合使用。这表明服务器在强制或校验 Steam 会话方面正在调整,社区服务器管理员在极端连接/认证边缘情况可能会注意到细微行为差异。
导航与机器人路径工具
- 新导航测试辅助(
nav_test_search_on_path_setgoal): 新增的仅作弊可用控制台变量,用于在使用SetGoal时测试“在路径上”的交替搜索模式,面向机器人与导航网格作者以及 Valve 自身的调参工作。 nav_edit可视化(nav_edit_draw_navlinks): 在nav_edit模式下新增选项以绘制导航链接,便于导航编辑人员和地图作者理解与调试导航区域之间的复杂连接(跳跃链接、过渡等)。- 路径平滑调整:
nav_smooth_push_from_walls默认值现在为12(此前为-1),可能会改变路径平滑时将代理体从墙体推开的程度,进而微调机器人拐角处的移动表现。- 多个导航生成与测试相关的变量也放宽或调整了限制(例如
nav_gen_opt_to_quads_weld_limit_start现在允许0),主要影响生成或精炼导航网格的流程。
- 路径代价定义重整: 内部 schema/类型关于
CNavPathCost、CNavFlags及相关重力/属性枚举被移动或重构。这些控制 AI 与机器人在评估梯子、飞行/游泳与过渡时的行为,运行时比赛中的行为应保持一致,但为未来更灵活的导航行为打下基础。
渲染、阴影与性能控制
- 稀疏阴影树默认开启(
sparseshadowtree_enable_rendering true): 在开发配置中,SST(处理静态几何体的级联阴影映射)渲染现在默认启用,表明 Valve 在推动可改善性能与画质的阴影路径上继续投入。 - 级联阴影贴图调参(
csm_*控制台变量): 许多 CSM 的调试与覆盖性 convar 增加了明确的clientdll标记并澄清了默认值:csm_sst_shadow_focus_region_thin_compensation从500提升到1500。- 多项 CSM 覆盖被重新归类为仅客户端作弊,范围更明晰,减少意外的服务器端暴露。 这些改动主要面向图形开发与 QA,但也可能影响 Valve 未来对太阳光阴影的微调。
- Meshlet 与 GPU 裁剪可视化:
- 新的可视化模式
sc_visualize_sceneobjects_meshlets(取值来自ESceneObjectMeshletVisualization:none/meshlet/culled)可让开发者查看 meshlet 级别的裁剪情况。 - 一系列用于网格管线试验的控制项新增:
sc_mesh_gpu_occlusion_culling、sc_mesh_gpu_volume_culling、sc_mesh_mesh_shaders、sc_mesh_shadows_batch_across_materials、sc_mesh_use_pmb。这些均为开发专用、默认关闭,反映了对 GPU 驱动渲染与 mesh shader 工作的持续探索。
- 新的可视化模式
- UI 与服务器并行(
r_ui_update_parallel_with_server): 新增的防守性标志允许在服务器工作并行时更新 UI,可能是为减小卡顿并提升响应性的持续工作的一部分,尤其在繁忙服务器上有帮助。 - GPU 调试冻结(
r_gpu_debug_draw_freeze): 允许开发者冻结 GPU 调试绘制,纯诊断用途,表明内部工具对 GPU 层级的调试支持更加深入。 - 移除的旧性能切换项: 若干低级渲染 cvar(例如
r_force_zprepass、r_zprepass_normals、r_texture_stream_resolution_bias以及一些调试渲染目标查看器)被删除,简化了渲染配置面,表明这些代码路径已被固化为默认行为。
布料模拟与插值
- 布料旋转插值选项(
cloth_interp_rot、sv_cloth_interp_rot): 新增客户端与服务器端的开发专用标志,允许切换布料的旋转插值。用于调试与调优,同时也表明 Valve 在布料稳定性与视觉保真(如衣袖、旗帜或其他布料附着道具)上持续工作。
网络、增量与命令队列
- 用户命令增量编码(
sv_cq_delta_encode_svc_usercmds、sv_cq_validate_encoded_svc_usercmds、cl_svc_usercmds_delta_validate):- 服务器现在有开关能对用户命令(
svc_UserCmds)进行增量编码,并提供一种极其昂贵的验证模式:同时发送增量与完整命令以交叉校验。 - 客户端端的
cl_svc_usercmds_delta_validate可与服务器配合用于验证。 这些属于深层网络代码改进,不会直接改变玩法,但显示 Valve 在强化玩家命令传输的正确性与性能。
- 服务器现在有开关能对用户命令(
- Steam 认证调整(
sv_steamauth_correct): 如上所述,此新标志与sv_steamauth_enforce配合,可能会在未来减少边缘案例的认证不一致或误踢问题。 - 实体 delta/偏移调试清理: 若干关于实体打包与 networkvar 验证的开发专用 convar 被移除(如
sv_enable_delta_packing、sv_log_change_offsets、sv_max_change_offsets、sv_ents_write_alarm、sv_pack_entities_verbose_*、sv_recipients_check、sv_networkvar_validate),这表明这些系统已趋于稳定,运行时的重型诊断不再必需。
供地图作者、模组与技术调试的工具
Hammer、ResourceCompiler 与工具链
- 在工具中打开当前地图的 Pulse 图(
open_current_map_pulse_in_tool): 新增的仅编辑器命令能直接打开当前地图使用的 Pulse 逻辑图。Pulse 是 Valve 的可视化逻辑/脚本系统,这使地图设计师和脚本作者能更方便地从地图跳转到其逻辑资源。 - 逻辑实体检查(
logic_entity_analyzer_debug): 新的作弊/调试 convar,用于逻辑实体的可视化或日志记录,便于调试复杂的地图脚本输入输出与状态变化。 - 细节物件与子资源: 工具端的
CDetailPropModel与CSubassetTypeInfoschema 现在公开了如m_bWorldSpaceOrientation、m_bAllowDefinitions与m_bAllowReferences等属性,为创作者提供了更细粒度的控制,决定细节道具在世界空间的朝向和子资源在创作时如何解析。 - Pulse 系统 schema 重构: 大量 Pulse 相关的类与枚举(例如
CPulseCell_*、PulseCursorExecResult_t、PulseDurationStringFormat_t等)在运行时库(pulse_runtime_lib)、创作库(pulse_system、pulsedoc_lib)与编译器(resourcecompiler)之间被重新组织。这对游戏性没有直接改变,但会让基于 Pulse 的玩法与工具更稳健。
场景、动画与音频创作
- 动画数据与盯视链(look-at chains):
- 与链式盯视节点、根运动覆盖与压缩浮点通道相关的新/更新的 animlib 与 animdoclib 类型(如
CNmFloatChannelData、CNmFloatChannelSet_t、ChannelSettings_t)在运行时与工具间被调整与移动。 - 编辑器级的说明(例如“为末端执行器添加额外的局部空间偏移用于盯视”)更多从运行时代码转移到创作工具文档中。 这显示 Valve 持续区分运行时与编辑器关注点,保持游戏二进制精简同时扩展创作能力。
- 与链式盯视节点、根运动覆盖与压缩浮点通道相关的新/更新的 animlib 与 animdoclib 类型(如
- 场景系统的 meshlet 支持: 新的
ESceneObjectMeshletVisualization枚举与可视化 convar 让工具用户与 QA 能看到哪些 meshlet 被渲染或被裁剪,对于优化复杂模型与地图几何体很重要。 - 音频图与 sounddoc 库扩展:
- 完整的一套
sounddoc_lib节点描述被新增/重排(卷积混响、滤波、动态处理、声码器等)。 - 用于脉冲响应处理的低级命令(如
CMD_BLEND_VSNDS_TO_IMPULSERESPONSE、CMD_IMPULSERESPONSE_DELAY等)被整合。 这些改动供音效设计师构建复杂的混音图与混响使用,能带来更灵活的音频空间与混合行为。
- 完整的一套
- 声音容器与随机声像控制: 新/精炼的语音容器 schema(如
CVoiceContainerLoopTriggerWithRandomPanner、CVoiceContainerVsndRadioButton、CVoiceContainerVsndTrigger、CRandomPannerControls)提供了结构化方式来随机化声像与音量,使环境循环、无线台词或机械性音效更不易重复而无需额外运行时开销。
创意工坊与云端工具
- 创意工坊云保存管理(
workshop_clear_cloud_save、workshop_dump_cloud_contents): 两个新的开发命令允许:- 根据已发布文件 ID 清除 Steam Cloud 上的创意工坊保存,或清除非创意工坊的附加保存。
- 打印当前云端内容。 这些主要面向 Valve 的 QA 与高级模组作者调试云同步问题。
音频系统与 Beat Pattern(节奏模式)
本次更新将旧的“sequencer”术语替换为更现代的 Beat Pattern 框架,并为其添加相关工具。
- 新增 beatpattern 命令:
snd_beatpattern_flush— 重新加载所有 beat pattern 数据。snd_beatpattern_print_activetracks/snd_beatpattern_print_patterns— 列出活动轨道和已知模式。snd_beatpattern_set_track_bpm/snd_beatpattern_set_track_transpose— 调整特定轨道的节拍速率和移调。snd_beatpattern_stop_all_tracks/snd__beatpattern_stop_track— 停止单轨或全部轨道。 这些命令对应并替代了旧的snd_sequencer_*命令族(已被移除)。
- beatpattern 的可视化 convar:
snd_beatpattern_show_bpm、snd_beatpattern_show_events、snd_beatpattern_show_quantize_queue、snd_beatpattern_use_lookahead等,有助于调试节奏模式如何调度并触发音频事件。snd_sos_beatpattern_show_operator_updates显示 SOS(Source 音频系统)层的运算单元变化。
- SOS 调试增强:
snd_sos_print_frametime打印逐帧时间。snd_sos_tools_detailed_debugging是开发专用的归档标志,用于开启更详细的调试输出。
这些改动主要面向音效设计,但能帮助保持音乐、回合开始/结束短音以及世界内节奏效果的同步性与可调性。
字幕与界面
- 新的对白字幕控制(
cc_force_combine_chatter): 一个开发专用的字幕控制 convar,似乎用于 Combine(半条命相关 NPC)闲聊字幕。CS2 本身并不使用 Combine NPC,但这可能是共享技术或遗留标签;实际为字幕/调试工具。 - 移除旧字幕维护命令: 如
cc_findsound、cc_flush、cc_random、cc_showblocks等命令已从公开命令列表中删除,表明对字幕工具链的清理。 - 屏显 convar(
display_convars_onscreen_in_big_text): 一个新的已复制作弊选项,允许列出若干 convar 名称并以大字在屏幕上显示,便于录像、QA 与内容创作者展示当前设置。 - HUD 贴花与击中反馈(
r_decal_hit_confirmation): 新的已复制 convar 暗示正在试验击中确认贴花,目前为开发专用,但表明 Valve 在探索更多的视觉反馈通道。 - 玩家名调试(
cl_playerslot_in_names): 启用后客户端会在名字前加上控制器玩家位槽索引,主要用于本地多控制器环境与调试。
物理、材质与世界渲染
- 物理复合体/包围盒 schema 刷新: 如
RnCompound_t、RnCompoundDesc_t、FeBoneMergeLink_t、CastSphereSATParams_t等类被重构或移动,属于内部物理表示的改动,可能改善创作时的碰撞预览或性能。 - 工具中移除世界自发光流(emissive streams): 若干工具不再在字符串表中暴露
AggregateVertexEmissiveStreamOnDiskData_t及相关 emissive 缓冲字段,表明顶点自发光数据的处理路径已被重构或统一化。 - 局部曝光后期处理清理:
PostProcessingLocalExposureParameters_t与CLocalExposureLayer更多地转入工具端 schema。- 运行时字符串引用被精简,
resourcecompiler/materialsystem现在共享清晰的局部曝光结构,运行时保持精简同时让后期处理艺术家保留自定义能力。
命令与开发标志的微调
许多小改动旨在提高一致性并减少开发噪声:
- 预测与调试文本:
cl_predictioncopy_describe现在明确引用PredictionMap_t而非通用的datamap_t,更清晰地说明其检查的数据结构。debugoverlay_circle_verts允许开发者调整调试覆盖圆的分辨率。
- timedemo 标志移动到发布级别:
timedemo_start与timedemo_end现在被标记为发布级命令,基准测试玩家在性能剖析流程中使用时更受支持。 - 麦克风录音工具:
- 新增
start_rec_mic、stop_rec_mic、stop_rec_mic_all,作为联动的开发命令用于将语音录制到 WAV,面向 QA 与音频调试,内容创作者在内部工具或创意工坊情境下也可能受益。
- 新增
- 创意工坊云维护命令更明确: 如上所述。
- 移除若干语音静音管理命令: 若干开发专用命令(如
voice_mute、voice_unmute、voice_show_mute、voice_reset_mutelist)已从通用命令列表中删除,可能已并入游戏内 UI 或仅保留内部构建使用。
地图池与匹配配置
内部用于定义地图池的字段(带哈希后缀的 maplist cvar,例如 player_competitive_maplist_8_10_0_A062AC6A)进行了轻微重组:
- 2v2 竞赛列表: 现在在现有的 Inferno、Nuke、Vertigo、Poseidon 与 Overpass 等条目外,包含了
mg_de_debris与mg_de_eldorado的引用。 - 5v5 类似竞赛列表(8–10 人):
- 该列表移除了
mg_de_warden与mg_de_stronghold,新增了mg_de_boulder、mg_de_fachwerk、mg_cs_shelter,同时保留 Dust2、Train、Ancient、Inferno、Nuke、Vertigo、Mirage、Overpass、Office、Italy、Cache 与 Anubis 等经典地图。
- 该列表移除了
- 地图投票选择序列(
sv_mapvetopickvote_maps): 默认否决集将de_overpass替换为de_cache,形成:de_cache, de_anubis, de_inferno, de_mirage, de_dust2, de_nuke, de_ancient。
这些 cvar 并非公开的地图轮换公告,但显示了 Valve 为内部测试与否决流程准备或使用的地图集合。官方模式的轮换是否立刻跟随调整仍不确定。
引擎与 schema 清理
本次更新大量涉及每个主要引擎子系统的 schema 与元数据更新:
- 客户端/服务器 API schema 更新:
client.kv3与server.kv3元数据列出一系列新增或精化的 API(涉及玩家、武器、手雷、地图预览摄像机、环境灯光等)。- 许多此前隐含的类现在以
*_API后缀明确列出,便于工具与内省系统查询引擎能力。
- 新字段类型(
FIELD_NETWORK_QUANTIZED_VECTORWS、FIELD_NETWORK_ORIGIN_CELL_QUANTIZED_VECTORWS): 字段类型枚举被调整并移除部分已弃用条目,使 schema 元数据与网络序列化世界空间向量的实际方式对齐。 - Pulse 可观察与黑板项: 在多个二进制中出现了如
m_DependentObservableVars、m_DependentObservableBlackboardReferences、m_EvaluateConnection等新字符串,而旧的“异步 / Fire and Forget”描述性文本被去除,表明 Pulse 的运行时与调试文本被重组为更结构化、以数据为驱动的描述方式。
这些改动对玩家不可见,但对稳定性以及第三方工具(需要读取或解析引擎数据)非常重要。
总体影响
这次更新不是一次大规模平衡补丁,而是对引擎与工具链的修缮与增强,同时悄然开放了若干实验接口:
- 服务器管理员得到一个用于可被射击掉落手雷的开关,以及更清晰的炸弹伤害工具,暗示未来可能出现更灵活或面向创作者的玩法场景。
- 地图作者与导航编辑器获得了更多导航链接与搜索模式的调试选项,以及更清晰的实体与逻辑检查工具。
- 音频团队得到一个整合的 Beat Pattern 系统与更完善的工具,为更紧密的音乐与节奏性效果调优做准备。
- 渲染与阴影系统继续朝向 GPU 驱动的裁剪与 meshlet 方向演进,新增调试开关并为稀疏阴影树设定了更有意见的默认值。
对大多数玩家来说,这次更新更像一次静默的维护步骤;但对创作者、服务器管理员与技术模组作者而言,它表明 Valve 正在稳步投入支撑 CS2 视觉、音频与脚本能力的底层系统。
