Loading...

文章背景图

[记录,整理] 使用Ubuntu创建一个求生之路2服务器

2022-05-08
2502
-
- 分钟

环境

全新安装的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

下载SourceModMetamod

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的博客

求生之路2 服务器设置100tick方法 - 哔哩哔哩 (bilibili.com)

求生之路2 L4D2 服务器网络参数设置 - 哔哩哔哩 (bilibili.com)

评论交流

文章目录