教你用Ubuntu快速搭建饥荒服务器

本文分享自华为云社区《Ubuntu快速搭建饥荒服务器》,作者: 云计算冲锋队。

《饥荒》是Klei第一次尝试生存题材。受到Minecraft 的影响,这个游戏也是将玩家放置到游戏世界中,并未给予玩家太多的指示以及特定的生存目标。该游戏在游戏评论家受普遍好评,包括其美术风格、音乐以及玩家死亡的多样性。

如果用云服务器搭建饥荒服务器,可解决网络运营商不同导致的卡顿问题,且即使换一台电脑游玩,数据存档也是保存在云服务器上,可搜索你的房间名,接着玩你的存档。

说明:《饥荒》当前不支持一键部署。

开始前准备:

*你需要一个Steam账号和一个饥荒的客户端

步骤1:选购华为云服务器

选择1核2G 1M,可满足2-3 人游玩

2核4G 5M , 可满足8人左右游玩

操作系统 Ubuntu 22.04

如果选错了系统,可在控制台进行切换系统

步骤2:登录华为云服务器并部署

登录华为云弹性云服务器 ECS控制台,单击您购买的服务器的"远程登录",使用控制台提供的VNC方式登录。

1.配置环境

sql 复制代码
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update -y
sudo apt install lib32gcc1 libcurl4-gnutls-dev:i386 lib32stdc++6 lib32z1 -y

2.下载steamCMD安装

bash 复制代码
mkdir ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

3.运行安装包

bash 复制代码
./steamcmd.sh

4. 安装饥荒联机版服务器

bash 复制代码
login anonymous
force_install_dir ../dontstarvetogether_dedicated_server
app_update 343050 validate
quit

下载需要一定时间

如果这里提示"Failed to init SDL priority manager: SDL not found"之类的,执行

ruby 复制代码
sudo apt install libsdl2-2.0-0:i386

后再重复以上操作

5.创建本地存档

生成世界进入游戏后直接退出,随后在创建游戏那可找到自己的世界,点击管理世界-打开世界文件夹,得到本地游戏地图资源。

6.创建服务器地图存档

bash 复制代码
mkdir -p ~/.klei/DoNotStarveTogether/Cluster_1

用xftp找到刚刚创建的文件夹,将步骤5的本地地图资源全部上传

7.创建服务器token

在steam饥荒的标题画面点击账号,选择游戏,点《饥荒:联机版》的游戏服务器,得到游戏服务器Token

更换云服务器上地图资源的cluster_token.txt

8.创建命令,运行服务器

bash 复制代码
cd ~
touch start.sh

steamcmd_dir 表示的是steam 安装的位置

install_dir 表示的 饥荒服务器安装的位置

cluster_name 表示的是 地图的名字

donstarve_dir 表示的是 地图的位置

bash 复制代码
#!/bin/bash

steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="Cluster_1"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"

function fail()
{
    echo Error: "$@" >&2
    exit 1
}

function check_for_file()
{
    if [ ! -e "$1" ]; then
    fail "Missing file: $1"
    fi
}

cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"

check_for_file "steamcmd.sh"
check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
check_for_file "$install_dir/bin"

cd "$install_dir/bin" || fail

run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
run_shared+=(-shard)

"${run_shared[@]}" Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" Master | sed 's/^/Master: /'

启动服务器

bash 复制代码
./start.sh

*如果和朋友多人联机游戏,让每个人都有暂停世界或者回档的权限时,需要在服务器的世界存档Cluster1中添加一个adminlist.txt文件,在其中加入klei用户ID

每个ID占一行,不需要加任何标点符号

复制代码
KU_XXXXX

KU_XXXXX

KU_XXXXX

9.连接游戏游玩

返回饥荒,点击浏览游戏,找到自己的房间后进入即可

以上就是服务器搭建的全过程了~

请用户在遵守适用的法律法规下合法使用云服务,按照游戏官方说明、指示和要求使用游戏,如用户涉及侵权,由用户自行承担责任。

点击关注,第一时间了解华为云新鲜技术~

相关推荐
致命的邂逅4 分钟前
UE4游戏查找本地角色数据的方法-SDK
游戏·ue4
又逢乱世34 分钟前
清除 Ubuntu 磁盘空间
linux·运维·服务器
努力学习的小廉3 小时前
深入了解linux系统—— 操作系统的路径缓冲与链接机制
android·linux·服务器
蠢货爱好者3 小时前
Linux中的nfs网络文件系统
linux·服务器·网络
酥暮沐4 小时前
Linux的启动流程
linux·服务器·网络·启动流程
清寒敲代码5 小时前
LVS集群的基本原理和相关配置
运维·服务器·lvs
大大小小聪明5 小时前
Nginx中root与alias的区别及用法
服务器·网络·nginx
Tom Boom5 小时前
23. 装饰器应用之测试用例的依赖实现
服务器·网络·测试开发·测试用例·自动化测试框架开发·wraps
爬点儿啥6 小时前
[爬虫知识] IP代理
服务器·网络·爬虫·python·tcp/ip·代理
西阳未落7 小时前
Linux(7)——进程(概念篇)
linux·运维·服务器