使用与验证路径对应的地标图像数据来验证玩家现实世界位置

文档序号:197111 发布日期:2021-11-02 浏览:67次 >En<

阅读说明:本技术 使用与验证路径对应的地标图像数据来验证玩家现实世界位置 (Verifying player real world locations using landmark image data corresponding to verification paths ) 是由 张寒松 于 2019-10-30 设计创作,主要内容包括:一种用于在由服务器托管的平行现实游戏中验证客户端设备位置的方法和系统。客户端向服务器传输其位置,并且接收包括地标和验证路径的验证指令。客户端提示玩家捕获地标的图像数据,并且作为响应,接收来自初始视角的地标的第一组图像数据。客户端在提示玩家在捕获图像数据的同时沿着验证路径移动之前,确定第一组图像数据是否与地标匹配。客户端接收来自移动的视角的地标的第二组图像数据。客户端确定第二组图像数据是否与地标的视角的预期改变匹配。在验证指令完成时,客户端向服务器确认客户端的位置。(A method and system for verifying client device location in a parallel reality game hosted by a server. The client transmits its location to the server and receives a verification instruction including a landmark and a verification path. The client prompts the player to capture image data of the landmark and, in response, receives a first set of image data of the landmark from an initial perspective. The client determines whether the first set of image data matches the landmark before prompting the player to move along the verification path while capturing the image data. The client receives a second set of image data of the landmark from the moving perspective. The client determines whether the second set of image data matches an expected change in perspective of the landmark. Upon completion of the validation instruction, the client confirms the location of the client to the server.)

使用与验证路径对应的地标图像数据来验证玩家现实世界 位置

技术领域

本公开一般涉及基于位置的游戏,并且更具体地涉及作为平行现实游戏的一部分的用于验证玩家的现实世界位置的系统和方法。

背景技术

提供与现实世界的至少一部分平行的共享虚拟世界的平行现实游戏可以托管能够吸引玩家群体的各种交互。提供具有与现实世界至少一部分平行的地理的虚拟世界允许玩家通过在现实世界导航(navigate)来在虚拟世界导航。将虚拟环境中的虚拟元素与现实世界中的现实世界对象、位置和动作链接,可以鼓励玩家行进至并且注意到现实世界中玩家通常会忽略的特征。在虚拟世界中与其对应的现实世界对象和/或位置相同的位置处提供虚拟元素增加虚拟元素是现实世界的隐藏部分的感觉。

平行现实游戏可以包括鼓励玩家在虚拟世界中交互的游戏特征,诸如通过与虚拟世界中的其他玩家进行社交交互以及通过虚拟世界中的各种游戏目标。可以提供某些游戏特征,以将平行虚拟世界与现实世界更紧密地链接。平行现实游戏还可以包括鼓励玩家在现实世界和虚拟世界中同时交互的游戏特征,例如,通过在特定时间和日期在现实世界中所限定的地理区域中聚集在一起,并且当在现实世界中在一起的同时,在虚拟世界中也与彼此交互。

存在使个体能够使计算设备报告其位置为不同于其真实位置的技术,通常被称为“欺骗(spoofing)”该设备的位置。在玩平行现实游戏中使用这样的技术的玩家类似地被称为“欺骗者”。这些玩家可能在这些游戏中引起问题,因为欺骗他们的设备位置使他们能够访问平行虚拟世界中的特征和事件,这些特征和事件旨在限制于特定的现实世界位置,而这些玩家不必在该现实世界位置处物理地在场(physically present)。这可能使努力前往现实世界位置的玩家感到沮丧,并且与规矩玩游戏的其他玩家相比,这可能在游戏中给予欺骗者不公平的优势。欺骗还会降低平行现实游戏对广告方和赞助方的吸引力,因为欺骗者在玩游戏时无需到访任何特定物理位置。例如,对于物理上位于加利福尼亚并且欺骗其设备的位置以使其看起来就像他们位于佛蒙特一样的游戏中的玩家而言,佛蒙特的咖啡店的出现几乎毫无价值。

发明内容

上述和其他问题可以通过使用在玩家移动期间利用其计算设备所捕获的地标的图像数据来验证玩家的现实世界位置来被解决。在与虚拟世界中的位置或对象交互或者接近虚拟世界中的位置或对象时,玩家的客户端设备可以使用现实世界中可用的信息来验证该客户端设备位于对应的现实世界位置或者在该现实世界位置附近。该信息可以是特定于玩家的,或者可以在一组玩家之间共享(例如,团队中的所有玩家、来自特定地理区域的所有玩家、全球的所有玩家等)。

在一个实施例中,用于验证玩家的客户端设备位置的方法和系统利用由客户端设备捕获的图像数据,并且提示玩家沿着验证路径与客户端设备一起移动。验证过程包括:服务器接收客户端设备的位置以及服务器准备针对玩家客户端设备的验证指令。验证指令包括接近现实世界位置的地标和针对客户端设备的验证路径。在客户端设备接收到验证指令时,玩家的客户端设备提示玩家捕获由验证指令指定的地标的初始图像数据(其可以是地标的图片或视频)。玩家的客户端设备可以验证图像数据与地标匹配。然后,客户端设备继续提示玩家与客户端设备一起沿着验证路径移动,同时继续捕获地标的新图像数据。玩家的客户端设备再次验证新捕获的图像数据与地标匹配,并且验证新捕获的图像数据具有与初始图像数据不同的视角。在附加实施例中,客户端设备从一个或多个移动传感器接收移动数据,该移动数据描述该设备沿着验证路径的物理移动。客户端设备可以确定移动数据是否与验证路径匹配。一旦新捕获的图像数据被验证,玩家的客户端设备就可以得出结论,该设备在与访问点对应的现实世界位置。

本公开的其他示例性实现针对用于在基于位置的平行现实游戏中的活动的基础上来验证玩家的玩家现实世界位置的系统、装置、非瞬态计算机可读介质、设备和用户界面(user interface)。

在以下描述中描述了各种实施例的各方面和优点。基于该描述,附加的方面和优点对于本领域技术人员而言是明显的,或者可以通过实施例的实践而变得明显。被并入本说明书并且构成本说明书的一部分的附图示了各种实施例,并且与本说明书一起用于解释相关原理。

附图说明

在说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,该详细讨论参考附图,其中:

图1是根据一个实施例的联网计算环境的框图,在该联网计算环境中可以基于平行现实游戏内的活动来验证玩家的现实世界位置。

图2描绘了根据一个实施例的具有与现实世界平行的地理的虚拟世界的表示。

图3描绘了根据一个实施例的平行现实游戏的示例性游戏界面(gameinterface)。

图4是根据一个实施例的用于将现实世界活动与平行现实游戏链接的方法的服务器-客户端交互图。

图5是根据一个实施例的用于验证玩家的客户端设备现实世界位置的验证过程的图示。

图6是根据一个实施例的用于验证玩家的客户端设备现实世界位置的方法的服务器-客户端交互图。

图7是根据一个实施例的在图6的方法中时的游戏界面的图示。

图8是根据一个实施例的计算设备的示例架构。

具体实施方式

概述

游戏服务器可以托管具有玩家游戏区域的平行现实游戏,该玩家游戏区域包括具有与现实世界地理的至少一部分平行的地理的虚拟环境。玩家可以通过在现实世界中的地理坐标范围导航来在限定虚拟世界中虚拟空间的坐标范围导航。特别地,可以使用例如与可以是移动计算设备的玩家的客户端设备相关联的定位系统(例如,GPS系统)来监视或者跟踪玩家的定位。玩家定位信息可以通过网络被提供给托管平行现实游戏的游戏服务器,并且可以由游戏使用来更新虚拟世界中的玩家位置。因此,当玩家与其客户端设备一起在现实世界中的坐标范围中持续地到处移动时,游戏服务器可以更新,以使得玩家也在平行虚拟世界中的坐标范围中持续地到处移动。

虚拟世界可以包括与现实世界的感兴趣点链接的一个或多个虚拟元素。例如,虚拟世界可以包括与感兴趣点(诸如地标、博物馆、艺术品、图书馆、或者现实世界中的其他感兴趣区域)相关联的各种虚拟元素。与现实世界的感兴趣点链接的虚拟元素可以提供如下幻觉:虚拟世界是现实世界的隐藏维度,玩家可以通过玩平行现实游戏来与虚拟世界交互。例如,当玩家在现实世界中的地理坐标导航时,玩家可以发现在平行虚拟世界中所提供的虚拟元素并且与这些虚拟元素交互。作为平行现实游戏的一部分,各种游戏目标可以鼓励玩家与这些虚拟元素交互。在一些实施例中,游戏服务器可以在现实世界的感兴趣点周围编排平行现实游戏中的虚拟事件。

