环境
全新安装的Ubuntu 22.04 LTS (GNU/Linux 5.15.0-27-generic x86_64)
安装依赖
sudo apt update
sudo apt install lib32gcc-s1 # 看参考文章里是lib32gcc1,但新版本中apt提示替换成lib32gcc-s1了
安装Steamcmd
mkdir ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz
./steamcmd.sh
安装Left 4 Dead 2
匿名登录
Steam>login anonymous
指定下载目录
Steam>force_install_dir /home/当前用户名/l4d2
下载L4D2服务端
Steam>app_update 222860 validate
退出Steamcmd
Steam>quit
开启0 lerp和128 tick
下载SourceMod和Metamod
cd ~
curl -O https://sm.alliedmods.net/smdrop/1.10/sourcemod-1.10.0-git6538-linux.tar.gz
curl -O https://mms.alliedmods.net/mmsdrop/1.11/mmsource-1.11.0-git1145-linux.tar.gz
tar -zxf sourcemod-1.10.0-git6538-linux.tar.gz
tar -zxf mmsource-1.11.0-git1145-linux.tar.gz
cp -R addons cfg l4d2/left4dead2/
下载Tickrate-Enabler
解压文件,然后分别根据服务器类型参考以下操作:
1)、win系统服务器:移动tickrate_enabler.dll文件和tickrate_enabler.vdf到left4dead2/addons/目录下 (在addons目录下,新建名为tickrate_enabler的文件夹把tickrate_enabler.dll放进去也可以生效,但tickrate_enabler.vdf必须放在addons根目录下。好处主要是直观,找起来方便)。
2)、Linux系统服务器(CentOS、Ubuntu之类的):移动tickrate_enabler.so文件和tickrate_enabler.vdf到left4dead2/addons/目录下 (在addons目录下,新建名为tickrate_enabler的文件夹把tickrate_enabler.so放进去也可以生效,但tickrate_enabler.vdf必须放在addons根目录下。好处主要是直观,找起来方便)。
但在测试下来Windows服务器上可以不安装这个mod,如果安装了反而会启动不起来。
修改配置文件
nano ~/l4d2/left4dead2/cfg/server.cfg
配置文件内容,不考虑防D和人数
hostname "local test" // 服务器名称
sv_consistency 0 //防止mod冲突
sm_cvar fps_max 300 //高于推荐的100素质,否则计算刻度会下降
sm_cvar sv_mincmdrate "128" //服务器CMD最小速率
sm_cvar sv_maxcmdrate "128" //服务器CMD最大速率
sm_cvar sv_minupdaterate "128" //服务器更新最小速率
sm_cvar sv_maxupdaterate "128" //服务器更新最大速率
sm_cvar sv_minrate "128000" //设置数据速率传输下限,0=无限制,手动设定30K,表示30tick
sm_cvar sv_maxrate "0" //设置数据速率传输上限.
sm_cvar sv_client_min_interp_ratio 0 //允许客户端设置cl_interp_ratio为任何值,此值为-1时会导致下面那行也就是sv_client_max_interp_ratio设置无效(官方文档说明)
sm_cvar sv_client_max_interp_ratio 2 //当最小值为-1时,本值无效
sm_cvar net_splitrate 1 //每帧可以发送的拆分数据包的片段数,默认为1,调大可能会导致choke增加,改动需谨慎
sm_cvar net_splitpacket_maxrate 100000 //Tickrate_Enabler所需参数 ,大神备注为网络调整,初步估计为配合高tick值的网络调整,官方解释为: Max bytes per second when queueing splitpacket chunks。
sm_cvar nb_update_frequency "0.01" //默认0.1;值越小,小僵尸和女巫的路径以及状态更新越频繁,非常吃服务器的CPU;但如果不设置小一些,客户端开启0 lerp后会出现僵尸和女巫闪烁前进的情况
运行时注释需去掉,解析时会出现问题,此处注释仅为方便理解。
启动L4D2服务器
cd ~/l4d2 && ./srcds_run -game left4dead2 -tickrate 128 +exec server.cfg
客户端配置
在SteamLibrary/steamapps/common/Left 4 Dead 2/left4dead2/cfg下添加配置文件,这里取名为lerp_0.cfg
内容为
cl_cmdrate "128"
cl_updaterate "128"
cl_interp 0
cl_interp_ratio 0
在游戏内想开启0 lerp的时候,只需要调出控制台,输入
exec lerp_0
即可开启
其他
点击加入Steam组却跳转到错误的Steam组
下载这个插件,放在addons文件夹中
相关讨论:
sv_steamgroup fixer - AlliedModders (alliedmods.net)
Dedicated server sv_steamgroup is incorrect :: Left 4 Dead 2 综合讨论 (steamcommunity.com)
资料来源
Ubuntu下搭建求生之路2服务器 -_Flower_For_Algernon的博客
L4D2 Tickrate Enabler 服务器速率配置方法_- ZBzibing的博客