编辑“︁
RolePlayingDesign
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
==Delta<sup>2</sup> 感知算法== DPA 背后的想法是避免每次都将所有对象发送给客户端,而只发送那些已修改的对象。 假设我们有 1000 个对象,只有 O1 和 O505 是活动对象,每回合都会修改。 传统方法是: <pre> - 获取玩家应该看到的对象 ( 1000 objects ) - 将它们发送给玩家 ( 1000 objects ) - 下一回合 - 获取玩家应该看到的对象 ( 1000 objects ) - 将它们发送给玩家 - 下一回合 ... </pre> 我希望你已经看出问题了……我们发送的对象每回合都没有改变。 delta感知算法: <pre> - 获取玩家应该看到的对象 ( 1000 objects ) - 将列表缩减为修改后的列表( 1000 objects ) - 同时存储不再可见的对象 ( 0 objects ) - 将它们发送给玩家 ( 1000 objects ) - 下一回合 - 获取玩家应该看到的对象 ( 1000 objects ) - 将列表缩减为修改后的列表 ( 2 objects ) - 同时存储不再可见的对象 ( 0 objects ) - 将它们发送给玩家 ( 2 objects ) - 下一回合 ... </pre> delta 感知算法的下一步非常明确:delta<sup>2</sup> 想法是只发送发生变化的对象。 通过这种方式,我们可以节省更多带宽,使感知大小约为原始增量感知大小的 20%。 delta<sup>2</sup> 算法基于四个容器: * List of added objects * List of modified added attributes of objects * List of modified deleted attributes of objects * List of deleted objects 与 DPA 非常相关的一个领域是 RPZone(请参阅本文档后面部分) 如您所知,MPEG 视频每 X 帧添加一个完整帧,可以用作同步,以防文件损坏。 这个想法是,如果你无法继续解压缩数据,那么可以忽略一些数据,直到获得下一个完整的帧,从而再次同步。 这里的想法是类似的,如果我们无法与服务器同步,我们会向它发送一个 Out of Sync 消息,以便服务器发送一个同步感知,使客户端同步。 请记住,UDP 不是安全传输。 为了让感知起作用,调用 RPZone 中的 modify 方法很重要,这样修改的对象就会存储在修改列表中。
摘要:
请注意,所有对gamedev的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Gamedev:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息