声明:这篇细节补充的教程基于Ceplavia's Gaming Blog上的这篇文章番外:在CentOS上搭建求生之路2服务器制作。
大体上,这位大佬的教程已经非常完善了,建议先通读TA的文章,再通读这篇。我增补一些这篇文章未提到但是有点让人抓狂的细节点。相信仔细阅读他的文章和我的文章,任何新手都能很从容的在linux下搭建属于自己的求生之路2服务器。
众所周知,linux服务器比windows服务器有更稳定和更安全的特点,而且其服务器利用效率较windows server更高,仅有一点问题,就是命令较多,难于熟记。不过也不用担心,常用的只有为数不多的命令而已。
PS:本文采用的是阿里云的cent os来进行实践得出的教程。
PS:阿里云目前有学生优惠,1核2G 5M 40GSSD的服务器学生价仅9.5元/月,可以说相当不错了,笔者其实也没多加斟酌,随便就选了阿里云的。童鞋们可以自己多斟酌,国内知名云服务器基本都有学生优惠。
**********************************干货分界线*****************************************
1、服务器运行之前应该先在这里修改root用户的密码:
2、文中提到先执行 steamcmd.sh:然后匿名登录:.需要注意的是在这里执行steamcmd.sh完毕后控制台会输出steam>这个新的结果,下面的几条命令应该在steam->后面执行,而不是在其他地方:
ogin anonymous
force_install_dir ./l4d2server
app_update 222860 validate
3、server.cfg
中的部分参数枚举:
sm_cvar sv_gametypes 的参数分别为:coop-合作 versus-对抗 survival-生存
z_difficulty所有参数分别为: Easy-简单 Normal-普通 Hard-困难 Impossible-专家
**********************************非常重要开始*****************************************
4、记得下载screen,用来让游戏服务器不需要远程也可以自己在后台执行的命令。其主要用法为:
screen sh start.sh
此命令启用的命令和任务可以通过按下ctrl+A和ctrl+D(按住ctrl按A再按D) 来退出当前screen而保留任务后台运行,退出后用exit命令安全断开远程连接.
下面这条命令可以重新打开后台的游戏服务器任务。若要关闭游戏服务器,用exit命令.
screen -x
**********************************非常重要结束*****************************************
5、在启动服务器之前,必须在防火墙设置端口放开。
6、start.sh中的启动参数:
/home/sun/l4d2server/srcds_run -game left4dead2 -insecure +map c3m1 -maxplayers 8 +hostport '想要的端口'-condebug +exec server.cfg -nomaster -tickrate 60
新增/home/sun/l4d2server/srcds_run
为绝对路径,这样start.sh无论移到任何目录都可以启动游戏服务器
新增+map c3m1
用于设置默认地图
新增-maxplayers 8用于设置最大人数
新增 -tickrate xx用于设置服务器的tickrate
7、点击这里下载解除tickrate限制的插件,插件的目录里有README.txt参照操作即可,这里我大概说下步骤:
1、把tickrate_enabler.so放到left4dead2/addons目录下。
2、把tickrate_enabler.vdf放到left4dead2/addons目录下。
3、确保以下参数出现在`server.cfg`中:
sv_maxupdaterate 100 //必须大于等于你想设置的tick值
sv_maxcmdrate 100 //必须大于等于你想设置的tick值
fps_max 150 // 以如今的电脑性能,设置为0或者一个极大值即可
sv_maxrate 0 // 0为不限制,你也可以设置成自己想要的,此值建议为0. 默认30.
sv_minrate //设置较大的sv_minrate以强制客户端使用更高的rate值.
笔者附上自己的server.cfg
部分有关tickrate的配置如下:
sm_cvar sv_minrate 100000
sm_cvar sv_maxrate 10000
sm_cvar sv_minupdaterate 60
sm_cvar sv_maxupdaterate 100
sm_cvar sv_maxcmdrate 100
sm_cvar fps_max 1000
sm_cvar nb_update_frequency 0.03
sm_cvar sv_client_min_interp_ratio 0
sm_cvar sv_client_max_interp_ratio -1
net_splitrate 2
sm_cvar fps_max 0
sm_cvar net_splitpacket_maxrate 50000
8、本地客户端关于tickrate和lerp值的相关设定:
创建文件autoexec.cfg
于目录\steamapps\common\Left 4 Dead 2\left4dead2\cfg
下(已经有的在后面换行继续),打开后复制以下代码进入保存,然后重启客户端:
//bind "CTRL" "toggle_duck" //这个是设置蹲下为切换模式,即按下ctrl蹲下,再按站起,默认不启用,去掉前面的双斜杠后启用
cl_interp_ratio 1 //此后的命令都是为了配合服务端的tickrate以达到最好的效果
cl_interp 0
sv_minupdaterate 30
sv_maxupdaterate 100
cl_updaterate 60 //设置为服务端的tickrate (比如100,我自己担心性能问题,所以用60)
sv_minrate 10000
sv_maxrate 100000
rate 30000
sv_mincmdrate 30
sv_maxcmdrate 120
cl_cmdrate 60 //设置为服务端的tickrate同样的值 (比如100,我自己担心性能问题,所以用60)
-----------纯原创----------------------------------------------------------------------
PS:本人写了一个windows的批处理来实现一键重启求生之路2本地客户端(steam正版),保存以下命令到一个空白的txt文件,然后修改txt文件后缀名为.bat,双击就可以执行一键重启。
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit //执行完毕自动关闭cmd
cd /d "%~dp0"
taskkill /f /im "left4dead2.exe" //杀掉求生之路2进程
taskkill /f /im "QQPYUserCenter.exe"
//steam有概率退出游戏卡中文输入法而一直显示在游戏中,这里杀掉QQ输入法相关进程以确保关闭游戏和重启的成功.
taskkill /f /im "QQPYCloud.exe"
taskkill /f /im "QQPYConfig.exe"
//其他输入法可以自己查找相关进程,如果从未出现卡输入法的情况,可以不要。
start steam://rungameid/550 //无论你的游戏在任何目录下,这个命令都可以启动它
此批处理如果修改杀掉进程的名字和启动的数字id,可以适用于所有steam正版游戏的重启,也可以适当增加其他功能.
PPS:如果配合WOX [Github] 或者[官网]来实现一键重启简直不要太方便,墙裂安利国人强大的开源项目WOX [Github] 或者[官网],羡慕大佬可以写出如此🐮🍺的软件,膜拜大佬中!!!!!!!!!!
9、三方图的下载和安装,关于这点,本人写了一个一键从gamemaps下载、解压、移除zip、移除gamemaps宣传文档的sh脚本,默认根据提供的gamemaps地图编号(地图详情页的地址栏链接的五位数)直接下载解压。(服务器需要安装unzip软件,安装需要root用户,命令yum install unzip
,提示输入时,请输入y;),脚本代码如下,命名后必须放置于left4dead2/addons目录下方可正确运行.
read -t 30 -p "请输入Gamemaps地图ID" mapID //用于每次下载时手动输入地图编号
wget https://www.gamemaps.com/mirrors/download/$mapID/6
//上面一行必须全部复制,gamemaps的下载链接,任何其他地址均可,创意工坊的外链亦可以参考此处重新包装
mv 6 6.zip //默认下载的文件名只有一个6,但不影响完整性和使用
unzip 6.zip
rm -f 6.zip
rm -f gamemaps_com.txt //删除gamemaps宣传文件和zip文件,只保留解压的vpk文件.
~
一键从创意工坊下载地图详见求生之路2 Linux服务器从工坊下载地图脚本(python脚本)
-----------纯原创结束------------------------------------------------------------------
10、三方地图下载解压完毕后,用screen -x
命令切换到刚刚运行的游戏服务器,然后输入exit关闭服务器,结束后,再用screen sh start.sh
重启服务器,地图即可加载完毕,输入maps *
命令可以查看所有地图(每一关都是一个独立的地图,以bsp文件体现).地图加载完毕后,服务器控制台直接用命令map xxxx即可切换三方地图。如果此时在游戏中,也可以用!admin
命令,然后找到对应的地图名即可切换。
11、 安装metamod的时候记得生成对应游戏的VDF文件:https://www.sourcemm.net/vdf,将生成的metamod.vdf覆盖addons里的metamod.vdf。
12、 安装l4dtoolz工具(修改服务器人数和本地服务器人数原理不同,必须用到l4dtoolz).从这里下载求生之路2对应的l4dtoolz工具,将解压出来的两个文件夹l4dtoolz和metamod放到.\left4dead2\addons\里。运行服务器sh start.sh
,启动后用命令meta list
查看是否安装成功。
13、 人数插件链接: https://pan.baidu.com/s/1RN-2kUwAlmQSeEODm_h7pg 提取码: ey2s。下载解压此插件,直接拖动里面的left4dead2文件夹,和服务器上的left4dead2文件夹合并即可(备注,此插件含有cfg,可以提前修改相关设定)。
至此,服务器应该已经相当完善了,剩下的应该只是修修补补的工作了。
总结:linux的求生之路2服务器搭建只是抛砖引玉,事实上很多steam游戏都可以利用类似的手段打造本地服务器,例如《饥荒》、《CSGO》、《叛乱》、《方舟》等等。
PS:发现本文有任何错误和不当之处,敬请留言评论说明,此致,由衷的谢意。
欢迎署名转载,禁止套名照抄。