网关按区域聚集玩家
(转载请注明来源于金庆的专栏)
目前网游系统中的网关只发挥了隔离内外网和转发的功能, 至少征途和KOK3是这样.
按照尹红春的设计构想,网关还有个区域聚集功能.
区域聚集是这样的意思: 场景中的许多事件都是区域内广播的,
如角色或NPC的移动, 攻击, 状态变化, 场景服务器不必直接向该区域内的所有人广播,
而是只需向网关广播, 然后由各网关向该区域内的人广播.
因为目前场景服务器的负载并不重, 所以并没有实现网关的区域聚集.
在KOK3中可能有必要实现网关的区域聚集.
因为KOK3中玩家之间没有阻挡, 是可以相互重叠和穿越的.
无阻挡设定是为了增大区域内的玩家密度, 让界域战争之类的大型群体活动更爽.
(个人认为这种设定有点怪异, 感觉自己象个鬼魂, 整个世界也是虚无的.)
KOK3场景区域内聚集上万玩家是可能的, 所以网关的区域聚集功能也是必要的.
玩家的聚集程度越大, 网关区域聚集效果就越明显.
目前网关选择是按负载平衡分散的. 一个区域内的玩家应该是平均分散在各个网关.
这种方案是否可以改为按场景选择网关?
一个场景对应一个网关, 这样就不必向所有网关广播了, 只需向对应的网关单独发送.
玩家切换场景同时切换网关(目前客户端与网关是保持连接不变的).
客户端与网关保持连接是否必要?
帐号登录验证之后, 角色连接服务器是不需要再次输密码的.
连接占用的时间很短, 即使是无缝地图切换, 也不会造成游戏停顿.
如果网关数量增加到成百上千, 场景向所有网关广播也比较浪费,
可改为向两三个网关单独发送.
对于仅有一两个玩家的区域, 更是没必要进行网关广播.
网关可改为动态增长的, 区域内玩家过多就自动分裂成多个网关.
并且可以助此实现负载均衡.
网关切换可以不立即断开连接, 保持一段时间后再断, 防止来回频繁切换网关.
或者网关对应的场景是重叠的, 不会造成来回频繁切换网关.
因为网关上的用户之间无需处理交易之类的交互, 所以这种重叠是简单的, 可行的.