Project Zomboid是款Steam上的殭屍題材生存工藝遊戲,有興趣可以看看,但這不是今天的重點。重點是平常跟朋友都透過Steam連線P2P的方式連線遊戲,今天不知道線路是哪裡有問題,常常斷線,乾脆關掉遊戲來研究怎麼架設到雲主機上。又能夠很合理的說服自己在做研究,一舉數得。
以往在AWS及GCP上都有架設伺服器的經驗,要架在哪個雲主機平台上看個人喜好,這次就架設到GCP上看看,下面就讓我們開始吧。
啟用雲主機
首先到GCP網站:https://cloud.google.com/
前往控制台開一個專案,專案之間彼此切割,專案內所申請的各項服務也都是彼此獨立,且帳單也是各自獨立的,對於營運成本的計算也會很方便。講了這些也不太重要,總之就是開一個新專案,名稱任意。

接著到Compute Engine裡,選取左邊菜單的VM執行個體,按建立執行個體,接著大抵上都照預設選擇即可,特別注意幾點:
- 主機架設的區域:各區域的計價不大一樣,大抵上不會差太多。但架設後就不能改了,有需求就要砍掉再重建。在美國特定區域架設e2-micro的主機有免費額度,但e2-micro主機的配置跑不動Project Zomboid Server,因此區域可以選台灣就好。如果在閱讀的你不是要架設Project Zomboid Server,就請自行參考主機等級。
- 主機等級:主機類型跟等級配置非常多種,要省錢就要從E2或是N系列挑選起,我測試了E2各系列,在還沒有裝mod的狀況下,至少需要e2-medium (2 個 vCPU, 4 GB 記憶體) 這個等級才能順利運行,假設24小時都開機的狀況下每個月是$29.32美金上下。這裡有個GCP服務的計價試算網站可以參考。但敝人也是窮的要命,關於如何省錢,我會再下一篇文章分享。

網路配置,這些選項先勾一勾,晚點還要調整防火牆設定。其他東西就不太重要,大部分都還能在事後修改。

防火牆設定
畢竟是要供人連線的伺服器,針對這款遊戲監聽的Port要對外開放,玩家才能夠連進來。
在GCP最外層的選單選擇虛擬私有雲網路,再選擇防火牆。(截圖於2025/6/20,GCP服務的分類如果有調整,就再請大家找找。)

選擇建立防火牆規則(不要選到防火牆政策了),接著請抄功課,開放針對這款遊戲需要開放的port,目標標記的內容自行取名即可,等等會用到。當你全部設定都做完後,遊戲連線還是有問題時,就先把防火牆設定設為全部允許,排除防火牆的問題試試。如果你是要架設別款遊戲,請另外去爬文看看要開哪些port。

回到Compute Engine,選擇VM執行個體,畫面上會列出我們在上一個章節建立的主機,點擊這台主機名稱(看得出來他是超連結可以點吧),然後按上面菜單的編輯,在網路標記這邊加上剛剛的目標標記。

主機設定大概就這樣了,有漏掉什麼我再補充。
主機連線
我其實一直沒什麼概念如何在沒有GUI的系統中安裝Steam上遊戲的Server,跑完這個流程後,終於知道實作的方式了。(雖然還沒有完整吸收這些知識,等有時間研究後再發文跟大家分享)
先到Compute Engine的VM執行個體介面,找到剛剛架設的主機,點選SSH進去小黑窗。

我們再來要裝steamcmd的套件,畢竟不像在我們的桌機上,可以直接用瀏覽器安裝Steam來安裝遊戲。
套件安裝路徑調整
首先先調整debian系統安裝套件的來源路徑,打這行:
sudo nano /etc/apt/sources.list.d/debian.sources
你會看到類似這樣的東西,這樣是一組設定,每組設定之間會有空白行分隔:
Types: deb
URIs: http://deb.debian.org/debian
Suites: bookworm
Components: main
我們要擴充Components設定;並補上一行Architectures設定,會變成下面這樣:
Types: deb
URIs: http://deb.debian.org/debian
Suites: bookworm
Components: main contrib non-free non-free-firmware
Architectures: amd64 i386
請複製貼上Components跟Architectures設定就好,其他設定照原樣就好。每組套件來源都要調整唷!打完存檔。
之後執行:
sudo apt update
32 位元基礎函式庫安裝
接著先來安裝前置需要的 32 位元基礎函式庫:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -f
sudo apt install libc6:i386 libstdc++6:i386
如果這步失敗了,再回頭檢查一下上一個步驟的Components跟Architectures設定有沒有問題,或者沒存檔。
如果你在看這篇文章前已經有嘗試安裝steamcmd然後失敗了,在我們安裝完上面的函式庫後,請打以下指令修復(如果你從文章上面開始順順的執行,應該是用不到下面的指令):
sudo apt --fix-broken install
sudo apt clean
sudo apt update
steamcmd套件安裝
我自己在這個安裝流程錯誤很多次,看起來是跟32 位元基礎函式庫存在相依性,上面如果有成功安裝,這邊應該沒問題,我之後會再跑一次流程確認看看。如果你有碰到什麼問題,歡迎提出來我們一起討論。輸入指令:
sudo apt install steamcmd
再來會跳出Steam License,按方向鍵的下滾到最下面,再按方向鍵的右移到<OK>選項上,按Enter。(如果你的Tab沒失靈,也可以直接Tab接Enter)
以下是安裝遊戲的流程,如果有製作service需求的可以先看這邊,從Don't run the server as root. Add an user as pzuser這行開始執行,安裝完後再照著這邊內的However, if you followed the instructions in this page...開始照著做。如果是想確認整個流程能順利執行,就先往下做沒關係,不衝突。
再來我們就可以使用steamcmd了,執行指令:
steamcmd
等他更新完後執行指令:
login anonymous
來安裝這款Project Zomboid,執行指令:
app_update 380870 validate
這邊我也失敗了兩次,兩次都是因為主機記憶體太低,導致安裝失敗,不過我當時是開e2-micro的爛機器,也是情有可原,如果大家順利的安裝完就沒事,如果也失敗了,我字的方法是暫時把機器等級調高,等安裝完後再降級回來,供參考。
都安裝好後就打指令
quit
離開steamcmd介面。
伺服器運行
我們來檢查一下該安裝的東西有沒有出現,執行指令
cd ~
ls -al
應該會出現.steam的資料夾,我們進到遊戲資料夾內,輸入指令:
cd .steam/steam/steamapps/common/Project\ Zomboid\ Dedicated\ Server/
裡面會有一個開始遊戲的批次檔start-server.sh,輸入指令執行:

./start-server.sh
就能順利跑起Server了!
連線測試
到GCP平台的Compute Engine的VM執行個體介面,找到剛剛架設的主機,看一下外部IP的欄位是什麼,在遊戲的加入伺服器選單中,把外部IP打到IP欄位中,連線埠輸入16261,帳號名稱跟密碼請隨意,接著就能夠連線了。

以上是我自己成功的流程,如果大家碰到問題也可以到wiki這篇伺服器架設的教學看看有沒有可以嘗試的解決方案,祝大家遊玩順利!