全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于两款游戏的自动寻路及同步技术分析报告测试环境同PC机,双开不同角色的客户端测试目的得到现在市场上主流游戏的自动寻路和玩家同步的实现方式的技术分析。前提分析首先,需要说明几点,游戏中位置信息的同步,其实质是在同步时间。根据T=S/V的公式我们可知,事实上我要需要不同客户端上的角色移动在相同的时间内完成同一事件,那么我们一旦因为延迟造成不同客户端的角色位置差异就要通过更改2点来实现弥补。 1) 一是改变S,即不同客户端上同一角色在执行一个移动事件时,所行走的路程不同。即,在不同客户端产生位移差距后,我们通过改变落后,或者置前的客户端玩家所走的路程来实现位移弥补。实现该思路必须解决的问题就是:因为自动寻路是根据A星算法得出,因此所走的路线才不可能与碰撞体相撞。而一旦我们通过改变S来实现同步的话,必然会使玩家所走的路线有所不同。因此表现为:本地客户端在模拟网络玩家的移动的时候,一旦改变了路线,就可能让角色与碰撞体相撞。也可以使模拟的角色产生瞬移来模拟,该方法一般是出现在角色位置信息差距较大的时候。2) 二是改变V,即所走的路线完全是有该角色的本地客户端所计算出来,通过服务器传输给不同的客户端模拟,而网络延时所造成的位移差,只有通过不同的速度来使角色基本在同一时间完成同一个寻路事件。(本方法也就是我所提出的方案,即天龙八部所采用的方式)。表现为:玩家移动时的速度可能根据不同的网路延时而改变。另外也可以采取低阀值的位移模拟,一旦网路卡住则停下,等待新的数据到来再进行移动。表现为:角色的移动过程中会出现大量停顿。具体游戏分析1. 蜀门游戏类型:蜀门是一款2.5D的武侠风MMORPG类游戏。游戏中的角色同步的分析首先,经过2个不同角色的分析,发现该游戏的同步具有以下几个特点: 本地客户端先行模拟。即不论本地客户端的位移信息是否需要服务器的反馈,系统都是先默认让本地客户端的角色先行执行移动。表现为:点击移动之后无论网路是否延迟,都将瞬间执行移动。优点:可以让本地用户的角色移动异常流畅,丝毫不受网络的影响,带给用户流畅的游戏操作感。缺点:因为此方式的前提是先默认本地客户端所计算出的位移信息是完全正确的。因此可能带来一些用户先行模拟而进行了一些非法的操作的问题。如果要避免速度外挂所带来的问题,则需要服务器端对发送过来的信息进行严格验证。 游戏中本地客户端模拟网络玩家的运动时,网络玩家的移动速度并没有出现改变,而采用的是移动过程中不断停顿的方式来实现的移动模拟。当与正确的位移信息差异过大时候,采取瞬移的方式来纠正位移。游戏中角色所走的路线完全不同。即我发现当网路相当卡的时候,本地玩家角色进行了2次寻路事件,而同角色的网络玩家角色的模拟只执行了一次寻路事件,但基本保障了执行完事件后玩家所在的位置是相同的,但是因为所走的路线不同,所以有可能会造成穿越碰撞体的事件。除非在模拟之前,网络角色所在的客户端也进行了一次A星算法。最后,我找了一个碰撞体,并切针对带碰撞的自动寻路进行了观察,发现2个客户端针对同一个寻路事件,皆进行了A星算法,因此才造成的2个客户端角色所行走的路程不同。本地客户端走的路线如图1.1,另一客户端看到该角色所走的路线为图1.2。因为S不同,V相同,则可知,2个客户端所完成寻路事件的时间是不相同的。但是可被控制到一定的范围。 图1.1 图1.2总结:由于该游戏采用的是V不变,而多种方法改变S的方式来实现移动同步,因此游戏画面中会出现闪现,行走路线完全不同,开始和完成寻路事件的时间完全不同。网络角色的开始移动模拟与本地客户端的开始移动之间的间隔大约在1-10+秒左右,取决与网络速度。因此可确定该方法的实现思路如下:1. 该游戏采取的方式并非是路点信息的传输来实现的。2. 对于网络角色的移动模拟,采用了2种方式,一是当移动不涉及碰撞体,或者不可行走区域时,我们采用了直接直线行走的方式,未完成的寻路就需要改变时,直接改变目标皆可。(这点可采用射线检测的方法来判断是否需要A星算法),当需要使用A星算法时,网络角色的模拟采用的是只需要知道目标点,具体的路线由需要模拟该网络角色的本地客户端承担计算。因为野外地图发生碰撞的可能行比较小,再加上只计算同屏的玩家的位置模拟,因此客户端能承担。也因为如此才会使2个客户端之间的路程产生不同。估计实现该效果的服务器通信数据结构应为:Send(CurPos,TargPos);/该角色的本地客户端向数据库发送消息Recved(CurPos,TargPos);/与该玩家所在同屏列表中其他玩家的客户端收到服务器发来的消息结构If(IsNeedA*()/先得到要去这个目的地,是否需要A*算法 直接向目标走去else 从新计算本地所绘制的角色的当前位置到目标位置的A*路径根据路径向目标走去3. 因为同屏显示多个玩家角色,如果都需要进行A*的话,就必须对各个角色的A*进行需求排序,单独开辟一个A*线程来实现。4. 该算法的前提是可以在一定范围内允许不同用户的同一角色可以在不同时间内完成寻路事件。2. 天龙八部游戏类型:天龙八部也是一款2.5D的武侠风MMORPG类游戏。游戏中的角色同步的分析首先,经过2个不同角色的分析,发现该游戏的同步具有以下几个特点: 同样是本地客户端先行模拟。 游戏中本地客户端模拟网络玩家的运动时,网络玩家的移动速度出现了很大的变化,本地玩家角色(A)的每一次寻路操作都会引发其他能看到A的客户端(B)所绘制的A角色的移动。由此可知,该游戏是采用的目标为任务索引的方式完成同步。即玩家A每操作一次寻路,玩家B都会收到本次操作的目标,并加入任务队列中,每个移动任务都会被玩家B的客户端执行,并且以加速的方式实现在一定时间范围内的同步效果。同样,当与正确的位移信息差异过大时候,采取瞬移的方式来纠正位移。时间:玩家A时间:玩家B所绘制的A*由上图可知:A*在执行该移动事件的时候一共所花费的时间要远小于A的时间。但是由于A*是由任务驱动的,则可知A和A*所走的路程完全一致,根据V=S/T, A*得速度要小于A。游戏中角色所走的路线完全一致。 T1 T1* T2 T2* 图1.1 图1.2从时间上来说,T1=T1* ,并且T2=T2*。取决于网络速度。总结:由于该游戏采用的是尽量使S不变,而多种方法改变V的方式来实现移动同步,因此游戏画面中会出现角色速度的改变,但是被控制到一定范围内。当位置差距较大,则采用瞬移的方式维护同步。因此可确定该方法的实现思路如下:1.该游戏采取的方式是采用了路点信息的传输来实现的。所有的寻路节点信息都由本地客户端计算出并通过服务器广播给其他客户端。减轻了其他客户端的计算负担。2.对于网络角色的移动模拟, 在保持2个客户端移动相同的情况下,以速度补时间的方式来实现。较适用于对同步要求较高,画面流畅性较高的游戏。对于PK系统比较重要的游戏来说,位置的同步非常的关键,这也是调节手感、走位等等因素必备的条件。而采用这种方式,极大的保留了位置信息的准确性。在网络正常(不会掉包)的情况下,每一个玩家角色A的操作都会给另外的客户端上的角色A*的位置改变。极大的保留了PK系统的准确性。总结:对于不同的游戏需求采取不同的方式。 当对玩家某一时刻的位置要求不需要精确时,可采用方案一,优点是:客户端服
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自然保护区电子教案
- 博物馆展品管理与文化传承方案
- 初三语文学习计划11篇
- 互联网医院AI糖尿病管理平台的运营实践
- 乙肝肝硬化的个体化抗病毒治疗决策
- 马来西亚项目市场分析报告-课件
- 数学与应用数学专业毕业论文标题
- 师范大学自考汉语言文学毕业论文参考选题
- 湖南省房屋建筑和市政基础设施工程“机器管招投标”模块化招标文件示范文本(施工)(2025年11月版)
- 文献检索题目
- 2025内蒙古呼和浩特春华水务开发集团有限责任公司招聘工作人员84人笔试备考试卷带答案解析
- 健身房开业投资预算方案
- 水稻种子采购合同范本
- 泄密应急处置预案
- 体育室内课《篮球ppt课件》
- 中小学数字校园典型案例展示数字校园专为未来
- 附着式钢管抱杆铁塔组立施工方案
- 中医内科主治医师考试题库及答案解析
- DB44T 1581-2015围手术期术后胃肠动力评价规范
- 设计审美与文化智慧树知到答案章节测试2023年山东科技大学
- 【公开课】高三二轮复习微专题:血糖平衡的调节+课件
评论
0/150
提交评论