游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2241|回复: 3

[讨论] “分时分量”法缓解网络拥挤造成的停顿现象

[复制链接]

4

主题

11

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2010-4-25 14:04:00 | 显示全部楼层 |阅读模式
    根据经验发现,网络性能不是很好的情况下,在游戏中,当2个真人玩家角色相遇的时候,会卡上几秒钟不动。即便在网络条件好的情况下,也会稍微有些卡。尤其是,在真人玩家角色集中的区域,例如基地内或者对战战场内,常常会卡住不动。
    我目前没有对游戏性能设计去做过多的了解,根据以往软件设计经验,这属于网络性能方面的问题。两个个角色相遇,需要从服务器传送该角色的信息到玩家客户端。一般一个角色的数据量不大,基本满足查看外形和基本角色信息即可。得到这些信息后,客户端将其冲入模型,构造出角色的外形、装备和基础角色信息等。在玩家可视范围内,都需要保持角色间的状态,这种状态是需要持续交互的,也就是说服务器实时地向客户端发送数据,以保证数据变化后能准确地反应到玩家眼里。在初次出现时,需要一次性地将其他玩家信息传送到客户端,造成瞬间的网络流量增大,而客户端也需要开辟一块内存区域来存储这些信息,又增加了停顿的时间。
    对于这个问题的思考,关键在于一次性数据的传送和内存空间的开辟上。考虑到使用的是硬盘缓存而非真正内存,停顿效果明显,减低了玩家的感受分数。若能够将数据按照一定地计算方式、排序,分时、分批地传送到客户端,每次流量自动计算,依据客户端网络情况,让用户感受上没有明显停顿(少于1S)。介于这个思路,尝试一个办法:即在后台维护一个在线玩家矢量矩阵(或叫地图),这个矩阵的每个节点都是一个玩家角色,主要存储其坐标和运动方向,根据任务和行为分析、预测所要去的位置,即将进入视野区域内的玩家信息按照一定的算法,分时、分量地将信息传送至客户端保存在缓存内。待出现的时候,即从缓存读取数据,即能大大减少停顿时间。



    [本文系原创文章,非转载或抄袭。]

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20547
发表于 2010-4-26 00:47:00 | 显示全部楼层

Re:“分时分量”法缓解网络拥挤造成的停顿现象

客户端的资源文件动态加载基本上可以缓解这个问题。

1

主题

422

帖子

423

积分

中级会员

Rank: 3Rank: 3

积分
423
发表于 2010-4-26 11:36:00 | 显示全部楼层

Re:“分时分量”法缓解网络拥挤造成的停顿现象

程序方面不太了解,但是ls是个人还是AI?

25

主题

486

帖子

588

积分

高级会员

Rank: 4

积分
588
发表于 2010-4-27 12:36:00 | 显示全部楼层

Re: Re:“分时分量”法缓解网络拥挤造成的停顿现象

YY杰: Re:“分时分量”法缓解网络拥挤造成的停顿现象

程序方面不太了解,但是ls是个人还是AI?



你见过论坛AI回帖的么?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-15 11:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表