網關按地區聚集玩家
(轉載請註明來源於金慶的專欄)
目前網遊系統中的網關只發揮了隔離內外網和轉寄的功能, 至少征途和KOK3是這樣.
按照尹紅春的設計構想,網關還有個地區聚集功能.
地區聚集是這樣的意思: 情境中的許多事件都是地區內廣播的,
如角色或NPC的移動, 攻擊, 狀態變化, 情境伺服器不必直接向該地區內的所有人廣播,
而是只需向網關廣播, 然後由各網關向該地區內的人廣播.
因為目前情境伺服器的負載並不重, 所以並沒有實現網關的地區聚集.
在KOK3中可能有必要實現網關的地區聚集.
因為KOK3中玩家之間沒有阻擋, 是可以相互重疊和穿越的.
無阻擋設定是為了增大地區內的玩家密度, 讓界域戰爭之類的大型群體活動更爽.
(個人認為這種設定有點怪異, 感覺自己象個鬼魂, 整個世界也是虛無的.)
KOK3情境地區內聚集上萬玩家是可能的, 所以網關的地區聚集功能也是必要的.
玩家的聚集程度越大, 網關地區聚集效果就越明顯.
目前網關選擇是按Server Load Balancer分散的. 一個地區內的玩家應該是平均分散在各個網關.
這種方案是否可以改為按情境選擇網關?
一個情境對應一個網關, 這樣就不必向所有網關廣播了, 只需向對應的網關單獨發送.
玩家切換情境同時切換網關(目前用戶端與網關是保持串連不變的).
用戶端與網關保持串連是否必要?
帳號登入驗證之後, 角色串連伺服器是不需要再次輸密碼的.
串連佔用的時間很短, 即使是無縫地圖切換, 也不會造成遊戲停頓.
如果網關數量增加到成百上千, 情境向所有網關廣播也比較浪費,
可改為向兩三個網關單獨發送.
對於僅有一兩個玩家的地區, 更是沒必要進行網關廣播.
網關可改為動態增長的, 地區內玩家過多就自動分裂成多個網關.
並且可以助此實現負載平衡.
網關切換可以不立即中斷連線, 保持一段時間後再斷, 防止來回頻繁切換網關.
或者網關對應的情境是重疊的, 不會造成來回頻繁切換網關.
因為網關上的使用者之間無需處理交易之類的互動, 所以這種重疊是簡單的, 可行的.