在玩联网游戏时突然断网在别人眼里会静止不动,但是自己却会看到别人不动,我随便走,也不能对别人造成伤害,请问这是什么原因造成的?

推荐  (0) | 6人关注关注
5个答案
4 1

谢邀
突然断网
一般来讲,游戏程序在编写时,会考虑到偶然中断的情况,而且通常的做法是在一定时间内不强迫退出。

作为联网游戏,我们有客户端与服务器的说法。所谓客户端就是每个玩家电脑上运行的那部分,而服务器则是响应玩家指令,中转、存储玩家数据的那部分。客户端每个玩家都要安装(web版的不需要安装,但是会开启浏览器或者其他工具运行),而服务端则是多人共享的。

正常联网游戏的时候,数据流向是 客户端<=>服务器 交互。 多人联网的时候,则客户端的数据在一定的规则下会共享。 如世界频道聊天,这个聊天数据会由一个客户端发出,服务器接收后,“广播”(并非tcp/ip意义上的广播)到全体玩家的窗口上。或者组队下副本时,玩家的数据会发送到服务器,然后服务器转发到全体队友的客户端上。这样当你有移动时,不但你能看到自己的移动,队友一样也会看到你的移动。

突然断网时,你的数据无法发送到服务器,服务器也就不会将你的数据发送到你的队友的客户端上。因此在队友看来,你突然发呆了(没任何动作),同样你队友的数据也无法发送到你的客户端上,这样你看到队友也突然全体都呆了。

一般来讲,网络的各种状况都有可能,例如真的断线了,几个小时甚至数天甚至更久都无法联网,也有可能断线几秒钟,或者仅仅是网络延迟非常长,连接并没有断开,但是几秒甚至十几秒都无法进行数据交互。如果是真正断线了,强制退队和退出游戏,玩家毫无怨言。而仅仅是几秒钟甚至更短时间的断线,游戏就强制离队或者退出游戏的话,这种体验就非常糟糕了。所以游戏在制作的时候,会考虑到网络的这种暂短的离线现象,因此大多数游戏在处理这种现象时,不会强制玩家退出游戏,组队列表中也不会删除玩家的状态信息,而是暂时保留在那里。一旦玩家在许可的时间内重新连接上,继续恢复玩家的连接,进而继续游戏,则可以大幅提高游戏体验。

在断线的这个许可时间内(根据游戏不同,时间长短,以及接下来要说的表现也不尽相同),有的游戏会终止玩家的任何动作,弹出一个重连的提示框,人物无法移动,无法聊天,也看不到其他人的动作(因为他们的动作你也接收不到)。而有的游戏则允许玩家继续动作(只不过这个动作仅仅是客户端的动作,无法发送到服务器),例如继续行走、攻击等。一旦重新连接上,前者则是对话框消失,人物又能进行动作了。而后则则是人物突然回到断线前的状态(如回到断线前的位置)。后者就是你所说的可以随便走(如果移动规则由服务器判断的话,那么断线后,甚至可以穿墙,跑到以前不能去的地方;或者攻击以前不能攻击的对象。但是连线一旦恢复,则会迅速恢复到断线前的状态,如迅速回到断线前的坐标,停止攻击。之前在攻击的状态,则可能因为对象已经被队友或他人消灭,你也会停止攻击。又或者你断线前处于被攻击状态,重连后,由于服务器并没有消除你的数据,重连后你可能发现自己挂了等)

3 1

别人的数据服务器发不给你

你的数据反馈不了服务器

ps
我还以为 史诗级灾难巨片:小学生的假日 档期已经过了呢

1 0

饭呢通信工程、计算机硕士

2014-09-12 17:29
支持者: 新社会革命者

角色的移动是由客户端处理的,然后再把这个命令发给服务端。其他玩家从服务端上收到数据,就看到你移动了。
断线的时候你的数据发不给其它的玩家,其他玩家的数据也发不给你,所以就是这样的效果了。

1 0

没空的人懂一点计算机和生活上的事情,认真灌水。

2014-09-12 22:11
支持者: 新社会革命者

谢邀。
这个要看游戏是怎么设计的。像LOL在断网时,人物是不能移动和出招的。
你的每一次给对方以及关于自己的角色的改变,都是要靠网络连接来支撑的。比如你在游戏商店里买道具,客户端会请求服务器商店的数据,在你买完东西后会发送购买的请求,当服务器收到购买请求之后会反馈“购买成功”的提示,这就是游戏传输的大致过程。
攻击也是一样。发出攻击时,客户端向服务器发送攻击指令,接收到了之后,服务器会向客户端发送“攻击成功”的的消息,然后就会在用户界面中显示。

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区