天天看點

遊戲伺服器開發-- 角色資料程序間切換

這個周再遊戲伺服器中添加副本功能,但我們的伺服器是多程序的伺服器,玩家根據目前處于的地圖不同,可能處于不同的地圖伺服器中,這個就面臨一個問題是玩家再切換地圖時可能要面臨将玩家資料轉移到其他的地圖伺服器中。

之前對于跳轉地圖已經實作玩家資料的轉移,實作思路如下:

用戶端請求跳轉地圖,将消息通過網關直接發送到對應的地圖伺服器,

地圖伺服器判定玩家是否達到跳轉地圖的條件,

可以跳轉:判定跳轉的目标地圖是否在此程序中,如果再此程序,直接處理玩家跳轉地圖。

如果不在此程序中,則将跳轉請求發往中心伺服器,由中心伺服器處理,玩家離開目前地圖伺服器,

然後将玩家資料轉移到目标地圖伺服器,然後走進入地圖流程。

這種處理方式對于普通地圖來說可以實作,也不會有太多問題。但是對于副本地圖就存在一個問題,如果目前地圖伺服器不存在某種類型的副本地圖,或者目前伺服器開辟的副本地圖已經使用完畢。然後再發往中心服處理變感覺有些麻煩。

一再考慮,将更改之前的處理方式,用戶端發送跳轉地圖請求到地圖伺服器,地圖首先處理是否達到跳轉地圖條件,然後将請求統一發往中心伺服器做判定。由中心伺服器處理是直接跳轉地圖,還是切換伺服器。此思路的流程圖如下(流程圖不規範,但應該都可以看明白,對于不規範的地方請大家諒解:-D):

遊戲伺服器開發-- 角色資料程式間切換