`
jiazurongyu
  • 浏览: 15985 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

网络游戏重要性-同步问题(一)

阅读更多
简单讲下游戏的结构,分为2部分:

    客户端:玩家自主安装的游戏端,保存游戏资源的软件。这个软件具备接收和发出数据信息的功能。
    同时也可以理解成是一个前端,将网络数据编译成游戏中可看见的图像给玩家,而把操作编译给服务端,让服务端进行处理。
    服务端是1个大型加密的数据库,同时处理大部分逻辑事物和部分表数据。需要一门高效的语言,例如C++,Lua。
    客户端将遵守服务端定下的规则,并且帮助服务端处理部分次要的信息和读取缓存。
    服务端和客户端的关系是 好朋友~ 一对多关系也是多对多关系。
    服务端群组 和 客户端 的主要关系是 服务端组 负责 客户端 的表现。
    负责不同事务的服务端 需要各司其职 来保证客户端的运作。
    通信这里就不介绍了。
    这种网络中通信的行为,无疑会出现各种延迟的情况出现。我门在游戏内,将看到很多行为 需要数据同步。

    例举一些搞笑场景:
    玩家A投票购买了一批限量的道具,显示剩余数量为30件。
    时隔10分钟后,玩家B也去购买了一批限量的道具,显示剩余数量为35件。
    然而,且好这2名玩家是都认识的…好了穿帮了,不知内情的玩家觉得游戏公司是在忽悠他们买道具。
    XXX挥泪锤胸大拍卖一样,结果今天是挥泪大拍卖,明天是跳楼价3天。好吧,不要让玩家的行为让系统去被动刷新,而不建立一个比较完善的机制。
    关于多少时间去主动刷新一次,这里暂时不讨论,留有一个话题。(?)
    因为进度忙,需求变更多,逻辑上也有变更,让系统被动去刷新的机制忌讳一刀切,比如界面用确认保存等终结来刷新1次本地数据,切换lab ,打开/关闭UI。
如果没有解决这部分延迟的脏数据问题,紧接着运营的一个活动,本来是特惠活动,当玩家购买一个礼包,礼包已购买数量+1。当购买数量到达1个数值时,全服获取一种新的礼物或者新的优惠政策。如果因为同步数据问题,将导致游戏公司一些诚信问题。
玩家:Gm搞毛啊,实际上Gm和游戏,都是冤枉的。

那么玩家行为呢

    玩家A男在室外场景,看到好友玩家B女,在第六根电线杆下,于是决定去送花。因为发送移动到确切位置的时间,B已经远离了第六根电线杆下,服务端还没告诉A的客户端,当轮巡一次时,A发现B跑的好远了,B莫非有奇门遁甲?
    A再次追上去,终于发起了送花的请求,客户端通过服务端发出验证信息,结果信息返回时,告诉你距离不够,或者无法满足。B这时候进入了内景,A在墙角画圈圈。
    A的界面看到玩家B突然在他面前消失了,这时候玩家B出了内景切换到外景,A发现B凭空瞬移了,表现力有可能是平滑的,也有可能是瞬间出现的。
    好吧,A崩溃后觉悟了,觉得是游戏有问题了,Gm在下XXX,搞毛啊。
    诸如这类问题,会影响组队,技能释放判断,坐骑显示,甚至影响到美术模型下陷等。
    这类问题影响可想而知,解决办法也不复杂。
    产生问题原因网络有延迟,通信闪断等等。
关键在前期地图xx,xx,xx通信方面的优化。(有兴趣的可以填空)

※网络游戏数据同步问题

   上描述的问题如何解决呢,我们首先要明确一个基本概念,就是游戏中基本所有参照数据,应该以服务端的数据为参照,根据游戏类型来定义差异性。

以上可知,客户端的参照数据不是既时的,为了减少延迟,会把部分信息放在客户端里或者第三方处理。客户端主要是用来反馈图形的,和主动去请求服务端。
写的比较早的文章,改了一版,实际来说看是哪端往哪端发,很多工具都是可以做到的。
本文来源csdn:http://blog.csdn.net/jiazurongyu
分享到:
评论

相关推荐

    网络游戏同步机制的研究.pdf

    相对于单机游戏,网络游戏涉及到更多的技术问题,比如网络底层通讯模型,游戏逻辑的同步策略、服务器群集技术等,其中游戏同步机制在网络游戏中有着至关重要的作用。 网络中的延迟是不可避免的,延迟的存在引发了...

    游戏编程--大师技巧

     定时的重要性  使用控件  获取信息  T3D游戏控制程序  总结  第二部分 DirectX和2D基础  第五章 DirectX基础和令人生畏的COM  DirectX基础  COM:这是Microsoft的工作,还是魔鬼的?  应用DirectXCOM...

    unity游戏开发综合指南资源

    网络:介绍网络游戏开发中的网络通信机制,包括同步、延迟处理等。 UI设计:指导如何设计直观、易用的用户界面,提升玩家体验。 性能优化:分享提升游戏性能的策略,包括内存管理、渲染优化等。 图形与Shader:讲解...

    Unity引擎下多人在线网络游戏的设计与开发

    游戏数字产业在数字经济发展中扮演着重要的角色,目前对于单机游戏的设计与开发比较多,多人在线3D网络游戏涉及的相对较少.本文结合网络通信原理,以Unity3D为基础,采用MVC架构,设计并实现了多人在线动作角色扮演...

    重视网络文化提升和谐安全网络软实力.docx

    一、网络文化产业发展现状及问题分析 在城市文化软实力建设中,网络文化不只是城市文化建设与管理的目标和对象,更重要还在于它对网络时代城市文化发展模式的提升。因此,城市文化软实力建设要充分适应网络文化的...

    服务器监控及性能优化.pptx

    目录 MMO游戏的常用架构 服务器系统及应用健康监控体系 游戏内常用的效率分析及对应的优化手段 与其他互联网产品的互通性思考 Q&A 环节 服务器监控及性能优化全文共27页,当前为第2页。 MMO游戏的常用架构 架构和...

    java开源包1

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包10

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    Java资源包01

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    vc++ 开发实例源码包

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    非线性系统手册原书第5版混沌,分形,元胞自动机,遗传算法,基因表达式编程,支持向量机,小波,隐马尔可夫模型,模糊逻辑与C 、JAVA和SymbolicC 程序

    第1章介绍一维、二维的非线性混沌映射,第2章介绍时间序列分析,第3章介绍平面自治系统,第4章介绍非线性哈密顿系统,第5章介绍非线性耗散系统,第6章介绍非线性动力学系统,第7章介绍混沌控制,第8章介绍混沌同步性...

    java开源包11

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包2

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包3

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包6

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包5

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java开源包4

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包8

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

Global site tag (gtag.js) - Google Analytics