一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

增强现实移动边缘计算的制作方法

2021-11-30 22:03:00 来源:中国专利 TAG:

增强现实移动边缘计算
1.相关申请的交叉引用
2.该申请要求于2019年2月25日提交的申请号62/810,115的美国临时申请的权利,该美国临时申请通过引用并入本文。
技术领域
3.本公开涉及增强现实(ar),并且特别的涉及用于提供低延时共享ar体验的分层布置的网络架构。


背景技术:

4.在平行现实游戏系统中,玩家在至少与真实世界的部分平行的、共享的虚拟世界中经由计算设备交互。玩家在虚拟世界中的位置是基于玩家的真实世界的位置。然而,当动作主要地参考虚拟世界来进行时,虚拟世界可以成为玩家彼此互动的障碍。玩家与虚拟世界交互,使其他玩家看起来遥远或者不真实。因此,即使当许多个体在真实世界的地理区域中游戏时,游戏体验可能感到是个体的而不是社交的。
5.平行现实游戏系统可以使用一个或多个协议以更新虚拟世界的游戏状态,利用该游戏状态玩家交互以反映变化(例如,在游戏中其他玩家的动作的结果)。通信协议(诸如,用户数据报协议(udp))限定用于使用计算机网络来交换数据的规则的系统。udp遵循没有保障数据电文的递送、排序、非重复性的无连接通信模式。计算设备使用udp来通信,以将数据报文经由计算机网络传输到彼此,该数据报文是针对通信的基本单元,每个数据报文包括报头和载荷。
6.无连接通信协议(诸如,udp)通常地比定向连接的通信协议(像传输控制协议(tcp))具有更低开销和延迟,定向连接的通信协议在传送数据之前在计算设备之间建立连接。然而,现有的无连接通信协议不适于针对所要求的比由现有技术适应的更少延迟的数据传送。例如,以60帧每秒(fps)流动的平行现实游戏会话可能要求比由当前技术所提供的延迟更低数量级的延迟。在这样的游戏会话中,帧大约以十六毫秒间隔被间隔排列,然而当前通信协议一般提供大约一百毫秒(或者更多)的延迟。
7.因此,这些现有的无连接通信协议的延迟在玩家和平行现实游戏系统中的虚拟世界之间提供了障碍。通过这些现有通信协议,玩家不能与当前游戏状态交互,仅能与最近的游戏状态交互。例如,在平行现实游戏中,玩家可能在老的位置处看到虚拟对象(例如,其中对象是100毫秒之前的),然而虚拟位置数据实际上针对虚拟对象具有新的位置(例如,虚拟对象已经由另一玩家移动)。该延迟在客户端和托管或协调平行现实游戏的服务器之间通信中可能引起令人沮丧的用户体验。在多于一个用户参与游戏时,该问题可以特别地严重,因为延迟可以使一个玩家的动作在虚拟世界中的其他玩家的视野中显示明显的延时。


技术实现要素:

