最近在玩 Early Access 的 Conan Exiles 還滿有趣的 只是家經常被抄掉 常常流連失所 無家可歸 所以興起了自己架設 Server 的念頭 下面就是一些簡單的架設紀錄 首先 先從 Ubuntu 16.04 的 docker 開始 然後安裝 wine 2.0 因為遊戲是 Windows only 所以我們打算用 wine 來跑 server

1
docker run -it -v /home:/home ubuntu:16.04

以下指令沒特別說明的話 都在 docker 裡面執行

1
2
3
4
5
6
apt update
apt install software-properties-common
add-apt-repository ppa:wine/wine-builds

dpkg --add-architecture i386
apt update
apt install --install-recommends wine-staging

setup account

建立帳號 steam 帳號 因為有 -v /home:/home 所以這個 steam 帳號會出現在 host 的 /home 下

1
2
adduser steam
su steam

get steamcmd

安裝 x86 版的 steamcmd 我是直接放在 home 目錄下 解開後會有不少檔案

1
2
3
4
cd ~
apt install wget unzip
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
unzip steamcmd.zip

download game

使用 steamcmd 下載遊戲 約有 13GB

1
/opt/wine-staging/bin/wine steamcmd +login anonymous +force_install_dir c:\\conanKFC +app_update 443030 +quit

launch conan server

下載完後 可以先啟動 server 讓他把設定檔產生出來

1
/opt/wine-staging/bin/wine ~/.wine/drive_c/conankfc/ConanSandboxServer.exe

設定檔會出現在這裡

1
/home/steam/.wine/drive_c/conankfc/ConanSandbox/Config/

主要的幾個檔案是

  • DefaultEngine.ini
    • ServerName 設成你喜歡的名字
  • DefaultGame.ini
    • MaxPlayers 最大玩家數
  • DefaultServerSettings.ini
    • ClanMaxSize 部落最大人數
    • MaxAggroRange 怪物的警示距離 據說設小一點 server loading 比較輕 (ex.1000)
    • AdminPassword Admin 的密碼
    • MaxNudity 裸露程度 0: 禁止 1: 部分 2: 全部
    • ServerRegion Server 地區 (0=EU, 1=NA, 2=Asia)
    • 還有很多有用的參數 是個需要好好研究的檔案

docker commit

如果 server 能正確啟動(會吐出非常多的訊息) 那 docker 的部分跟整個 server 的架設就差不多了 Ctrl+C 結束 server 之後再按 Ctrl+D 離開 docker 離開之前 要把帳號後的 image id 給記下來

1
2
steam@f3becc6a2a46:~$ exit
root@f3becc6a2a46:~# exit
離開 docker 後 將對 docker 所做的改變 commit 成新的 image 我是設成 conan_exiles
1
acelan@acelan ~/docker/conan % docker commit -m "initial Conan Exiles server" -a "initial Conan Exiles server" f3becc6a2a46 conan_exiles

launch server

之後要啟動 Conan Exiles server 需要執行下面指令 基本上這個指令只需要執行一次 以後我們都用 start/stop 來開關這個 server

1
2
3
docker run -d --name conan_server -it -v /home:/home \
-p 7777:7777/udp -p 27015:27015/udp \
conan_exiles /opt/wine-staging/bin/wine /home/steam/.wine/drive_c/conankfc/ConanSandboxServer.exe

stop server

要停掉 server 這樣做

1
docker stop conan_server

start server

啟動 server 這樣做

1
docker start conan_server

shell in & update game

當 Conan Exiles 有更新時 我們得要進入 docker 中來 update 檔案

1
2
3
docker exec -i -t conan_server /bin/bash
su steam ; cd
/opt/wine-staging/bin/wine ./steamcmd.exe +login anonymous +force_install_dir c:\\conanKFC +app_update 443030 +quit
更新完 記得 stop & start 一次 讓新 server 重新上線

read logs

想要看 server logs 的 可以用這個指令 不過其實沒什麼好看的 都看不懂就是了

1
docker logs conan_server

參考文件

  1. Dedicated Server Setup
  2. How to run a Conan Exiles server on your Linux Box with WINE
  3. Running a Conan Exiles Server on Ubuntu Linux using WINE