網(wǎng)關(guān)按區(qū)域聚集玩家
(轉(zhuǎn)載請(qǐng)注明來源于金慶的專欄)
目前網(wǎng)游系統(tǒng)中的網(wǎng)關(guān)只發(fā)揮了隔離內(nèi)外網(wǎng)和轉(zhuǎn)發(fā)的功能, 至少征途和KOK3是這樣.
按照尹紅春的設(shè)計(jì)構(gòu)想,網(wǎng)關(guān)還有個(gè)區(qū)域聚集功能.
區(qū)域聚集是這樣的意思: 場(chǎng)景中的許多事件都是區(qū)域內(nèi)廣播的,
如角色或NPC的移動(dòng), 攻擊, 狀態(tài)變化, 場(chǎng)景服務(wù)器不必直接向該區(qū)域內(nèi)的所有人廣播,
而是只需向網(wǎng)關(guān)廣播, 然后由各網(wǎng)關(guān)向該區(qū)域內(nèi)的人廣播.
因?yàn)槟壳皥?chǎng)景服務(wù)器的負(fù)載并不重, 所以并沒有實(shí)現(xiàn)網(wǎng)關(guān)的區(qū)域聚集.
在KOK3中可能有必要實(shí)現(xiàn)網(wǎng)關(guān)的區(qū)域聚集.
因?yàn)镵OK3中玩家之間沒有阻擋, 是可以相互重疊和穿越的.
無阻擋設(shè)定是為了增大區(qū)域內(nèi)的玩家密度, 讓界域戰(zhàn)爭(zhēng)之類的大型群體活動(dòng)更爽.
(個(gè)人認(rèn)為這種設(shè)定有點(diǎn)怪異, 感覺自己象個(gè)鬼魂, 整個(gè)世界也是虛無的.)
KOK3場(chǎng)景區(qū)域內(nèi)聚集上萬玩家是可能的, 所以網(wǎng)關(guān)的區(qū)域聚集功能也是必要的.
玩家的聚集程度越大, 網(wǎng)關(guān)區(qū)域聚集效果就越明顯.
目前網(wǎng)關(guān)選擇是按負(fù)載平衡分散的. 一個(gè)區(qū)域內(nèi)的玩家應(yīng)該是平均分散在各個(gè)網(wǎng)關(guān).
這種方案是否可以改為按場(chǎng)景選擇網(wǎng)關(guān)?
一個(gè)場(chǎng)景對(duì)應(yīng)一個(gè)網(wǎng)關(guān), 這樣就不必向所有網(wǎng)關(guān)廣播了, 只需向?qū)?yīng)的網(wǎng)關(guān)單獨(dú)發(fā)送.
玩家切換場(chǎng)景同時(shí)切換網(wǎng)關(guān)(目前客戶端與網(wǎng)關(guān)是保持連接不變的).
客戶端與網(wǎng)關(guān)保持連接是否必要?
帳號(hào)登錄驗(yàn)證之后, 角色連接服務(wù)器是不需要再次輸密碼的.
連接占用的時(shí)間很短, 即使是無縫地圖切換, 也不會(huì)造成游戲停頓.
如果網(wǎng)關(guān)數(shù)量增加到成百上千, 場(chǎng)景向所有網(wǎng)關(guān)廣播也比較浪費(fèi),
可改為向兩三個(gè)網(wǎng)關(guān)單獨(dú)發(fā)送.
對(duì)于僅有一兩個(gè)玩家的區(qū)域, 更是沒必要進(jìn)行網(wǎng)關(guān)廣播.
網(wǎng)關(guān)可改為動(dòng)態(tài)增長(zhǎng)的, 區(qū)域內(nèi)玩家過多就自動(dòng)分裂成多個(gè)網(wǎng)關(guān).
并且可以助此實(shí)現(xiàn)負(fù)載均衡.
網(wǎng)關(guān)切換可以不立即斷開連接, 保持一段時(shí)間后再斷, 防止來回頻繁切換網(wǎng)關(guān).
或者網(wǎng)關(guān)對(duì)應(yīng)的場(chǎng)景是重疊的, 不會(huì)造成來回頻繁切換網(wǎng)關(guān).
因?yàn)榫W(wǎng)關(guān)上的用戶之間無需處理交易之類的交互, 所以這種重疊是簡(jiǎn)單的, 可行的.
(轉(zhuǎn)載請(qǐng)注明來源于金慶的專欄)
目前網(wǎng)游系統(tǒng)中的網(wǎng)關(guān)只發(fā)揮了隔離內(nèi)外網(wǎng)和轉(zhuǎn)發(fā)的功能, 至少征途和KOK3是這樣.
按照尹紅春的設(shè)計(jì)構(gòu)想,網(wǎng)關(guān)還有個(gè)區(qū)域聚集功能.
區(qū)域聚集是這樣的意思: 場(chǎng)景中的許多事件都是區(qū)域內(nèi)廣播的,
如角色或NPC的移動(dòng), 攻擊, 狀態(tài)變化, 場(chǎng)景服務(wù)器不必直接向該區(qū)域內(nèi)的所有人廣播,
而是只需向網(wǎng)關(guān)廣播, 然后由各網(wǎng)關(guān)向該區(qū)域內(nèi)的人廣播.
因?yàn)槟壳皥?chǎng)景服務(wù)器的負(fù)載并不重, 所以并沒有實(shí)現(xiàn)網(wǎng)關(guān)的區(qū)域聚集.
在KOK3中可能有必要實(shí)現(xiàn)網(wǎng)關(guān)的區(qū)域聚集.
因?yàn)镵OK3中玩家之間沒有阻擋, 是可以相互重疊和穿越的.
無阻擋設(shè)定是為了增大區(qū)域內(nèi)的玩家密度, 讓界域戰(zhàn)爭(zhēng)之類的大型群體活動(dòng)更爽.
(個(gè)人認(rèn)為這種設(shè)定有點(diǎn)怪異, 感覺自己象個(gè)鬼魂, 整個(gè)世界也是虛無的.)
KOK3場(chǎng)景區(qū)域內(nèi)聚集上萬玩家是可能的, 所以網(wǎng)關(guān)的區(qū)域聚集功能也是必要的.
玩家的聚集程度越大, 網(wǎng)關(guān)區(qū)域聚集效果就越明顯.
目前網(wǎng)關(guān)選擇是按負(fù)載平衡分散的. 一個(gè)區(qū)域內(nèi)的玩家應(yīng)該是平均分散在各個(gè)網(wǎng)關(guān).
這種方案是否可以改為按場(chǎng)景選擇網(wǎng)關(guān)?
一個(gè)場(chǎng)景對(duì)應(yīng)一個(gè)網(wǎng)關(guān), 這樣就不必向所有網(wǎng)關(guān)廣播了, 只需向?qū)?yīng)的網(wǎng)關(guān)單獨(dú)發(fā)送.
玩家切換場(chǎng)景同時(shí)切換網(wǎng)關(guān)(目前客戶端與網(wǎng)關(guān)是保持連接不變的).
客戶端與網(wǎng)關(guān)保持連接是否必要?
帳號(hào)登錄驗(yàn)證之后, 角色連接服務(wù)器是不需要再次輸密碼的.
連接占用的時(shí)間很短, 即使是無縫地圖切換, 也不會(huì)造成游戲停頓.
如果網(wǎng)關(guān)數(shù)量增加到成百上千, 場(chǎng)景向所有網(wǎng)關(guān)廣播也比較浪費(fèi),
可改為向兩三個(gè)網(wǎng)關(guān)單獨(dú)發(fā)送.
對(duì)于僅有一兩個(gè)玩家的區(qū)域, 更是沒必要進(jìn)行網(wǎng)關(guān)廣播.
網(wǎng)關(guān)可改為動(dòng)態(tài)增長(zhǎng)的, 區(qū)域內(nèi)玩家過多就自動(dòng)分裂成多個(gè)網(wǎng)關(guān).
并且可以助此實(shí)現(xiàn)負(fù)載均衡.
網(wǎng)關(guān)切換可以不立即斷開連接, 保持一段時(shí)間后再斷, 防止來回頻繁切換網(wǎng)關(guān).
或者網(wǎng)關(guān)對(duì)應(yīng)的場(chǎng)景是重疊的, 不會(huì)造成來回頻繁切換網(wǎng)關(guān).
因?yàn)榫W(wǎng)關(guān)上的用戶之間無需處理交易之類的交互, 所以這種重疊是簡(jiǎn)單的, 可行的.