分享自己的经验,希望国内可以重视测试 主页:http://blog.sina.com.cn/chendamao1983 微博:http://weibo.com/tvchenziang

网游同步处理的重要性 第一章

上一篇 / 下一篇  2011-06-19 09:14:25 / 天气: 晴朗 / 心情: 平静 / 精华(1) / 置顶(1)

简单讲下游戏的结构,分为2部分:

"W'KE-G v\l.Dn0

p2O5~O(Sg]0客户端:玩家自主安装的游戏端,保存游戏资源的软件。这个软件具备接收和发出数据信息的功能。51Testing软件测试网/R3V]0{h&j&^,Y

51Testing软件测试网+}4t Tj~k%`U@

同时也可以理解成是一个前端,将网络数据编译成游戏中可看见的图像给玩家,而把操作编译给服务端,让服务端进行处理。

V0|S$KN@051Testing软件测试网:td*Gh m\

在游戏公司里常说的开发套件,就是对于配置数据和资源进行编辑的工具软件。

e&vaD+`-K0

D4g$a'H9G m0 51Testing软件测试网&G7W/zN9}2R}E

Rwc5m2OKr$h;z0服务端是1个大型加密的数据库,同时处理大部分逻辑事物。51Testing软件测试网c,Z|]3r#SH

51Testing软件测试网0`1Q3{0ID k

客户端将遵守服务端的规则,并且帮助服务端处理部分信息缓存和次要信息。

j$ux9Y`+b F8t0

I-a5euNu z0服务端和客户端的关系是 好朋友~ 一对多关系也是多对多关系。

'e#It7P0dP051Testing软件测试网#K4Fs0Iu

服务端群组客户端的主要关系是服务端组负责客户端的表现。

'FSKb_'RN_5C051Testing软件测试网l GX;T:?+|"x,^"o5\;i

负责不同事务的服务端需要各司其职来保证客户端的运作。

'Jf"| ? RU(VO-J0

;~f.n3p,\eB G0想要保证一定的执行效率和效果,就需要准确的各司其职。

~:j9`U3Q.ncVE:D0

Y M.\_mCT%oS*u0详细通信这里就不介绍了,网上也有介绍。 51Testing软件测试网 a1o3u0d!uU!Gc{ n4z L

51Testing软件测试网Ml)Ejy1\;HF

而就是因为这种网络中的行为,无疑会出现各种延迟的情况出现。因此在游戏内,将看到很多行为需要数据同步。51Testing软件测试网,K5MfH(k {G%s#z

51Testing软件测试网7TNL D#} }P

例举一些搞笑场景:51Testing软件测试网9^&K s0tvD;R

51Testing软件测试网J$mM G$_i

玩家A投票购买了一批限量的道具,显示剩余数量为30件。

i}6g(~G$r#NI6y:\ H0

Ir!EOw s5J-m0时隔10分钟后,玩家B也去购买了一批限量的道具,显示剩余数量为35件。

Q \o,J(syA0z1O A0

U;J T(| x4_8^^0然而,且好这2名玩家是都认识的好了穿帮了,不知内情的玩家觉得游戏公司是在忽悠他们买道具。

~;[Xm*E9nDg8k(O051Testing软件测试网4eWQ^dl~

 

7fDpbK0

8k0v i_v#_&h;UO0XXX挥泪大拍卖一样,结果今天是挥泪大拍卖,明天是跳楼价3天。好吧,不要让玩家的行为让系统去被动刷新,而不建立一个比较完善的机制。

!hhx%A j*^ I0

CY W L,@"_+I+J%Z W ^0关于多少时间去主动刷新一次,这里暂时不讨论,做法各有不同。51Testing软件测试网;j7@*v7L I6B1|(h

51Testing软件测试网 N \VTs,D.\i4n

而因为进度忙,需求变更多而让系统被动去刷新的机制忌讳一刀切,比如界面用确认保存等终结来刷新1次本地数据,切换lab ,打开/关闭UI51Testing软件测试网w8j {sXky)Q3Y

f'P%H#GV%U*[0 

B7M;Ir.Z%uN$v051Testing软件测试网([2m$K6\rPW N

紧接着运营的一个活动,本来是特惠活动,当玩家购买一个礼包,礼包已购买数量+1。当购买数量到达1个数值时,全服获取一种新的礼物或者新的优惠政策。如果因为同步数据问题,将导致游戏公司一些诚信问题。实际上都是冤枉的。

7{H2? SZbv [0

d-\5\9D/bp0 51Testing软件测试网k+OVUb6p'[

R0NJX$V e)p0那么玩家行为呢51Testing软件测试网M O6OD)yU

5Ob j+YQE%a [3g0玩家A在外场景看到好友玩家B,因为计算确切位置的延迟而导致,B远离了,而A的客户端没及时反映,这时候A去找B交易。客户端通过服务端发出验证信息,结果信息返回时,告诉你距离不够,或者无法满足。A崩溃了,B这时候进入了内景。

*m9I T(KN A;H0

Ge"{9{A[0A的界面看到玩家B突然在他面前消失了,这时候玩家B出了内景切换到外景,A发现B凭空瞬移了,表现力有可能是平滑的,也有可能是瞬间出现的。

"B&I)?3C1fI.M.?0

:Mj4dv3U.Q&} Z'n6e0好吧,A崩溃了,觉得游戏有问题了。

)g/yP`,Y)?0l9V051Testing软件测试网\7dg W YO"GQe

诸如这类问题,会影响组队,技能释放判断,坐骑显示,甚至影响到美术模型下陷等。

2S'C}p2K0

N,B T~Z$g [0这类问题影响可想而知,解决办法也不复杂。51Testing软件测试网`OA;T?P,x3T

51Testing软件测试网5~'bg1qej_

产生问题原因网络有延迟,通信闪断等等。

'~;kR1h(t zW@%EY\0

O]FP%l2Q0关键在前期地图切割,算法,二端通信方面的优化。

9q3m l3tIz#M4rN051Testing软件测试网)k[5],k cy$sO

※网络游戏数据同步问题51Testing软件测试网 ol4q m!j\G w D

51Testing软件测试网"l"g;B(h u

上描述的问题如何解决呢,我们首先要明确一个基本概念,就是游戏中所有参照数据,应该以服务端的数据为参照。51Testing软件测试网k6H6^4eun%j,Z H

51Testing软件测试网Y ],K|~oI

以上可知,客户端的参照数据是不准确的,客户端处理的是部分资源信息。客户端是用来反馈图形的,和主动去请求服务端。51Testing软件测试网/e#G8a&]N!C {-T"s


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-01  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 3090
  • 日志数: 6
  • 建立时间: 2011-04-14
  • 更新时间: 2011-11-17

RSS订阅

Open Toolbar