一種高效能網路遊戲伺服器架構設計

2021-08-15 03:53:54 字數 1034 閱讀 8486

網路遊戲的結構分為客戶端與伺服器端,客戶端採用2d繪製引擎或者3d繪製引擎繪製遊戲世界的實時畫面,伺服器端則負責響應所有客戶端的連線請求和遊戲邏輯處理,並控制所有客戶端的遊戲畫面繪製。客戶端與伺服器通過網路資料報互動完成每一步遊戲邏輯,由於遊戲邏輯是由伺服器負責處理的,要保證面對海量使用者登入時,遊戲具有良好的流暢性和使用者體驗,優秀的伺服器架構起到了關鍵的作用。 

1  伺服器架構設計

1.1  伺服器架構分類 

伺服器組的架構一般分為兩種:第一種是帶閘道器伺服器的伺服器架構;第二種是不帶閘道器伺服器的伺服器架構,這兩種方案各有利弊。在給出伺服器架構設計之前,先對這兩種設計方案進行詳細的**。 

所謂閘道器伺服器,其實是gate伺服器,比如logingate、gamegate等。閘道器伺服器的主要職責是將客戶端和遊戲伺服器隔離,客戶端程式直接與這些閘道器伺服器通訊,並不需要知道具體的遊戲伺服器內部架構,包括它們的ip、埠、網路通訊模型(完成埠或epoll)等。客戶端只與閘道器伺服器相連,通過閘道器伺服器**資料報間接地與遊戲伺服器互動。同樣地,遊戲伺服器也不直接和客戶端通訊,發給客戶端的協議都通過閘道器伺服器進行**。

1.2  伺服器架構設計 

根據網路遊戲的規模和設計的不同,每組伺服器中服務 

器種類和數量是不盡相同的。本文設計出的帶閘道器伺服器的伺服器組架構如圖1所示。

圖2的流程說明了,在選角色過程中,客戶端會把攜帶遊戲賬號和sessionkey的選角色協議發給gg,gg做一些簡單處理之後**給dbserver,dbserver要驗證sessionkey的合法性,驗證通過之後,dbserver會從角色資訊緩衝區裡取出該賬戶的所有角色資訊發給客戶端。這個過程在客戶端的表現是,當選擇好伺服器組之後,客戶端會直接顯示該賬號下的所有角色,之後就可以選擇角色進入遊戲了。

圖3的流程說明了,在玩家選角色正式進入遊戲時,客戶端會把攜帶遊戲賬號、角色id和sessionkey的登入協議發給gg,gg做一些簡單處理之後**給gs。gs會驗證sessionkey的合法性,驗證通過之後,gs會把驗證通過的結果發給客戶端,同時gs給dbserver發獲取角色資料的協議,這些角色資料是乙個玩家所有的遊戲資料,包括裝備、技能等等。

一種高效能網路遊戲伺服器架構設計

圖2的流程說明了,在選角色過程中,客戶端會把攜帶遊戲賬號和sessionkey的選角色協議發給gg,gg做一些簡單處理之後 給dbserver,dbserver要驗證sessionkey的合法性,驗證通過之後,dbserver會從角色資訊緩衝區裡取出該賬戶的所有角色資訊發給客戶端。這個過程在客戶端的...

一種經典的網路遊戲伺服器架構

首先,二話不說,上圖 用windows畫圖畫的。這個圖是乙個區的架構圖,所有區的架構是一樣的。上面虛線框的servergroup和旁邊方框內的架構一樣。圖上的所有x n的伺服器,都是多台一起的。紅線,綠線,和藍線圖上也有圖示,這裡就不多介紹了。關於agent server大家也能看出來,其實就是ga...

一種經典的網路遊戲伺服器架構

首先,二話不說,上圖 用windows畫圖畫的。這個圖是乙個區的架構圖,所有區的架構是一樣的。上面虛線框的servergroup和旁邊方框內的架構一樣。圖上的所有x n的伺服器,都是多台一起的。紅線,綠線,和藍線圖上也有圖示,這裡就不多介紹了。關於agent server大家也能看出來,其實就是ga...