Google開源新專案Quilkin,這是與遊戲公司Embark Studios合作開發的UDP代理,以支援高效能即時多人遊戲。Quilkin將原本單體式遊戲伺服器與客戶端中的安全、存取控制、遙測和指標分離出來,讓開發者以組合和配置的方式,提供這些通用功能,並在各種多人遊戲中重複使用。

Google解釋,傳統的作法,即時多人遊戲的專用遊戲伺服器,使用特別的UDP協定,提供遊戲內玩家間的通訊,並且與伺服器同步資訊,這種通訊通常綑綁在單體遊戲伺服器和客戶端中,並且結合安全性、控制存取、物理模擬、人工智慧計算等功能。在快節奏的多人遊戲中,遊戲對話的完整模擬,通常發生在單體專用遊戲伺服器的記憶體,由於遊戲狀態都在記憶體中,因此每個客戶端都直接連接到遊戲伺服器,但這帶來幾個問題。

由於專用遊戲伺服器都是單點故障,因此故障出現,則整個遊戲對話都會失敗,而這成了惡意攻擊者的攻擊目標,而且連接到遊戲伺服器的IP和埠口都是公開的,直接暴露給遊戲客戶端,因此容易讓外部發現而遭到鎖定。另外,遊戲伺服器模擬和網路通訊等部分都在同一程序中,難以重用和模組化,同時增加效能問題風險。

不過這些問題,可以在多人UDP流量中部署代理伺服器來解決,包括透過提供冗餘通訊入口點,來提升可靠度,讓UDP資料封包同時發送到任意數量的代理,再路由到遊戲伺服器,當遊戲伺服器出現單點故障的時候,代理能夠改善通訊層的冗餘和故障轉移來解決。

增加代理也提升了安全性,遊戲專用伺服器的IP和埠口不需要公開,遊戲客戶端只能看到代理池子集,因此限制了潛在的攻擊面,而且使用代理也能獲得足夠的擴展性,透過分解單體程序,將通訊協定、指標、通訊安全和存取控制等各功能,轉移到代理中,讓遊戲伺服器能夠在運算循環中,刪除非遊戲的運算。

Google提到,目前這些功能,都只有大型遊戲工作室可以採用,因為這些工作室才有資源,建構專屬於自己的技術。而Google與Embark Studios共同建立的Quilkin,提供了標準開源解決方案,讓開發者可用於部署大型多人專用遊戲伺服器,獲得安全性、存取控制、遙測資料和指標等功能。

Quilkin非透明代理設計,讓惡意攻擊者不容易探查遊戲架構的內部狀態,但其提供用戶極高的可見度,有一組搭配使用的處理過濾器,能夠用於監控路由、存取控制和速率限制等。開發者可以將Quilkin用作獨立的二進位檔案,不需要變更客戶端和伺服器即可使用,或是也可以當作Rust函式庫,Google提到,使用方式取決於用戶要進行多深的系統整合。

熱門新聞

Advertisement