8.增强现实(ar)系统利用计算机生成的内容补充真实世界的视野。将ar合并到平行
现实游戏可以改善真实和虚拟世界之间的结合。ar也可以通过提供针对玩家参加他们交互共享游戏体验的机会来增加玩家之间的交互性。例如,在坦克战游戏中,玩家可能在真实世界位置的周围驾驶虚拟坦克,尝试摧毁彼此的坦克。在另一示例中,在标签战游戏中,玩家可以尝试利用能量球将彼此标签以得分。
9.常规的ar会话技术涉及游戏服务器,该游戏服务器维护主游戏状态并且周期地经由网络(例如,互联网)将玩家设备的本地游戏状态同步到主游戏状态。然而,同步玩家的本地游戏状态可能占用大量的时间(例如,~100毫秒),这对游戏体验是有害的。玩家实际上是与过去游戏状态交互而不是与当前游戏状态交互。在多于一个用户参与ar游戏时,该问题可以特别地严重,因为延迟使一个玩家的动作在虚拟世界中的其他玩家的视野中显示明显的延时。例如,如果一个玩家在虚拟世界中移动ar对象,其他玩家可能看不到该对象已经移动,直到一百毫秒(或更多)以后,这是人可察觉的延时。如此,另一玩家可能尝试与对象在对象之前的位置交互,并且当游戏针对延迟矫正(例如,通过拒绝实现由玩家要求的动作)时感到懊恼。
10.该问题和其他问题可以通过在网络的边缘节点处(例如,小区塔)执行一些游戏状态处理来解决。因此,游戏状态的计算可以基于真实世界的位置被自然地共享,利用由服务器所维护的主游戏状态提供冲突解决(例如,当连接到附近的小区塔的玩家的动作潜在地彼此干扰)。延迟也可以使用点到点(p2p)协议来减少,该协议在连接到相同边缘节点的客户端之间交换更新,而没有经由游戏服务器来路由更新。例如,使用这些方法,延迟可以被减少到10毫秒或者更少。此外,这可以增加可用的带宽,使更大数量的玩家能够共享共同的ar体验。
11.在一个实施例中,用于由边缘节点提供共享ar体验的方法包括接收来自在边缘节点处客户端的连接请求并且基于连接请求针对客户端来标识共享ar体验。方法还包括针对共享ar体验向客户端提供地图数据和本地游戏状态。边缘节点接收来自客户端的动作请求,该请求指示在共享ar体验中与虚拟项所期望的交互并且基于由边缘节点维护的本地游戏状态来确定动作请求的结果。方法还包括向连接到边缘节点的多个客户端提供结果并且利用由服务器维护的主游戏状态验证结果。在结果初始地被提供到多个客户端后,结果可以被验证。
附图说明
12.图1图示了其中ar内容被提供到客户端的一个网络的计算环境的实施例。
13.图2是根据一个实施例的、适合在图1的网络化的计算环境中使用的数据报文的框图。
14.图3是根据一个实施例的、图示了用于由网络化的计算环境的边缘节点路由数据报文的处理的流程图。图4是根据一个实施例的、图示了图1的小区塔的框图。
15.图5是根据一个实施例的、图示了用于提供共享ar体验的方法的流程图。
16.图6是根据一个实施例的、图示了适合在图1的网络化的计算环境中使用的计算机的示例的框图。
具体实施方式
17.附图和下面的描述仅通过图示的方式描述了某些实施例。本领域的技术人员将容易地从以下描述认识到,在没有偏离所描述的原则的情况下,结构和方法的备选的实施例可以被采用。现在参考将会以多个实施例作出,这些实施例的示例被图示在附图中。在可行的情况下,在图中使用相似或类似的附图标记来表示相似或类似的功能。其中元素共享共同数字,后面跟着不同的字母,则元素是相似或者相同的。数字单独指代这种元素的任何一个或任何组合。虽然下面描述的实施例涉及平行现实游戏,本领域技术人员将认识到所公开的技术可以被用于其他类型的共享ar体验。
18.示例计算环境
19.图1图示了其中ar内容被提供到客户端110的网络化的计算环境的一个实施例。ar内容可以是平行现实游戏的部分,在该平行现实游戏中玩家在共享的虚拟世界中交互,该共享的虚拟世界至少平行于真实世界的部分。在所示出的实施例中,网络化的计算环境包括服务器110、小区塔120、以及两个客户端130。虽然为了方便仅两个客户端130被示出,在实践中,更多(例如,数十或者数百的)客户端130可以被连接到小区塔120。在其他实施例,网络化的计算环境可以包括不同的或者附加的组件。例如,网络的计算环境可以是使用wifi路由器作为边缘节点的局域网(lan),而不是小区塔120。另外,功能可以与所描述相比不同的方式分布在元素之间。
20.服务器110是在通信网络中向客户端130的一个或多个计算设备提供服务。服务器110经由边缘通信网络小区塔的边缘节点(例如,小区塔120)与客户端130通信。在一个实施例中,服务器130维护针对平行现实游戏的主游戏状态,即平行现实游戏的最终的真实数据状态。在该上下文中,主游戏状态相当于真实数据状态,因为其中冲突在主游戏状态和本地游戏状态之间产生时,主游戏状态统治游戏状态。这可以在其中两个本地游戏状态(例如,两个本地游戏状态由在网络中相邻的小区塔维护)对应于重叠地理区域时特别地有用。因此,在连接到不同的ar会话时,连接到两个小区塔120的设备可以与相同的游戏内容(在主游戏状态中)交互。
21.小区塔120是边缘节点,客户端110经由该边缘节点连接到通信网络。如上文所描述的,计算机网络可以包括除小区塔120之外或者替换小区塔120但是允许相似通信的其他边缘节点。在一个实施例中,小区塔包括被配置为存储ar数据并且向所连接的客户端130的一个或多个计算设备提供ar服务。因为客户端130相对地位于靠近小区塔并且直接连接到小区塔,在提供数据和服务到客户端中的滞后时间与针对服务器110的滞后时间相比可以显著地更短。参考图4,小区塔120的各种实施例在以下被更详细地描述。
22.客户端130是计算设备,诸如个人计算机,笔记本,平板计算机,智能电话等。在涉及平行现实游戏的实施例中,客户端130通常是具有连接到或者内置照相机并且玩家可以易于携带的智能电话或者平板计算机。客户端(例如,客户端130a)可以通过将p2p消息发送到小区塔120通信,该小区塔将消息转发到其他连接到相同小区塔的客户端(例如,客户端130b)。客户端130也可以通过将消息发送到服务器110(经由小区塔120)该服务器转而将消息转发到接收者来与另一客户端通信。例如,以这种方式,客户端130a可以将消息发送到另一客户端130b,该客户端连接到不同小区塔120或者服务器110。
23.在一个实施例中,客户端通信可以通过服务器110或者点对点(p2p)来路由。通过
服务器110被路由的通信可以经由小区塔120从第一客户端130a去到服务器110,并且然后通过小区塔120回到第二客户端130b。相反,p2p通信可以从第一客户端130a去到小区塔120,并且然后直接到第二客户端130b。注意在一些情况中,通信可以穿过其他中间设备(或者节点),诸如信号放大器。如本文中所用的,如果通信被从发送客户端130a被路由到目标客户端130b而没有穿过服务器110,则通信被认为是p2p。这可以通过在通信被发送到目标客户端130b之前绕过将通信发送到服务器110的需要来减少延迟。例如,如果目标客户端130b被连接到与发送客户端130a相同的小区塔120,消息(例如,数据报文)可以被以p2p发送,否则消息可能经由服务器110被路由。在另一实施例中,客户端130完全地使用p2p通信。
24.在一个实施例中,客户端130使用协调服务(例如,在服务器处托管并且经由tcp来通信)以同步ip地址。客户端130因此可以使用面向公共ip地址或局域网(lan)通信(例如,经由udp)。例如,第一客户端130a可以经由tcp将请求发送到协调服务以加入本地ar共享体验。协调服务可以利用连接到提供ar体验的ar会话的第二客户端130b的ip地址来提供第一客户端130a(例如,经由相同的小区塔120)。协调服务器也可以向第二客户端130b提供第一客户端的ip地址,或者第一客户端可以使用第二客户端的ip地址(如由协调服务器所提供的)直接提供它。在一些实施例中,在第二客户端的ip地址被提供之前,协调服务器可以提示第二客户端130b以批准第一客户端130a(例如,通过请求用户确认或者检查所批准的客户端130的列表以与第二客户端130b连接)。
25.在其他的优点中,以图1所示的方式构造网络计算环境能够实现计算的有效分布。信息可以被在具有短滞后时间的客户端130之间被p2p交换,允许玩家以应当在真实世界中交互相似的方式在共享ar体验中交互。相似地,小区塔120可以确定向客户端130提供什么地图数据并且同步所连接的客户端之间的游戏状态。小区塔120可以以比与利用服务器110全局地同步相同的状态相比更少的延迟来同步游戏状态。服务器110可以然后被用以处理更长期的处理并且解决冲突。例如,服务器110可以管理在地理区域之间的由不同小区塔120处理的连接,双重检查由小区塔做出的决定(并且如果需要,做出纠正),执行附加的安全检查,分析从客户端130接收的数据以检测欺骗,维护全局数据(例如,针对大于单个小区塔的覆盖范围的区域的总队得分)。
26.示例p2p协议
27.图2图示了一个适用于在图1的网络化的计算环境中使用的数据报文200的实施例。如之前所描述的,数据报文200是针对通信的基本单元。在实施例中示出的,数据报文200包括载荷202和报头204,后者包括p2p标志206,又称为指示符。报头204是指定数据报文200的各个方面的元数据(诸如源端口、目的端口、数据报文200的长度、以及数据报文200的校验和)。载荷202是通过数据报文200来通信的数据。在其他实施例中,数据报文200可以包括不同的或附加的元素。
28.载荷202包括数据报文200的内容,该内容旨在用于递送到接收客户端或者客户端130。在一个实施例中,报头204可以是与具有附加的p2p标志206的udp头相似。报头204可以包含附加的元数据。p2p标志206被用以确定节点是否数据报文被发送到服务器120或者被p2p发送到另一客户端130。在其他实施例中,p2p标志206被在提供相似功能的报头内的一个或多个其他指示符代替。
29.图3是根据一个实施例,图示了用于在网络边缘节点处(例如,小区塔120)使用p2p
通信协议的流程的流程图。在图3中,小区塔120从客户端130a接收305数据报文200。小区塔120分析310数据报文200以确定其是否应该p2p或经由服务器110发送。在一个实施例中,p2p标志206指示数据报文200是p2p消息,并且小区塔120将数据报文200发送325到连接到客户端130a的一个或多个客户端130。例如,如果数据报文200的报头204指示目的端口是客户端130b,小区塔120将数据报文200发送315到客户端130b。备选地,小区塔可以维护所连接的客户端130的列表,该列表中的客户端参与本地ar会话并且将数据报文200发送315到参与本地ar会话的所有客户端130(或者客户端的子集,诸如那些对应于玩家的队友的客户端)。相反地,如果p2p标志206指示数据报文200是直接到服务器110,小区塔120将数据报文200发送320到服务器110。
30.在另一实施例中,发送客户端130a可以设置p2p标志206以指示如果可能,数据报文200应当被p2p发送。小区塔120接收305并且分析310数据报文200,并且,假设p2p标志206指示数据报文200应当被p2p发送,确定目标客户端130b当前是否连接到小区塔120(例如,通过将目标客户端130b的标识符与当前连接到客户端130的列表比较)。如果目标客户端130b是连接到小区塔120,小区塔120将数据报文200直接地发送315到目标客户端130b,而不是经由服务器110去。相反,如果目标客户端130b没有被连接到小区塔120,小区塔120将数据报文发送320到服务器110,以被发送到目标客户端130b上(例如,经由目标客户端130b当前所连接的第二小区塔120)。例如,服务器110可能维护数据库或者其他列表,该列表是小区塔120当前或者最近连接到哪些客户端设备130的列表。在一些实施例中,小区塔120可以将数据报文200发送到目标客户端130b和服务器110两者。
31.在其他实施例中,p2p标志206可以是实体(诸如,ar会话、用户、设备、游戏账号等)的标识符。小区塔维护p2p标志206的列表,针对该列表数据报文200应当被p2p发送(或者如果可能,p2p)。小区塔120接收305并且分析310数据报文200以确定其是否应当经由服务器110或p2p发送。如果p2p标志206包括在列表上的实体的标识符,数据报文200是p2p消息并且小区塔将数据包200发送315到与标识的实体相关联的一个或多个客户端130b。例如,如果数据报文200的报头204包括目标客户端130b的标识符,小区塔120将数据报文200发送315到目标客户端130b。为了给出其他示例,如果p2p标志206标识ar会话,数据报文200被发送到所有连接到该会话的客户端130,并且如果p2p标志是游戏账号,数据报文被发送到与该游戏账号相关联的一个或多个客户端等。相反地,如果p2p标志206标识不在列表上的实体,小区塔120将p2p标志206发送320到服务器110,以被转发到与实体相关联的客户端130。备选地,列表可以针对不被p2p发送的消息来指示p2p标志206,在这种情况下,如果p2p标志206不在列表上,默认的行为是p2p发送对应的数据报文到目标客户端130b。
32.示例边缘节点
33.图4图示了在通信网络中的边缘节点的一个实施例。在所示出的实施例中,边缘节点是小区塔120,该小区塔包括路由模块410、数据提取模块420、ar会话模块430、地图处理模块440、权限检查模块450、以及本地数据存储460。小区塔120也包括用于建立到用于交换数据的服务器110和客户端130的连接的硬件和固件或者软件(未示出)。例如,小区塔120可以经由光纤或者其他有线互联网连接到服务器110并且使用无线连接(例如,4g或者5g)连接到客户端130。在其他实施例,小区塔可以包括不同的或附加的部件。此外,功能可以以与所描述的不同方式在元素之间分布。
34.路由模块410接收数据分组并且将这些分组发送到一个或多个接收设备。在一个实施例中,路由模块从客户端130接收数据报文200并且使用之前参考图3所描述的方法以决定将所接收的数据报文发送到的地点。路由模块410也可以从服务器接收数据包,该数据包寻址到特定的客户端130或者连接到小区塔120的所有客户端。路由模块410将数据包转发到客户端130,数据分组被寻址到该客户端130。
35.数据提取模块420从一个或多个源接收数据,小区塔120使用该源以经由所连接的客户端130向玩家提供共享ar体验。在一个实施例中,数据提取模块420接收关于真实世界情况(例如,从第三方服务)的实时或者基本上的实时信息。例如,数据提取模块420可能周期性地(例如,每小时地)从天气服务接收天气信息,该天气信息指示小区塔120周围在地理区域中天气情况。作为另一示例,数据提取模块420可能检索针对公园、博物馆、或者其他公共空间的开放时间。作为又一实施例,数据提取模块420可以接收交通数据,该交通数据指示小区塔120周围的地理区域中多少车辆正在路上运动。这样的关于真实世界情况的信息可以被用以提高虚拟世界和真实世界之间的协同。
36.ar会话模块430管理ar会话,在ar会话中玩家在小区塔120周围的地理区域中可以参与共享ar体验。在一个实施例中,当执行ar游戏时客户端130连接到小区塔120,并且ar会话模块430将客户端130连接到针对游戏的ar会话。所有连接到小区塔120的玩家可以共享单独的ar会话或者玩家可以在多个ar会话之间被分开。例如,在特定的ar会话中可以存在最多的数目的玩家(例如,十、二十、一百等)。其中存储在多个ar会话,最近连接的客户端130可以被随机地放置在会话中或者客户端130可以提供用户接口(ui)以使玩家能够选择哪个会话以加入。因此,玩家可以选择与朋友参与ar会话。在一些实施例中,玩家可以建立访问被保护的(例如,需要密码或代码以加入)的私人ar会话。
37.在各种实施例中,使ar对象能够似乎与真实世界的特征交互(例如,跳过障碍物而不是穿过他们),ar会话模块430向所连接的客户端提供地图数据,该地图数据表示在客户端附近的真实世界(例如,存储在本地数据存储460中)。ar会话模块430可以接收针对客户端130的本地数据(例如,gps位置)并且提供针对客户端周围地理区域(例如,在客户端的当前位置的阈值距离之内)的地图数据。
38.地图数据可以包括一个或多个不同类型的真实世界的表示。例如,地图数据可以包括点云模型、平面匹配模型、线匹配模型、地理信息系统(gis)模型、建筑物识别模型、以及景观识别模型等。地图数据可以包括多于一个的、以不同的细节级别的给定类型的表示。例如,地图数据可以包括两个或多个点云模型,每个点云模型包括不同数目的点。
39.客户端130可以将地图数据与由客户端130上的一个或多个传感器所收集的数据相比较以细化客户端的位置。例如,通过将在客户端130上由照相机所捕捉的图像映射到点云模型,客户端的位置和方向可以被精确地确定(例如,以在一厘米和0.1度之内)。客户端130将所确定的位置和定向与由玩家所做出的动作(例如,射击、选择虚拟项以交互、丢弃虚拟项等)一起提供回到ar会话模块430。因此,ar会话模块430可以针对所有参与ar会话的玩家更新游戏的状态以精确地反映在ar会话中玩家的位置。
40.地图处理模块440基于当前情况(例如,来自数据提取模块420的数据)来更新地图数据。因为真实世界不是静止的,在本地数据存储460中的地图数据可能不表示当前真实世界的情况。例如,在佛蒙特州中的相同的公园小路在不同季节中可以看起来非常不同。在夏
季中,小路可以是清晰的并且周围的树覆盖着树叶。相反地,在冬季中,小路可以是被积雪阻塞的并且树是秃的。地图处理模块440可以将地图数据转换到近似这样的变化。
41.在一个实施例中,地图处理模块440检索当前情况数据以标识转换并且将该转换应用到地图数据。针对不同情况的转换可以由常识、采用所训练的机器学习模型的形式、或者使用两者的结合来限定。例如,地图处理模块440可以接收当前天气情况数据,选择针对当前天气情况的转换,并且将该转换应用到地图数据。备选地,地图处理模块440可以预计算所转换的地图并且存储所转换的地图(例如,在本地数据存储460中)。在该情况中,当客户端130连接到小区塔120,地图处理模块440确定当前情况,选择适当的地图数据的预计算版本,并且向客户端130该版本。
42.权限检查模块450维护在不同的客户端130的游戏状态之间的同步。在一个实施例中,权限检查模块450确认从客户端130所接收的游戏动作是与由ar会话模块430维护的游戏状态一致。例如,如果两个玩家都尝试捡起游戏中同一的项,权限检查模块决定哪个玩家接收项(例如,基于与请求相关联的时间戳)。如所描述的,p2p协议的使用以及在小区塔120处的本地处理可以通过直接向其他玩家的客户端130提供由玩家所请求的动作(例如,捕捉虚拟对象)的结果来显著地减少在ar会话期间在其他玩家的客户端130处看到玩家的动作的延迟。因此,在动作之间产生的并且被权限检查模块450所解决的冲突的实例的可能性(和数目)被减少并且ar体验被改善。
43.权限检查模块450也可以维护它的游戏状态本地副本与由服务器110维护的主游戏状态之间的同步。在一个实施例中,权限检查模块450周期性地(例如,每一到十秒钟)接收关于来自服务器110的游戏状态的全局更新。权限检查模块450将这些更新与游戏状态的本地副本相比较并且解决任何差异。例如,如果玩家的捡起项的请求初始地由权限模块450批准,但是来自服务器110的游戏更新指示在玩家尝试捡起该项之前,该项被另一玩家捡起(或其他方式使得项不可用),权限检查模块450可以将指示项应当从玩家的库存中移除的更新发送到玩家的客户端130。
44.该处理可以针对位于接近由不同小区塔120所提供的覆盖之间的边界的客户端130来提供价值。在该情况中,连接到不同的小区塔120的玩家两者可以与相同的虚拟元素交互。因此,每个个体小区塔120可能初始地批准与元素冲突的交互,但是服务器110将检测冲突并且发送更新以解决冲突(例如,指示小区塔120中的一个小区塔以撤销它的动作的最初批准并且相应地更新它的本地游戏状态)。
45.本地数据存储460是被配置以存储由小区塔120使用的数据的一个或多个非暂态计算机可读介质。在一个实施例中,所存储的数据可以包括地图数据、当前情况数据、当前地所连接的客户端130的列表、p2p标志的列表、针对地理区域的游戏状态的本地拷贝等。虽然本地存储460被以单独实体示出,数据可以被跨多个存储介质被拆分。此外,一些数据可以被存储在通信网络的其他地方并且远程地访问。例如,小区塔120可以根据需要远程地访问当前情况数据(例如,从第三方服务器)。
46.示例方法
47.图5图示了根据一个实施例来提供共享ar体验的方法500。图5的步骤从执行方法500的边缘节点(例如,小区塔120)视角被图示。然而,步骤的一些或者所有步骤可以由其他实体或组件执行。另外,一些实施例可以并行地执行步骤、以不同顺序执行步骤、或者执行
不同的步骤。
48.在图5中所示出的实施例中,方法500利用小区塔120接收510来自客户端130的连接请求开始。连接请求可以包括客户端130的标识符的一个或多个标识符、游戏的标识符、玩家标识符(例如,用户名)、针对客户端130的当前位置数据(例如,gps位置)等。连接请求可以被拆分到多于一个的部分中。例如,客户端130可以首先建立与小区塔120的通信信道并且然后在客户端130上执行的ar游戏可以发送请求以加入共享ar会话以提供共享ar体验。
49.小区塔120针对客户端130标识520共享ar会话。特定的共享ar会话可以基于在客户端130上的特定ar游戏执行被选择,关于玩家的信息(例如,小区塔可以偏向连接具有他们的联系方式的玩家或者其他具有相似游戏中简档的玩家等),已经连接到正在进行的ar会话的玩家的数目等。在一个实施例中,客户端130标识哪个共享ar会话以加入(例如,基于玩家输入),该共享会话与小区塔120通信。注意,在某些情况下,仅单独的共享ar会话是可用的。在该情况中,小区塔120可以自动地将客户端130连接到该共享会话。
50.小区塔120向客户端130提供530针对共享ar会话的地图数据和本地游戏状态。在一个实施例中,小区塔使用从客户端130所接收的位置数据(例如,gps数据)以标识可用的地图数据的子集以提供550到客户端。例如,小区塔120可以提供在客户端130的阈值距离之内的描述真实世界位置的地图数据。如之前所描述的,地图数据可以包括表示客户端130周围真实世界地理区域的一个或多个模型。客户端130使用地图数据以在共享ar会话之内定位客户端130并且基于本地游戏状态来呈现包括ar内容(例如,虚拟项、生物、符号等)的ar体验。
51.小区塔120接收540来自客户端130的动作请求。动作请求可以表示在玩家和ar体验中的内容之间的任何所期望的交互(诸如,虚拟项,虚拟角色,虚拟生物,或者其他玩家)。例如,玩家可以期望:捡起虚拟项、丢弃虚拟项、使用虚拟项、与虚拟项交互、与虚拟角色谈话、攻击虚拟生物、攻击另一玩家等。本领域技术人员将认识到取决于特定的ar游戏的性质,大范围的可能动作可以被执行。
52.小区塔120基于游戏状态请求来确定550针对动作的结果。取决于特定的动作,结果可以是基于具有各种复杂水平的一系列规则。例如,如果动作是捡起虚拟项,动作可以简单地成功除非小区塔确定另一玩家已经捡起、移动、或者摧毁该项。如之前所注意的,由于使用所公开的技术成功减少延迟,这可能是罕见发生的。相反地,如果动作是攻击虚拟生物,结果可以是基于计算和虚拟死亡角色集。本领域的技术人员将认识到大范围的可能的规则集和方式可以被使用以确定动作的结果。
53.小区塔120向所连接的客户端130提供560动作的结果。在一个实施例中,小区塔120将结果提供到所有连接到ar会话的客户端。在另一实施例中,小区塔120仅向执行动作的玩家的真实世界距离阈值(例如,一百米)之内的这些客户端提供结果。由于所公开的技术导致的延迟是相当地低的(例如,十微秒或者更少),玩家可以体验基本上实时的动作结果。因此,玩家可以产生他们在共享ar体验中直接彼此交互的印象。
54.小区塔120利用由服务器110维护的主游戏状态验证570动作的结果。在一些实施例中,小区塔120将指示发送到服务器110以更新主游戏状态,该主游戏状态反映任何玩家在其本地游戏状态中所采取的动作,所提供的动作在主游戏状态的视角下被证明有效。在
一个实施例中,小区塔120周期性地(例如,每一到十秒钟)验证它的本地游戏状态与主游戏状态相一致。如先前所描述的,这可能在小区塔120所覆盖的区域的边缘处特别地有用,以处理其中连接到不同小区塔120的玩家的动作可能彼此干扰的情况。如果在本地游戏数据状态和主游戏状态之间的差异被检测到,小区塔120可以将更新推送到所连接的客户端130以将他们的游戏状态同步到主状态。此外,在一些实施例中,小区塔120可以将动作和它的结果发送到用于验证的服务器,并且如果服务器指示该结果与主游戏状态冲突,小区塔120更新本地游戏状态以撤销结果。
55.计算系统示例
56.图6是根据实施例图示了适用于在图1中所示出的网络的计算环境100之内的示例计算机600的高级框图。示例计算机600包括至少一个耦合到芯片集604的处理器602。为了方便,处理器602指代单个实体,但是应当被理解,对应的功能可以分布在多个使用多种方法的处理器之间(包括使用多核处理器),将特定的操作分配到专门的处理器(例如,图形处理单元),并且跨分布式计算环境划分操作。任何对处理器602的参考应当被解释包括这样的架构。
57.芯片集604包括存储器控制器集线器620和输入/输出(i/o)控制器集线器622。存储器606和图形适配器612被耦合到存储器控制器集线器620,并且显示器618被耦合到图形适配器612。存储设备608、键盘610、指向设备614、以及网络适配器616被耦合到i/o控制器集线器622。其他计算机600的实施例具有不同的架构。
58.在图6示出的实施例中,存储设备608是非暂态计算机可读存储介质(诸如硬盘、光盘只读存储器(cd

rom)、dvd、或者固态存储设备)。存储器606保存由处理器602使用的指令和数据。指向设备614是鼠标、轨迹球、触摸屏、或者其他类型的定点设备,并且与键盘610组合使用(其可以是屏幕键盘)以将数据输入到计算机系统600中。图形适配器612在显示器618上显示图像和其他信息。网络适配器616将计算机系统600耦合到一个或多个计算机网络。
59.由图1中实体所使用的计算机的类型可以取决于实施例和实体所需要的处理能力来变化。例如,处理器110可能包括多个服务器共同工作以提供所描述的功能的分布式数据库系统。此外,计算机可以缺少一些上面所描述的部件(诸如,键盘610、图像处理器612、以及显示器618)。
60.附加的考虑因素
61.上面的描述的部分描述了在算法处理或者操作的方面的实施例。这些算法描述和表示是数据处理领域中技术人员通常使用的,以有效地将他们工作的实质传达到本领域的其他技术人员。当从功能上、计算上、或者逻辑上描述这些操作时,其被理解为由计算机程序实现,该计算机程序包括用于由处理器或其他等同的电路、微代码等执行的指令。此外,在不丧失一般性的情况下,将这些功能操作安排称为模块有时也被证明是方便的。
62.如本文中所使用的,任何涉及“一个实施例”或“一实施例”意味着与被包括在至少一个实施例中的实施例相关联的特定的元素、特征、结构、或者特性。在说明书中的不同位置的出现的短语“在一个实施例中”不必然指代相同的实施例。
63.一些实施例可以使用表达“耦合”和“连接”和他们的派生词来描述。应当被理解,这些术语不旨在彼此作为同义词。例如,一些实施例可以使用术语“连接”来描述,以指示两
个或多个元素是彼此直接物理或者电接触的。在另一实施例中,一些实施例可以使用术语“耦合”来描述,以指示两个或多个元素是直接物理或电接触。然而,术语“耦合”也可以意味着两个或多个元素不是直接相互接触,但是还是协作或者彼此交互。实施例不限于该上下文。
64.如本文中所使用的,术语“包括”、“包含”、“涵盖”、“含有”、“具有”、“拥有”或者任何其他他们的变型旨在覆盖非排他的包括。例如,包括元素的列表的过程、方法、制品、或者装置该列表不必然限于这些元素,而是可以包括没有明确列出的或者这种流程、方法、制品、或者装置固有的其他元素。此外,除非明确载明相反,“或者”指代包含的或者,而不是排他性的或者。例如,条件a或b由以下任一项满足:a为真(或者存在)并且b为假(或者不存在),a为假(或者不存在)并且b为真(或者存在),a和b都为真(或者存在)。
65.另外,“一”或者“一个”的使用被采用以描述实施例的元素和组件。这仅是为了方便,并且给出公开的普遍含义。本说明书应当被理解为包括一个或者至少一个,并且单数也包括复数,除非其明显另有含义。
66.最后,虽然特定的实施例和应用已经被图示和描述了,但是应当理解,这些实施例是说明性的。对于本领域技术人员来说,对所公开示例的各种修改、改变和变化是明显的。因此,不应当认为所公开的实施例限制了保护范围。相反,保护范围应当仅限于以下权利要求。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献