游戏中移动讨论

       前一阵子策划提出一个需求,需要在游戏内部做一个副本,副本中分成2个队,在一个圆形的台子上进行游戏,每个队6个人,每个人相互碰撞,目的是把对方碰下去,把对方一个人碰下去得1分,自己掉下去对方得1分,这个游戏想法很直接,逻辑很简单,但是要在网络游戏中实现难度却相当大

      网络游戏中玩家移动是游戏中一个很重要的部分,由于是一个“活动”的游戏,每个玩家希望跟现实中一样,周围环境有任何变化,包括其它玩家的移动都希望能够看到,起码延时不能太大(rpg游戏中通常延迟500ms是可以容忍的),那么这个是怎么实现的呢。

      通常大型mmorpg中客户端都连接到服务器,所有逻辑判断以及数据都以服务器为准,移动相关逻辑也是如此。玩家的运动信息需要发给服务器,服务器收到信息以后广播给需要了解这个玩家位置的其它玩家,包括他周围玩家,他的组队队友,以及其它需要这个信息的人。这里面主要包括两块逻辑,玩家自己的移动与自己看到的别人的移动。

     对于玩家自己的移动,有3种状态需要通知服务器:开始移动、移动进行、停止移动,这些信息发给服务器以后服务器以后会进行校验,如果不合理则对客户端进行校正并通知,通常是把玩家拉回到一个合理的位置,如果合理则服务器会根据需要转发给其它玩家,其它玩家收到信息以后做相应处理,下面会讲,这里主要先考虑玩家自己的移动,首先是玩家开始移动,玩家会通知服务器,我要动,其次是每隔一段时间,玩家通知服务器移动情况,包括当前位置,移动原因(走?跑?跳?飞ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值