• 沒有找到結果。

常用的系統架構分析

在文檔中 中華大學 碩士論文 (頁 42-47)

第四章 系統架構設計之分析

4.1 常用的系統架構分析

___________________________________________________________________________________

4

___________________________________________________________________________________

GAME 都是採用此架構。

圖 五、Pure Client/Server 架構圖

另一種 Hybrid Client/Server 架構是將 Client/Server 架構加以改 良,如圖 六所示,它的最大特點在於 Client 端則會存有部分的資料庫,

利用未知狀態推測演算法(Dead Reckon)立即對玩家的輸入作出反應,

Client 端可以推測自己目前的狀態,所以即使 Client 端尚未收到 Server 端的訊息,Client 端仍可以繼續進行遊戲。雖然 Client 可以計算其目前 的狀態,但 Server 則仍擁有最後狀態的決定權,也就是說如果 Client 端 所推測的狀態和 Server 所計算的結果不同,則 Server 就會通知 Client 進 行狀態的修正,所以此架構最大的問題在於網路延遲的影響。若 Client 與 Server 之間的傳輸延遲過大,將導致 Client 端所推測而得之資料庫內容 與 Server 端的資料庫內容差異太大,像是著名的 Half Life 就是採用此種 架構;而在 Pure Client/Server 架構之下,此資料庫只存在於 Server 端。

_______________________________________________________________________________ 31

___________________________________________________________________________________

圖 六、Hybrid Client/Server 架構圖 ii Peer-to-Peer 架構:

如圖 七所示,由於此種架構沒有 Server 來負責處理訊息,運算都是 在每個 client 端上計算,然後再將訊息送給其他的電腦,然後藉由這些電 腦直接互相傳遞,因此避免了不避要的傳輸延遲,所以此種架構最大好處 就在於它的即時性。但是如果要在網際網路環境上建立點對點的架構,則 每部電腦都必須對所有的電腦建立連線並做傳輸處理,因此對於電腦的運 算能力與連線頻寬造成不小的負擔。另外對於遊戲經營來說,此架構並沒 有 Server 來維持遊戲狀態的一致性,所以安全性的是一個很大的問題,這 也是爲什麼少有線上遊戲廠商採用此架構的原因。

針對頻寬負擔問題,目前有 IP Multicasting 技術可以來減輕網路的 loading 負擔,而所謂的 IP Multicasting 技術就是指將 IP 加以群組化,

然後可以透過 IP 群組來傳送訊息封包的一種技術,如此我們可以只單獨針 對某些 IP 或群組來進行資料傳送即可[23],藉由減少傳遞的封包數來減少 網路流量的負擔。關於 IP Multicasting 的應用,MiMaze 公司有利用此技 術來開發一套簡單的 3D 迷宮遊戲,而遊戲架構及 protocol 就是應用此技

_______________________________________________________________________________ 32

___________________________________________________________________________________

術來設計的[24]。由於目前 IP Multicasting 並不普遍,所以以

Peer-to-Peer 架構來做遊戲的並不多見,也還不成熟,所以目前大多還是 應用在區域連線遊戲中。此架構的連線遊戲代表為 Age of King。

圖 七、Peer-to-Peer 架構圖

上述架構應用在 Online Game 中會有下面潛在的問題,Client/Server 架構 會因為中央 Server 的運算延遲而造成整個遊戲的進行不流暢,或是必須等待中 央 Server 的回應才能繼續遊戲;雖然架構可以多了推測自己狀態的機制,讓 Client 端不需等待中央 Server 也可以繼續遊戲,但是卻容易造成 Client 端所 推測的資料庫內容可能與 Server 端的資料庫內容差異太大的問題。這種架構也 會因為玩家的人數過多,只能利用拒絕玩家登入的方式來保護 Server 避免造成 當機,所以會有玩家人數上限的問題,然而藉由增加 Server 的數量來提高人數 上限並分散流量,不過玩家往往還是會聚集在同一個 Server 遊戲,所以 Loading Balance 的效果不是很顯著,也使得其他 Server 效能沒有完全利用,投資更多 的硬體成本卻無法發揮它們最大的效能。而 Peer-to-Peer 架構因為每台電腦必 須對所有的電腦建立連線並做傳輸處理,對於電腦運算能力與連線頻寬都造成不 小的負擔,雖然 IP Multicasting 的技術減輕網路 loading 的負擔,但是目前 IP Multicasting 技術並不成熟,還不能應用在商業環境中,許多技術及頻寬問

_______________________________________________________________________________ 33

___________________________________________________________________________________

題還待以改進,目前還只是應用在區域連線遊戲中。

另外,我們在另一篇研究內容中有看到類似本研究架構所設計的概念,它提 出來的架構稱作為 FreeMMG Model[25],同樣也是採用混合 Client-Server 與 P2P 的遊戲架構,以及利用遊戲地圖切割的方式來減輕 Server 的 Loading,其架構 如圖 八所示,可以看到中間部分的 Client 群集中彼此是互相連線,而群集裡會 有一個 Client 專門負責與 Server 連線及更新,此 Client 的角色也就相當於本 研究架構中的 Local Game Server 的角色;而 FreeMMG Model 與本研究架構的相 異點是在 FreeMMG Model 中,地圖必須是事前所定義好的,然後加以分配管理,

由於地圖是靜態分配,也就減少了架構的彈性。

而在本研究中,我們利用了 Quadtree 的資料結構來紀錄 Local Game Server 和其負責區域的對應關係,可以動態地視玩家人數上限或 Servers 負擔多寡,決 定是否新增或縮減 Local Game Server 個數,加以重新分割及分配地圖管理,在 我們架構中,地圖是動態分配的,如此使得架構能更富有彈性,Master Server 能夠自主性的調整地圖的分配配來減輕 Local Game Server 的負擔,讓遊戲能夠 有更好的效能品質。

圖 八、FreeMMG Model 架構圖

_______________________________________________________________________________ 34

___________________________________________________________________________________

在文檔中 中華大學 碩士論文 (頁 42-47)