文章目录
前言
看直播发现了五花八门的开服器和版本,一时兴起按官方文档进行了搭建尝试,所以我的版本基于官方Stream2024.01.10更新的版本,也就是停服时的玩法,应该可以根据mod和补丁魔改成更那些开服器一样的版本,本文不做谈论,注重服务器搭建,毕竟8个人不可能在一个局域网里
乱象:
首先,我看了大量教程视频,一类是开服器的推广,另一类自建的基本采用Windows搭建,我觉得最离谱的是大部分教程都会教你买一台远程Windows虚拟机???
作为一个后端开发我不能理解,除了一些特殊政企项目服务器可能采用Windows系统搭建,说明现在大多数三方从事这些服务器搭建的人多数是非计算机人员,Windows显然成本太高而且我觉得也不专业,应该没有游戏公司会采用Windows搭建服务器吧
关于搭建系统:Linux基本都行,CentOs、ubuntu、debian,我试了都行,唯独我想用alpine镜像构建发现启动不了服务,懒得解决,也不省多少资源。
资源占用:Docker镜像总运行内存在1.0-1.3G,我直接限制Docker容器内存在1G(至少800),也能正常使用,也就是说1核2G的服务器,最多也就勉强构建两个镜像
一、前置必读
1.1运行效果
Linux启动游戏服务器
连接自定义端口
开启单人游戏当狼
1.2官方文档解读
开房间
主机
对于主机,游戏设置与以前非常相似。
前往船长室中的桌子,与桌子上的地图交互,打开探险用户界面,选择要在大厅中宣传的地图,并自定义游戏设置(译者注:这些设置只在码头上起到视觉上的效果,所有的地图相关设置,包括选择哪一张地图,都需要在服务端中配置)。可以取消选择“公开”框,使你的大厅变为私有。
等待玩家加入你的大厅。
玩家定制他们的装扮或食人族血咒,然后启动锅炉。
将船只驶出港口。
将出现连接到 IP 的界面。输入 IP,大厅中所有人都将连接到到该服务器。如果不输入端口号,将自动设置端口号 7777。
客户端
对于客户端,游戏设置与以前相同。
查找要加入的大厅,或使用 Steam “游戏中”界面加入您朋友的大厅。
自定义装扮或食人族血咒。
登上船,等待主机驶离。
公开会使你的房间出现在外面的房间列表
就是告诉你想开游戏的先创建一个房间,默认就可以什么都不用改,默认发起远征即可,客户端设置参数没用
点发起远征什么都不用改直接创建,要开的时候点火开船,开几秒会弹出输入服务器ip端口
通过steam邀请好友进房间,当前也有其他办法
填写你运行游戏服务端的服务器的ip和端口,端口是可以自定义的,不指定的话默认是7777
Linux运行命令
分析这个脚本,其实他在文档里这些写容易引起误解,上面的脚本带了三个固定的参数,因为它的游戏包里的LinuxService不是这样,是不带任何参数的:
#!/bin/sh
UE4_TRUE_SCRIPT_NAME=$(echo \"$0\" | xargs readlink -f)
UE4_PROJECT_ROOT=$(dirname "$UE4_TRUE_SCRIPT_NAME")
chmod +x "$UE4_PROJECT_ROOT/DreadHunger/Binaries/Linux/DreadHungerServer-Linux-Shipping"
"$UE4_PROJECT_ROOT/DreadHunger/Binaries/Linux/DreadHungerServer-Linux-Shipping" DreadHunger "$@"
第一行、标准开头
第二行、第三行找到当前文件夹的绝对路径,这个路径的值赋给UE4_PROJECT_ROOT这个变量
第四行、给DreadHungerServer-Linux-Shipping这个实际的程序文件一个可执行权限,让他可以被sh执行
第五行、根据绝对路径启动DreadHungerServer-Linux-Shipping,DreadHunger 是固定写法
“$@” 是什么意思呢,代表接受输入的所有参数,在哪儿输入呢,启动的时候,看一下这个脚本的路径
包含在了游戏本体里,可以打开看看,在Linux系统运行这个脚本时,可以使用 sh DreadHungerServer.sh
后面是可以跟参数,例如等效官方文档里的:
sh DreadHungerServer.sh Expanse_Persistent?maxplayers=6?daysbeforeblizzard=1
分别代表使用代价地图、最大玩家数为6、距离暴风雪的一天
这些参数的意义开发者文档里也写了,英文原版我就不贴了:
Dread Hunger 服务器通过命令行参数进行设置。
三张地图分别标记为:
Approach_Persistent(入口)
Departure_Persistent(峰顶)
Expanse_Persistent(代价)
自定义服务器设置标记为:
maxplayers(最大玩家数,范围:1 - 8,默认值:8)
daysbeforeblizzard(开始时距离暴风雪的天数,范围:2-7,默认值:3)
dayminutes(一天的分钟数,范围:5-16,默认值:9)
predatordamage(捕食者伤害乘数,范围:0.25-3,默认值:1)
coldintensity(寒冷强度乘数,范围:0.25-3,默认值:1)
hungerrate(饥饿速度乘数,范围:0.25-3,默认值:1)
coalburnrate(锅炉燃料消耗率,范围:0.1-2,默认值:1)
thralls(内奸阵营人数,范围:0-8,默认值:2)
可以什么都不设置使用默认开峰顶 sh DreadHungerServer.sh Departure_Persistent
自定义端口
除了官方文档,UE4服务器是有很多通用参数的,例如:
- -Port 用于指定服务器监听的端口号:-Port=7777
- -log 用于启用日志记录:-log=ServerLog.txt
- -ServerName 服务器的名称:-ServerName=“My UE4 Server”
- -QueryPort 设置查询端口:-QueryPort=27015
- -HeartbeatInterval 设置服务器的心跳间隔:-HeartbeatInterval=5
- -bIsLanMatch 是否在局域网模式下运行:-bIsLanMatch=true
我们只用的上端口设置,例如我将端口设置为10016开一局峰顶
sh DreadHungerServer.sh Departure_Persistent?Port=10016
LogNet: Created socket for bind address: 0.0.0.0 on port 10016
1.3前置准备
公网服务器
腾讯云比较划算,可以点击下面跳到活动地址 38的抢一下,抢不到68也不贵,一台一年的公网服务器非常有用,能做的事太多了,包括搭建你自己的网站,你想用本地虚拟机体验当然可以,其实本质问题是大部分人没由公网IP,你frp做内网穿透,也要有公网媒介,问题就又绕回来了,你使用openVpn把玩家组在一个局域网里,还是逃不开公网媒介,我不买服务器的预想是走cf代理,不知道是否支持(母鸡啊),有公网ip的可以忽略吧
腾讯云活动专场
游戏下载
买了游戏的直接在Stream下载,没买的网上找一下,实在找不到淘宝一元租号下一个就行,压缩包7个G左右,我先不提供下载,后续我看一下怎么分享,估计是