Linux自建steam饥荒服务器教程

                             Linux自建steam饥荒服务器教程

       上来二话不说,先来几句废话。自从购买了学生优惠的云服务器后(不要问博主哪家的云服务器比较好,我什么都不知道),感觉不用总有点浪费,所以思索着建立一个能够联机的游戏的服务器。最开始博主决定在Linux系统上建立Unturned游戏的服务器。

       于是博主在网上搜索大量的教程,发现这款游戏的受众并不多,只能围魏救赵,从V社能联机的教程中探寻方法。

       然后我找到了https://steamdb.info/search/?a=app&q=,这个网址可以查找游戏是否能够在通过steamcmd的命令安装服务器,进行联机游戏。

       很遗憾博主并没有找到unturned关于服务器方面的工具信息。但是服务器的事业不能停止,我把眼光成功的转向存放在库中多年的Don't Starve Together(饥荒联机版)

      通过上面这张图片,我们可以清晰的知道,饥荒联机版是可以自建服务器的,所以开始进入正题:

      首先列举几个对我帮助较大的网站信息:

      http://dontstarve.wikia.com/wiki/Guides/Don%E2%80%99t_Starve_Together_Dedicated_Servers   官方文档,英文好的可以直接看,英文不好的英文不好的网页翻译走一波

      https://linuxgsm.com/support/  这个网站里的方式可以快捷的建立很多V社游戏的服务器,不过博主就是为了折腾,就没有采用这种方式。

     1.饥荒用户ID和令牌的获取,打开饥荒,点击个人资料,里面的UserID和Dedicated Server Token后来需要的 

      

     2.所需要的软件,运行库的安装

       博主测试的系统都是64位的,32位的就不多说了

       libstdc++6:i386(Cntos系统libstdc++.i686)

       libgcc1:i386(Centos系统glibc.i686)

       libcurl4-gnutls-dev:i386Centos系统libcurl.i686

       steamcmd命令的安装

       操作如下:

       Centos(7.3 64位):

       运行库的安装

yum install glibc.i686 libstdc++.i686 libcurl.i686 -y

      steamcmd命令的安装

      不要在root权限下操作,最好建立一个新的用户,在用户根目录下进行操作

       添加用户

useradd steam

       添加用户后,必须添加密码,否则无法直接登录该用户

passwd steam

        切换用户,进入用户主文件夹

su steam
cd ~

       从网上下载steam官方提供的steamcmd命令安装包,并解压

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz

      运行执行文件steamcmd.sh,出现steam>,安装成功

./steamcmd.sh

      登录你的steam帐号,密码,如果帐号有令牌验证,第一次会索取令牌密码(ctrl加del退格)

     

     指定一个文件夹来放游戏服务器程序的位置,下图就是在根目录下的heheda文件夹下进行存储,什么都不显示就说明成功了,不要疑神疑鬼。。。

     

      最后安装饥荒服务器程序,最后面的数字就是前面查找到的工具appID(如果网速不好,是个漫长的过程)

    

      安装完后使用quit命令退出steam操作台

      在用户主目录下创建存档文件夹,klei文件夹和DoNotStarveTogether文件夹是饥荒默认的不可更改(博主经历了惨痛的教训)

mkdir -p ~/.klei/DoNotStarveTogether/Documents

      进入该目录

cd .klei/DoNotStarveTogether/Documents/

      创建adminlist.txt和cluster_token.txt用于存放之前获得的UserID和令牌号

vim adminlist.txt
vim cluster_token.txt

      创建服务器端的设置文件,cluster.ini注意此文件必须要用utf8(无bom)进行存储,否则部分设置无效,最好下个notepad++

vim cluster.ini
;还有一些其他的设置,详情去看官方文档
[GAMEPLAY]
;最大人数
max_players = 3
;是否开启pvp
pvp = false
;游戏模式(生存,荒野等)
game_mode = survival
;服务器无人时,自动暂停
pause_when_empty = true
;投票踢人
vote_kick_enabled = false

[NETWORK]
;服务器介绍
cluster_description = 呵呵哒
;服务器名字
cluster_name = 呵呵哒
;服务器的密码
cluster_password = 呵呵哒
;游戏的意图(合作,竞争,无尽)
cluster_intention = cooperative

[MISC]
;快照,不太懂,英文好的可以去看看官方文档
max_snapshots = 6
;是否开启控制台
console_enabled = true

;IP端口设置,一般不用改
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10889
cluster_key = supersecretkey

   创建并进入Master文件夹,此文件夹用来存储主世界信息

mkdir Master
cd Master

    创建server.ini和worldgenoverride.lua用于存储服务器信息和世界信息

vim server.ini
[NETWORK]
server_port = 11000

[SHARD]
is_master = true

[STEAM]
master_server_port = 27018
authentication_port = 8768

[ACCOUNT]
encode_user_path = true
vim worldgenoverride.lua
return {
        override_enabled = true,
        preset = "SURVIVAL_TOGETHER",
        --后面是对世界的设置,不设置均为默认,需要更改只需把要设置的写出来就行
        misc = {
                --世界大小:巨大
                world_size = "huge",
        },
        monsters = {
                --海象巢穴:较多
                walrus = "often",
        },
}

  地穴跟主世界是一样的操作,退出主世界文件夹创建Caves文件夹并进入

cd ..
mkdir Caves
cd Caves

  server.ini

[NETWORK]
server_port = 11001

[SHARD]
is_master = false
name = Caves
id = 1811570792

[STEAM]
master_server_port = 27019
authentication_port = 8769

[ACCOUNT]
encode_user_path = true

worldgenoverride.lua

return {
        override_enabled = true,
        preset = "DST_CAVE",
        --世界设置
        misc = {
                --世界大小
                world_size = "huge"
        }
}

    进入到用户主文件夹,编写startDST.sh  shell脚本

cd ~
vim startDST.sh
#!/bin/bash
#前面的文件夹更改后,下面的相应值也需要更改
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/heheda"
cluster_name="Documents"
cd "$install_dir/bin"

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

#不想开启洞穴就把&和后面的都去掉
"${run_shared[@]}" -shard Master | sed 's/^/Master: /' &
"${run_shared[@]}" -shard Caves  | sed 's/^/Caves:  /'

    给脚本直接运行的权限(简单粗暴777),并运行

chmod 777 startDST.sh
./startDST.sh

     脚本开始运行,看到Slave LUA is now ready!就说明你成功了..

 

    Ubuntu(16.04 64位)

    安装运行库

sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 -y

    添加用户,不加参数则不会创建用户主文件夹,修改密码

useradd -m steam
passwd steam

    其他操作都和Centos系统一样。

    3.让饥荒服务器一直执行

    调用screen命令后运行前面的startDST.sh脚本

    安装screen

    Centos(7.3 64位):

yum install screen

    Ubuntu(16.04 64位)

sudo apt-get install screen

    开启screen窗口

screen -S 作业名称

     运行脚本

./startDST

   3.注意

    饥荒对于目前的电脑来说算是低配游戏,但是对于一般的云服务器来说也是一种大的负担,对于那些只有1G内存的就尽量不要开洞穴,联机的人数也不要太多,以免系统GG。最后欢迎大家提问,欢迎大佬指点(虽然我不一定看得到。。。)

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页