虚拟位置签到
背景
由于计算技术的进步,计算机游戏已进化虽然计算机游戏曾经是相对简单的单玩家游戏,但许多已进化成为复杂的多玩家游戏,包括一些允许大量玩家同时在线玩的大型多玩家在线(MMO)游戏。然而,考虑到这类游戏的规模和复杂性,对于玩家而言可能难以操作并且使用这类游戏,这导致在玩这类游戏时的用户挫折。
概述
提供本概述是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念选择。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
根据一个或多个方面,在一个或多个设备处接收虚拟位置信息。该虚拟位置信息标识用户在虚拟环境中的虚拟位置。关于用户在虚拟环境中的虚拟位置的通知被发送给虚拟环境外部的一个或多个其它用户。
根据一个或多个方面,接收用户的虚拟位置签到请求。该虚拟位置签到请求包括标识用户在虚拟环境中的虚拟位置的虚拟位置信息。基于在虚拟位置签到请求中标识的虚拟位置,提供一个或多个游戏特征。
附图简述
在全部附图中,使用相同的附图标记来指示相同的特征。
图1示出根据一个或多个实施例的实现虚拟位置签到的示例系统。
图2示出根据一个或多个实施例的实现虚拟位置签到的另一示例系统。
图3示出了根据一个或多个实施例的可被显示给用户的示例用户界面,该用户界面允许用户选择该用户的虚拟位置是否将被追踪。
图4是示出根据一个或多个实施例的实现虚拟位置签到的示例过程的流程图。
图5示出了可实现此处所描述的各种技术的示例系统。
详细描述
此处讨论了虚拟位置签到。程序(例如,游戏)的用户可以签到以使得用户在程序的虚拟环境中的虚拟位置以各种方式被标识和使用。虚拟位置可被提供给同一程序和/或不同程序的其它用户,从而允许那些其它用户加入和/或帮助该特定用户。用户在虚拟环境中的虚拟位置还可与现实世界中的物理位置作比较,并且判断化身何时处于对应于现实世界中的某一物理位置的虚拟位置。当特定用户他或她的化身处于对应于现实世界中的某一物理位置的虚拟位置时,可使得各种程序特征对该用户可用。
图1示出根据一个或多个实施例的实现虚拟位置签到的示例系统100。系统100包括能经由网络106彼此通信的多个(x个)游戏设备102和在线游戏服务104。网络106可以是各种不同的网络,包括因特网、局域网(LAN)、广域网(WAN)、个域网(PAN)、电话网、内联网、其他公共和/或专用网络及其组合等。
每个游戏设备102可以是允许用户运行实现虚拟环境的程序的各种不同类型的设备。这些程序在此处是作为游戏来讨论,但应当注意此处所讨论的虚拟位置签到技术可被用于实现或使用虚拟环境的任何程序,即使它们不被普遍地称为游戏。游戏可以是包括各种竞赛、挑战和/或其它目的的各种不同的单玩家和/或多玩家游戏中的任意一种,诸如体育游戏、策略游戏、冒险游戏、模拟游戏等等。游戏设备102中的不同的设备可以是相同或不同类型或配置的设备。例如,计算设备102可以是游戏控制台、蜂窝或其他无线电话、电视机或其他显示设备、通信地耦合到显示设备的机顶盒、台式计算机、膝上型或上网本计算机、平板或笔记本计算机、移动站、娱乐设备、车载计算机等等。
在线游戏服务104便于游戏设备102的用户玩一个或多个不同的游戏。游戏服务104之所以被称为是在线服务,是因为游戏设备102经由网络106访问服务104(和/或其他游戏设备102)。在线游戏服务104包括账户访问服务110、玩游戏服务112、以及虚拟位置服务114,这些中的每一个可彼此通信。服务110、112和114可在在线游戏服务104内彼此通信和/或经由游戏设备102彼此通信。
账户访问服务110提供支持在线游戏服务104的用户账户的各种功能。不同的用户和/或游戏设备102通常具有相对于在线游戏服务104的不同账户,并且可经由账户访问服务110来登录他们的账户。用户或游戏设备102通过提供诸如下列凭证信息来登录到账户:ID(例如用户名、电子邮件地址等等)和口令、数字证书或来自智能卡的其他数据等等。账户访问服务110验证或认证该凭证信息,从而如果该凭证信息被验证或认证则允许用户或游戏设备102访问该账户,并且如果该凭证信息未被验证或未被认证则禁止用户或游戏设备102访问该账户。一旦认证了用户的凭证信息,则该用户可以使用在线游戏服务104提供的其他服务。账户访问服务110还可提供各附加账户管理功能,如准许改变凭证信息、建立新账户、移除账户,等等。
玩游戏服务112提供支持游戏设备102的用户玩一个或多个不同游戏的各种功能。玩游戏服务112可以支持不同的游戏标题(例如,一个或多个不同的体育游戏标题、一个或多个不同的策略游戏标题、一个或多个不同的旅行或搜索游戏标题等等)。游戏标题指的是在被执行时实现游戏的一组指令(例如来自特定厂商的用于网球游戏的一组指令、来自特定厂商的用于特定竞速游戏的一组指令等等)。游戏标题的特定运行也被称为游戏。不同用户可并发地玩同一游戏标题的多个游戏,每一游戏是该游戏标题的一单独运行。游戏可以作为单玩家游戏来运行和玩,其中游戏设备102的单个用户正在玩该游戏并控制该游戏中的一个或多个人物,其中该游戏中的其他人物由该游戏本身来控制(这些其他人物也被称为非玩家人物)。游戏也可以作为多玩家游戏来运行和玩,其中一个或多个游戏设备102的多个用户玩同一游戏并且每个用户控制游戏中的一个或多个人物。在多玩家游戏中,一个或多个附加人物也可由游戏本身来控制。
通常通过执行一个或多个程序来运行游戏。被执行来运行这些游戏的程序可以在游戏设备102和/或玩游戏服务112上运行。游戏设备102可以执行游戏的一个或多个程序,同时与玩游戏服务112通信来促进游戏设备102的用户之间在玩游戏时的通信和/或提供或获得用于玩该游戏的附加数据(和/或程序)。可替代地(或附加地),玩游戏服务112可执行游戏的一个或多个程序,同时接收来自游戏设备102的用户的输入并返回指示要生成以供向游戏设备102的用户显示或以其他方式呈现的输出的数据。虽然此处讨论的是在游戏设备102和/或玩游戏服务112上执行的一个或多个程序,但应当注意游戏可至少部分地以硬件形式在游戏设备102和/或玩游戏服务112上实现。
在一个或多个实施例中,游戏是在游戏设备102上执行的程序,并且玩游戏服务112管理不同的游戏设备102之间的通信。在其他实施例中,游戏是在游戏设备102上执行的程序,并且玩游戏服务112促进建立不同的游戏设备102之间的通信。在两个游戏设备102之间的通信建立之后,可以在不涉及游戏服务112的情况下进行这两个游戏设备102之间的通信。
虚拟位置服务114包括虚拟位置系统116,其为相同和/或不同游戏标题的不同游戏提供虚拟位置功能。这一虚拟位置功能允许标识虚拟环境中的各个虚拟位置。虚拟环境指的是在一个或多个游戏中而不是在现实环境中存在的环境。虚拟位置指的是在虚拟环境内的位置而不是现实世界中的物理位置。在所示出的示例中,虚拟位置系统116被实现在玩游戏服务112中的一单独的服务中并且支持跨多个不同游戏标题的虚拟位置功能。替换地,虚拟位置系统116可支持针对一个游戏标题的虚拟位置功能,并且能够可选地被包括作为玩游戏服务112的一部分。
在一个或多个实施例中,用户的虚拟位置对应于用户在虚拟环境中的虚拟位置。用户的化身可被显示给用户,或者可替代地,可不显示任何化身(例如,可为用户显示第一人称视角)。化身指的是在游戏中表示用户的物体。化身常常是用户的图形表示,但是可替代地可以具有多种其他形式,比如车辆、球体等等。
可以使用一个或多个计算设备来实现服务110、112和114中的每一个。通常,这些计算设备是服务器计算机,但可以另选地使用各种不同类型的计算设备中的任何设备(例如,以上参考游戏设备102讨论的那些类型的设备中的任何设备)。可以使用不同的计算设备来实现服务110、112和114中的每一个,或者另选地,可以使用同一计算设备来实现服务110、112和114中的每一个。
另外,虽然服务110、112和114被示为是分开的服务,但可替代地,这些服务中的多个服务可被一起实现作为单个服务。例如,玩游戏服务112和虚拟位置服务114可被实现成单个服务。此外,服务110、112和114中的一个或多个的功能可被分到多个服务中。另外,在线游戏服务104的功能可被分到多个服务中。例如,在线游戏服务104可包括账户访问服务110和玩游戏服务112,并且一不同的服务可包括虚拟位置服务114。
图2示出根据一个或多个实施例的实现虚拟位置签到的示例系统200。系统200包括虚拟位置系统202以及两个游戏204、206。虚拟位置系统202可以是例如图1的虚拟位置系统116。游戏204、206可以是同一游戏标题的不同游戏,或者是不同游戏标题的不同游戏。游戏204、206可被实现在游戏设备(例如,图1的游戏设备102)上和/或在线游戏服务(例如,图1的在线游戏服务104)。为了便于说明,系统200是结合两个游戏来讨论的,但应当注意任何数目的游戏可与虚拟位置系统202通信。
虚拟位置系统202包括虚拟位置追踪模块212、虚拟位置通知模块214、位置转换模块216、以及虚拟位置签到模块218。尽管模块212-218被示为分开的模块,但可替代的,模块212-218中的多个模块可被实现在一起作为单个模块。另外或替代的,模块212-118中的一个或多个模块的功能可被分到多个模块中。
可以用各种不同的设备来实现系统200。例如,可在图1的一个或多个游戏设备102中、在图1的在线游戏服务104中、或部分在一个或多个游戏设备102且部分在在线游戏服务104中实现系统200。因此,此处讨论的虚拟位置签到技术可被实现在在线游戏服务和/或单机游戏设备中。
在一个或多个实施例中,虚拟位置系统202与游戏204和206分开实现,并且被实现为对游戏204和206可用的服务的一部分。可替代地,虚拟位置系统202可以(至少部分地)在游戏204和206中实现。因而,例如,游戏204和/或206可包括模块212-218中的一个或多个模块,或可以实现此处讨论的由模块212-218执行的功能的至少一部分。
虚拟位置追踪模块212允许对用户在虚拟环境中的虚拟位置进行追踪。用户的虚拟位置的记录可由模块212维护,或者虚拟位置可被提供给另一模块(例如游戏204和/或206的模块)并由其维护。基于用户的虚拟位置,可使各种游戏特征对用户可用,如以下将更详细地讨论的。
虚拟位置通知模块214使得关于用户在虚拟环境中的虚拟位置的通知能够被发送。这些通知可被发送给各个其它服务或用户,如以下将更详细讨论的。这些通知还可包括对虚拟位置的指示,用于允许其它用户在该虚拟位置处加入用户,如以下将更详细讨论的。
位置转换模块216使得现实世界位置能够被转换成虚拟位置和/或将虚拟位置转换成现实世界位置。这一转换使得能够使各种游戏特征对用户可用,如以下将更详细讨论的。
虚拟位置签到模块218使得游戏204和206能够向虚拟位置系统202提供虚拟位置信息。虚拟位置信息通常作为虚拟位置签到请求的一部分被提供,当然可替换地,也可以其它方式来提供。
虚拟位置系统202支持虚拟环境映射系统。虚拟环境映射系统定义被用于标识虚拟环境内的虚拟位置的坐标系统。这一坐标系统通常是3维(3D)坐标系,当然可替换地,也可包括任何数目的维度。在一个或多个实施例中,坐标系是包括x、y和z维度(例如,水平、垂直以及深度)的笛卡尔坐标系。可替换地,可使用各种其它坐标系,诸如球坐标系(采用半径距离、倾斜角以及方位角作为维度)、地理坐标系(例如,采用纬度、经度以及海拔作为纬度)等等。
不同的游戏标题可使用相同的坐标系,或者可替换地,使用不同坐标系。在不同游戏标题使用不同坐标系的情形中,使用转换技术(例如,通过虚拟位置追踪模块212或虚拟位置签到模块218)来将不同游戏标题中的坐标转换到其它游戏标题中的坐标系。这一转换技术可包括基于不同坐标系的各种不同规则、准则、算法等。
游戏204和206可实现相同的虚拟环境和/或不同虚拟环境。例如,不同游戏标题可实现它们自己的单个的虚拟环境(供用户在其中玩),或者可共享一公共的虚拟环境(供用户在其中玩)。此外,在虚拟环境中,可支持多个不同地图。每个不同的地图代表游戏标题所实现的虚拟环境中的一个不同区域或部分。支持多少地图以及那些不同的地图的属性(例如,不同区域或部分如何标识或确定)可根据游戏标题、基于游戏标题的设计者或开发者的希望而变化。
虚拟位置签到模块218使得游戏204和206能够向虚拟位置系统202提供虚拟位置信息。游戏204和206作出虚拟位置签到请求以向虚拟位置系统202提供(签到)虚拟位置。在一个或多个实施例中,虚拟位置签到模块218实现一应用编程接口(API),该API可由游戏204和206调用以向系统202提供虚拟位置信息。可替换地,游戏204和206可使用其它数据传输机制向系统202提供虚拟位置信息。
该虚拟位置信息标识用户在虚拟环境中的虚拟位置。在一个或多个实施例中,虚拟位置信息包括虚拟环境的坐标系中的三个维度的值,用于指示用户的虚拟位置。虚拟位置信息还可包括与虚拟位置和/或虚拟环境有关的附加信息。例如,虚拟位置信息可包括游戏标题标识符,该标识符标识了实现所标识的虚拟位置所在的虚拟环境的游戏标题。可替换地,实现所标识的虚拟位置所在的虚拟环境的游戏标题可以是在提供虚拟位置信息时自带的(例如,不同虚拟位置签到模块218可被用于不同的游戏标题,不同的API方法可向不同游戏标题公开等等)。作为另一示例,虚拟位置信息可包括地图标识符,该地图标识符标识其中存在所标识的虚拟位置的虚拟环境的地图。可替换地,所标识的虚拟位置所在的虚拟环境的地图可以是在提供虚拟位置信息时自带的(例如,不同虚拟位置签到模块218可被用于不同的地图,不同的API方法可向不同地图公开等等),或者游戏标题可具有单一地图,在这种情况下,地图标识符不需要被包括在虚拟位置信息中。
游戏204、206可在各个时候向虚拟位置签到模块218提供用户的虚拟位置信息。例如,游戏204、206可在用户玩游戏204、206时规律地或不规律地提供用户的虚拟位置信息。游戏204、206还可响应于特定事件(诸如请求提供用户他或她的虚拟位置的用户输入、用户位于虚拟环境中的特定虚拟位置、在游戏中执行了特定活动、在游戏中达成了特定成就或目标等等)提供虚拟位置信息。
虚拟位置签到模块218所接收的虚拟位置信息可以各种方式被使用。在一个或多个实施例中,虚拟位置信息由虚拟位置追踪模块212来维护。虚拟位置信息还可由提供该虚拟位置信息的游戏204、206维护(例如,游戏204、206可保存其提供的虚拟信息的记录,或者从虚拟位置追踪模块212接收(例如,响应于对虚拟位置信息的请求)记录的虚拟信息)。
虚拟位置签到模块218所接收的虚拟位置信息还可由虚拟位置通知模块214使用来发送关于用户在虚拟环境中的虚拟位置的通知。这些通知可被发送给各个其他用户,并且可以各种方式确定要向其发送通知的具体的一个或多个用户。应当注意,这些其他用户可以(并且通常)在虚拟环境外部。位于虚拟环境外部的用户指的是当前没有玩实现该虚拟环境的游戏的用户。
在一个或多个实施例中,被提供关于其的虚拟位置信息的用户标识其他用户(例如,通过玩家标签、电子游戏地址、或其它用户标识符)。其他用户可在各个时间被标识,诸如在被提供关于其的虚拟位置信息的用户开始玩游戏时、在虚拟位置信息被提供时、作为(例如,图1的在线游戏服务104的)配置或偏好设置的一部分等等。可替换地,通知要被发送到的特定的一个或多个用户可以其他方式来确定,诸如是被提供关于其的虚拟位置信息的用户的朋友的用户(例如,如图1的在线游戏服务104所标识的、如社交网络服务所标识的等等)、已注册或以其它方式请求接收这类通知的用户、诸如此类。
虚拟位置通知模块214可以各种方式发送通知,可选地利用一个或多个其它服务。例如,通知可经由SMS(短消息服务)消息、MMS(多媒体消息服务)消息、电子邮件消息、微博服务消息(例如,推文)等来发送。这些通知可使用各种已知技术中的任意一种被显示给接收者。通知还可经由游戏内通信机制来发送并在游戏内被显示给接收者。例如,可创建其中显示该通知的特定消息窗口或框,通知可被显示在其中显示消息的游戏内面板或其它位置、诸如此类。
通知可包括与被提供其虚拟位置信息的用户、被提供其虚拟位置信息的用户正在玩的游戏标题、包括该虚拟位置的虚拟环境等有关的各种信息。例如,通知可标识被提供其虚拟位置信息的用户(例如,玩家标签、电子邮件地址、或其它用户标识符)。作为另一示例,虚拟位置信息的各个部分也可被包括在通知中,诸如被提供其虚拟位置信息的用户正在玩的游戏标题的标识符(例如,名称)、包括该虚拟位置的虚拟环境、诸如此类。
在一个或多个实施例中,通知包括用户可选择的链接(例如,超链接、按钮、图标等)。链接标识图1的在线游戏服务104的位置或功能(例如,虚拟通知模块214的位置或功能),并且游戏标题的标识符、游戏地图、以及虚拟位置被嵌入在链接中。游戏标题是被提供其虚拟位置信息的用户正在玩的游戏标题。游戏地图是虚拟位置信息中包括的虚拟位置所位于的虚拟环境的地图。虚拟位置是被提供的虚拟位置信息中的虚拟位置。
例如,用户可选择链接可采用以下形式:
system://launch?titleID=F3R529&map=foo&loc=x.y.z
其中“F3R529”是游戏标题的标识符,“foo”是游戏地图的标识符,而“x.y.z”是虚拟位置。
收到该通知的用户可选择该链接,并且响应于用户对该链接的选择,在线游戏服务104(例如,虚拟位置通知模块214)通知接收用户的设备上的游戏跳转到所标识的游戏标题和游戏地图(如链接中所标识的)的游戏的虚拟位置。如果所标识的游戏标题的游戏还未在接收用户的设备上运行,则在线游戏服务104还可通知接收用户的设备开始运行所标识的游戏和所标识的游戏标题的游戏。接收用户随后可加入并与被提供其虚拟位置信息的用户一起玩该游戏。
用户的游戏设备可被通知以各种方式运行游戏。例如,用户的游戏设备可包括启动器模块或应用,其从在线游戏服务104接收开始运行游戏的通知。响应于这一通知,启动器模块或应用可视运行在线游戏服务104所标识的游戏。
例如,假设游戏204正运行在游戏设备A上。标识游戏设备A的用户的虚拟位置的虚拟位置信息被提供给虚拟位置签到模块218。虚拟位置通知模块214向该用户在游戏设备B上的朋友提供关于这一虚拟位置的通知。该通知包括标识模块214的功能的链接。该朋友选择该链接,作为响应,游戏设备B通知模块214该链接已被选择,而模块214通知游戏设备B开始在游戏设备B上运行游戏206(其与游戏204是同一游戏标题)。模块214还通知游戏206将该朋友放置到游戏206中的与该通知中标识的虚拟位置相同的虚拟位置处(或者与该通知中标识的虚拟位置在阈值距离以内)。因此,该朋友可在与被提供关于其的通知的用户相同的虚拟位置处开始玩游戏206(其与游戏204是同一游戏标题的游戏)。
在一个或多个实施例中,响应于用户对通知中的链接的选择,游戏标题能够以不同模式运行和/或不同游戏标题可被运行。例如,游戏可具有第一人称模式(其中用户玩该游戏就像他或她在该虚拟环境中一样)以及命令模式(其中用户协调多组角色(或其它游戏元素))。作为另一示例,一个游戏标题可以第一人称模式来玩(其中用户玩该游戏就像他或她在该虚拟环境中一样),而另一游戏标题可以命令模式来玩(其中用户协调多组角色(或其它游戏元素))。使用(并且在还未运行时启动)哪个游戏模式或游戏标题可以不同方式来确定。在一个或多个实施例中,将要玩该游戏的用户选择游戏模式或游戏标题。例如,虚拟位置通知模块214可通知用户的游戏设备跳转到所标识的游戏标题和游戏地图中的游戏的虚拟位置,并且作为响应,游戏设备呈现一用户界面,请求游戏设备的用户选择游戏模式或游戏标题。响应于用户对游戏模式或游戏标题的选择,用户选择的游戏标题(或模块214标识的游戏标题的游戏模式)被运行,并且用户被放置在所标识的虚拟位置处。
可替换地,可以其它方式来确定使用(并且在还未运行时启动)哪个游戏模式或游戏标题。例如,游戏的模式可被包括在被提供给虚拟位置签到模块218的虚拟位置信息中,并且可被嵌入在由虚拟位置通知模块214发送的通知中包括的链接中。作为另一示例,不同设备配置可默认使用特定游戏模式或游戏标题。例如,计算机配置(例如,以下讨论的图5的计算机514配置)可默认使用一个模式(例如,第一人称游戏模式),而移动配置(例如,以下讨论的图5的移动设备516配置)了默认使用另一模式(例如,命令模式)。
在一个或多个实施例中,正在玩游戏的用户可在游戏中请求其它用户帮助。用户可通过提供各种用户输入(例如,提供语音命令、作手势、选择键序列或菜单选项、诸如此类)中的任意一种来作出这一请求。响应于这一请求,用户的虚拟位置信息被提供给虚拟位置签到模块218。可替换地,替代将用户的虚拟位置信息提供给模块218,发通知的请求可被提供给模块214,模块214使用最近被提供的用户的虚拟位置信息。如上所讨论的,虚拟位置通知模块214发送通知给其他用户,但同样在该通知中包括用户正请求帮助的指示。这一用户正请求帮助的指示可采用各种形式,诸如文本(例如,“救命!”)、图像或图形、请求帮助的用户的口头录音、诸如此类。通知的接收者随后可选择包括在通知中的链接,并且在该位置和/或以如上所讨论的各种模式中的任意一种跳入到游戏中。
例如,假设游戏204正在游戏设备A上运行,并且正在玩游戏204的用户正在受到对手的压制。用户可请求他或她的朋友帮助,并且响应于该请求,标识游戏设备A的用户的虚拟位置的虚拟位置信息被提供给虚拟位置签到模块218。虚拟位置通知模块214将关于这一虚拟位置以及用户的帮助请求的通知提供给用户在游戏设备B上的朋友。该通知包括标识模块214的功能的链接。给链接被朋友所选择,并且作为响应,模块214通知游戏设备B在游戏设备B上运行游戏206(其与游戏204是同一游戏标题)。游戏206可以与游戏204相同的模式运行,并且朋友被放置在游戏206中的与通知中标识的虚拟位置相同的虚拟位置。因此,朋友可在相同的虚拟位置处开始玩游戏206,并且帮助被提供的通知所关于的用户。可替换地,游戏206可以与游戏204不同的模式运行,诸如游戏204以第一人称模式运行而游戏206以命令模式运行。游戏设备B的用户可协调向游戏设备A的用户提供补给或其它支持,以通过他或她的玩游戏来帮助游戏设备A的用户。
虚拟位置追踪模块212允许对用户在虚拟环境中的虚拟位置进行追踪。虚拟位置签到模块218接收的多个用户的虚拟位置信息由模块212维护,并且可基于用户的虚拟位置被用于提供各种游戏特征。
在一个或多个实施例中,虚拟位置追踪模块212维护与不同虚拟位置相关联的游戏特征的记录,诸如奖励或成就。当用户的虚拟位置信息被虚拟位置签到模块218接收时,虚拟位置追踪模块212将用户的虚拟位置与游戏特征的记录作比较,并且如果用户的虚拟位置与记录的虚拟位置相同,则使该游戏特征对用户可用。可以不同方式使游戏特征对用户可用,诸如虚拟位置追踪模块212通知游戏204或206或图1的玩游戏服务112该特征对用户可用。
可以不同方式来标识用户的虚拟位置是否与记录的虚拟位置相同。在一个或多个实施例中,如果用户的虚拟位置在记录的虚拟位置的阈值距离以内(例如,使用虚拟位置系统202支持的坐标系),则用户的虚拟位置与记录的虚拟位置相同。可替换地,可以其它方式来确定用户的虚拟位置是否与记录的虚拟位置相同,诸如仅在用户的虚拟位置与记录的虚拟位置相同(例如,相等)时,用户的虚拟位置与记录的虚拟位置相同。
可以各种方式来标识游戏特征以及与那些游戏特征相关联的虚拟位置。在一个或多个实施例中,虚拟位置以及相关联的游戏特征由游戏标题设计者或开发者提供。
在其它实施例中,虚拟位置以及相关联的游戏特征由其他用户提供。在这样的实施例中,当用户正在玩一个游戏,该用户可请求与特定虚拟位置(例如,作出请求时用户的虚拟位置)相关联的游戏特征。用户可通过提供各种用户输入(例如,提供语音命令、作手势、选择键序列或菜单选项、诸如此类)中的任意一种来作出这一请求。用户所请求的游戏特征可采用各种不同形式中的任意一种,诸如口头录音、文本描述、图像或视频序列、诸如此类。随后,当虚拟位置签到模块218接收标识正在玩该游戏标题的游戏的其他用户正处于该特定虚拟位置的其他用户的虚拟位置信息时,这一游戏特征可对那些其他用户可用。
用户能够请求使该游戏特征对所有其他用户可用,或可替换地,仅对特定用户可用。用户可以各种不同方式标识使该游戏特征对哪些特定用户可用。例如,用户可标识使该游戏特征仅对用户的朋友(例如,如图1的在线游戏服务所标识的,或者如社交网络服务所标识的)可用、仅对用户指定的其他用户(例如,通过输入其他用户的玩家标签、电子邮件地址等)可用、诸如此类。随后,当虚拟位置签到模块218接收标识正在玩该游戏标题的游戏的特定用户正处于该特定虚拟位置的其他用户的虚拟位置信息时,这一游戏特征可对那些特定用户可用。
应当注意,用户可在他或她正在玩游戏时请求相同和/或不同的游戏特征与多个位置相关联。不同游戏特征可与不同虚拟位置相关联,诸如特定口头线索、口令、视频消息、诸如此类。用户还可选择使特定的游戏内项目被留作游戏特征(例如,积分或其他游戏内货币可从该用户扣除并留作游戏特征、武器或其他物品可被用户留下作为游戏特作、诸如此类)。因此,当用户玩通游戏中的一特定区域时,他或她可为他或她的朋友留下游戏特征以帮助他们玩通该游戏的该特定区域。
位置转换模块216使得现实世界位置能够被转换成虚拟位置和/或虚拟位置转换成现实世界位置。可使用各种转换技术来将现实世界位置转换成虚拟位置和/或将虚拟位置转换成现实世界位置,包括各种不同规则、准则、算法、诸如此类。特定技术可基于用于虚拟环境的坐标系以及用于现实世界的坐标系而改变。例如,模块216可将使用地理坐标系标识的现实世界位置(例如,采用经度、纬度、以及海拔作为纬度)转换成使用包括x、y、和z纬度(例如水平、垂直、以及深度)的笛卡尔坐标系的虚拟位置。
虚拟位置和物理位置之间的这一转换使得能够使各种游戏特征对用户可用。用户可向现实世界追踪服务签到,该服务基于他或她的物理位置(用户在现实世界中的位置)向用户提供各种功能。现实世界追踪服务还将该物理位置和用户的标识符(诸如玩家标签、电子邮件地址、或其他用户标识符(例如,如用户所提供的))提供给虚拟位置系统202。位置转换模块216接收该物理位置并将该物理位置转换成虚拟环境的虚拟位置。这一经转换的虚拟位置还由虚拟位置追踪模块212维护作为与用户已签到的物理位置相对应的虚拟位置。
在一个或多个实施例中,虚拟位置追踪模块212所维护和提供的游戏特征与虚拟位置和物理位置两者都关联。当用户的虚拟位置信息被虚拟位置签到模块218接收时,虚拟位置追踪模块212将用户的虚拟位置与游戏特征的记录作比较。如果用户的虚拟位置与记录的虚拟位置系统,并且用户已向对应的物理位置签到,则可使该游戏特征对该用户可用。
可以如上所讨论的不同方式提供游戏特征,诸如通过游戏标题设计者或开发者提供。例如,游戏标题设计者可设置一个游戏特征(例如,成就、奖励、小游戏等),如果用户在虚拟环境中存在一特定地标(例如,一特定的战场、一特定的纪念碑等)的某一虚拟位置签到,并且用户已在与该特定地标所在的虚拟位置相对应的物理位置处签到,则可使该游戏特征对用户可用。当用户正在旅行并且使用现实世界追踪服务在该特定地标处签到时,则该用户已在相应虚拟位置处签到的记录由虚拟位置追踪模块212维护。如果用户随后在该特定地标所在的虚拟位置处签到,则可使该特定游戏特征对用户可用。
在一个或多个实施例中,虚拟位置追踪模块212所维护和提供的游戏特征与对应于物理位置的虚拟位置相关联。当用户的虚拟位置信息被虚拟位置签到模块218接收时,虚拟位置追踪模块212将用户的虚拟位置与游戏特征的记录作比较。如果用户的虚拟位置与记录的虚拟位置相同,则可使该游戏特征对该用户可用。
可以如上讨论的不同方式提供游戏特征,诸如通过另一用户提供。用户可向现实世界追踪服务签到,该服务如以上所讨论的,基于用户他或她的物理位置向该用户提供各种功能。用户还可请求一游戏特征与该物理位置相关联。用户可通过提供各种用户输入(例如,提供语音命令、作手势、选择键序列或菜单选项、诸如此类)中的任意一种来作出这一请求。用户所请求的游戏特征可采用各种不同形式中的任意一种,诸如口头录音、文本描述、图像或视频序列、诸如此类。现实世界追踪服务如以上所讨论的,将物理位置和用户的标识符以及用户所请求的游戏特征提供给虚拟位置系统202。位置转换模块216接收该物理位置并将该物理位置转换成虚拟环境的虚拟位置。这一经转换的虚拟位置由虚拟位置追踪模块212维护作为与用户已签到的物理位置相对应的虚拟位置,并且该经转换的虚拟位置与用户所请求的游戏特征相关联。随后,当虚拟位置签到模块218接收标识正在玩该游戏标题的游戏的其他用户正处于该特定虚拟位置的其他用户的虚拟位置信息时,这一游戏特征可对那些其他用户可用。
用户能够请求使该游戏特征对所有其他用户可用,或可替换地,仅对特定用户可用。用户可以各种不同方式标识使该游戏特征对哪些特定用户可用。例如,用户标识使该游戏特征仅对用户的朋友(例如,如图1的在线游戏服务所标识的,或者如社交网络服务所标识的)可用、仅对用户指定的其他用户(例如,通过输入其他用户的玩家标签、电子邮件地址等)可用、诸如此类。随后,当虚拟位置签到模块218接收标识正在玩该游戏标题的游戏的特定用户正处于该特定虚拟位置的其他用户的虚拟位置信息时,这一游戏特征可对那些特定用户可用。
作为示例,假设用户A正在旅行并使用现实世界追踪服务在华盛顿州西雅图市的一特定街道拐角处签到。再假设该用户为他或她的朋友(用户B和用户C)记录了一条口头消息。该用户已在与该特定街道拐角相对应的虚拟位置处签到的记录由虚拟位置追踪模块212维护。记录的口头消息的记录也由模块212维护。当用户B随后在虚拟环境中对应于该特定街道拐角的虚拟位置处签到时,则向用户B回放该记录的口头消息。
在一个或多个实施例中,虚拟位置追踪模块212追踪多个用户在虚拟环境中的虚拟位置。多个用户的虚拟位置可被用于帮助用户决定他或她在虚拟环境中的哪个虚拟位置处开始玩游戏。多个其他用户的虚拟位置以各种方式被显示给用户,诸如使用“热图”显示,该“热图”显示基于多少其他用户正在虚拟环境的地图的不同部分玩来用不同颜色或不同颜色强度来显示该不同部分。例如,如果5-15个其他用户正在地图的某一部分的虚拟位置处玩,则该部分可以用橙色突出显示,如果16个或更多的其他用户正在地图的该部分的虚拟位置处玩,则该部分可以用红色突出显示,诸如此类。可替换地,多个其他用户的虚拟位置可以其他方式显示给用户,诸如在每个其他用户的地图显示的大头针或点、在该地图上显示的每个用户的玩家标签或其他标识符、诸如此类。被显示其虚拟位置的多个其他用户可以不同方式来标识,诸如其他用户是用户的朋友(例如,如图1的在线游戏服务104所标识的或者由社交网络服务所标识的等等)、其他用户与用户在(现实世界中的)相同的城市或州,其他用户具有与用户相同的技能等级(或在一阈值距离内)、诸如此类。
用户随后可选择他或她希望开始玩的地图的特定部分或位置,响应于此,游戏从该特定部分或位置处开始玩。用户可通过提供各种用户输入(例如,提供语音命令、作手势、选择键序列或菜单选项、诸如此类)中的任意一种来作出这一请求。
例如,用户可希望玩特定游戏标题的游戏,并且向该用户呈现地图的热图视图,该热图视图标识他或她的朋友当前正在玩的虚拟位置。用户随后可选择该地图上他或她的朋友中的许多正在玩的位置,并从该位置处开始玩游戏。
可替换地,代替在游戏中玩,用户可请求观察另一用户正在玩的游戏。用户可通过提供各种用户输入(例如,提供语音命令、作手势、选择键序列或菜单选项、诸如此类)中的任意一种来作出这一请求。响应于该请求,当该另一用户提供新的虚拟位置信息时,该另一用户的虚拟位置被现实给该请求用户。这些虚拟位置可被显示在例如虚拟环境的地图的各部分上(例如,热图),并同时显示或不显示其他用户的位置。
在一个或多个实施例中,虚拟位置系统202对用户的虚拟位置的追踪仅在接收用户赞成这么做之后执行。这一用户同意可以是赞成加入,其中在虚拟位置系统202执行对该用户的虚拟位置的任何追踪之前,用户采取肯定性动作来请求执行对虚拟位置的追踪。可替换地,这一用户同意可以是赞成不加入,其中用户采取肯定性动作来请求虚拟位置系统202不执行对用户的虚拟位置的追踪。如果该用户没有选择不加入该追踪,那么它是用户作出的对执行该追踪的默示同意。
还应注意,可由其他服务或模块执行各种对现实世界中的物理位置的追踪,并且追踪信息由虚拟位置系统202接收并维护。由虚拟位置系统202执行的这一对用户的物理位置的追踪可类似地仅在接收用户赞成这么做之后才执行。
此外,应当注意,虚拟位置系统202执行的对用户的虚拟位置的追踪能够使得系统202能够区分不同用户,但不需要包括标识特定用户的任何个人信息。例如,用户或用户的设备可用特定的用户名或身份登录到包括虚拟位置系统202的服务,但是不需要维护该用户名和实际的个人之间的关联。因此,虚拟位置系统202可追踪用户的虚拟位置,并且同时不需要知晓该用户实际是谁。
图3示出了根据一个或多个实施例的可被显示给用户的示例用户界面,该用户界面允许用户选择虚拟位置系统202是否将追踪该用户的虚拟位置。显示包括描述302的虚拟位置追踪窗口300,该描述向用户解释为什么虚拟位置系统202正执行追踪。还显示到隐私声明的链接304。如果用户选择链接304,则显示系统202的隐私声明,向用户解释用户的信息如何被保持机密。
另外,用户能够选择单选按钮306来选择加入追踪,或单选按钮308来选择不加入追踪。一旦单选按钮306或308被选择,用户可选择“确定”按钮310以让该选择被保存。可以理解的是,单选按钮和“确定”按钮仅仅是可被呈现给用户来选择加入或选择不加入追踪的用户界面的示例,并且各种其它常规的用户界面技术可被替换地使用。虚拟位置系统202随后继续以根据用户的选择来追踪或不追踪用户的虚拟位置。
图4是示出根据一个或多个实施例的实现虚拟位置签到的示例过程400的流程图。过程400通过诸如图2的系统200或图1的系统116之类的虚拟位置系统来执行,并可以以软件、固件、硬件,或其组合来实现。过程400被示为一组动作,并且不仅限于所示出的用于执行各种动作的操作的顺序。过程400是用于实现虚拟位置签到的示例过程;参考不同的附图,在本文中包括了实现虚拟位置签到的附加讨论。
在过程400,接收标识用户在虚拟环境中的虚拟位置的虚拟位置信息(动作402)。如以上所讨论的,这一虚拟位置信息可包括各种信息,包括虚拟位置的坐标、实现该虚拟环境的游戏标题的标识符、该虚拟环境所支持的地图的标识符、诸如此类。这一虚拟位置信息可作为用户的虚拟位置签到请求的一部分被接收,如以上所讨论的。
可基于接收的虚拟位置信息执行各种动作。对于虚拟位置的通知可被发送给位于虚拟环境外部的一个或多个其他用户(动作404)。这些一个或多个其他用户是当前没有在玩实现该虚拟环境的游戏标题的用户,如以上所讨论的。
还可确定与虚拟位置相关联的一个或多个游戏特征(动作406)并提供给用户(动作408)。各种不同的游戏特征(诸如奖励或成就)可与不同虚拟位置相关联,并且这些不同的游戏特征和相关联的虚拟位置可以不同方式来标识,如以上所讨论的。
此处讨论了由各个模块执行的诸如通信、接收、发送、记录、获得等各个动作。本文讨论的执行某一动作的特定模块包括该特定模块本身执行该动作或另选地该特定模块调用或与其他方式访问执行该动作的另一组件或模块(或与该特定模块联合执行该动作)。因而,执行某一动作的特定模块包括该特定模块本身执行该动作或该特定模块调用或以其他方式访问的另一模块执行该动作。
图5在500概括地示出了包括示例计算设备502的示例系统,该示例计算设备502表示可以实现此处描述的各种技术的一个或多个这种计算系统和/或设备。计算设备502可以是,例如,服务提供方的服务器、与用户相关联的设备(例如,图1的游戏设备102)、片上系统、和/或任何其他合适的计算设备或计算系统。
所示的计算设备502包括处理系统504、一个或多个计算机可读介质506、以及彼此通信地耦合的一个或多个I/O接口508。尽管没有示出,计算设备502可进一步包括系统总线或将各种组件彼此耦合的其它数据和命令传输系统。系统总线可包括不同总线结构中的任一个或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任一种的处理器或局部总线。也构想了各种其它示例,诸如控制和数据线。
处理系统504表示使用硬件执行一个或多个操作的功能。因此,处理系统504被示为包括可被配置为处理器、功能块等的硬件元件510。这可包括在作为专用集成电路或使用一个或多个半导体构成的其它逻辑设备的硬件中的实现。硬件元件510不受形成它们的材料或者其中使用的处理机制的限制。例如,处理器可以由半导体和/或晶体管(例如,电子集成电路(IC))构成。在这一上下文中,处理器可执行指令可以是可电子地执行的指令。
计算机可读介质506被示为包括存储器/存储512。存储器/存储512表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储512可包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等等)。存储器/存储512可包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如闪存、可移动硬盘驱动器、光盘等等)。计算机可读介质506可以下面进一步描述的各种方式来配置。
输入/输出接口508表示允许用户向计算设备502输入命令和信息的功能,并且还允许使用各种输入/输出设备向用户和/或其他组件或设备呈现信息。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪、触摸功能(例如,电容性的或被配置来检测物理接触的其它传感器)、照相机(例如,可采用可见或诸如红外频率的不可见波长来将不涉及触摸的移动检测为姿势),等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备,等等。因此,计算设备502可以下面进一步描述的各种方式来配置以支持用户交互。
计算设备502还包括虚拟位置系统520。虚拟位置系统520为系统和/或不同游戏标题的不同游戏提供虚拟位置功能。虚拟位置系统520类似于图1的虚拟位置系统116,但是它被示为在计算设备502中实现而非在在线游戏服务中实现。虚拟位置系统520可以是图2的虚拟位置系统202。
此处可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。一般而言,这种模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等等。本文使用的术语“模块”、“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的各特征是平台无关的,从而意味着该技术可在具有各种处理器的各种商用计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质传输。计算机可读介质可包括可由计算设备502访问的介质。作为示例而非限制,计算机可读介质可包括“计算机可读存储介质”和“计算机可读信号介质”。
计算机可读存储介质摂可以指相对于仅信号传输、载波、或信号本身而言,启用对信息的持久和/或非瞬态存储的介质和/或设备。由此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括以适合于存储如计算机可读指令、数据结构、程序模块、逻辑元件/电路、或其他数据等的方法或技术来实现的诸如易失性和非易失性、可移动和不可移动介质和/或存储设备的硬件。该计算机可读存储介质的示例包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、硬盘、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可适用于存储所需信息并可由计算机访问的其它存储设备、有形介质或制品。
“计算机可读信号介质”可以指被配置为诸如经由网络向计算设备502的硬件传输指令的信号承载介质。信号介质通常用诸如载波、数据信号、或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。信号介质还包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线路连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。
如前面所述描述的,硬件元件510和计算机可读介质506是表示以硬件形式实现的指令、模块、可编程设备逻辑和/或所固定设备逻辑,其可被某些实施例采用来实现此处描述的技术的至少某些方面。硬件元件可包括集成电路或片上系统、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD),和用硅或其它硬件设备实现的组件。在此上下文中,硬件元件可以充当处理设备,该处理设备执行由该硬件元件以及用于存储供执行的指令的硬件设备(例如前面描述的计算机可读存储介质)所体现的指令、模块和/或逻辑所定义的程序任务。
前面的组合也可被采用来实现在此描述的各种技术。因此,软件、硬件,或模块和其他程序模块可被实现为一个或多个指令和/或在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件510实现的逻辑。计算设备502可被配置成实现特定指令和/或对应于软件和/或硬件模块的功能。因此,可由计算设备502执行为软件的模块的实现可至少部分以硬件完成,例如,通过使用计算机可读存储介质和/或处理系统的硬件元件510。指令和/或功能可以是一个或多个制品(例如,一个或多个计算设备502和/或处理系统504)可执行/可操作的,以实现技术、模块,以及此处描述的示例。
在各种实现中,计算设备502可假设各种不同的配置,诸如用于计算机514、移动设备516、和电视机518用途。这些配置中的每一个包括可具有一般不同的构造和能力的设备,并且因而计算设备502可根据不同的设备类中的一个或多个来配置。此处所描述的技术可由计算设备502的这些各种配置来支持,且不限于在本文描述的各具体示例。例如,计算设备502可被实现为计算机514类设备,该计算机类设备包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。
计算设备502还可被实现为移动516类设备,该移动类设备包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备。计算设备502还可被实现为电视机518类设备,该电视机类设备包括在休闲观看环境中具有或连接到一般更大的屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。