Linux服務(wù)器饑荒聯(lián)機(jī)版開(kāi)服教程
首先確保有一個(gè)服務(wù)器建議至少2核2G,關(guān)于如何創(chuàng)建服務(wù)器方面就不過(guò)多講了。我的配置是2核2G的Ubuntu18系統(tǒng),其他系統(tǒng)可參考官方教程(https://developer.valvesoftware.com/wiki/SteamCMD:zh-cn)。

安裝SDT
steam建議創(chuàng)建一個(gè)名為 steam的用戶帳戶以安全地運(yùn)行 SteamCMD,并將其與操作系統(tǒng)的其余部分隔離。以 root 用戶身份登錄時(shí)請(qǐng)勿運(yùn)行 steamcmd——這樣做會(huì)帶來(lái)安全風(fēng)險(xiǎn)。
創(chuàng)建steam用戶
adduser -m steam
為用戶添加密碼
passwd steam
之后輸入兩次密碼即可
進(jìn)入steam用戶目錄
cd /home/steam
安裝steamcmd及其依賴
sudo apt update && sudo apt upgrade
sudo apt install software-properties-common
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc1 steamcmd
安裝steamcmd時(shí)會(huì)出現(xiàn)協(xié)議,使用Tab鍵切換到OK并回車(chē),然后選擇I AGREE


鏈接steamcmd可執(zhí)行文件:
sudo ln -s /usr/games/steamcmd steamcmd
安裝饑荒聯(lián)機(jī)版專用服務(wù)器依賴
sudo apt -y install libcurl4-gnutls-dev:i386
切換到steam用戶,輸入密碼(建議用steam用戶再開(kāi)一個(gè)終端)
su steam
運(yùn)行steamcmd
steamcmd
等待下載完成

使用匿名登錄
login anonymous
可能出現(xiàn)登陸失敗的情況,可以多重試幾次

我們可以為我們的服務(wù)器設(shè)置一個(gè)安裝目錄,例如~/steamapps,我這里就不設(shè)置了,默認(rèn)下載到~/.steam/steamapps/common/
force_install_dir ~/.steam/steamapps/common/
安裝饑荒聯(lián)機(jī)版專用服務(wù)器
app_update 343050 validate
等待下載完成

退出
quit
可以將上面啟動(dòng)steamcmd的過(guò)程寫(xiě)成一行命令,方便以后更新DST
steamcmd +login anonymous +force_install_dir ~/steamapps +app_update 343050 validate +quit
進(jìn)入到DST目錄
cd /home/steam/.steam/steamapps/common/Don\'t\ Starve\ Together\ Dedicated\ Server/bin
第一次運(yùn)行腳本,生成配置文件
./dontstarve_dedicated_server_nullrenderer -console -cluster Cluster_1 -shard Master
出現(xiàn)下面情況證明可以成功運(yùn)行,之后的操作與在Windows上相似

存檔的默認(rèn)路徑是
/home/steam/.klei/DoNotStarveTogether/Cluster_1/
之后可以將存檔放在該路徑下運(yùn)行即可
cd /home/steam/.klei/DoNotStarveTogether/Cluster_1/
./dontstarve_dedicated_server_nullrenderer -console -cluster Cluster_1 -shard Master
./dontstarve_dedicated_server_nullrenderer -console -cluster Cluster_1 -shard Caves
存檔的配置
下面介紹關(guān)于存檔的配置。非常建議大家先在饑荒聯(lián)機(jī)版里新建一個(gè)世界把存檔配置好了以后再發(fā)送到服務(wù)器。
windows系統(tǒng)存檔存放位置為
C:\Users\用戶名\Documents\Klei\DoNotStarveTogether\902843528
文件夾結(jié)構(gòu)
Cluster_1
│ ?adminlist.txt
│ ?cluster.ini
│ ?cluster_token.txt
│
├─Caves
│ ?│ ?leveldataoverride.lua
│ ?│ ?modoverrides.lua
│ ?│ ?server.ini
│ ?│ ?server_chat_log.txt
│ ?│ ?server_log.txt
│ ?│
│ ?├─backup
│ ?└─save
└─Master
? ?│ ?leveldataoverride.lua
? ?│ ?modoverrides.lua
? ?│ ?server.ini
? ?│ ?server_chat_log.txt
? ?│ ?server_log.txt
? ?│
? ?├─backup
? ?└─save
令牌
cluster_token.txt?文件內(nèi)存放服務(wù)器令牌
token令牌的獲取大家應(yīng)該都知道,這里不再重復(fù)。
服務(wù)器配置
cluster.ini?服務(wù)器配置文件
[GAMEPLAY]
game_mode = survival
;游戲模式
max_players = 6
;最大玩家數(shù)
pvp = false
;是否開(kāi)啟PVP
pause_when_empty = true
;世界無(wú)人自動(dòng)暫停
vote_kick_enabled = true
;投票踢人
[NETWORK]
cluster_password =
;房間密碼
cluster_description =
;房間描述
cluster_name = 測(cè)試
;房間名字
cluster_intention = cooperative
;房間風(fēng)格
offline_server = false
;是否離線服務(wù)器
lan_only_cluster = false
;是否局域網(wǎng)服務(wù)器
cluster_language = zh
;語(yǔ)言
[MISC]
console_enabled = true
;是否開(kāi)啟控制臺(tái)
max_snapshots = 6
;最大快照,決定回檔天數(shù)
;服務(wù)器設(shè)置選項(xiàng),這部分通常不用改,如果要多個(gè)服務(wù)器開(kāi)多個(gè)世界要更改,在后面會(huì)講到
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10888
cluster_key = defaultPass
世界配置
世界的配置建議用游戲開(kāi)一個(gè)檔,注意調(diào)整好世界和MOD選項(xiàng),此部分只是講解文件作用,可以跳到下一節(jié)。
Master?是主世界文件夾,Caves?是洞穴世界文件夾。
server_log.txt?是服務(wù)器啟動(dòng)日志,server_chat_log.txt?是聊天日志。
leveldataoverride.lua?是世界配置文件,modoverrides.lua?是mod配置文件。這兩項(xiàng)在創(chuàng)建世界時(shí)已經(jīng)自動(dòng)生成
server.ini?世界服務(wù)器配置文件,
主世界:
[NETWORK]
server_port = 10999
;服務(wù)端口
[SHARD]
is_master = true
;是否為主世界,多世界只能有一個(gè)是主世界
[ACCOUNT]
encode_user_path = true
洞穴:
[NETWORK]
server_port = 10998
[SHARD]
is_master = false
name = Caves
;世界名稱
id = 975359613
;id,保證唯一
[ACCOUNT]
encode_user_path = true
[STEAM]
master_server_port = 27017
authentication_port = 8767
save 里存放的是存檔數(shù)據(jù),目錄結(jié)構(gòu)為
save
│ ?boot_modindex
│ ?cached_userid
│ ?modindex
│ ?profile
│ ?shardindex
│ ?shardindex_time
│
├─client_temp
├─event_match_stats
├─mod_config_data
├─server_temp
│ ? ? ?server_save
│
├─session
│ ?└─778D7147518A3BBE
│ ? ? ?│ ?0000000002
│ ? ? ?│ ?0000000002.meta
│ ? ? ?│ ?0000000003
│ ? ? ?│ ?0000000003.meta
│ ? ? ?│
│ ? ? ?└─A7JFK3QJSMFH
└─world_presets
其中比較有用的是session文件夾里的,有一個(gè)隨機(jī)文件名的文件夾代表世界存檔,里面有多對(duì)由數(shù)字組成的文件如0000000002和0000000002.meta,這些文件表示存檔,可以刪除最大的進(jìn)行回檔。其他文件夾是進(jìn)入過(guò)當(dāng)前世界的人物數(shù)據(jù),每進(jìn)入一個(gè)人都會(huì)生成一個(gè)文件夾。
管理員、白名單、黑名單
adminlist.txt 管理員
whitelist.txt 白名單
blocklist.txt 黑名單
每行一個(gè)克雷ID,ID可以在你朋友加入后在控制臺(tái)查看,或登錄克雷官網(wǎng)查看。
MOD下載與更新配置
網(wǎng)上有很多教你如何裝mod的,一半是直接復(fù)制文件,但是這樣mod不會(huì)自動(dòng)更新,當(dāng)某個(gè)mod更新時(shí),客戶端自動(dòng)更新但服務(wù)器未更新,就會(huì)導(dǎo)致進(jìn)不去世界,更新辦法也是更新一次重新復(fù)制一次文件,由于mod眾多且用的編號(hào),加上現(xiàn)在的mod有兩個(gè)存放位置,會(huì)很麻煩。
正確的做法是在下載位置\steamapps\common\Don't Starve Together Dedicated Server\mods\dedicated_server_mods_setup.lua文件內(nèi)進(jìn)行mod更新設(shè)置。每次啟動(dòng)服務(wù)器會(huì)先檢查mod是否最新,并更新。
例如
cd /home/steam/.steam/steamapps/common/Don\'t\ Starve\ Together\ Dedicated\ Server/mods
vim dedicated_server_mods_setup.lua
可以選擇加入以下內(nèi)容:
單獨(dú)設(shè)置一個(gè)mod
ServerModSetup("350811795")
設(shè)置一個(gè)mod合集
ServerModCollectionSetup("379114180")
建議把開(kāi)服時(shí)選的mod自己創(chuàng)建一個(gè)合集,方便修改。
合集可以在饑荒聯(lián)機(jī)版創(chuàng)意工坊-瀏覽-合集-創(chuàng)建合集

創(chuàng)建完成后右鍵復(fù)制URL,里面就有合集id了
測(cè)試
添加好存檔和mod后,可以測(cè)試以下能否使用。使用screen將進(jìn)程在后臺(tái)運(yùn)行,不會(huì)使用的可以自行百度。
screen -R master
cd /home/steam/.steam/steamapps/common/Don\'t\ Starve\ Together\ Dedicated\ Server/bin
./dontstarve_dedicated_server_nullrenderer -console -cluster Cluster_1 -shard Master
使用`Ctrl+A`再按`D`返回終端
screen -R master
cd /home/steam/.steam/steamapps/common/Don\'t\ Starve\ Together\ Dedicated\ Server/bin
./dontstarve_dedicated_server_nullrenderer -console -cluster Cluster_1 -shard Caves
之后想要查看控制臺(tái)也是screen -R master即可。

留個(gè)坑,關(guān)于分布式的配置,可以把不同世界開(kāi)在不同的服務(wù)器上并連接,以后再說(shuō)