为了改进现实世界与平行虚拟世界之间的链接,可以将某些游戏特征与现实世界活动(诸如现实世界商业活动或者现实世界数据收集活动)链接,以基于现实世界中的动作来增强虚拟世界中的动作会具有的影响,反之亦然,从而改进平行现实游戏中的用户体验。与现实世界中的商业活动链接的游戏特征可以被包括在平行现实游戏中,使得在玩平行现实游戏时的玩家动作可以鼓励或者激励现实世界中的商业活动。赞助方、广告方、企业和其他实体可以请求将某些游戏特征包括在平行现实游戏中,以增加其企业或其他实体对平行现实游戏的玩家的曝光度。

托管平行现实游戏的游戏服务器可以修改、更新或添加被存储在与平行现实游戏相关联的游戏数据库中的游戏数据,以在平行现实游戏中包括某些游戏特征。访问受控的游戏特征可以被包括,这些访问受控的游戏特征仅对满足某些准则的玩家(例如,在指定位置和时间的特殊事件的门票持有者、已经参与特定促销优惠的玩家、完成了指定的游戏中任务的玩家、或者任何其他可限定的群组)可用。例如,游戏特征可以被链接到现实世界中的事物(例如,现实世界现场事件、现实世界的感兴趣点),使得与虚拟世界中的游戏特征相关联的玩家动作可以引起或者鼓励商业活动。

如前所述,确保欺骗者不能通过欺骗技术来获得对访问受控的游戏特征的访问或者以其他方式在游戏中获得不公平的优势是受期望的。因此,在各个时间(例如,在玩家请求访问访问受控的特征时、在游戏期间定期地、在玩家接近某个位置时等),可以采取附加步骤来验证玩家及其客户端设备实际上在对应的现实世界位置处。在一个实施例中,在玩家沿着由客户端设备上的定位系统提供的位置信息之上的验证路径移动的同时,游戏服务器和客户端设备利用地标的图像数据来协助验证玩家的现实世界位置。这种验证对于欺骗者来说难以愚弄,从而降低了试图愚弄系统的相对投资回报,这转而可以减少欺骗者的数目。因此,可以改进公平地玩游戏的其他玩家的游戏体验。

示例性的基于位置的平行现实游戏系统

平行现实游戏是具有虚拟世界地理的基于位置的游戏,虚拟世界地理与现实世界地理环境的至少一部分平行,使得现实世界中的玩家移动和动作影响虚拟世界中的动作,反之亦然。使用本文所提供的公开,本领域普通技术人员将理解,所描述的主题适用于期望验证用户的位置的其他情形。另外,基于计算机的系统的固有灵活性允许在系统的组件之间和之中的任务和功能性的各种各样的可能的配置、组合和划分。例如,可以使用单个计算设备或跨(例如,被连接在计算机网络中的)多个计算设备来实现根据本公开的各方面的系统和方法。

图1图示了联网计算环境100的一个实施例,其中可以基于平行现实游戏内的活动来验证玩家的现实世界位置。联网计算环境100提供了玩家在具有与现实世界平行的地理的虚拟世界中的交互。特别地,现实世界中的地理区域可以被直接链接或映射到虚拟世界中的对应区域。玩家可以通过移动到现实世界中的各个地理位置来在虚拟世界中到处移动。例如,玩家在现实世界中的定位可以被跟踪,并且被用来更新玩家在虚拟世界中的定位。通常,通过找到玩家通过其来与虚拟世界交互的客户端设备120的位置并且假设玩家处于相同(或者大致相同)的位置,玩家在现实世界中的定位被确定。例如,在各种实施例中,如果现实世界中的玩家的位置在与虚拟世界中的虚拟元素的虚拟位置对应的现实世界位置的阈值距离(例如,十米、二十米等)之内,则玩家可以与虚拟元素交互。为了方便起见,参考“玩家的位置”来描述各种实施例,但是本领域技术人员将理解,这种参考可以是指玩家的客户端设备120的位置。

现在参考图2,其描绘了根据一个实施例的与现实世界200平行的虚拟世界210的概念图,该虚拟世界210可以充当用于平行现实游戏的玩家的游戏板。如所图示的,虚拟世界210可以包括与现实世界200的地理平行的地理。特别地,限定现实世界200中的地理区域或空间的坐标范围被映射到限定虚拟世界210中的虚拟空间的坐标范围。现实世界200中的坐标范围可以与城镇、邻域、城市、园区、场所、国家、大陆、整个地球或者其他地理区域相关联。该地理坐标范围中的每个地理坐标被映射到虚拟世界中的虚拟空间中的对应坐标。

玩家在虚拟世界210中的定位与玩家在现实世界200中的定位对应。例如,位于现实世界200中的定位212的玩家A在虚拟世界210中具有对应的定位222。类似地,位于现实世界中的定位214的玩家B在虚拟世界中具有对应的定位224。当玩家在现实世界中的地理坐标范围中到处移动时,玩家也在限定虚拟世界210中的虚拟空间的坐标范围中到处移动。特别地,当玩家在现实世界中的地理坐标范围导航时,与由玩家携带的移动计算设备相关联的定位系统(例如GPS系统)可以被用来跟踪玩家的定位。与玩家在现实世界200中的定位相关联的数据被用来更新玩家在限定虚拟世界210中的虚拟空间的对应坐标范围中的定位。以该方式,通过简单地在现实世界200的对应地理坐标范围之中行进,而无需在现实世界200中的特定离散位置处签到或定期更新位置信息,玩家可以在限定虚拟世界210中的虚拟空间的坐标范围内导航持续的踪迹。

基于位置的游戏可以包括多个游戏目标,这些游戏目标要求玩家行进至分散在虚拟世界中的各个虚拟位置处的各种虚拟元素和/或虚拟对象、和/或与这些虚拟元素和/或虚拟对象交互。玩家可以通过行进至虚拟元素或对象在现实世界中的对应位置来行进至这些虚拟位置。例如,定位系统可以持续地跟踪玩家位置,使得:当玩家持续地在现实世界导航时,玩家也持续地在平行虚拟世界导航。然后,玩家可以与特定位置处的各种虚拟元素和/或对象交互,以达成或者执行一个或多个游戏目标。

例如,游戏目标可以要求玩家捕获位于虚拟世界210中的各个虚拟位置处的虚拟元素230或者主张虚拟元素230的所有权。这些虚拟元素230可以被链接到现实世界200中的地标、地理位置或者对象240。现实世界地标或对象240可以是艺术品、纪念碑、建筑物、企业、图书馆、博物馆或者其他合适的现实世界地标或对象。为了捕获这些虚拟元素230,玩家必须行进至现实世界中的被链接到虚拟元素230的地标或地理位置240,并且必须执行与虚拟世界210中的虚拟元素230的任何必要的交互。例如,图2的玩家A可能必须行进至现实世界200中的地标240,以便与和该特定地标240链接的虚拟元素230交互或者将其捕获。与虚拟元素230的交互可以要求现实世界中的动作,诸如拍照和/或验证、获取、或者捕获关于与虚拟元素230相关联的地标或对象240的其他信息。在一些实施例中,与虚拟元素230的交互还可以提示验证现实世界200中的玩家的位置与虚拟世界210中的玩家的位置匹配。

游戏目标可以要求玩家使用在基于位置的游戏中由玩家收集的一个或多个虚拟项(item)。例如,玩家可以在虚拟世界210中行进,以寻找对完成游戏目标有用的虚拟项(例如武器、造物、力量提升或者其他项)。这些虚拟项可以通过行进至现实世界200中的不同位置、或者通过在虚拟世界210或现实世界200中完成各种动作而被找到或者被收集。在图2中所示的示例中,玩家使用虚拟项232来捕获一个或多个虚拟元素230。特别地,玩家可以将虚拟项232部署在虚拟世界210中接近虚拟元素230的或者在虚拟元素230内的位置。以该方式部署一个或多个虚拟项232可以引起特定玩家或者特定玩家的团队/阵营捕获虚拟元素230。

