• 沒有找到結果。

第三章、 快速移植之設計

3.1 代理系統的設計

在先前已提到過,如圖 3-1 的方式,以一般直接將電腦上的遊戲 客戶端移植到行動裝置上,會需要修改遊戲伺服器程式,造成系統開 發時間長與維護成本高的問題。

圖 3-1、一般電腦網路遊戲移植至行動裝置的平台架構圖。

為了解決需要修改遊戲伺服器的問題,我們設計將原先電腦的遊 戲客戶端增加了代理(Agent)的功能,替行動裝置的遊戲客戶端連線至 遊戲伺服器,充分利用運行已久且穩定的連線機制,而連線的模式將 如圖 3-2。

我們提出了以代理的模式,在遊戲平台架構中增加了代理伺服 器,這部分代理的功能也可考慮實作在遊戲伺服器或行動裝置中,但 都會有缺陷,因此我們選擇將代理伺服器獨立出來。

z 在遊戲伺服器實作代理功能:遊戲伺服器功能非常複雜,對於以穩 定營運的遊戲平台而言,修改遊戲伺服器風險相當高,可能會造 成伺服器運行時當機,讓電腦與行動裝置玩家均無法遊戲,這種 情況是遊戲公司不願意見到的。

z 在行動裝置實作代理功能:遊戲伺服器沒做修改,因此無法區分行 動裝置與電腦客戶端,廣播訊息會一視同仁的傳送至此兩類客戶 圖 3-2、行動裝置透過增加代理功能的電腦遊戲客戶端連線至遊戲 伺服器。

端,無法達到節省網路頻寬的功能。

3.1.1 代理系統架構圖

依循我們先前提到的概念,我們在行動裝置上實作行動裝置客戶 端(CYC Light Client),而將附加代理功能的電腦遊戲客戶端設計為代 理伺服器(Agent Server),並可接受多個行動裝置遊戲客戶端的連線,

產生出對應處理行動裝置遊戲客戶端連線的附加代理功能的遊戲客 戶端程序(process),替行動裝置連線至遊戲伺服器,傳達大廳與遊戲 操作。

為了未來系統的擴充性,我們考慮到了會有同時多台代理伺服器 提供行動裝置連線進行服務的情況,因此修改了原先單一代理伺服器 的架構圖,提出了主要代理伺服器(Master Agent Server),以達到能夠 提供多台代理伺服器同時服務的設計。

圖 3-3、單一代理伺服器架構圖。

z 主要代理伺服器:

作為行動裝置客戶端的連線入口,掌握所有可提供服務的代理伺 服器的服務 IP、Port、服務遊戲種類以及負載狀況,在行動裝置 遊戲客戶端要進行遊戲服務時,挑選負載較低的代理伺服器為行 動裝置客戶端進行服務。

z 代理伺服器:

由原先電腦上的遊戲客戶端所修改,增加了代理的功能,以命令 模式(Console mode)執行,替行動裝置客戶端連線至遊戲伺服器,

進行遊戲與大廳操作與訊息的轉傳處理,

z 行動裝置客戶端:

為了行動裝置實作的精簡客戶端,可進行大廳、遊戲的操作。

z 遊戲伺服器:

與原先 CYC 遊戲平台的遊戲伺服器完全相同,沒做任何改變。

圖 3-4、多台代理伺服器架構圖。

z 遊戲資料庫:

與原先 CYC 遊戲平台的遊戲資料庫相同,沒做任何改變。

3.1.2 代理系統的啟動

如圖 3-5 在啟動主要代理伺服器後,各台代理伺服器連線至主要 代理伺服器,傳輸各台代理伺服器提供服務的遊戲種類以及供行動裝 置客戶端連線的 Port 至主要代理伺服器。

圖 3-5、代理系統啟動圖。

在啟動完後,主要代理伺服器與各台代理伺服器仍保持連線,各 台代理伺服器定期回報負載,以供主要代理伺服器在為行動裝置客戶 端挑選代理伺服器服務的選擇時做參考依據。

3.1.3 行動裝置客戶端進行遊戲服務流程

接下來本小節將詳細說明行動裝置客戶端如何進行遊戲服務的 流程的示意圖,如下圖 3-7。

圖 3-6、代理伺服器回報負載。

1. 首先行動裝置客戶端連線到主要代理伺服器,並送出要進行的遊 戲名稱。

2. 主要代理伺服器從目前正在服務的代理伺服器中找尋有服務該 遊戲的代理伺服器,挑選負載較低的代理伺服器,將其供行動裝 置客戶端連線的 IP 與 Port 傳送至行動裝置客戶端。

3. 行動裝置客戶端收到目標代理伺服器的 IP、Port 之後,切斷與主 要代理伺服器的連線,而後連線至目標代理伺服器,傳送要進行 的遊戲名稱以及玩家的帳號密碼,透過代理伺服器登入至遊戲伺 服器,進行遊戲的服務。

相關文件