(菜鸟的笔记)状态同步原理

记录:状态同步来实现行走功能;(内容枯燥,享受成功带来的快乐)

什么是状态同步:

 a.我们所有的游戏逻辑的计算都是放到服务器上的,以服务器为准;

 b.客户端负责上传玩家的操作 以播放“动画”来展示出来服务器上最新的状态的效果;

 c.当服务器验证完客户端的操作是否合法后产生计算变化

 d.如果有变化,服务端就会广播这个变化状态,给对这个变化感兴趣的玩家("AOI玩家,周围玩家")

 e.客户端就根据状态的变化,展示内容出来

角色行走是如何同步给其他玩家的:

 a.我们就是要实现游戏服务器上跑游戏地图+逻辑;==>数据逻辑,没有画面逻辑

    游戏数据而言 一个地图就是一块x,y,z坐标数据的集合;

    服务器update()不断迭代;==>行走;

 b.当我们某个客户端,发起行走的时候;

    发起一个消息给服务器;

    服务器会受到这个消息,把它放到事件队列里来,然后来进行处理;

    处理:消息的合法性(比如:玩家ID是不idle,Run状态等,放技能不能行走等游戏逻辑);

    刚开始 :idle,--->服务器上寻路出来,==>服务端就开始执行玩家对应的数据实体来进行按照路径                     移动了 引起状态的变化:idle===>run;把这个操作,广播给能看到这个玩家的所有                       玩家 (包括自己)

                   A的状态: run===>操作===>移动; ===>A自己,发给B

                   A收到了,本地寻路,===>客户端播放动画移动A到指定的点==>

                   B收到了A的移动 ===> 让A本地寻路===>移动到A指定的点==>

                  服务端就会检测到玩家走到了目的地,到了Idle状态,Run==>Idle===>会把玩家A的状态                    发给(A,B)

                   A收到这个状态 run ==> idle ==>同步服务器的位置;

      每一次状态改变都同步就叫状态同步,中间的行走状态,服务器走服务器器的,客户端走客户端的服务器走的过程当做,状态变化了==>客户端==>同步==>根据最新的状态来播放动画

结:你走你的,我走我的,服务端为准,服务端会广播玩家状态的变化给他感兴趣的客户端,客户端根据最新的状态展示动画

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值