在一个特定实现中,作为平行现实游戏的一部分,玩家可能必须搜集虚拟能量。如图2中所描绘的,虚拟能量250可以分散在虚拟世界210中的不同位置处。玩家可以通过行进至虚拟能量250在现实世界200中的对应位置来收集虚拟能量250。虚拟能量250可以被用来为虚拟项充能和/或执行游戏中的各种游戏目标。失去所有虚拟能量250的玩家可以被从游戏断开连接。

根据本公开的各方面,平行现实游戏可以是大型多玩家的基于位置的游戏,其中游戏中的每个参与者共享相同的虚拟世界。玩家可以被划分为分开的团队或阵营,并且可以一起工作以实现一个或多个游戏目标,例如捕获虚拟元素或者主张虚拟元素的所有权。以该方式,平行现实游戏本质上可以是鼓励游戏内的玩家之间的合作的社交游戏。在平行现实游戏期间,来自对立团队的玩家可以彼此对抗地工作(或有时合作以达成共同的目标)。玩家可以使用虚拟项攻击对立团队的玩家或者阻碍对立团队的玩家的进展。在一些情况下,玩家被鼓励在现实世界中的位置处聚集,以进行平行现实游戏中的合作或交互事件。在这些情况下,游戏服务器力图确保玩家确实物理地在场并且没有欺骗。

平行现实游戏可以具有各种特征,以增强和鼓励在平行现实游戏内玩游戏。例如,玩家可以积累能够在整个游戏中被使用的虚拟货币或者另一虚拟奖励(例如,用以购买游戏中的项)。随着玩家完成一个或多个游戏目标并且在游戏内获得经验,玩家可以升级通过各种级别。在一些实施例中,玩家可以通过游戏中所提供的一个或多个通信接口与彼此通信。玩家还可以获取增强的“力量”或者虚拟项,这些增强的“力量”或者虚拟项可以被用来完成游戏内的游戏目标。使用本文所提供的公开,本领域普通技术人员应当理解,在不脱离本公开的范围的情况下,平行现实游戏可以包括各种其他游戏特征。

返回参考图1,联网计算环境100使用客户端-服务器架构,其中游戏服务器110通过网络130与一个或多个客户端120通信,以在客户端120处向玩家提供平行现实游戏。联网计算环境还可以包括其他外部系统,诸如赞助方/广告方系统或企业系统。尽管在图1中仅图示了一个客户端120,但是任何数目的客户端120或者其他外部系统可以通过网络130连接到游戏服务器110。此外,联网计算环境100可以包含不同或附加的元素,并且功能性可以以与下述不同的方式被分布在客户端120与服务器110之间。

游戏服务器110可以是任何计算设备,并且可以包括一个或多个处理器和一个或多个计算机可读介质。计算机可读介质可以存储使处理器执行操作的指令。游戏服务器110可以包括游戏数据库115或者可以与游戏数据库115通信。游戏数据库115存储在平行现实游戏中被使用的游戏数据,该游戏数据要通过网络130被供应或者被提供给(多个)客户端120。

被存储在游戏数据库115中的游戏数据可以包括:(1)与平行现实游戏中的虚拟世界相关联的数据(例如,用于在显示设备上绘制虚拟世界的图像数据、虚拟世界中的位置的地理坐标等);(2)与平行现实游戏的玩家相关联的数据(例如,玩家简档,包括但不限于:玩家信息、玩家经验级别、玩家货币、虚拟世界/现实世界中的当前玩家定位、玩家能量级别、玩家偏好、团队信息、阵营信息等);(3)与游戏目标相关联的数据(例如,与当前游戏目标、游戏目标的状态、过去游戏目标、未来游戏目标、期望游戏目标等相关联的数据);(4)与虚拟世界中的虚拟元素相关联的数据(例如,虚拟元素的定位、虚拟元素的类型、与虚拟元素相关联的游戏目标;虚拟元素的对应的实际世界定位信息;虚拟元素的行为、虚拟元素的相关性等);(5)与被链接到虚拟世界元素的现实世界对象、地标、定位相关联的数据(例如,现实世界对象/地标的位置、现实世界对象/地标的描述、被链接到现实世界对象的虚拟元素的相关性等);(6)游戏状态(例如,当前玩家数目、游戏目标的当前状态、玩家排行榜等);(7)与玩家动作/输入相关联的数据(例如,当前玩家定位、过去玩家定位、玩家移动、玩家输入、玩家查询、玩家通信等);以及(8)在平行现实游戏的实现期间被使用、所涉及或者被获取的任何其他数据。被存储在游戏数据库115中的游戏数据可以由系统管理员和/或从系统100的用户/玩家所接收的数据(诸如通过网络130从一个或多个客户端120所接收的数据)离线或实时地被填充。

游戏服务器110可以被配置成从一个或多个客户端120接收针对游戏数据的请求(例如,经由远程过程调用(RPC))并经由网络130来响应这些请求。例如,游戏服务器110可以将游戏数据编码在一个或多个数据文件中,并且向客户端120提供这些数据文件。另外,游戏服务器110可以被配置成经由网络130从一个或多个客户端120接收游戏数据(例如,玩家定位、玩家动作、玩家输入等)。例如,客户端120可以被配置成定期向游戏服务器110发送玩家输入和其他更新,游戏服务器110使用这些玩家输入和其他更新来更新游戏数据库115中的游戏数据以反映针对游戏的任何和所有被改变的条件。

在所示的实施例中,服务器110包括通用游戏模块112、商业游戏特征模块114、数据收集模块116和事件模块118。游戏服务器110与游戏数据库115交互,该游戏数据库115可以作为游戏服务器110的一部分或者可以被远程访问(例如,游戏数据库115可以是经由网络130被访问的分布式数据库)。在其他一些实施例中,游戏服务器110包含不同的和/或附加的元素。另外,功能可以以与所描述的不同的方式被分布在元件之中。例如,游戏数据库115可以被集成到游戏服务器110中。

通用游戏模块112针对所有玩家托管平行现实游戏,并且针对所有玩家充当平行现实游戏的当前状态的权威源。通用游戏模块112从客户端120接收游戏数据(例如,玩家输入、玩家定位、玩家动作、地标信息等),并且将接收到的游戏数据并入针对平行现实游戏的所有玩家的总体平行现实游戏中。通用游戏模块112还可以管理游戏数据通过网络130向客户端120的传递。通用游戏模块112还可以管理客户端120的安全性方面,包括但不限于:保护客户端120和游戏服务器110之间的连接,在各个客户端120之间建立连接,以及验证各个客户端120的位置。

在其中包括了商业游戏特征模块114的实施例中,商业游戏特征模块114可以与通用游戏模块112分开或者作为通用游戏模块112的一部分。商业游戏特征模块114可以管理将与现实世界中的商业活动链接的各种游戏特征包括在平行现实游戏内。例如,商业游戏特征模块114可以(经由网络接口)通过网络130从外部系统(诸如赞助方/广告方、企业或其他实体)接收请求,以将与商业活动链接的游戏特征包括在平行现实游戏中。然后,商业游戏特征模块114可以布置将这些游戏特征包括在平行现实游戏中。

游戏服务器110还可以包括数据收集模块116。在其中包括了数据收集模块116的实施例中,数据收集模块116可以与通用游戏模块112分开或者作为通用游戏模块112的一部分。数据收集模块116可以管理将与现实世界中的数据收集活动链接的各种游戏特征包括在平行现实游戏内。例如,数据收集模块116可以修改被存储在游戏数据库115中的游戏数据,以将与数据收集活动链接的游戏特征包括在平行现实游戏中。数据收集模块116还可以分析由玩家依照数据收集活动收集的数据并且提供该数据以供各种平台访问。下面参考图6更详细地描述了数据收集模块116的各种实施例。

事件模块118管理平行现实游戏中的对事件的玩家访问。尽管为了方便起见使用了术语“事件”,但是应当理解,该术语不需要指代在特定位置或时间处的特定事件。确切地说,它可以指代访问受控的游戏内容的任何供给,其中一个或多个访问标准被用来确定玩家是否可以访问该内容。这样的内容可以是包括具有较少访问控制或者无访问控制的游戏内容的更大的平行现实游戏的一部分,或者可以是独立的、访问受控的平行现实游戏。

客户端120可以是玩家能够用来与游戏系统100进行接口的任何便携式计算设备。例如,客户端120可以是无线设备、个人数字助理(PDA)、便携式游戏设备、蜂窝电话、智能电话、平板电脑、导航系统、手持GPS系统、可穿戴计算设备、具有一个或多个处理器的显示器、或者其他这样的设备。简言之,客户端120可以是能够使玩家与游戏系统100交互的任何计算机设备或系统。

