Method and storage medium for verifying the geolocation of a client device
By verifying player positions using landmark image data and mobile sensors, the problem of location deception in parallel reality games is solved, improving game fairness and player experience.
Patent Information
- Application Number
- CN202210981686.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-10-30
- Filing Date
- 2019-10-30
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2039-10-30
AI Technical Summary
In parallel reality games, players use cheating techniques to falsify their positions to gain unfair advantages, affecting the fairness and attractiveness of the game.
Position accuracy is ensured by validating the player's real-world position using landmark image data captured by the client device during movement, combined with motion sensor data to verify path matching.
It effectively reduces cheating, improves game fairness and player experience, and enhances its attractiveness to advertisers and sponsors.
Smart Images

Figure CN115138075B_ABST
Abstract
Description
[0001] Related application citations
[0002] This application is a divisional application of the invention patent application with international application number PCT / IB2019 / 059322, international application date October 30, 2019, date of entry into the Chinese national phase on June 29, 2021, Chinese national application number 201980087114.5, and invention name “Verifying the player’s real-world position using landmark image data corresponding to the verification path”. Technical Field
[0003] The present disclosure relates generally to location-based gaming and, more particularly, to systems and methods for verifying a player's real-world location as part of a parallel reality game. Background Art
[0004] Parallel reality games that provide a shared virtual world that is parallel to at least a portion of the real world can host a variety of interactions that can attract a community of players. Providing a virtual world with a geography that is at least partially parallel to the real world allows players to navigate the virtual world by navigating in the real world. Linking virtual elements in the virtual environment with real-world objects, locations, and actions in the real world can encourage players to travel to and notice features in the real world that players would normally overlook. Providing virtual elements in the virtual world at the same location as their corresponding real-world objects and / or locations increases the sense that the virtual elements are a hidden part of the real world.
[0005] Parallel reality games may include game features that encourage players to interact in the virtual world, such as through social interactions with other players in the virtual world and through various game objectives in the virtual world. Certain game features may be provided to more closely link the parallel virtual world with the real world. Parallel reality games may also include game features that encourage players to interact simultaneously in the real world and the virtual world, for example, by gathering together in a defined geographic area in the real world at a specific time and date and interacting with each other in the virtual world while together in the real world.
[0006] There is a technology that enables an individual to make a computing device report its location as being different from its real location, which is generally referred to as "spoofing" the location of the device. Players who use such technology in playing parallel reality games are similarly referred to as "spoofers." These players may cause problems in these games because the location of their device being deceived enables them to access features and events in the parallel virtual world, which are intended to be limited to specific real-world locations, and these players do not have to be physically present at the real-world location. This may frustrate players who strive to go to real-world locations, and compared to other players who play games according to the rules, this may give the cheater an unfair advantage in the game. Cheating can also reduce the attractiveness of parallel reality games to advertisers and sponsors because the cheater does not need to visit any specific physical location when playing games. For example, for a player who is physically located in California and deceives the location of their device to make it look like they are in a game in Vermont, the appearance of a coffee shop in Vermont is almost worthless. Summary of the Invention
[0007] The above and other problems can be solved by using image data of landmarks captured by the player's computing device during movement to verify the player's real-world location. When interacting with or approaching a location or object in the virtual world, the player's client device can use information available in the real world to verify that the client device is located at or near the corresponding real-world location. This information can be specific to the player or can be shared among a group of players (e.g., all players on a team, all players from a specific geographic region, all players worldwide, etc.).
[0008] In one embodiment, a method and system for verifying the location of a player's client device utilizes image data captured by the client device and prompts the player to move with the client device along a verification path. The verification process includes: a server receiving the location of the client device and the server preparing verification instructions for the player's client device. The verification instructions include a landmark proximate to a real-world location and a verification path for the client device. Upon receiving the verification instructions, the client device prompts the player to capture initial image data (which may be a picture or video of the landmark) of the landmark specified in the verification instructions. The player's client device may verify that the image data matches the landmark. The client device then continues to prompt the player to move with the client device along the verification path while continuously capturing new image data of the landmark. The player's client device again verifies that the newly captured image data matches the landmark and that the newly captured image data has a different perspective than the initial image data. In additional embodiments, the client device receives motion data from one or more motion sensors, the motion data describing the device's physical movement along the verification path. The client device may determine whether the motion data matches the verification path. Once the newly captured image data is verified, the player's client device may conclude that the device is at the real-world location corresponding to the access point.
[0009] Other exemplary implementations of the present disclosure are directed to systems, apparatuses, non-transitory computer-readable media, devices, and user interfaces for verifying a player's real-world location based on activity in a location-based parallel reality game.
[0010] The following description describes various aspects and advantages of various embodiments. Additional aspects and advantages will be apparent to those skilled in the art based on this description or may become apparent through practice of the embodiments. The accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate various embodiments and, together with the specification, serve to explain the relevant principles. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] A detailed discussion of embodiments for those of ordinary skill in the art is set forth in the specification, which refers to the accompanying drawings, in which:
[0012] Figure 1 is a block diagram of a networked computing environment in which a player's real-world location can be verified based on activity within a parallel reality game, according to one embodiment.
[0013] Figure 2 Depicted is a representation of a virtual world having geography parallel to the real world, according to one embodiment.
[0014] Figure 3Depicted is an exemplary game interface for a parallel reality game, according to one embodiment.
[0015] Figure 4 is a server-client interaction diagram of a method for linking real-world activities with parallel reality games, according to one embodiment.
[0016] Figure 5 is an illustration of a verification process for verifying the real-world location of a player's client device, according to one embodiment.
[0017] Figure 6 is a server-client interaction diagram of a method for verifying the real-world location of a player's client device, according to one embodiment.
[0018] Figure 7 According to one embodiment Figure 6 An icon of the game interface when using the method.
[0019] Figure 8 is an example architecture for a computing device according to one embodiment. DETAILED DESCRIPTION
[0020] Overview
[0021] A game server can host a parallel reality game with a player game area, which includes a virtual environment with a geography parallel to at least a portion of the real-world geography. Players can navigate in a coordinate range that limits a virtual space in a virtual world by navigating in a geographic coordinate range in the real world. In particular, a positioning system (e.g., a GPS system) associated with a player's client device, which can be a mobile computing device, can be used to monitor or track the player's location. Player positioning information can be provided to the game server hosting the parallel reality game through a network, and can be used by the game to update the player's position in the virtual world. Therefore, when a player and his client device continuously move around in a coordinate range in the real world, the game server can be updated so that the player also continuously moves around in a coordinate range in the parallel virtual world.
[0022] The virtual world may include one or more virtual elements linked to points of interest in the real world. For example, the virtual world may include various virtual elements associated with points of interest (such as landmarks, museums, artworks, libraries, or other areas of interest in the real world). The virtual elements linked to points of interest in the real world may provide the following illusion: the virtual world is a hidden dimension of the real world, and players may interact with the virtual world by playing parallel reality games. For example, when a player navigates through geographic coordinates in the real world, the player may find virtual elements provided in the parallel virtual world and interact with these virtual elements. As part of the parallel reality game, various game objectives may encourage players to interact with these virtual elements. In some embodiments, the game server may arrange virtual events in the parallel reality game around points of interest in the real world.
[0023] To improve the connection between the real world and the parallel virtual world, certain game features can be linked to real-world activities (such as real-world business activities or real-world data collection activities) to enhance the impact of actions in the virtual world based on actions in the real world, and vice versa, thereby improving the user experience in the parallel reality game. Game features linked to real-world business activities can be included in the parallel reality game so that player actions when playing the parallel reality game can encourage or incentivize business activities in the real world. Sponsors, advertisers, businesses, and other entities can request that certain game features be included in the parallel reality game to increase the exposure of their businesses or other entities to players of the parallel reality game.
[0024] The game server hosting the parallel reality game can modify, update, or add game data stored in a game database associated with the parallel reality game to include certain game features in the parallel reality game. Access-controlled game features can be included, where these access-controlled game features are only available to players who meet certain criteria (e.g., ticket holders for a special event at a specified location and time, players who have participated in a specific promotional offer, players who have completed a specified in-game task, or any other definable group). For example, game features can be linked to things in the real world (e.g., real-world live events, real-world points of interest) so that player actions associated with game features in the virtual world can induce or encourage commercial activity.
[0025] As previously mentioned, it is desirable to ensure that cheaters cannot obtain access to access-controlled game features or otherwise gain an unfair advantage in the game through cheating techniques. Therefore, at various times (e.g., when a player requests access to an access-controlled feature, periodically during the game, when a player approaches a certain location, etc.), additional steps can be taken to verify that the player and his client device are actually at the corresponding real-world location. In one embodiment, while the player moves along a verification path based on the location information provided by the positioning system on the client device, the game server and client device utilize image data of landmarks to assist in verifying the player's real-world location. This verification is difficult for cheaters to fool, thereby reducing the relative return on investment in attempting to fool the system, which in turn can reduce the number of cheaters. Therefore, the gaming experience of other players who play the game fairly can be improved.
[0026] Exemplary Location-Based Parallel Reality Gaming System
[0027] A parallel reality game is a location-based game with a virtual world geography that is parallel to at least a portion of the real-world geographic environment, such that player movement and actions in the real world affect actions in the virtual world, and vice versa. Using the disclosure provided herein, one of ordinary skill in the art will understand that the described subject matter is applicable to other situations in which it is desired to verify the location of a user. Additionally, the inherent flexibility of computer-based systems allows for a wide variety of possible configurations, combinations, and divisions of tasks and functionality between and among the components of the system. For example, systems and methods according to aspects of the present disclosure may be implemented using a single computing device or across multiple computing devices (e.g., connected in a computer network).
[0028] Figure 1The diagram illustrates one embodiment of a networked computing environment 100 in which a player's real-world location can be verified based on activity within a parallel reality game. The networked computing environment 100 provides for player interaction in a virtual world with a geography parallel to the real world. Specifically, geographic areas in the real world can be directly linked or mapped to corresponding areas in the virtual world. Players can move around in the virtual world by moving to various geographic locations in the real world. For example, a player's location in the real world can be tracked and used to update the player's location in the virtual world. Typically, the player's location in the real world is determined by finding the location of the client device 120 through which the player interacts with the virtual world and assuming that the player is in the same (or approximately the same) location. For example, in various embodiments, if the player's location in the real world is within a threshold distance (e.g., ten meters, twenty meters, etc.) of the real-world location corresponding to the virtual location of the virtual element in the virtual world, the player can interact with the virtual element. For convenience, various embodiments are described with reference to "the player's location," but those skilled in the art will understand that such reference can refer to the location of the player's client device 120.
[0029] Now refer to Figure 2 , which depicts a conceptual diagram of a virtual world 210 parallel to the real world 200, which can serve as a game board for players of a parallel reality game, according to one embodiment. As illustrated, the virtual world 210 can include geography parallel to the geography of the real world 200. Specifically, a coordinate range defining a geographic area or space in the real world 200 is mapped to a coordinate range defining a virtual space in the virtual world 210. The coordinate range in the real world 200 can be associated with a town, neighborhood, city, campus, location, country, continent, the entire globe, or other geographic area. Each geographic coordinate in the geographic coordinate range is mapped to a corresponding coordinate in the virtual space in the virtual world.
[0030] A player's location in virtual world 210 corresponds to their location in real world 200. For example, player A, located at location 212 in real world 200, has a corresponding location 222 in virtual world 210. Similarly, player B, located at location 214 in the real world, has a corresponding location 224 in the virtual world. As a player moves within a range of geographic coordinates in the real world, they also move within a range of coordinates defining the virtual space in virtual world 210. Specifically, as a player navigates within a range of geographic coordinates in the real world, a positioning system (e.g., a GPS system) associated with a mobile computing device carried by the player can be used to track the player's location. Data associated with the player's location in real world 200 is used to update the player's location within a corresponding range of coordinates defining the virtual space in virtual world 210. In this way, by simply traveling within a corresponding range of geographic coordinates in real world 200, without having to check in at specific discrete locations in real world 200 or regularly update location information, a player can navigate a continuous trail within a range of coordinates defining the virtual space in virtual world 210.
[0031] Location-based games can include multiple game objectives that require the player to travel to and / or interact with various virtual elements and / or virtual objects at various virtual locations dispersed throughout the virtual world. The player can travel to these virtual locations by traveling to the corresponding locations of the virtual elements or objects in the real world. For example, a positioning system can continuously track the player's location so that as the player continuously navigates the real world, the player also continuously navigates a parallel virtual world. The player can then interact with the various virtual elements and / or objects at specific locations to achieve or execute one or more game objectives.
[0032] For example, the game objective may require the player to capture or claim ownership of virtual elements 230 located at various virtual locations in the virtual world 210. These virtual elements 230 may be linked to landmarks, geographic locations, or objects 240 in the real world 200. The real-world landmarks or objects 240 may be works of art, monuments, buildings, businesses, libraries, museums, or other suitable real-world landmarks or objects. In order to capture these virtual elements 230, the player must travel to the landmarks or geographic locations 240 in the real world that are linked to the virtual elements 230 and must perform any necessary interactions with the virtual elements 230 in the virtual world 210. For example, Figure 2Player A may have to travel to a landmark 240 in the real world 200 in order to interact with or capture a virtual element 230 that is linked to that particular landmark 240. Interaction with a virtual element 230 may require action in the real world, such as taking a picture and / or verifying, acquiring, or capturing other information about the landmark or object 240 associated with the virtual element 230. In some embodiments, interaction with a virtual element 230 may also prompt verification that the player's location in the real world 200 matches the player's location in the virtual world 210.
[0033] The game objectives may require the player to use one or more virtual items collected by the player in the location-based game. For example, the player may travel in the virtual world 210 to find virtual items (such as weapons, artifacts, power-ups, or other items) useful for completing the game objectives. These virtual items may be found or collected by traveling to different locations in the real world 200 or by completing various actions in the virtual world 210 or the real world 200. Figure 2 In the example shown in , a player uses a virtual item 232 to capture one or more virtual elements 230. In particular, the player can deploy the virtual item 232 in the virtual world 210 near or within the virtual element 230. Deploying one or more virtual items 232 in this manner can cause a particular player or a particular player's team / faction to capture the virtual element 230.
[0034] In one particular implementation, players may have to collect virtual energy as part of a parallel reality game. Figure 2 As depicted in FIG, virtual energy 250 may be dispersed at various locations in the virtual world 210. Players may collect virtual energy 250 by traveling to corresponding locations of virtual energy 250 in the real world 200. Virtual energy 250 may be used to charge virtual items and / or perform various game objectives in the game. A player who loses all virtual energy 250 may be disconnected from the game.
[0035] According to various aspects of the present disclosure, a parallel reality game can be a location-based game of large-scale multiplayer, in which each participant in the game shares the same virtual world. Players can be divided into separate teams or camps and can work together to achieve one or more game goals, such as capturing virtual elements or claiming ownership of virtual elements. In this way, a parallel reality game can essentially be a social game that encourages cooperation between players in the game. During a parallel reality game, players from opposing teams can work against each other (or sometimes cooperate to reach a common goal). Players can use virtual items to attack players of the opposing team or hinder the progress of players of the opposing team. In some cases, players are encouraged to gather at locations in the real world to carry out cooperation or interactive events in the parallel reality game. In these cases, the game server strives to ensure that players are physically present and there is no cheating.
[0036] Parallel reality games can have various features to enhance and encourage playing games in parallel reality games. For example, players can accumulate virtual currency or another virtual reward (e.g., to purchase in-game items) that can be used throughout the game. As players complete one or more game goals and gain experience in the game, they can upgrade and pass various levels. In some embodiments, players can communicate with each other through one or more communication interfaces provided in the game. Players can also obtain enhanced "power" or virtual items, which can be used to complete in-game game goals. Using the disclosure provided herein, those of ordinary skill in the art will appreciate that parallel reality games can include various other game features without departing from the scope of this disclosure.
[0037] Return Reference Figure 1 , the networked computing environment 100 uses a client-server architecture, wherein a game server 110 communicates with one or more clients 120 over a network 130 to provide a parallel reality game to the player at the client 120. The networked computing environment may also include other external systems, such as sponsor / advertiser systems or enterprise systems. Figure 1 Only one client 120 is shown in the figure, but any number of clients 120 or other external systems may be connected to the game server 110 via the network 130. Furthermore, the networked computing environment 100 may include different or additional elements, and functionality may be distributed between the clients 120 and the server 110 in a manner different from that described below.
[0038] The game server 110 can be any computing device and can include one or more processors and one or more computer-readable media. The computer-readable media can store instructions that cause the processor to perform operations. The game server 110 can include a game database 115 or can communicate with a game database 115. The game database 115 stores game data used in the parallel reality game, which is to be supplied or provided to (multiple) clients 120 via the network 130.
[0039] The game data stored in the game database 115 may include: (1) data associated with the virtual world in the parallel reality game (e.g., image data for drawing the virtual world on a display device, geographic coordinates of locations in the virtual world, etc.); (2) data associated with players of the parallel reality game (e.g., player profiles, including but not limited to: player information, player experience level, player currency, current player position in the virtual world / real world, player energy level, player preferences, team information, faction information, etc.); (3) data associated with game objectives (e.g., data associated with the current game objective, the status of the game objective, past game objectives, future game objectives, expected game objectives, etc.); (4) data associated with virtual elements in the virtual world (e.g., the positioning of virtual elements, etc.); , the type of virtual element, the game objective associated with the virtual element; the corresponding real-world location information of the virtual element; the behavior of the virtual element, the relevance of the virtual element, etc.); (5) data associated with the real-world objects, landmarks, and locations linked to the virtual world elements (e.g., the location of the real-world object / landmark, the description of the real-world object / landmark, the relevance of the virtual element linked to the real-world object, etc.); (6) game state (e.g., the current number of players, the current state of the game objective, player leaderboards, etc.); (7) data associated with player actions / inputs (e.g., current player location, past player location, player movement, player input, player queries, player communications, etc.); and (8) any other data used, involved, or obtained during the implementation of the parallel reality game. The game data stored in the game database 115 can be populated offline or in real time by the system administrator and / or data received from users / players of the system 100 (such as data received from one or more clients 120 via the network 130).
[0040] The game server 110 may be configured to receive requests for game data from one or more clients 120 (e.g., via remote procedure calls (RPCs)) and respond to these requests via the network 130. For example, the game server 110 may encode the game data in one or more data files and provide these data files to the clients 120. Additionally, the game server 110 may be configured to receive game data (e.g., player positions, player actions, player input, etc.) from one or more clients 120 via the network 130. For example, the clients 120 may be configured to periodically send player input and other updates to the game server 110, which uses these player input and other updates to update the game data in the game database 115 to reflect any and all changed conditions for the game.
[0041] In the illustrated embodiment, the server 110 includes a general game module 112, a commercial game feature module 114, a data collection module 116, and an event module 118. The game server 110 interacts with a game database 115, which can be part of the game server 110 or can be accessed remotely (e.g., the game database 115 can be a distributed database accessed via the network 130). In other embodiments, the game server 110 includes different and / or additional elements. In addition, functionality can be distributed among the elements in a manner different from that described. For example, the game database 115 can be integrated into the game server 110.
[0042] The universal game module 112 hosts the parallel reality game for all players and serves as the authoritative source for the current state of the parallel reality game for all players. The universal game module 112 receives game data (e.g., player input, player location, player actions, landmark information, etc.) from the clients 120 and incorporates the received game data into the overall parallel reality game for all players of the parallel reality game. The universal game module 112 can also manage the delivery of game data to the clients 120 via the network 130. The universal game module 112 can also manage security aspects of the clients 120, including but not limited to: protecting the connection between the clients 120 and the game server 110, establishing connections between each client 120, and verifying the location of each client 120.
[0043] In embodiments where a commercial game feature module 114 is included, the commercial game feature module 114 may be separate from the general game module 112 or may be part of the general game module 112. The commercial game feature module 114 may manage the inclusion of various game features linked to real-world commercial activities within the parallel reality game. For example, the commercial game feature module 114 may receive requests (via a network interface) from external systems (such as sponsors / advertisers, businesses, or other entities) over the network 130 to include game features linked to commercial activities within the parallel reality game. The commercial game feature module 114 may then arrange for these game features to be included in the parallel reality game.
[0044] The game server 110 may also include a data collection module 116. In embodiments in which the data collection module 116 is included, the data collection module 116 may be separate from the general game module 112 or may be part of the general game module 112. The data collection module 116 may manage the inclusion of various game features linked to data collection activities in the real world within the parallel reality game. For example, the data collection module 116 may modify the game data stored in the game database 115 to include game features linked to data collection activities in the parallel reality game. The data collection module 116 may also analyze the data collected by players pursuant to the data collection activities and provide the data for access by various platforms. Figure 6 Various embodiments of the data collection module 116 are described in greater detail.
[0045] The event module 118 manages player access to events within a parallel reality game. While the term "event" is used for convenience, it should be understood that the term need not refer to a specific occurrence at a specific location or time. Rather, it may refer to any provision of access-controlled game content, where one or more access criteria are used to determine whether a player can access the content. Such content may be part of a larger parallel reality game that includes game content with less or no access controls, or it may be a standalone, access-controlled parallel reality game.
[0046] The client 120 may be any portable computing device that a player can use to interface with the gaming system 100. For example, the client 120 may be a wireless device, a personal digital assistant (PDA), a portable gaming device, a cellular phone, a smartphone, a tablet computer, a navigation system, a handheld GPS system, a wearable computing device, a display with one or more processors, or other such device. In short, the client 120 may be any computer device or system that enables a player to interact with the gaming system 100.
[0047] The client 120 may include one or more processors and one or more computer-readable media. The computer-readable medium may store instructions that cause the processor to perform operations. The client 120 may include various input / output devices for providing and receiving information from the player, such as a display screen, a touch screen, a touchpad, data entry keys, a speaker, a camera, and / or a microphone suitable for voice recognition. The client 120 may also include various other sensors for recording data from the client 120, including but not limited to: motion sensors, accelerometers, gyroscopes, other inertial measurement units (IMUs), barometers, positioning systems, thermometers, light sensors, etc. The client 120 may also include a network interface for providing communication through the network 130. The network interface may include any suitable components for interfacing with one or more networks, including, for example, a transmitter, a receiver, a port, a controller, an antenna, or other suitable components.
[0048] Because the networked computing environment 100 provides location-based gaming, the client 120 is preferably a portable computing device, such as a smartphone or tablet, that can be easily carried or otherwise transported by the player. Figure 1 In the illustrated embodiment, each client 120 includes software components such as a game module 122 and a positioning module 124, which have various physical components such as a camera 126 and a plurality of motion sensors 128. In other embodiments, the client 120 may include different or additional elements, such as a display (either as a component of the client 120 or external to the client 120), various input devices (e.g., a touch screen, a mouse, a stylus,
[0049] The game module 122 provides an interface for players to participate in the parallel reality game. The game server 110 transmits game data to the client 120 via the network 130 for use by the game module 122 at the client 120 to provide a local version of the game to players at a location remote from the game server 110. The server 110 may include a network interface for providing communication via the network 130. The network interface may include any suitable components for interfacing with one or more networks, including, for example, a transmitter, a receiver, a port, a controller, an antenna, or other suitable components.
[0050] The game module 122 executed by the client 120 provides an interface between the player and the parallel reality game. The game module 122 can present a user interface on a display device associated with the client 120, which displays the virtual world associated with the game (e.g., draws an image of the virtual world) and allows the user to interact in the virtual world to perform various game goals. The game module 122 can also control various other outputs to allow the player to interact with the game without requiring the player to view the display screen. For example, the game module 122 can control various audio, vibration or other notifications, which allow the player to play the game without needing to view the display screen. The game module 122 can access the game data received from the game server 110 to provide the user with an accurate representation of the game. The game module 122 can receive and process player input and provide updates to the game server 110 via the network 130.
[0051] Positioning module 124 may be any device or circuitry for monitoring the location of client 120. For example, positioning module 124 may determine actual or relative location using a satellite navigation positioning system (e.g., GPS, Galileo, GLONASS, BeiDou), an inertial navigation system, a dead reckoning system, based on an IP address, using triangulation and / or proximity to a cellular tower or Wi-Fi hotspot, and / or other suitable techniques for determining location. Positioning module 124 may also include various other sensors that may assist in accurately locating the location of client 120.
[0052] As the player moves around in the real world with the client 120, the positioning module 124 tracks the player's location and provides player positioning information to the game module 122. Based on the player's actual location in the real world, the game module 122 updates the player's location in the virtual world associated with the game. Therefore, by simply carrying or transporting the client 120 in the real world, the player can interact with the virtual world. In particular, the player's location in the virtual world can correspond to the player's location in the real world. The game module 122 can provide the player's location information to the game server 110 via the network 130, so that the universal game module 112 keeps track of all player locations throughout the game. In response, the game server 110 can develop various technologies to verify the client 120 location to prevent cheaters from spoofing the client 120 location. It should be understood that the location information associated with the player will only be utilized if permission is granted after the player has been notified that the player's location information is to be accessed and how the location information is to be utilized in the context of the game (e.g., to update the player's location in the virtual world). Additionally, any location information associated with the player will be stored and maintained in a manner that protects the player's privacy.
[0053] The network 130 can be any type of communication network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or some combination thereof. The network can also include a direct connection between the client 120 and the game server 110. In general, communications between the game server 110 and the client 120 can be carried via a network interface using any type of wired and / or wireless connection, using various communication protocols (e.g., TCP / IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML, JSON), and / or protection schemes (e.g., VPN, secure HTTP, SSL).
[0054] The technology discussed herein refers to servers, databases, software applications, and other computer-based systems, as well as the actions and information sent to and from such systems. Those skilled in the art will recognize that the inherent flexibility of computer-based systems allows for various possible configurations, combinations, and partitioning of tasks and functionality between and within components. For example, a single server or multiple servers working in combination can be used to implement the server processes discussed herein. Databases and applications can be implemented on a single system or distributed across multiple systems. Distributed components can operate sequentially or in parallel.
[0055] In addition, in situations where the systems and methods discussed herein access and analyze personal information about a user or utilize personal information such as location information, the user may be provided with an opportunity to control whether a program or feature collects information and whether and / or how content is received from the system or other applications. No such information or data is collected or used until the user has been provided with meaningful notification of what information is to be collected and how the information is to be used. Information is not collected or used unless the user provides consent, which the user can revoke or modify at any time. Thus, the user may have control over how information about the user is collected and how it is used by the application or system. In addition, certain information or data may be processed in one or more ways before being stored or used so that personally identifiable information is removed. For example, the user's identity may be processed so that no personally identifiable information for the user can be determined.
[0056] Example computing system
[0057] Figure 8 is an example architecture of a computing device according to one embodiment. Figure 8 A high-level block diagram illustrating the physical components of a computer that may function as part or all of one or more entities described herein is depicted according to one embodiment, although the computer may have additional components, fewer components, or more. Figure 8Although the component variants provided in Figure 8 A computer 800 is depicted, but this diagram is intended as a functional description of various features that may be present in a computer system, rather than as a schematic diagram of the architecture of the implementations described herein. In practice, and as will be appreciated by one of ordinary skill in the art, items shown separately may be combined, and some items may be separated.
[0058] exist Figure 8 804. Memory 806, storage device 808, keyboard 810, graphics adapter 812, pointing device 814, and network adapter 816 are also coupled to chipset 804. Display 818 is coupled to graphics adapter 812. In one embodiment, the functionality of chipset 804 is provided by memory controller hub 820 and I / O hub 822. In another embodiment, memory 806 is coupled directly to processor 802 rather than chipset 804. In some embodiments, computer 800 includes one or more communication buses for interconnecting these components. The one or more communication buses optionally include circuitry (sometimes referred to as a chipset) that interconnects and controls communications between system components.
[0059] The storage device 808 is any non-transitory computer-readable storage medium, such as a hard drive, compact disc read-only memory (CD-ROM), DVD, or solid-state memory device or other optical storage device, a cassette, magnetic tape, magnetic disk storage device or other magnetic storage device, a magnetic disk storage device, an optical disk storage device, a flash memory device, or other non-volatile solid-state storage device. Such storage devices 808 may also be referred to as persistent memory. The pointing device 814 may be a mouse, trackball, or other type of pointing device and is used in combination with the keyboard 810 to input data into the computer 800. The graphics adapter 812 displays images and other information on the display 818. The network adapter 816 couples the computer 800 to a local area network or a wide area network.
[0060] Memory 806 holds instructions and data used by processor 802. Memory 806 may be a non-persistent memory, examples of which include high-speed random access memory such as DRAM, SRAM, DDR RAM, ROM, EEPROM, flash memory.
[0061] As is known in the art, the computer 800 may have Figure 8800. In one embodiment, the computer 800 may lack certain components shown in the drawings. In one embodiment, the computer 800 may lack keyboard 810, pointing device 814, graphics adapter 812, and / or display 818. In addition, the storage device 808 may be local to the computer 800 and / or remote (such as, implemented in a storage area network (SAN)).
[0062] As is known in the art, the computer 800 is adapted to execute computer program modules to provide the functionality described herein. As used herein, the term "module" refers to computer program logic utilized to provide specified functionality. Thus, a module may be implemented in hardware, firmware, and / or software. In one embodiment, a program module is stored on a storage device 808, loaded into the memory 806, and executed by the processor 302.
[0063] Example game interface
[0064] Figure 3 One embodiment of a game interface 300 that may be presented on a display of client 120 as part of the interface between a player and virtual world 210 is depicted. Game interface 300 includes a display window 310 that can be used to display virtual world 210 and other aspects of the game, such as the player's location 222 within virtual world 210, as well as the locations of virtual elements 230, virtual items 232, and virtual energy 250. User interface 300 may also display other information, such as game data information, game communications, player information, client location verification instructions, and other information associated with the game. For example, user interface 300 may display player information 315, such as player name, experience level, and other information. User interface 300 may include a menu 320 for accessing various game settings and other information associated with the game. User interface 300 may also include a communication interface 330 that supports communication between the game system and the player, as well as between one or more players of the parallel reality game.
[0065] According to various aspects of the present disclosure, players can interact with a parallel reality game simply by carrying their client device 120 around in the real world. For example, players can play the game by simply accessing an app associated with the parallel reality game on their smartphone and moving around the real world with that smartphone. In this regard, players do not need to constantly view a visual representation of the virtual world on a display screen in order to play a location-based game. As a result, the user interface 300 can include multiple non-visual elements that allow users to interact with the game. For example, when a player approaches a virtual element or object in the game, or when a significant event occurs in the parallel reality game, the game interface can provide the player with an audible notification. The player can control these audible notifications using the audio controls 340. Different types of audible notifications can be provided to the user depending on the type of virtual element or event. The frequency or volume of the audible notifications can be increased or decreased depending on the player's proximity to the virtual element or object. Other non-visual notifications and signals can also be provided to the user, such as vibration notifications or other suitable notifications or signals.
[0066] Using the disclosure provided herein, one of ordinary skill in the art will appreciate that many game interface configurations and underlying functionality will be apparent in light of this disclosure. This disclosure is not intended to be limited to any one particular configuration.
[0067] Parallel reality game client-server operation flow chart
[0068] Figure 4 A client-server flow diagram of a method 400 for linking real-world activities with parallel reality games is depicted, according to one embodiment. The method 400 may be implemented using any suitable computing system, such as Figure 1 The client-server arrangement of the system 100. In addition, although Figure 4 For the purpose of illustration and discussion, the steps performed in a particular order are depicted, however, the methods discussed herein are not limited to any particular order or arrangement. Using the disclosure provided herein, one skilled in the art will understand that the steps of the methods disclosed herein may be omitted, rearranged, combined, and / or adapted in various ways without departing from the scope of the present disclosure. The methods may also include different or additional steps.
[0069] exist Figure 4 In the embodiment shown in FIG, method 400 begins at 402 with a game server 110 hosting a parallel reality game for a plurality of client devices 120. Players may access the parallel reality game by communicating with the game server 110 over a network 130 via one or more client devices 120. In this manner, the game server 110 may serve as an authoritative source of events for the parallel reality game.
[0070] At 404, the server may modify the game data associated with the parallel reality game to include the game feature. For example, the game server 110 may modify, update, or add the game data to the game database 115 so that the game feature is included in the parallel reality game. Some game features may be linked to real-world activities. These game features may be any game features designed to motivate or encourage activities performed by players in the real world, including activities in the real world that are not directly related to the overall game objective of the parallel reality game. In certain embodiments, the game features linked to real-world activities may be game features linked to commercial activities in the real world.
[0071] At 406, the game server 110 supplies the parallel reality game including the game features to one or more client devices 120 via the network 130. At 408, the client device 120 receives game data from the game server 110, which includes data associated with the game features. Then, at 410, the client device 120 presents the parallel reality game including the game features to the player. For example, the client device 120 may display a visual representation of the virtual world. The virtual world may include game features, such as virtual elements located at specific locations in the virtual world to encourage or incentivize player activity in the real world.
[0072] At 412, the client device 120 includes receiving data associated with player interactions with game features. For example, the client device 120 may receive data as a result of a player action with respect to a game feature in a parallel reality game. The data associated with the player interaction may include data associated with the player navigating to the location of a particular virtual element and interacting with that virtual element. As another example, the data associated with the player interaction may include data associated with the player taking actions to complete a game goal or task. As another example, the data associated with the player interaction may include data associated with the player using a power-up or other enhanced power, which is provided to the player as part of a game feature linked to real-world activity. At 414, the client device provides the data associated with the player interaction with the game feature to the server.
[0073] At 416, data associated with player interactions with game features can be received at the game server 110. For example, the game server 110 can receive data associated with player interactions with game features from the client device 120 via the network 130. Then, at 418, the game server 110 can modify one or more game elements in the parallel reality game based on the data associated with player interactions. For example, the game server 110 can update the game data associated with the player stored in the game database 115 (such as the player profile stored in the game database 115) to record the interaction of the player with the game features, which are linked to real-world activities. In addition, the server can update the game data to provide rewards, such as virtual rewards applicable to the parallel reality game, for interacting with the game features. The virtual rewards can include virtual items, virtual energy, virtual currency, virtual power upgrades, enhanced power, experience points, or any other suitable rewards.
[0074] Player client device location verification
[0075] Figure 5 is a top view illustrating the process of verifying the location of a player's client device 120 according to one embodiment. The process may be implemented using any suitable computing device(s) or combination of suitable computing devices, such as Figure 1 The client device 120 and the game server 110 are shown in FIG. 1 . In this illustrative embodiment, the client device 120 is reporting the client device's assumed location in the real world to the game server 110 (e.g., from the positioning module 122 via the network 130 to the game server 110). The game server 110 initiates the process of verifying that the client device 120 is actually located at the assumed location. Using the principles disclosed herein, those skilled in the art will understand that various steps of the methods disclosed herein may be omitted, rearranged, combined, and / or adapted in various ways without departing from the scope of the present disclosure.
[0076] The client device 120 utilizes the positioning module 124 to determine an assumed location of the client device 120. The client device 120 may be reporting to the game server 110 that the client device is at the assumed location and may be attempting to retrieve content (in some examples, access-controlled content) specific to the reported location. The game server 110 aims to ensure that the client device 120 is indeed at the reported location.
[0077] Game server 110 generates a set of authentication instructions for client device 120 to verify the location of client device 120. For each real-world location corresponding to a virtual world location, game server 110 may store a unique real-world object or landmark for use in verifying the location of the player's client device. Alternatively, game server 110 may assign a unique landmark near a real-world business. Game server 110 may use this unique landmark to verify the location of the client device, ensuring that game content is accessible only to client devices present at the real-world location where the real-world business resides. For example, if a coffee shop is sponsoring a parallel reality game, a nearby statue may be used as a unique landmark to verify that the client device is near the coffee shop before providing game content specific to the coffee shop. Alternatively, game server 110 may assign a unique landmark to a real-world location where a virtual game event is being held. Game server 110 may then verify that client device 120 is near this landmark so that the player can participate in the virtual game event. Game server 110 may store a landmark for each potential real-world location corresponding to a virtual world location in game database 115. Additionally, the landmarks stored in game database 115 may include the name of the landmark, a model of the landmark, images of the landmark from varying perspectives, the landmark's 3D surroundings, and the like. To verify the location of client device 120, game server 110 accesses game database 115 for the stored landmark corresponding to the client device's location, at which the client device is requesting to retrieve content at that virtual location. Game server 110 generates a verification path describing a series of movements, prompting the player to perform the series of movements while holding client device 120. The verification path effectively describes a series of movements of the client device, and may include instructions for any combination of the following: movements by the player while holding client device 120 substantially constant relative to the player, and movements by the player of client device 120 while the player remains substantially constant relative to the landmark. The stored landmarks and verification path constitute a set of verification instructions, which are transmitted to client device 120.
[0078] exist Figure 5In the embodiment shown in FIG, client device 120 receives the set of verification instructions and verifies the position of client device 120. Client device 120 prompts the player to capture image data of landmark 510 received from the verification instructions at an initial location 520. The player uses client device 120 to capture image data of landmark 510. From the initial location 520, the captured image data has a perspective of landmark 510 parallel to an initial viewing plane 525. Although the image data at the initial location 520 may include objects in front of or behind the initial viewing plane 525 (e.g., objects unobstructed within the viewing frustum of client device 120), the initial viewing plane 525 is perpendicular to the line of sight from the initial location 520. In one example, landmark 510 is a statue of a person. From the initial location 520, the initial viewing plane 525 encompasses a direct front view of the person. Client device 120 determines whether the image data captured from the initial location 520 matches the landmark 510 data from the set of verification instructions. In some embodiments, client device 120 utilizes image recognition techniques (e.g., machine learning pattern recognition algorithms) to determine whether image data captured from initial positioning 520 includes landmark 510. In some embodiments, client device 120 uses a trained image recognition model from game server 110.
[0079] If the client device 120 confirms that the captured image data is of the landmark 510, the client device 120 prompts the player to move according to the verification path 515 in the verification instruction. In response, the player moves along the verification path 515 accordingly. Figure 5 In the illustration of , the verification path 515 may include a first step of moving five meters forward toward the landmark 510, followed by another step of turning left and moving ten meters, followed by a final step of turning right and moving two meters. In some other examples, the verification path 515 may be prompted with other units of measurement (e.g., feet, yards, etc.), or the user may be prompted with only an on-screen directional indicator (e.g., an arrow), and then another indication (e.g., the arrow disappears, a stop sign, etc.) is provided to the user when the user has moved the required distance. If the player's movement path matches the path of the verification path 515, the verification instruction anticipates that the player will arrive at the expected location 530. The client device 120 also prompts the player to capture image data of the landmark 510 during and / or after movement along the verification path 515.
[0080] If client device 120 captures image data of landmark 510 at expected location 530, the captured image data will be parallel to expected viewing plane 535. Similar to the initial viewing plane, expected viewing plane 535 is perpendicular to the line of sight from expected location 530. In particular, after moving along verification path 515, expected viewing plane 535 is no longer parallel to initial viewing plane 525. Continuing with the example of a statue, expected viewing plane 535 encompasses an offset side view of the statue. Client device 120 uses the newly captured image data of landmark 510 to validate the initial set of image data. Client device 120 confirms that the newly captured image data is also of landmark 510. Based on the verification instructions, client device 120 further determines whether the newly captured image data has a different viewing angle than the initial set of image data. For example, client device 120 determines that the newly captured image data of landmark 510 at expected location 530 is an offset side view of the statue, which differs from the initially captured image data of landmark 510, which was a direct front view of the statue. In some embodiments, newly captured image data during and / or after movement along verification path 515 includes video of landmark 510. Client device 120 can determine whether frames of the video match landmark 510, and can determine whether the frames are at a changed perspective from initial perspective plane 525. In some embodiments, if client device 120 confirms that the initial image data and the newly captured image data match landmark 510, then client device 120 verifies the location of client device 120.
[0081] In additional embodiments, client device 120 uses motion sensor 128 to confirm movement of client device 120 along validation path 515 prior to confirming the location of client device 120. Motion sensor 128 can detect and record translational movement corresponding to the player's movement along validation path 515. In some embodiments, client device 120 measures the translational movement performed by the player along client device 120. Client device 120 can determine whether the measured translational movement is within a reasonable threshold for movement that substantially corresponds to the player's movement along path 515. For example, client device 120 can have a threshold angular error for turns performed by the player. Thus, given that the player is prompted by client device 120 to make a left turn according to validation path 515, and the threshold angular error is 15 degrees, if motion sensor 128 determines that the player has made a right turn (i.e., a 180-degree error for a left turn), client device 120 determines that the turn performed by the player is above the threshold angular error for making a left turn (i.e., a 180-degree error is above the 15-degree threshold). In another example, client device 120 may have a threshold distance error for steps taken by a player. Thus, given a prompt for the player to walk five meters in one direction, if motion sensor 128 detects a translational movement of 100 meters that is significantly different from the indicated five meters, client device 120 may also determine that the player's movement does not match validation path 515. If motion sensor 128 detects a movement error corresponding to movement above the error threshold, client device 120 may reject the position of client device 120. If motion sensor 128 detects movement within the error threshold, client device 120 may verify the position of client device 120 in addition to checking the image data of landmark 510.
[0082] Figure 6 A client-server flow diagram of a method 600 for verifying the location of a client device 120 according to one embodiment is depicted. The method 600 may be implemented using any suitable computing system, such as Figure 1 In addition, although for the purpose of illustration and discussion, Figure 6 The steps described are performed in a particular order or by a particular device, but the methods discussed herein are not limited to any particular order or arrangement. Using the disclosure provided herein, one skilled in the art will understand that the steps of the methods disclosed herein may be omitted, rearranged, combined, and / or adapted in various ways without departing from the scope of the present disclosure. The methods may also include different or additional steps.
[0083] At 602 of method 600, client device 120 receives location information from a positioning module (e.g., positioning module 124). In some embodiments, the positioning module may include one or more positioning systems, such as satellite navigation positioning systems (e.g., GPS, Galileo, GLONASS, BeiDou satellite navigation and positioning systems), inertial navigation systems, and / or dead reckoning systems, based on IP addresses, by using triangulation and / or proximity to cellular network towers or Wi-Fi hotspots. The location information for the location of client device 120 may include a set of global positioning coordinates for client device 120.
[0084] At 604 of method 600, the client device 120 transmits location information to the game server 110. At 606, the game server 120 receives the location information of the client device 120. When the game server 120 receives the location information, the game server 120 needs to verify that the location information accurately corresponds to the physical location of the client device 120. In some embodiments, the location information is received along with a request for game content that is specific to the location of the client device 120 shared in the location information.
[0085] At 608 of method 600, game server 110 retrieves landmarks near the location of client device 120 based on the location information and corresponding verification instructions. Game server 110 accesses a database (e.g., game database 115) with stored landmarks. Game server 110 can determine which landmark to use to verify the location of client device 120 based on the proximity of the location of client device 120 compared to the locations of all stored landmarks. Game server 110 can select the landmark closest to the location of client device 120. In other embodiments, client device 120 is attempting to participate in a game event at a specific location in the real world. Game server 110 can reference a landmark associated with the game event and use it to verify the locations of all client devices attempting to participate in the game event. In some other embodiments, game server 110 can provide access-controlled game content to players interacting with real-world commercial activities. In these instances, game server 110 can also reference landmarks associated with real-world commercial activities. In some embodiments, when retrieving a landmark from the database, the game server 110 may also retrieve any combination of images or models of the landmark for use in verifying the presence of the client device's 120 location.
[0086] At step 608, the game server 110 also collects verification instructions. In some embodiments, the game server 110 can retrieve pre-generated verification instructions associated with the selected landmark from a database; however, in other embodiments, the game server 110 generates a set of verification instructions having one or more randomly generated verification instructions. The verification instructions include a set of prompts, including a prompt for the player to capture image data of the selected landmark from the initial positioning of the client device 120. The image data can include a picture of the landmark or a video of the landmark. The verification instructions include a landmark recognition model that can verify that the image data captured by the client device 120 positively matches the landmark.
[0087] The landmark recognition model may include a two-dimensional (2D) model of the landmark, a 3D model of the landmark, or a combination thereof. In one embodiment using a 2D model, the landmark recognition model includes, in addition to the relative distances between pairs of points, feature points on the landmark. When verifying image data as an image, the landmark recognition model may calculate the relative distances between identified points on the landmark and compare the calculated relative distances with the known relative distances in the landmark recognition model. For example, if the height relative to the width of the landmark does not match the height relative to the width included in the landmark recognition model, the landmark recognition model may determine that the image data does not match the appropriate landmark. In another embodiment using a 2D model, the landmark recognition model may be a machine learning model trained using training image data of the landmark, the machine learning model being able to verify that the captured image data matches the training image data of the landmark. In some embodiments using a 3D model, the landmark recognition model includes a partial or complete 3D virtual representation of the landmark. In the 3D virtual representation, the approximate dimensions of the landmark are known, including the approximate distances, approximate angles, etc. between features.
[0088] The verification instructions include a verification path, which includes a set of prompts to urge the player and client device 120 to move along the verification path. In some embodiments, the verification instructions may be pre-generated by the game server 110. In other embodiments, the game server 110 generates a random verification path for each instance of verifying the client device's location, or the verification path may be randomly selected from a set of predetermined paths. The verification path may include multiple prompts to urge the player and client device 120 to move along the verification path. For example, the verification path may include a combination of turns and a distance to be traveled after each turn (which may be marked in units of measurement such as meters, yards, feet, centimeters, etc.). In some embodiments, the game server 110 also provides an expected viewing angle of a landmark after the client device 120 moves according to the verification path in the verification instructions, to verify the movement of the player and client device 120. The game server 110 may determine the expected viewing angle of the landmark by using a 3D model of the landmark to predict the viewing angle of the landmark while moving along the verification path. The verification instructions also include prompts to urge the player to capture image data using the client device 120 for any combination of movement along the verification path and afterward. In Example A, the verification instructions include the following prompts: (1) capture a picture of the landmark, (2) walk four meters toward the landmark while capturing video of the landmark, (3) turn left and move forward two meters while capturing video of the landmark, and (4) capture another picture of the landmark.
[0089] At step 608, the game server 110 may also generate prompts to cause the player to provide other inputs during and / or after moving along the validation path. The other inputs may be received through other sensors or components on the client device 120. In one instance, the validation instructions include instructions to prompt the player to speak, which may be verified by an audio microphone on the client device 120. In this instance, the game server 110 may also include validation instructions to match a sound signal from the audio microphone with the prompted voice. In another instance, the validation instructions include instructions to prompt the player to touch a button on the client device 120. These other instructions may be interspersed within the instructions to prompt the player to move along the validation path. In Example B, the validation instructions include the following prompts: (1) capture a picture of the landmark, (2) while capturing a video of the landmark, move ten meters toward the landmark, (3) say the name of the landmark, (4) while capturing a video of the landmark, turn right and move forward three meters, and (5) capture another picture of the landmark. In Example C, the verification instructions include the following prompts: (1) capture a picture of the landmark, (2) turn left and move forward two meters, (3) press a button on client device 120, (4) turn right and move forward ten meters, and (4) capture another picture of the landmark.
[0090] At step 610 of method 600, game server 110 transmits the landmark and verification instructions to client device 120. The method continues with client device 120 receiving the landmark and verification instructions at step 612. Client device 120 then proceeds to verify the location of the client device based on the received landmark and verification instructions.
[0091] At step 614 of method 600, client device 120 prompts the player to capture initial image data of the landmark based on the verification instructions. The verification instructions include a first step of prompting the player to capture initial image data of the landmark, which may include a video or picture of the landmark. Client device 120 prompts the player to capture image data of the landmark via an electronic display on client device 120 based on the verification instructions.
[0092] At step 616 of method 600, client device 120 receives initial image data of the landmark. In some embodiments, client device 120 may receive any combination of photographs and videos of the landmark.
[0093] At step 618 of method 600, the client device 120 verifies the initial image data of the landmark using the verification instruction. The received verification instruction may include a landmark recognition model for positively identifying the picture as a picture of the landmark. In embodiments where the client device 120 receives a video of the landmark, the client device 120 may compare one or more frames of the video with the landmark recognition model to positively identify the landmark in the video. In some embodiments, the landmark recognition model includes a trained machine learning model that can positively identify the landmark in the picture or video received by the client device 120. In some additional embodiments, the client device 120 provides the captured image data to the game server 110 for further refining the landmark recognition model, for example, using the image data to build one or more of a 2D model of the landmark and a 3D model of the landmark.
[0094] At step 620 of method 600, client device 120 prompts the player to move the client device along the verification path while capturing image data of the landmark according to the verification instructions. In some embodiments, the verification instructions include a set of prompts for the player's movements while holding client device 120, and the set of prompted movements constitutes the verification path. In some embodiments, the verification instructions may include further prompts for the player's input to client device 120. The prompts may be presented by client device 120 through any combination of visual presentation via an electronic display and verbal presentation via audio speakers. Client device 120 also prompts the player to capture image data of the landmark during and / or after movement along the verification path. In one example, client device 120 may prompt the player to capture image data of the landmark, such as a picture, at various times throughout the verification path. In another example, client device 120 may prompt the player to capture video of the landmark throughout movement along the verification path. Continuing with Example A, the client device 120 may provide the following prompts to the player: (1) capture a picture of the landmark, (2) move forward four meters toward the landmark while capturing a video of the landmark, (3) turn left and move forward two meters while capturing a video of the landmark, and (4) capture another picture of the landmark. In some embodiments, the client device 120 may provide prompts for verifying the path all at once or incrementally. When provided all at once, the client device 120 may display all steps of the verification instructions on an electronic display. In embodiments with other prompts and instructions, the client device 120 may also provide other prompts and instructions. These prompts and instructions may include providing other player input.
[0095] In some embodiments, client device 120 may request a new verification path for verifying the location of client device 120. A player may provide this request to client device 120 for a variety of reasons. In one instance, a portion of the current verification path is obstructed in the real world. This problem can be overcome by requesting a new verification path until such a verification path eliminates the need for the player to move through the obstruction. Based on this request, game server 110 may generate a new random verification path and additional verification instructions to be provided to client device 120. Upon receiving the new verification path and additional verification instructions, client device 120 may continue to use the new verification path and additional verification instructions to verify its location.
[0096] Now refer to Figure 7 , Figure 7 is Figure 6The game interface during the method is shown. Client device 120 provides a prompt of verification instructions 730 to the player on electronic display 720 according to method 600. According to step 620, client device 120 prompts the player to move along a verification path while capturing image data of a landmark based on verification instructions 730. In this embodiment, client device 120 provides the prompted verification instructions 730 on electronic display 720. As shown in this illustration, the steps of the verification path are prompted on a portion of electronic display 720, guiding the player along the verification path with client device 120. Electronic display 720 may also display a real-time view from the camera's perspective or captured image data of landmarks 740, including image data of landmarks initially captured according to steps 614 or 620 of method 600. Electronic display 720 may also include crosshairs 750 that provide guidance to the player as to which landmark to capture. In some cases, if the image data of a landmark 740 falls outside the portion of the image data defined by crosshairs 750, client device 120 may warn the player. The client device 120 may progressively provide verification instructions 730 according to further steps of the method 600 .
[0097] Return Reference Figure 6 At step 622 of method 600, client device 120 receives image data of the landmark during and / or after moving along the verification path. The image data may be captured via one or more camera portions of client device 120. Depending on what type of image data is captured according to the verification instruction prompt, the image data may include any combination of video and pictures.
[0098] At step 624 of method 600, client device 120 utilizes the verification instructions to verify the image data for the landmark. Client device 120 determines that the image data for the landmark positively matches the landmark. In one embodiment, client device 120 verifies (e.g., via a landmark recognition model) that a picture captured during or after movement along the verification path positively matches the landmark. In another embodiment, client device 120 selects one or more frames of video captured during and / or after movement along the verification path and verifies (e.g., via a landmark recognition model) that the one or more frames positively match the landmark. After client device 120 verifies that the captured image data matches the landmark, client device 120 then verifies whether the image data captured during and / or after movement along the verification path is from a different perspective than the initial image data. In embodiments where the initial image data is an initial picture of the landmark, client device 120 determines whether the newly captured image data (a newly captured picture or a newly captured video) has a different perspective than the initial picture. In some embodiments, the landmark recognition model further determines the perspective of the landmark for the positively identified landmark picture. In these embodiments, client device 120 may compare the determined perspective to the initial perspective of the initial image data. After verifying that both the newly captured image data positively matches the landmark and that the newly captured image data is at a different perspective than the initial perspective, client device 120 then confirms that the location of client device 120 is accurate and has been verified upon completion of the verification instruction.
[0099] In embodiments where the verification instructions prompt for capturing video of a landmark, at step 624 of method 600, client device 120 may verify multiple frames of the video. After each subsequent verification of a frame, client device 120 may prompt 620 the player with another prompt included in the verification instructions while still capturing video of the landmark. Client device 120 continuously receives 622 frames of the video captured by client device 120. Client device 120 may subsequently verify 624 the continuously received frames. In one or more embodiments, client device 120 verifies 624 every nth (e.g., 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 9th, 10th, etc.) frame of the video.
[0100] In an alternative embodiment, at optional step 626 of method 600, client device 120 receives client movement data from a movement sensor. In this alternative embodiment, client device 120 also verifies that the movement data matches the suggested verification path before returning confirmation that the location of client device 120 is accurate and verified. In some embodiments, the movement data of client device 120 includes movement data for up to six degrees of freedom (i.e., three translational degrees of freedom and three rotational degrees of freedom). The movement sensor on the client device can be any combination of an accelerometer, a gyroscope, other inertial measurement units, and the like.
[0101] At optional step 628 of method 600, client device 120 utilizes verification instructions to verify that the movement data matches the verification path. As mentioned above, the movement data can include movement data for up to six degrees of freedom. In a simple embodiment, client device 120 verifies whether one or more degrees of freedom have movement (translation or rotation) above a threshold amount. In another embodiment, client device 120 verifies that the movement data correctly corresponds to the movement prompted at step 620. Client device 120 can use the movement data to estimate the distance traveled in a direction, which can be compared with the verification path prompted at step 620. Given that the estimated distance traveled in response to each step of the verification path is within a threshold tolerance of error, client device 120 can also confirm that the movement data matches the verification path. For example, if the movement data produces an estimate within a few steps of the verification path, client device 120 confirms that the movement data matches the verification path. Continuing with Example A, if the movement data results in an estimate of approximately 4 meters forward toward the landmark in response to the prompt in step (2), and approximately 2 meters forward turning left in response to the prompt in step (3), then client device 120 can verify that the movement data matches the verification path. Once client device 120 confirms that the movement data matches the verification path, client device 120 can then confirm that the location of client device 120 is accurate and has been verified based on the completion of the verification instruction.
[0102] In a further embodiment where the validation instructions include prompting for additional player input, in an optional step of method 600, the client device 120 verifies that the additional player input matches those prompted by the client device 120 according to the validation instructions. In this alternative embodiment, the client device 120 receives the additional player input to the client device 120. Before the client device 120 returns a confirmation that the location of the client device 120 is accurate and validated, the client device 120 also verifies whether the additional player input matches the prompted validation instructions. The client device 120 can verify that the additional player input matches the prompted validation instructions and can verify that the additional player input is timely according to the prompted validation instructions. Continuing with Example B, the client device 120 can verify that the sound signal received in response to step (3) matches the player saying the landmark name. The client device 120 can further verify whether the timing of the sound signal at which the player said the landmark name is appropriately between steps (2) and (4). Continuing with Example C, similar to Example B, client device 120 may verify that the received player input of a button on client device 120 matches step (3) and is appropriately timed between steps (2) and (4). Upon verifying that the additional player input positively matches the prompted instruction, client device 120 may then confirm that the location of client device 120 is accurate and has been verified based on the completion of the verification instruction.
[0103] Method 600 may continue with the client device 120 preparing to verify the location of the client device 120 with a confirmation receipt. In some embodiments, the client device 120 does not send the confirmation receipt until all steps within the verification instructions have verified the location of the client device 120 as a whole. In other embodiments, the client device 120 may not send the confirmation receipt until steps 618 and 624 have been verified. The game server 110 may receive the confirmation receipt and continue to provide game content specific to the location of the client device 120.
[0104] Method 600 helps prevent cheating by cheaters. As mentioned above, cheaters aim to defraud the game server by attempting to retrieve game content tied to a specific location without being physically present at that location. Method 600 proves difficult for cheaters to circumvent. If the player is simply prompted to capture a picture of a landmark near their assumed location, cheaters can easily fool the verification process by using pre-captured images of the landmark. Method 600 protects against such cheaters by providing additional instructions that move the player along a verification path while capturing image data. Not only does the cheater need to retrieve more comprehensive image data, but method 600 also randomizes the verification path for each instance of verification. For example, a cheater might attempt to fool method 600 by searching for image data (pictures or videos) of a landmark based on a previous verification path; however, method 600 can provide a new, randomized verification path, rendering other image data based on other verification paths useless. Additional embodiments with additional instructions further increase the challenge for cheaters in predicting which additional instructions might be prompted, making method 600 even more resistant to cheating. Method 600 additionally benefits from minimal intrusion on fair players playing parallel reality games. For players who are physically present at a particular location, when their client device requests game content tied to a particular location, the player is prompted with a few short instructions that can be quickly implemented while physically present at the particular location.
[0105] Additional considerations
[0106] The foregoing description of the embodiments has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the patent rights to the precise forms disclosed. Those skilled in the relevant art will appreciate that many modifications and variations are possible in light of the above disclosure.
[0107] Some portions of this specification describe embodiments in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the art of data processing to effectively convey the essence of their work to others skilled in the art. These operations described functionally, computationally, or logically are understood to be implemented by computer programs or equivalent circuits, microcode, etc. In addition, it sometimes proves convenient to refer to these operational arrangements as modules without loss of generality. The described operations and their associated modules can be embodied in software, firmware, hardware, or any combination thereof.
[0108] Any steps, operations, or processes described herein may be performed or implemented using one or more hardware or software modules, alone or in combination with other devices. In one embodiment, the software modules are implemented using a computer program product that includes a computer-readable medium containing computer program code that can be executed by a computer processor to perform any or all of the steps, operations, or processes described.
[0109] Embodiments may also relate to an apparatus for performing the operations described herein. The apparatus may be specially constructed for the desired purpose, and / or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory tangible computer-readable storage medium or any type of medium suitable for storing electronic instructions, which may be coupled to a computer system bus. Furthermore, any computing system referred to in this specification may comprise a single processor, or may be an architecture employing multiple processor designs to increase computing power.
[0110] Embodiments may also relate to a product produced by a computing process as described herein. Such a product may include information produced by the computing process, wherein the information is stored on a non-transitory tangible computer-readable storage medium, and may include any embodiment of a computer program product or other data combination as described herein.
[0111] Finally, the language used in the specification is primarily selected for readability and didactic purposes and may not be selected to describe or limit the patent rights. Accordingly, it is intended that the scope of the patent rights be limited not by this detailed description, but rather by any claims of an application that issues therefrom. Accordingly, the disclosure of the embodiments is intended to illustrate, not to limit, the scope of the patent rights set forth in the appended claims.
Claims
1. A non-transitory computer-readable storage medium storing instructions for verifying a geographic location of a client device, the instructions, when executed by a processor, causing the processor to perform operations comprising: receiving, by the online system, location information describing the geographic location of the client device; identifying a real-world object proximate to the geolocated location of the client device using the location information; generating, using the real-world object, verification instructions for confirming the geolocation of the client device, the verification instructions describing an expected change in perspective for image data collected by the client device along a verification path; as well as The verification instruction is provided to the client device for confirming the geographic location of the client device. 2 . The storage medium of claim 1 , wherein the verification instructions include instructions for collecting image data including at least a first image from a first perspective and a second image from a second perspective, the second perspective being different from the first perspective. 3 . The storage medium of claim 1 , wherein the expected change in perspective of the object is determined by applying an object recognition model to the verification path, the object recognition model comprising a plurality of features describing the object.
4. The storage medium according to claim 1, wherein the operation further comprises: receiving, by the online system, a confirmation receipt from the client device, the confirmation receipt indicating that the geolocation of the client device is verified using the verification instruction; In response to the confirmation receipt, content is provided to the client device for display, the content being associated with the geographic location of the client device.
5. The storage medium of claim 4, wherein the online system is a game server hosting a parallel reality game, wherein the content includes one or more virtual elements from the parallel reality game that are specific to the geographic location of the client device.
6. The storage medium of claim 1 , wherein the object is a real-world landmark, and wherein generating the verification instruction further comprises: The real-world landmark is identified, by the online system, from a plurality of real-world landmarks in a landmark database based on the geographic location of the client device.
7. The storage medium according to claim 1, wherein generating the verification instruction further comprises: A pre-generated authentication instruction associated with the real-world object is selected by the online system.
8. The storage medium according to claim 1, wherein generating the verification instruction further comprises: In response to receiving the location information, one or more verification instructions are randomly generated.
9. The storage medium of claim 1 , wherein the authentication instructions include a set of prompts for a user of the client device, the set of prompts comprising: one or more prompts instructing the user to collect the image data; as well as One or more prompts instructing the user to provide additional input to the client device while moving along the verification path, wherein the verification instructions include instructions for verifying that the additional input provided by the user matches the prompted additional input.
10. The storage medium of claim 9, wherein the one or more prompts instructing the user to provide additional input comprise: A prompt instructing the user to speak or a prompt instructing the user to touch a button on the client device.
11. The storage medium according to claim 1, wherein the operation further comprises: receiving, by the online system from the client device, a request for new authentication instructions in response to the real-world object being obstructed from view of the portion of the authentication path; generating, in response to the request, the new verification instructions for confirming the geographic location of the client device, the new verification instructions describing an expected change in perspective of image data collected along a new verification path; as well as The new authentication instruction is provided to the client device.
12. A method for verifying the geolocation of a client device, comprising: receiving, by an online system, location information describing the geographic location of the client device; identifying a real-world object proximate to the geolocated location of the client device using the location information; generating, using the real-world object, verification instructions for confirming the geolocation of the client device, the verification instructions describing an expected change in perspective for image data collected by the client device along a verification path; as well as The verification instruction is provided to the client device for confirming the geographic location of the client device.
13. The method of claim 12, wherein the verification instructions include instructions for collecting image data including at least a first image from a first perspective and a second image from a second perspective, the second perspective being different from the first perspective.
14. The method of claim 12, wherein the expected change in perspective of the object is determined by applying an object recognition model to the verification path, the object recognition model comprising a plurality of features describing the object.
15. The method according to claim 12, further comprising: receiving, by the online system, a confirmation receipt from the client device, the confirmation receipt indicating that the geolocation of the client device is verified using the verification instruction; In response to the confirmation receipt, content is provided to the client device for display, the content being associated with the geographic location of the client device.
16. The method of claim 15, wherein the online system is a game server hosting a parallel reality game, wherein the content includes one or more virtual elements from the parallel reality game that are specific to the geographic location of the client device.
17. The method of claim 12, wherein the object is a real-world landmark, and wherein generating the verification instruction further comprises: The real-world landmark is identified, by the online system, from a plurality of real-world landmarks in a landmark database based on the geographic location of the client device.
18. The method according to claim 12, wherein generating the verification instruction further comprises: A pre-generated authentication instruction associated with the real-world object is selected by the online system.
19. The method according to claim 12, wherein generating the verification instruction further comprises: In response to receiving the location information, one or more verification instructions are randomly generated.
20. The method of claim 12, wherein the authentication instructions include a set of prompts for a user of the client device, the set of prompts comprising: one or more prompts instructing the user to collect the image data; as well as One or more prompts instructing the user to provide additional input to the client device while moving along the verification path, wherein the verification instructions include instructions for verifying that the additional input provided by the user matches the prompted additional input.
Citation Information
Patent Citations
An augmented reality-based virtual synchronization display method and system
CN107168532A
Augmented-reality data processing method and apparatus, computer device, and storage medium
CN108550190A