[TOC]
一、總記
這兩天和基友喜歡上了遊戲《異星工廠》(Factorio),好基友打遊戲當然第一件事情是關心遊戲能不能聯機啦。答案是這個遊戲是“聯基”神器!由於和基友天各一方且用的都是移動的辣雞網路,一到高峰期就會進入鬼畜模式。於是謀生了自己搭伺服器的想法,網上一搜,發現Factorio自帶了伺服器的程式,手上正好有臺閒置的雙十一購入的乞丐伺服器,趕緊拿來試試。
二、蒐集資訊
網路上的伺服器配置大概有3個流派
- 官方裸奔流 參考連結:[貼吧大神]
- Docker最強流 參考連結:[Docker大神]
- 指令碼方便流 參考連結:[git大神]
其實大家的最核心方式還是通過官方的程式搭建的服務,只不過通過使用Docker和指令碼來簡便了部署流程。 我最後選擇的是直接使用官方的裸奔流,原因是因為另外兩個的版本都和我用的版本不匹配且菜雞並沒有找到修改版本的地方,索性就裸奔了起來。所以我的操作大部分是跟隨貼吧大神的,不過我貼吧去的比較少,對這種分樓的閱讀讀起來比較難受,所以自己整理一篇,也算是對貼吧大神部分錯漏的更新補充。
官方的服務程式有無頭版本的,對於我的乞丐伺服器當然就求之不得。下載地址:[連結]
截止我搭建的180510最新的穩定版本是0.16.36的,我就選擇這個了。(最近的版本似乎改動很大,網上看到的很多引數都無法在啟動命令列裡面直接配置了,所以特地說下。)
三、步驟
1.下載程式
wget https://www.factorio.com/get-download/0.16.36/headless/linux64
複製程式碼
這只是個示例,只要能把linux64這個壓縮包丟到伺服器上就行。(這個檔案起名還真是簡單粗暴啊。)
2.解壓壓縮包
tar -xvf linux64
複製程式碼
推薦將該包解壓到/opt目錄下,原因後面會解釋。 解壓完後目錄結構如下:
3.編輯配置檔案
進入data資料夾,編輯檔案
server-settings.example.json
我的話就修改了下面的部分,這裡只保證你的程式能跑起來。
4.修改配置檔名字
這個應該算貼吧大神漏掉的一點,如果沒有指定啟動的配置檔案的話,預設的配置檔名字是 server-settings.json,所以最好是準備一份。
cp server-settings.example.json server-settings.json
複製程式碼
5.生成地圖*
這裡也是貼吧大神沒說清楚的一點,如果不用已有的存檔的話,需要新生成一個存檔。 如果你還記得第二點中解壓出來的檔案目錄的話,會記得裡面只有3個目錄,為了方便儲存記錄我們在遊戲路徑的根目錄下建立一個saves資料夾。
./bin/x64/factorio --create ./saves/test1.zip
複製程式碼
就能看到生成了一個存檔。
P.S.: 由於閱讀文章的理解不對,我還以為在執行"--create“引數後能直接執行該存檔,卻發現程式一直執行到Goodbye的位置,很是苦惱,日誌中也沒有什麼異常報出,最後通過嘗試才發現這點。
6.啟動伺服器
最後的啟動命令如下:
/opt/factorio/bin/x64/factorio --config /opt/factorio/config/config.ini --port 34197 --start-server /opt/factorio/saves/test1.zip --server-settings /opt/factorio/data/server-settings.json
複製程式碼
我的正常啟動日誌如下,opening是在opening但是是可以玩的了。
四、關於指令碼啟動
中間在被create卡住的那段期間我也嘗試了一下指令碼啟動,很方便只要按照readme的指示一步一步做就可以了。 值得一提的是指令碼里面有個很方便的功能
/opt/factorio-init/factorio invocation
複製程式碼
這裡的 “factorio” 是指令碼里面的執行程式,而不是官方服務程式中的應用程式。 這個指令會自動檢測你的環境有什麼問題,如果沒有問題的話,他就會提醒你啟動的指令。如下圖:
可以看出來我的啟動指令就是由這個“指導思想”修改而來的。同時我的伺服器缺少glibc_2.18也是由這個指令碼檢測出來的。所以如果你發現你的指令碼啟動異常,可以試試看用這個指令檢測。
後記
這兩年接觸伺服器比較多,但是自己搭遊戲伺服器完還是第一次。用了這個伺服器後,聯基美滋滋,所以還是很自滿的。記錄下一篇沒有什麼用的文章,以茲鼓勵。 我是llsxily,你可以叫我橘子。