美文网首页
超大场景MMO-信号塔模式

超大场景MMO-信号塔模式

作者: zhbd | 来源:发表于2019-06-19 21:59 被阅读0次

牢骚

对于MMORPG游戏来说,首先无疑的是,所有的游戏逻辑、行为等实际上是由服务器计算,然后分发给各个客户端的。然而对于超大场景的,百人,千人同时在线的巨型地图来说,每次服务器更新后,把全地图所有的玩家、怪物等行为都推送给玩家这个操作都推送给每个客户端肯定是不现实的。
实际上,对于每个玩家来说,需要展示给他们的也就是屏幕大小那一块地方。然后另一个做法就是:
遍历所有玩家,针对每个玩家,遍历遍历所有怪物,然后判断....算了。。。。

信号塔模式

  1. 首先我们可以把整个世界分为N个小部分,每一部分设立一个“监控器”(信号塔)。这个监控器负责监视他的负责范围(每个小范围)内所有发生变化事件的行为。


    image.png

    监视范围之外的不负责、不发生事件行为的默认傻傻待机不推送。
    每次更新世界之后,全世界发送的事件都会被统计到相应的信号塔中。

  2. 判断并分发信号塔所统计的事件消息给玩家:


    image.png

    如上图,黑框可以想象成用户手机也好其他也罢,首先需要看到,会有交叉行为的。所以想用户广播消息不是一个信号塔,而是一组信号塔。
    比如上图,采用以用户所在的信号塔范围为中心(用户是那个小红点),向四周8个格子发散(算上所在信号塔共9个信号塔)。9个信号塔的消息都推送给这个用户(实际上4个,6个都可以,看你如何设计)。。
    于是:
    a: 用户只隶属于一个信号塔,及该用户所占的那个小区域的信号塔(注意边界划分)
    b: 世界行为更新完毕,每个信号塔把自己监控到的事件行为数据,发送给这个信号塔的监控范围和其周围8个信号塔的监控范围内,所有的玩家。

相关文章

  • 超大场景MMO-信号塔模式

    牢骚 对于MMORPG游戏来说,首先无疑的是,所有的游戏逻辑、行为等实际上是由服务器计算,然后分发给各个客户端的。...

  • 信号塔

    我是一棵“树”。 带引号的原因是我不是一棵真正的树,我没有生命。我有树的外表,你绝对找不到比我更像树的...

  • 信号塔

    皮肤没有流血,几根刺嵌入天空 金属的生长令鱼群和花朵自卑 天台仰望海洋,安静的姿态 不用一只玻璃就可将世界彻底打开...

  • 理解操作系统之信号量的应用

    利用信号量实现进程互斥(模式) 利用信号量实现前驱关系(模式) 利用记录型信号量实现同步(模式) 1.利用信号量实...

  • Unity3D塔防开发流程

    Unity3D塔防开发流程 配置环境及场景搭建 编程语言:C#,略懂些许设计模式,如果不了解设计模式,BUG Mo...

  • 如何梳理文案逻辑?

    之前我奉《金字塔原理》为圭臬,迷恋时间、空间、程度排序、“SCQA”模式(场景——冲突——问题——回答)不能自拔。...

  • 信号铁架塔

    夜景标语现,八个大字抛;六年正攻坚,三年在攀高;远看铁架塔,耀辉黑幕照;恰似指示灯,夜归不迷道。

  • 黑洞

    女朋友回老家 没有信号塔 我手机播出的信号 都被吸进爱的 黑洞 10.2

  • RAC映射

    flattenMap map flattenmap使用场景 用于信号中的信号以前的做法 flattenmap

  • ReactiveCocoa-上手其实很简单(二)

    关于RACSubject RACSubject:信号提供者,非常特殊,自己可以充当信号,又能发送信号。场景:一般在...

网友评论

      本文标题:超大场景MMO-信号塔模式

      本文链接:https://www.haomeiwen.com/subject/ukblqctx.html