客户端120可以包括一个或多个处理器以及一个或多个计算机可读介质。计算机可读介质可以存储使处理器执行操作的指令。客户端120可以包括各种输入/输出设备,以用于提供和接收来自玩家的信息,诸如显示屏、触摸屏、触摸板、数据录入键、扬声器、相机、和/或适合于语音识别的麦克风。客户端120还可以包括用于记录来自客户端120的数据的其他各种传感器,包括但不限于:移动传感器、加速度计、陀螺仪、其他惯性测量单元(IMU)、气压计、定位系统、温度计、光传感器等。客户端120还可以包括用于提供通过网络130的通信的网络接口。网络接口可以包括用于与一个或多个网络进行接口的任何合适的组件,包括例如发送器、接收器、端口、控制器、天线或者其他合适的组件。

因为联网计算环境100提供基于位置的游戏,所以客户端120优选地是可以容易地由玩家携带或者以其他方式运送的便携式计算设备,诸如智能电话或平板电脑。在图1所示的实施例中,每个客户端120包括诸如游戏模块122和定位模块124的软件组件,其具有诸如相机126和多个移动传感器128的各种物理组件。在其他一些实施例中,客户端120可以包括不同或附加的元件,诸如显示器(作为客户端120的组件或者在客户端120外部)、各种输入设备(例如触摸屏、鼠标、触笔,

游戏模块122为玩家提供了参与平行现实游戏的接口。游戏服务器110通过网络130向客户端120传输游戏数据,以供客户端120处的游戏模块122使用,以向远离游戏服务器110的位置处的玩家提供游戏的本地版本。服务器110可以包括用于提供通过网络130的通信的网络接口。网络接口可以包括用于与一个或多个网络进行接口的任何合适的组件,包括例如发射器、接收器、端口、控制器、天线或者其他合适的组件。

由客户端120执行的游戏模块122提供玩家与平行现实游戏之间的接口。游戏模块122可以在与客户端120相关联的显示设备上呈现用户界面,该用户界面显示与游戏相关联的虚拟世界(例如,绘制虚拟世界的图像)并且允许用户在虚拟世界中交互以执行各种游戏目标。游戏模块122还可以控制各种其他输出,以允许玩家与游戏交互而不要求玩家查看显示屏。例如,游戏模块122可以控制各种音频、振动或者其他通知,其允许玩家在不需要观看显示屏的情况下玩游戏。游戏模块122可以访问从游戏服务器110所接收的游戏数据,以向用户提供游戏的准确表示。游戏模块122可以接收并且处理玩家输入,并且通过网络130向游戏服务器110提供更新。

定位模块124可以是用于监视客户端120的定位的任何设备或者电路装置。例如,定位模块124可以通过以下来确定实际或者相对定位:使用卫星导航定位系统(例如,GPS系统、伽利略(Galileo)定位系统、全球导航卫星系统(GLONASS)、北斗卫星导航和定位系统)、惯性导航系统、航位推算系统、基于IP地址、使用三角测量和/或到蜂窝塔或Wi-Fi热点的接近度、和/或用于确定定位的其他合适的技术。定位模块124还可以包括可以协助准确地定位客户端120位置的各种其他传感器。

当玩家在现实世界中与客户端120一起到处移动时,定位模块124跟踪玩家的定位并且向游戏模块122提供玩家定位信息。基于玩家在现实世界中的实际定位,游戏模块122更新与游戏相关联的虚拟世界中的玩家定位。因此,通过简单地在现实世界中携带或者运送客户端120,玩家可以与虚拟世界交互。特别地,玩家在虚拟世界中的位置可以与玩家在现实世界中的位置对应。游戏模块122可以通过网络130向游戏服务器110提供玩家定位信息,使得通用游戏模块112在整个游戏中保持跟踪所有玩家定位。作为响应,游戏服务器110可以制定各种技术来验证客户端120位置,以防止作弊者欺骗客户端120位置。应当理解,只有在玩家已经被通知该玩家的位置信息要被访问以及将该位置信息要如何在游戏的上下文中被利用(例如,用以更新虚拟世界中的玩家定位)之后许可被授予的情况下,与该玩家相关联的位置信息才被利用。另外,与玩家相关联的任何位置信息将以保护玩家隐私的方式被存储和被维护。

网络130可以是任何类型的通信网络,诸如局域网(例如内联网)、广域网(例如互联网)或者其某种组合。网络还可以包括客户端120与游戏服务器110之间的直接连接。通常,使用任何类型的有线和/或无线连接、使用各种通信协议(例如TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如HTML、XML、JSON)和/或保护方案(例如VPN、安全HTTP、SSL),游戏服务器110与客户端120之间的通信可以经由网络接口被承载。

本文讨论的技术参考服务器、数据库、软件应用和其他基于计算机的系统,以及向和从这样的系统所采取的动作和所发送的信息。本领域普通技术人员将认识到,基于计算机的系统的固有灵活性允许组件之间和之中的任务和功能性的各种各样可能的配置、组合和划分。例如,可以使用单个服务器或者组合地工作的多个服务器来实现本文讨论的服务器过程。数据库和应用可以在单个系统上被实现或者跨多个系统被分布。分布式组件可以顺序或并行地操作。

另外,在本文讨论的系统和方法访问和分析关于用户的个人信息或者利用诸如位置信息的个人信息的情形中,可以向用户提供控制程序或特征是否收集信息以及控制是否和/或如何从系统或其他应用接收内容的机会。没有这样的信息或数据被收集或者被使用,直到用户已经被提供了要收集什么信息、以及如何使用信息的有意义通知为止。除非用户提供同意,否则不收集或使用信息,用户可以随时撤消或者修改该同意。因此,用户可以具有对关于用户的信息如何被收集以及如何由应用或系统使用的控制。另外,某些信息或数据可以在被存储或者被使用之前以一种或多种方式被处理,以使得个人可标识信息被移除。例如,用户身份可以被处理,以使得没有针对用户的个人可标识信息可以被确定。

示例计算系统

图8是根据一个实施例的计算设备的示例架构。虽然图8根据一个实施例描绘了图示用作本文所述一个或多个实体的部分或全部的计算机的物理组件高层级框图,但是计算机可以具有附加的组件、更少的组件、或者图8中所提供的组件变型。虽然图8描绘了计算机800,但是该图旨在作为计算机系统中可能存在的各种特征的功能描述,而不是作为本文所述的实现的结构示意图。在实践中,并且如本领域普通技术人员所认识到的,分开示出的项可以被组合,并且一些项可以被分开。

在图8中图示的是至少一个处理器802耦合到芯片组804。存储器806、存储设备808、键盘810、图形适配器812、指点设备814和网络适配器816也耦合到芯片组804。显示器818耦合到图形适配器812。在一个实施例中,芯片组804的功能性由存储器控制器集线器820和I/O集线器822提供。在另一实施例中,存储器806直接耦合到处理器802,而不是芯片组804。在一些实施例中,计算机800包括用于互连这些组件的一个或多个通信总线。一个或多个通信总线可选地包括互连并控制系统组件之间的通信的电路装置(有时被称为芯片组)。

存储设备808是任何非瞬态计算机可读存储介质,诸如硬盘驱动器、光盘只读存储器(CD-ROM)、DVD、或者固态存储器设备或其他光学存储装置,盒式磁带、磁带、磁盘存储装置或者其他磁性存储设备,磁盘存储设备、光盘存储设备、闪存设备或者其他非易失性固态存储设备。这样的存储设备808也可以被称为持久性存储器。指点设备814可以是鼠标、轨迹球或者其他类型的指点设备,并且与键盘810组合使用以将数据输入到计算机800中。图形适配器812在显示器818上显示图像和其他信息。网络适配器816将计算机800耦合到局域网或广域网。

存储器806持有由处理器802使用的指令和数据。存储器806可以是非持久性存储器,其示例包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、ROM、EEPROM、闪存。

如本领域中已知的,计算机800可以具有与图13中所示的组件不同的组件和/或其他组件。另外,计算机800可以缺少某些所图示的组件。在一个实施例中,充当服务器的计算机800可以缺少键盘810、指点设备814、图形适配器812和/或显示器818。此外,存储设备808可以在计算机800本地和/或远程(诸如,被实施在存储区域网络(SAN)内)。

如本领域中已知的,计算机800适于执行计算机程序模块以提供本文所述的功能。如本文所使用的,术语“模块”是指被利用来提供指定功能性的计算机程序逻辑。因此,可以以硬件、固件和/或软件来实现模块。在一个实施例中,程序模块被存储在存储设备808上,被加载到存储器806中,并且由处理器302执行。

示例性游戏界面

图3描绘了可以在客户端120的显示器上被呈现的游戏界面300的一个实施例,游戏界面300作为玩家与虚拟世界210之间的接口的一部分。游戏界面300包括显示窗口310,该显示窗口310可以用于显示虚拟世界210和游戏的其他各个方面,诸如虚拟世界210中的玩家定位222以及虚拟元素230、虚拟项232和虚拟能量250的位置。用户界面300还可以显示其他信息,诸如游戏数据信息、游戏通信、玩家信息、客户端位置验证指令以及与游戏相关联的其他信息。例如,用户界面可以显示玩家信息315,诸如玩家名称、经验级别和其他信息。用户界面300可以包括用于访问各种游戏设置和与游戏相关联的其他信息的菜单320。用户界面300还可以包括通信接口330,通信接口330支持游戏系统与玩家之间以及平行现实游戏的一个或多个玩家之间的通信。

根据本公开的各方面,通过简单地在现实世界中随身携带客户端设备120,玩家可以与平行现实游戏交互。例如,玩家可以通过简单地访问智能电话上的与平行现实游戏相关联的应用并且与该智能电话一起在现实世界中到处移动来玩游戏。在这方面,玩家不必为了玩基于位置的游戏而在显示屏上持续查看虚拟世界的视觉表示。作为结果,用户界面300可以包括允许用户与游戏交互的多个非视觉元素。例如,当玩家正在接近游戏中的虚拟元素或对象时,或者当在平行现实游戏中发生重要事件时,游戏界面可以向玩家提供可听通知。玩家可以利用音频控件340来控制这些可听通知。可以取决于虚拟元素或事件的类型来向用户提供不同类型的可听通知。取决于玩家到虚拟元素或对象的接近度,可听通知的频率或音量可以增加或减少。可以向用户提供其他非视觉的通知和信号,诸如振动通知或者其他合适的通知或信号。

使用本文所提供的公开,本领域普通技术人员应当理解,鉴于本公开,许多游戏界面配置和底层功能性将是明显的。本公开不旨在限于任何一个特定配置。

平行现实游戏客户端-服务器的操作流程图

图4描绘了根据一个实施例的方法400的客户端-服务器流程图,方法400用于将现实世界活动与平行现实游戏链接。可以使用任何合适的计算系统来实现方法400,诸如图1的系统100的客户端-服务器布置。另外,尽管图4出于说明和讨论的目的而描绘了以特定次序所执行的步骤,然而本文讨论的方法不限于任何特定的次序或者布置。使用本文所提供的公开,本领域技术人员将理解,可以在不偏离本公开的范围的情况下,以各种方式省略、重新布置、组合和/或改编本文公开的方法的各个步骤。该方法还可以包括不同的或附加的步骤。

在图4中所示的实施例中,在402处,方法400以游戏服务器110托管用于多个客户端设备120的平行现实游戏开始。玩家可以通过经由一个或多个客户端设备120通过网络130与游戏服务器110通信来访问平行现实游戏。以该方式,游戏服务器110可以充当用于平行现实游戏的事件的权威源。

在404处,服务器可以修改与平行现实游戏相关联的游戏数据,以包括游戏特征。例如,游戏服务器110可以修改、更新游戏数据或者将游戏数据添加到游戏数据库115,使得游戏特征被包括在平行现实游戏中。一些游戏特征可以与现实世界活动链接。这些游戏特征可以是被设计为激励或者鼓励由玩家在现实世界中进行的活动的任何游戏特征,包括现实世界中与平行现实游戏的总体游戏目标不直接相关的活动。在特定实施例中,与现实世界活动链接的游戏特征可以是与现实世界中的商业活动链接的游戏特征。

在406处,游戏服务器110通过网络130向一个或多个客户端设备120供应包括游戏特征的平行现实游戏。在408处,客户端设备120从游戏服务器110接收游戏数据,该游戏数据包括与游戏特征相关联的数据。然后,在410处,客户端设备120向玩家呈现包括游戏特征的平行现实游戏。例如,客户端设备120可以显示虚拟世界的视觉表示。虚拟世界可以包括游戏特征,诸如位于虚拟世界中的特定位置处的虚拟元素,以鼓励或者激励现实世界中的玩家活动。

在412处,客户端设备120包括接收与和游戏特征的玩家交互相关联的数据。例如,客户端设备120可以接收作为针对平行现实游戏中的游戏特征的玩家动作的结果的数据。与玩家交互相关联的数据可以包括与玩家导航到特定虚拟元素的位置并且与该虚拟元素交互相关联的数据。作为另一示例,与玩家交互相关联的数据可以包括与玩家采取动作以完成游戏目标或者任务相关联的数据。作为另一示例,与玩家交互相关联的数据可以包括与玩家使用力量提升或者其他增强的力量相关联的数据,该力量提升或者其他增强的力量作为与现实世界活动链接的游戏特征的一部分被提供给玩家。在414处,客户端设备向服务器提供与和游戏特征的玩家交互相关联的数据。

在416处,与和游戏特征的玩家交互相关联的数据可以在游戏服务器110处被接收。例如,游戏服务器110可以通过网络130从客户端设备120接收与和游戏特征的玩家交互相关联的数据。然后,在418处,游戏服务器110可以基于与玩家交互相关联的数据来修改平行现实游戏中的一个或多个游戏元素。例如,游戏服务器110可以更新游戏数据库115中所存储的与玩家相关联的游戏数据(诸如被存储在游戏数据库115中的玩家简档),以记录玩家与游戏特征的交互,该游戏特征与现实世界活动链接。另外,服务器可以更新游戏数据以提供奖励,诸如适用于平行现实游戏的虚拟奖励,以用于与游戏特征交互。虚拟奖励可以包括虚拟项、虚拟能量、虚拟货币、虚拟力量提升、增强的力量、经验点或任何其他合适的奖励。

玩家客户端设备位置验证

图5是图示根据一个实施例的验证玩家的客户端设备120位置的过程的俯视图。可以使用任何合适的(多个)计算设备或者合适计算设备的组合来实现该过程,诸如图1的客户端设备120和游戏服务器110。在该说明性实施例中,客户端设备120正在向游戏服务器110报告客户端设备在现实世界中的假定位置(例如,从定位模块122经由网络130到游戏服务器110)。游戏服务器110发起验证客户端设备120实际位于假定位置的过程。使用本文公开的原理,本领域技术人员将理解,可以在不偏离本公开的范围的情况下,以各种方式省略、重新布置、组合和/或改编本文公开的方法的各个步骤。

客户端设备120利用定位模块124来确定客户端设备120的假定位置。客户端设备120可能正在向游戏服务器110报告该客户端设备在该假定位置处并且可能正在试图取回特定于所报告的位置的内容(在一些示例中,访问受控的内容)。游戏服务器110目标在于确保客户端设备120确实在所报告的位置处。

游戏服务器110生成对客户端设备120的一组验证指令,以验证客户端设备120的位置。针对与虚拟世界中的位置对应的现实世界中的各个位置,游戏服务器110可以存储独特的现实世界对象或地标,以用于验证玩家的客户端设备的位置。游戏服务器110可以备选地分配接近现实世界商业活动的独特地标,游戏服务器110可以使用该独特地标来验证客户端设备的位置,以确保提供仅由在现实世界商业活动驻留的现实世界位置处在场的客户端设备可访问的游戏内容。例如,如果咖啡店是平行现实游戏的赞助方,则在提供特定于咖啡店的游戏内容之前,附近的雕像可以作为用于验证客户端设备在咖啡店附近的独特地标而被使用。或者在另一实例中,游戏服务器110可以将独特地标分配给正在举行虚拟游戏事件的现实世界位置。然后,游戏服务器110可以验证客户端设备120位于该地标附近,以便玩家参与虚拟游戏事件。游戏服务器110可以将与虚拟世界中的位置对应的现实世界中的每个潜在位置的地标存储在游戏数据库115中。另外,在游戏数据库115中所存储的地标可以包括地标的名称、地标的模型、来自变化的视角的地标的图片、地标的3D周围环境等。为了验证客户端设备120的位置,游戏服务器110针对与客户端设备的位置对应的所存储的地标而访问游戏数据库115,客户端设备正在该客户端设备的位置处请求取回在该虚拟位置处的内容。游戏服务器110生成描述一系列移动的验证路径,以提示玩家在持有客户端设备120的同时进行该一系列移动。验证路径有效地描述了客户端设备的一系列移动,验证路径可以包括针对以下移动的任何组合的指令:在玩家持有相对于玩家大体恒定的客户端设备120的同时玩家的移动、以及在玩家相对于地标大体保持恒定时玩家对客户端设备120的移动。所存储的地标和验证路径构成了该一组验证指令。该一组验证指令被传输给客户端设备120。

在图5中所示的实施例中,客户端设备120接收该一组验证指令并且验证客户端设备120的位置。客户端设备120提示玩家在初始定位520处捕获从验证指令所接收的地标510的图像数据。玩家利用客户端设备120来捕获地标510的图像数据。从初始定位520,所捕获的图像数据具有平行于初始视角平面525的地标510的视角。尽管在初始定位520处的图像数据可以包括在初始视角平面525前面或者后面的对象(例如,在客户端设备120的视见平截头体内未被阻碍的对象),但是初始视角平面525垂直于来自初始定位520的视线。在一个示例中,地标510是人的雕像。从初始定位520,初始视角平面525涵盖人的直接前视图。客户端设备120确定从初始定位520所捕获的图像数据是否与来自该一组验证指令的地标510数据匹配。在一些实施例中,客户端设备120利用图像识别技术(例如,机器学习模式识别算法)来确定从初始定位520所捕获的图像数据是否包括地标510。在一些实施例中,客户端设备120使用来自游戏服务器110的经训练的图像识别模型。

如果客户端设备120确认所捕获的图像数据是地标510的,则客户端设备120提示玩家根据验证指令中的验证路径515移动。作为响应,玩家对应地沿着验证路径515移动。在图5的图示中,验证路径515可以包括朝向地标510向前移动五米的第一步骤,然后进行左转并且再移动十米的另一步骤,然后进行右转并且再移动两米的最后步骤。在其他一些示例中,可以利用其他测量单位(例如,英尺、码等)来提示验证路径515,或者可以仅利用屏幕上的方向指示(例如,箭头)来提示用户,并且然后在用户已经移动了所要求的距离时,为用户提供另一指示(例如,箭头消失、停止标志等)。如果玩家的移动路径与验证路径515的路径匹配,则验证指令预料玩家到达预期定位530。客户端设备120还提示玩家在沿着验证路径515的移动期间和/或之后捕获地标510的图像数据。

如果客户端设备120在预期定位530处捕获地标510的图像数据,则所捕获的图像数据会平行于预期视角平面535。与初始视角平面类似,预期视角平面535垂直于来自预期定位530的视线。尤其,在沿着验证路径515的移动之后,预期视角平面535不平行于初始视角平面525。接着具有雕像的示例,预期视角平面535涵盖雕像的偏移侧视图。客户端设备120使用地标510的新捕获的图像数据来确证初始的一组图像数据。客户端设备120确认新捕获的图像数据也是地标510的。客户端设备120基于验证指令来进一步确定新捕获的图像数据是否具有与初始的一组图像数据不同的视角。例如,客户端设备120确定在预期定位530处新近捕获的地标510的图像数据是雕像的偏移侧视图,其与是雕像的直接前视图的地标510的初始捕获的图像数据不同。在一些实施例中,在沿着验证路径515的移动期间和/或之后新捕获的图像数据包括地标510的视频。客户端设备120可以确定视频的帧是否与地标510匹配,并且可以确定这些帧是否自初始视角平面525起处于变化的视角。在一些实施例中,如果客户端设备120确认初始图像数据和新捕获的图像数据与地标510匹配,则客户端设备120验证客户端设备120的位置。

在附加实施例中,客户端设备120使用移动传感器128,来在客户端设备120位置的确认验证之前还确认客户端设备120沿着验证路径515的移动。移动传感器128可以检测和记录与玩家沿着验证路径515移动对应的平移移动。在一些实施例中,客户端设备120测量由玩家与客户端设备120一起进行的平移移动。客户端设备120可以确定所测量的平移移动是否在与玩家沿着路径515移动大体对应的移动的合理阈值之内。例如,客户端设备120可以具有针对由玩家进行转弯的阈值角度误差。使得:给定由客户端设备120根据验证路径515提示玩家进行左转,阈值角度误差为15度,如果移动传感器128确定玩家已经进行右转(即,针对左转180度的误差),则客户端设备120确定由玩家进行的转弯高于针对进行左转的阈值角度误差(即180度的误差高于15度的阈值)。在另一实例中,客户端设备120可以具有针对玩家做出的步伐的阈值距离误差。使得:给定提示玩家在一个方向上走五米,如果移动传感器128检测到与所提示的五米显著不同的100米的平移移动,则客户端设备120也会确定玩家移动与验证路径515不匹配。如果移动传感器128检测到与高于误差阈值的移动对应的移动误差,则客户端设备120可以驳回客户端设备120的位置。如果移动传感器128检测到在误差阈值内的移动,则附加于检查地标510的图像数据,客户端设备120可以验证客户端设备120的位置。

图6描绘了根据一个实施例的用于验证客户端设备120的位置的方法600的客户端-服务器流程图。可以使用任何合适的计算系统来实现方法600,诸如图1的系统100的客户端-服务器布置。另外,尽管出于说明和讨论的目的,图6描绘了以特定次序或者由特定设备所执行的步骤,但是本文讨论的方法不限于任何特定次序或者布置。使用本文所提供的公开,本领域技术人员将理解,可以在不偏离本公开的范围的情况下,以各种方式省略、重新布置、组合和/或改编本文公开的方法的各个步骤。方法还可以包括不同或附加的步骤。

在方法600的602处,客户端设备120从定位模块(例如,定位模块124)接收位置信息。在一些实施例中,定位模块可以包括一个或多个定位系统,诸如卫星导航定位系统(例如,GPS系统、伽利略定位系统、全球导航卫星系统(GLONASS)、北斗卫星导航和定位系统)、惯性导航系统、和/或航位推算系统、基于IP地址、通过使用三角测量和/或到蜂窝网络塔或Wi-Fi热点的接近度。客户端设备120的位置的位置信息可以包括客户端设备120的一组全球定位坐标。

在方法600的604处,客户端设备120向游戏服务器110传输位置信息。在606处,游戏服务器120接收客户端设备120位置信息。当游戏服务器120接收位置信息时,游戏服务器120需要验证位置信息准确地与客户端设备120的物理位置对应。在一些实施例中,位置信息与针对游戏内容的请求一并被接收,该游戏内容特定于在位置信息中所共享的客户端设备120的位置。

在方法600的608处,游戏服务器110基于位置信息和对应的验证指令来取回客户端设备120的位置附近的地标。游戏服务器110访问具有被存储的地标的数据库(例如,游戏数据库115)。游戏服务器110可以基于客户端设备120的位置与所有被存储的地标的位置相比较的接近度,来确定要使用哪个地标来验证客户端设备120的位置。游戏服务器110可以选择与客户端设备120的位置最接近的地标。在其他一些实施例中,客户端设备120正在试图参与现实世界中特定位置处的游戏事件。游戏服务器110可以参考与该游戏事件绑定的地标,利用该地标来验证试图参与游戏事件的所有客户端设备的位置。在一些其他实施例中,游戏服务器110可以向正在与现实世界商业活动交互的玩家提供访问受控的游戏内容。在这些实例中,游戏服务器110还可以参考与现实世界商业活动绑定的地标。在一些实施例中,当从数据库中取回地标时,游戏服务器110还可以取回地标的图像或模型的任何组合,以用于验证客户端设备120的位置的在场。

在步骤608处,游戏服务器110还搜集验证指令。在一些实施例中,游戏服务器110可以从数据库取回与所选择的地标相关联的预先生成的验证指令;然而,在其他一些实施例中,游戏服务器110生成具有随机被生成的一个或多个验证指令的一组验证指令。验证指令包括一组提示,包括用于使玩家从客户端设备120的初始定位捕获所选择地标的图像数据的提示。图像数据可以包括地标的图片或者地标的视频。验证指令包括地标识别模型,该地标识别模型可以验证由客户端设备120捕获的图像数据与地标肯定地(positively)匹配。

地标识别模型可以包括地标的二维(2D)模型、地标的3D模型或者其组合。在使用2D模型的一个实施例中,地标识别模型除了包括点对之间的相对距离之外,还包括地标上的特征点。当验证作为图像的图像数据时,地标识别模型可以计算地标上的被标识的点之间的相对距离,并且将所计算的相对距离与地标识别模型中已知的相对距离相比较。例如,如果相对于地标宽度的高度与地标识别模型中所包括的相对于宽度的高度不匹配,则地标识别模型可以确定图像数据与适当的地标不匹配。在使用2D模型的另一实施例中,地标识别模型可以是利用地标的训练图像数据所训练的机器学习模型,机器学习模型能够验证所捕获的图像数据与地标的训练图像数据匹配。在使用3D模型的一些实施例中,地标识别模型包括地标的部分或完整的3D虚拟表示。在3D虚拟表示中,地标的近似尺寸是已知的,包括特征之间的近似距离、近似角度等。

验证指令包括验证路径,验证路径包括一组提示,以使玩家与客户端设备120一起对应地移动到验证路径。在一些实施例中,验证指令可以由游戏服务器110预先生成。在其他一些实施例中,游戏服务器110针对验证客户端设备的位置的每个实例生成随机验证路径,或者验证路径可以从一组预定的路径来被随机选择。验证路径可以包括多个提示,以使玩家与客户端设备120一起移动。例如,验证路径可以包括转弯与(可以以诸如米、码、英尺、厘米等的测量单位所标记的)每次转弯后要行进的距离的组合。在一些实施例中,游戏服务器110还根据验证指令中的验证路径来提供在客户端设备120移动之后的地标的预期视角,用于验证玩家和客户端设备120的移动。游戏服务器110可以通过在沿着验证路径移动的同时使用地标的3D模型来预测地标的视角,来确定地标的预期视角。验证指令还包括提示,以使玩家针对沿着验证路径的移动期间和之后的任何组合来利用客户端设备120捕获图像数据。在示例A中,验证指令包括以下提示:(1)捕获地标的图片,(2)在捕获地标的视频的同时,朝向地标前进四米,(3)在捕获地标的视频的同时,向左转并且向前移动两米,以及(4)捕获地标的另一图片。

在步骤608处,游戏服务器110还可以生成提示,以使玩家在沿着验证路径移动期间和/或之后提供其他输入。可以通过客户端设备120上的其他传感器或组件来接收其他输入。在一个实例中,验证指令包括提示玩家说话的指令,这可以由客户端设备120上的音频麦克风来验证。在该实例中,游戏服务器110还可以包括验证指令,以将来自音频麦克风的声音信号与所提示的语音匹配。在另一实例中,验证指令包括提示玩家触摸客户端设备120上的按钮的指令。这些其他指令可以穿插在提示玩家沿着验证路径移动的指令内。在示例B中,验证指令包括以下提示:(1)捕获地标的图片,(2)在捕获地标的视频的同时,朝向地标前进十米,(3)说出地标的名称,(4)在捕获地标的视频的同时,向右转并且向前移动三米,以及(5)捕获地标的另一图片。在示例C中,验证指令包括以下提示:(1)捕获地标的图片,(2)向左转并且向前移动两米,(3)按客户端设备120上的按钮,(4)向右转并且向前移动十米,以及(4)捕获地标的另一图片。

在方法600的步骤610处,游戏服务器110向客户端设备120传输地标和验证指令。方法在步骤612处以客户端设备120接收地标和验证指令而继续。然后,客户端设备120进行到根据所接收的地标和验证指令来验证客户端设备的位置。

在方法600的步骤614处,客户端设备120基于验证指令来提示玩家捕获地标的初始图像数据。验证指令包括提示玩家捕获地标的初始图像数据的第一步骤,地标的初始图像数据可以包括地标的视频或者图片。客户端设备120基于验证指令来提示玩家经由客户端设备120上的电子显示器捕获地标的图像数据。

在方法600的步骤616处,客户端设备120接收地标的初始图像数据。在一些实施例中,客户端设备120可以接收地标的照片和视频的任何组合。

在方法600的步骤618处,客户端设备120利用验证指令来验证地标的初始图像数据。所接收的验证指令可以包括地标识别模型,以用于将图片肯定地标识为是地标的图片。在客户端设备120接收地标的视频的实施例中,客户端设备120可以将视频的一个或多个帧与地标识别模型相比较,以在视频中肯定地标识地标。在一些实施例中,地标识别模型包括经训练的机器学习模型,该机器学习模型可以在由客户端设备120接收的图片或视频中肯定地标识地标。在一些附加实施例中,客户端设备120向游戏服务器110提供所捕获的图像数据,以用于进一步精化地标识别模型,例如,使用图像数据来建立地标的2D模型和地标的3D模型中的一个或多个模型。

在方法600的步骤620处,客户端设备120提示玩家根据验证指令在捕获地标的图像数据的同时沿着验证路径移动客户端设备。在一些实施例中,验证指令包括针对玩家在持有客户端设备120的同时进行的移动的一组提示,一组所提示的移动构成验证路径。在一些实施例中,验证指令可以包括针对玩家对客户端设备120的输入的进一步的提示。提示可以由客户端设备120通过经由电子显示器视觉地呈现和经由音频扬声器口述地呈现的任何组合来被呈现。客户端设备120还提示玩家在沿着验证路径的移动期间和/或之后捕获地标的图像数据。在一个示例中,客户端设备120可以在整个验证路径的各种情况下提示玩家捕获地标的图像数据,诸如图片。在另一示例中,客户端设备120可以提示玩家在沿着验证路径的整个移动中捕获地标的视频。接着示例A,客户端设备120可以向玩家提供以下提示:(1)捕获地标的图片,(2)在捕获地标的视频的同时,朝向地标向前移动四米,(3)在捕获地标视频的同时,向左转并且向前移动两米,以及(4)捕获地标的另一图片。在一些实施例中,客户端设备120可以一次全部或者渐进地提供针对验证路径的提示。当一次全部提供时,客户端设备120可以在电子显示器上显示验证指令的所有步骤。在具有其他提示和指令的实施例中,客户端设备120还可以提供其他提示和指令。这些提示和指示可以包括提供其他玩家输入。

在一些实施例中,客户端设备120可以请求新验证路径用于验证客户端设备120的位置。玩家可以出于多种原因而向客户端设备120提供该请求。在一个实例中,当前在现实世界中验证路径的部分被阻碍。该问题可以通过请求新的验证路径而被克服,直到一个这样的验证路径消除了玩家移动通过障碍物的需要。根据该请求,游戏服务器110可以生成新的随机验证路径以及要被提供给客户端设备120的附加验证指令。在接收到新验证路径和附加验证指令时,客户端设备120可以继续利用新验证路径和附加验证指令来验证其位置。

现在参考图7,图7是在图6的方法中时的游戏界面。客户端设备120根据方法600在电子显示器720上向玩家提供验证指令730的提示。根据步骤620,客户端设备120提示玩家基于验证指令730在捕获地标的图像数据的同时沿着验证路径移动。在该实施例中,客户端设备120在电子显示器720上提供所提示的验证指令730。根据该图示,在电子显示器720的部分上提示了验证路径的步骤,引导玩家与客户端设备120一起沿着验证路径移动。电子显示器720还可以显示相机的视角的实时视图或者所捕获的地标740的图像数据,包括根据方法600的步骤614或者步骤620所初始捕获的地标的图像数据。电子显示器720还可以具有十字准线750,十字准线750向玩家提供引导以捕获其中的地标。在一些情况下,如果地标740的图像数据落在由十字准线750限定的图像数据的部分之外,则客户端设备120可以警告玩家。客户端设备120可以根据方法600的进一步的步骤,渐进地提供验证指令730的步骤。

返回参考图6,在方法600的步骤622处,客户端设备120在沿着验证路径移动期间和/或之后接收地标的图像数据。图像数据可以经由客户端设备120的一个或多个相机部分来被捕获。取决于根据验证指令提示捕获什么类型的图像数据,图像数据可以包括视频或者图片的任何组合。

在方法600的步骤624处,客户端设备120利用验证指令来验证地标的图像数据。客户端设备120确定地标的图像数据与地标肯定地匹配。在一个实施例中,客户端设备120(例如,经由地标识别模型)验证在沿着验证路径的移动期间或之后所捕获的图片与地标肯定地匹配。在另一实施例中,客户端设备120选择在沿着验证路径的移动期间和/或之后所捕获的视频的一个或多个帧,并且(例如,经由地标识别模型)验证该一个或多个帧与地标肯定地匹配。在客户端设备120验证所捕获的图像数据与地标匹配之后,客户端设备120然后验证:与初始图像数据相比较,在沿着验证路径的移动期间和/或之后捕获的图像数据是否来自不同的视角。在初始图像数据是地标的初始图片的实施例中,客户端设备120确定新捕获的图像数据(新捕获的图片或者新捕获的视频)是否具有与初始图片的视角不同的视角。在一些实施例中,地标识别模型还确定针对肯定地被标识的地标图片的地标的视角。在这些实施例中,客户端设备120可以将所确定的视角与初始图像数据的初始视角进行比较。在验证了新捕获的图像数据与地标肯定地匹配并且新捕获的图像数据与初始视角处于不同的视角两者之后,客户端设备120然后确认客户端设备120的位置是准确的并且在验证指令完成时已经被验证。

在验证指令提示捕获地标的视频的实施例中,在方法600的步骤624处,客户端设备120可以验证视频中的多个帧。在帧的每个后续验证之后,客户端设备120可以在仍然捕获地标的视频的同时,利用验证指令中所包括的另一提示来提示620玩家。客户端设备120连续地接收622由客户端设备120捕获的视频的帧。客户端设备120可以后续验证624连续地所接收的帧。在一个或多个实施例中,客户端设备120验证624视频的每第n个(例如、第2、第3、第4、第5、第6、第7、第8、第9、第10等)帧。

在备选实施例中,在方法600的可选步骤626处,客户端设备120从移动传感器接收客户端移动数据。在该备选实施例中,在客户端设备120返回客户端设备120的位置准确并且被验证的确认之前,客户端设备120还验证移动数据是否与所提示的验证路径匹配。在一些实施例中,客户端设备120的移动数据包含上至六个自由度(即,三个平移自由度和三个旋转自由度)的移动数据。客户端设备上的移动传感器可以是加速度计、陀螺仪、其他惯性测量单元等的任何组合。

在方法600的可选步骤628处,客户端设备120利用验证指令来验证移动数据与验证路径匹配。如上所提及,移动数据可以包括上至六个自由度的移动数据。在一个简单的实施例中,客户端设备120验证一个或多个自由度是否具有高于阈值量的移动(平移的或者旋转的)。在另一实施例中,客户端设备120验证移动数据与在步骤620处的所提示的移动正确对应。客户端设备120可以使用移动数据来估计在一个方向上所行进的距离,该距离可以被与在步骤620处所提示的验证路径比较。给定响应于验证路径的每个步骤所行进的估计距离在误差的阈值容限内,则客户端设备120还可以确认移动数据与验证路径匹配。例如,如果移动数据产生在验证路径的几个步伐内的估计,则客户端设备120确认移动数据与验证路径匹配。接着示例A,如果移动数据导致以下估计:响应于步骤(2)的提示而朝向地标向前移动大约4米,并且响应于步骤(3)的提示而大致向左转并且向前移动大约2米,则客户端设备120可以验证移动数据与验证路径匹配。一旦客户端设备120确认移动数据与验证路径匹配,客户端设备120然后就可以根据验证指令的完成,来确认客户端设备120的位置准确并且已经被验证。

在验证指令包括提示附加玩家输入的进一步的实施例中,在方法600的可选步骤中,客户端设备120根据验证指令来验证附加玩家输入与由客户端设备120提示的那些附加玩家输入匹配。在该备选实施例中,客户端设备120接收对客户端设备120的附加玩家输入。在客户端设备120返回客户端设备120的位置是准确的并且被验证的确认之前,客户端设备120还验证附加玩家输入是否与所提示的验证指令匹配。客户端设备120可以验证附加玩家输入与所提示的验证指令匹配,并且可以验证附加玩家输入根据所提示的验证指令是适时的。接着示例B,客户端设备120可以验证响应于步骤(3)所接收的声音信号与玩家说出地标名称匹配。客户端设备120可以进一步验证玩家说出地标名称的声音信号的时间是否适当地在步骤(2)和步骤(4)之间。接着示例C,类似于示例B,客户端设备120可以验证客户端设备120上的按钮的所接收的玩家输入与步骤(3)匹配,并且其时间适当地在步骤(2)和步骤(4)之间。在验证了附加玩家输入与所提示的指令肯定地匹配时,客户端设备120然后可以根据验证指令的完成而确认客户端设备120的位置是准确的并且已经被验证。

方法600可以以客户端设备120准备验证客户端设备120的位置的确认回执来继续。在一些实施例中,客户端设备120仅在直到验证指令内的所有步骤整体验证客户端设备120的位置为止才发送确认回执。在其他一些实施例中,客户端设备120可以直到步骤618和624被验证为止才发送确认收据。游戏服务器110可以接收确认收据,并且继续提供特定于客户端设备120的位置的游戏内容。

方法600协助防止由欺骗者进行的欺骗。如上所述,欺骗者目标在于通过试图取回绑定到特定位置的游戏内容而不在该特定位置处物理地在场来欺骗游戏服务器。方法600被证明对欺骗者来说难以绕过。如果仅仅提示玩家捕获接近其假定位置的地标的图片,则欺骗者可以通过使用预先捕获的地标的图像来容易地愚弄验证过程。方法600利用提供在捕获图像数据的同时沿着验证路径移动玩家的附加指令,来防御这样的欺骗者。欺骗者不仅需要取回更全面的图像数据,而且方法600还可以针对验证的每个实例将验证路径随机化。例如,欺骗者可能通过根据先前的验证路径搜索地标的图像数据(图片或视频)来试图愚弄方法600;然而,方法600可以提供新的随机化的验证路径,致使根据其他验证路径的其他图像数据无用。具有附加指令的附加实施例会更大地增加对于欺骗者预测哪种附加指令可能会被提示的挑战,从而使方法600更加防愚弄。方法600附加地因为对玩平行现实游戏的公平玩家具有最小的侵害而受益。对于在特定位置处实际在场的玩家,当其客户端设备请求绑定到特定位置的游戏内容时,玩家会被提示一些短的指令,当在特定位置处实际在场时,这些短的指令可以被快速实现。

附加考虑

出于说明的目的,已经呈现了对实施例的前述描述;这并不旨在穷举,也不旨在将专利权限于所公开的精确形式。相关领域技术人员可以理解,鉴于上述公开,许多修改和变型是可能的。

本说明书的一些部分根据关于信息的操作的算法和符号表示来描述实施例。这些算法描述和表示是数据处理领域的技术人员通常用来有效地将其工作的实质传达给本领域的其他技术人员。在功能上、计算上或逻辑上描述的这些操作被理解为由计算机程序或等效电路、微代码等实现。此外,有时将这些操作布置称为模块也被证明是方便的,而不会失去一般性。所描述的操作及其相关联的模块可以以软件、固件、硬件或其任何组合来体现。

本文描述的任何步骤、操作或过程可以单独地或与其他设备组合地利用一个或多个硬件或软件模块来被执行或实现。在一个实施例中,利用计算机程序产品来实现软件模块,该计算机程序产品包括包含计算机程序代码的计算机可读介质,计算机程序代码可以由计算机处理器执行,以用于执行所描述的任何或全部步骤、操作或处理。

实施例还可以涉及一种用于执行本文操作的装置。该装置可以为所需目的而专门构造,和/或其可以包括由被存储在计算机中的计算机程序选择性地激活或重新配置的通用计算设备。这样的计算机程序可以被存储在非瞬态有形计算机可读存储介质或者适合于存储电子指令的任何类型的介质中,该介质可以耦合到计算机系统总线。此外,在本说明书中提到的任何计算系统可以包括单个处理器,或者可以是采用多个处理器设计以提高计算能力的架构。

实施例还可以涉及一种通过本文所述的计算过程产生的产品。这样的产品可以包括由计算过程产生的信息,其中该信息被存储在非瞬态有形计算机可读存储介质上,并且可以包括本文所述的计算机程序产品或其他数据组合的任何实施例。

最后,说明书中使用的语言主要是为了可读性和教学目的而选择的,并且可能并非被选择为描述或限定专利权。因此,旨在专利权的范围不受该详细描述的限制,而是受到基于其发布的申请的任何权利要求的限制。因此,实施例的公开旨在说明而不是限制在所附权利要求中阐述的专利权的范围。

31页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多孔质复合体

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类