Proximity detection of player devices for location-based games
Proximity detection using Bluetooth or Wi-Fi Direct on client devices in location-based games allows for enhanced player interactions and data exchanges, addressing the issue of missed opportunities in parallel reality games by identifying nearby players and facilitating in-game actions.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-12-19
- Publication Date
- 2026-03-25
AI Technical Summary
Players in location-based games using parallel reality often fail to recognize each other in the real world, missing opportunities for dynamic interactions due to the lack of proximity detection between player devices.
Implementing proximity detection using personal area network devices such as Bluetooth or Wi-Fi Direct on client devices to identify nearby player devices, allowing for game actions and data exchange, even when disconnected from the online system, with information stored and transmitted upon reconnection.
Enables dynamic game interactions and data exchanges between players, enhancing the gaming experience by facilitating awareness of nearby players and enabling in-game actions based on proximity, even in offline scenarios.
Smart Images

Figure 2026053493000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to proximity detection of devices, and more particularly to detecting player devices via a local area network for use in location - based games.
Background Art
[0002] Location - based games use the real world as the geography of the location - based game. Parallel reality games are one type of location - based game that uses a virtual world parallel to the geography of the real world. The parallel virtual world may span the entire real world, and players around the world can interact and perform various game objectives in the parallel virtual world by navigating and performing actions in the real world. Players in similar positions can play together at the same physical location in the real world, such as by participating in organized community game actions (e.g., live game actions associated with a particular geographical location). However, outside of planned game actions, players in similar positions may pass each other in the physical world during daily life without recognizing each other. For example, two players may carry their respective mobile devices used to play a parallel reality game and pass each other in a public space. Thus, players may not be aware of the player community and opportunities for dynamic interactions that a player encounters.
[0003] [Summary] Disclosed are a method, system, and computer-readable storage medium for proximity detection between client devices associated with players of a location-based game. A player's client device may detect client devices associated with other players that are within proximity of the player's device. Proximity detection of another player's client device may result in a game action corresponding to the detection, such as the exchange of game data between the player or its client device, the player's game progression, access to game functions, or the establishment of a connection between players. In embodiments, the detection of player devices is performed using a personal area network device of the client device, such as a Bluetooth® device or a Wi-Fi® Direct device. In the same or different embodiments, proximity detection may occur when a player's client device is disconnected from an online system hosting a location-based game. In this case, the player device may store the proximity detection of the other player's client device and, after connecting to the online system (e.g., via the Internet), provide the online system with information describing the detection. The online system then performs a game action based on the information describing the received proximity detection.
[0004] In some embodiments, a first game item associated with a first player of a parallel reality game that is available for trading is identified. The client device associated with the first player detects a second client device associated with a second player of the parallel reality game that is in proximity to the first client device. In response to the detection of the second client device, the first client device stores the identifier of the second player. The first client device provides the identifier of the second player to the online system hosting the parallel reality game. Based on the identifier, the first client device receives updated game data from the online system indicating the exchange of the first game item for the second game item.
[0005] In some embodiments, a first player device scans the personal area network for other client devices connected to the personal area network. Based on the scan, the first player device identifies an identifier associated with a second player device connected to the personal area network. In particular, this identifier is associated with an application on the second client device. The client device stores the identifier associated with it. After storing the identifier, the client device provides the identifier to an online system hosting the application. Based on the identification of the provided identifier, the first player device receives application data from the online system for processing by the application.
[0006] These and other features, embodiments, and advantages can be better understood by referring to the following description and the attached claims. The attached drawings illustrate specific embodiments and, together with the description, are helpful in illustrating various principles. However, the drawings should not be considered limiting. Rather, the scope of protection should be determined from the claims. [Brief explanation of the drawing]
[0007] [Figure 1] Figure 1 is a block diagram showing a computing environment for a location-based game system according to one embodiment. [Figure 2] Figure 2 is a block diagram of the client device shown in Figure 1, according to one embodiment. [Figure 3] Figure 3 is a block diagram of the game server shown in Figure 1, according to one embodiment. [Figure 4] Figure 4 is a flowchart illustrating a method for detecting device proximity according to one embodiment. [Figure 5]Figure 5 is a flowchart illustrating a method 500 for trading game items using a device proximity detection method according to one embodiment. [Figure 6] Figure 6 is a block diagram showing an exemplary computer according to one embodiment, suitable for use in the computing environment of Figure 1. [Modes for carrying out the invention]
[0008] [Detailed explanation] Herein, we refer to several embodiments, examples of which are shown in the accompanying drawings. Note that, where practicable, similar or similar reference numerals are used in the drawings to indicate similar or similar functions. Also, where similar elements are identified by a reference numeral following a letter, references to the numeral alone in the following description may refer to all such elements, any one such element, or any combination of such elements. Those skilled in the art will readily recognize from the following description that alternative embodiments of the structure and method may be used without departing from the principles described.
[0009] [An exemplary location-based parallel reality game system] Various embodiments of proximity detection of player devices being performed in the context of parallel reality games are described. A parallel reality game is a location-based game having a virtual world geography that is parallel to at least a portion of the real world geography, such that player movements and actions in the real world affect actions in the virtual world. However, the subject matter of this disclosure may be equally applicable to other types of games or other location-based applications, such as interactive applications.
[0010] Figure 1 is a block diagram illustrating one embodiment of a computing environment for a location-based game system 100. In the illustrated embodiment, the location-based game system 100 provides interaction between multiple players in a virtual world having geography parallel to the real world. In particular, geographical areas in the real world can be directly linked or mapped to corresponding areas in the virtual world. Players can move within the virtual world by moving to various geographical locations in the real world. For example, the system 100 can track the player's location in the real world and update the player's location in the virtual world based on the player's current location in the real world. For example, a real-world coordinate system (e.g., longitude and latitude) can be mapped to a virtual-world coordinate system (e.g., x / y coordinates, virtual longitude and latitude, etc.).
[0011] In the embodiment shown in Figure 1, the system 100 has a client-server architecture in which a game server 110 communicates with one or more client devices 120, including client devices 120A to 120C, via a network 130. Although three client devices 120 are shown in Figure 1, any number of client devices 120 can connect to the game server 110 via the network 130. In other embodiments, the distributed location-based game system 100 includes different or additional elements. Furthermore, functionality may be distributed among the elements in ways different from those described.
[0012] The game server 110 hosts the master state of the location-based game and provides updates to the player's client device 120 regarding the game state (e.g., based on actions taken by other players in the game, changes in real-world conditions, changes in game state or conditions, etc.). The game server 110 receives and processes input from players in the location-based game. Players may be identified by a username or player ID (e.g., a unique number or alphanumeric string) that the player's client device 120 sends to the game server 110 along with the player's input. In some embodiments, the game server hosts several location-based games, other types of games, or other applications.
[0013] In various embodiments, the game server 110 processes game actions based on client devices 120 that detect each other in the real world. The game server 110 receives information from client device 120 indicating that one client device (e.g., client device 120A) was in proximity to another client device (e.g., client device 120B). In particular, this information identifies one or more players associated with the relevant client device 120, such as the player's username or ID, or device ID. Proximity detection is described in more detail below with reference to client device 120 and Figure 2. The game server 110 further performs various game actions based on the information received from client device 120 describing the detection of another client device 120. Game actions based on device proximity detection and various embodiments of the game server 110 are described in more detail below with reference to Figure 3.
[0014] A client device 120 is a computing device that allows a player to interact with the game server 110. For example, a client device 120 can be a smartphone, portable gaming device, tablet, personal digital assistant (PDA), mobile phone, navigation system, handheld GPS system, or other such device. Although only three client devices are shown in Figure 1 (i.e., client devices 120A, 120B, and 120C), the location-based game system 100 may include any number of client devices 120. A client device 120 runs software associated with the location-based game hosted by the server 110, such as a client game application, enabling the player to interact with the virtual world. A client device 120 may also include hardware, software, or both, to provide a user interface for a chat room. A client device 120 is configured to detect other client devices 120 when they are in close proximity to each other in the physical world (i.e., device proximity detection). In one embodiment, the client device 120 performs proximity detection using a personal area network (PAN) device and associated communication protocols (e.g., Bluetooth, ZigBee, infrared, ultra-wideband, near-field communication, Wi-Fi Direct, etc.). The client device 120 may store information describing the detection of other client devices 120 in the physical world (e.g., a player identifier associated with the user of the detected client device or a device identifier associated with the detected client device). The client device 120 may provide the stored information corresponding to the detection to the game server 110. Various embodiments of the client device 120 are described in more detail below with reference to Figure 2.
[0015] The distance range over which client device 120 can perform proximity detection of other client devices 120 may vary depending on the technology or device used. As described above, if client device 120 uses a PAN device for proximity detection, the distance range for proximity detection is the range over which a particular PAN device can detect another PAN device. For example, in the case of Bluetooth Low Energy (LE), a Bluetooth LE device can detect or connect to other Bluetooth LE devices within a range of about 60 meters. As another example, in the case of Wi-Fi Direct, a Wi-Fi Direct device can detect or connect to other Wi-Fi Direct devices within a range of about 100 meters. In the same or different embodiments, client device 120 may use other devices or technologies to perform proximity detection of other client devices 120. As an example, client device 120 may use the geographic coordinates of client device 120 determined using a GPS receiver on client device 120. In this case, the distance range for proximity detection may be an established threshold distance (e.g., 20 m). As another example, client device 120 may connect to a local area network (LAN), such as a Wi-Fi network, and identify other devices connected to the same LAN. In this case, the proximity detection distance range may be the range within which client device 120 can connect to a particular LAN, and may be influenced by the relevant software and hardware providing that LAN (e.g., the type of wireless LAN router used).
[0016] 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 a combination of some of these. The network can also include a direct connection between the client device 120 and the game server 110. In general, communication between the game server 110 and the client device 120 can be performed over a network interface using any type of wired and / or wireless connection, with various communication protocols (e.g., TCP / IP, HTTP, S1v1TP, FTP), encoding or format (e.g., HTML, JSON, XML), and / or protection scheme (e.g., VPN, secureHTTP, SSL).
[0017] Figure 2 is a block diagram of one embodiment of the client device 120A shown in Figure 1. Client device 120A is associated with a player of a parallel reality game. Other client devices (e.g., client devices 120B and 120C) have the same or similar architecture and are associated with other players of the parallel reality game. Since the game system 100 is for a location-based game, client device 120 is preferably a portable computing device such as a smartphone or other portable device that can be easily carried or otherwise transported with the player. The player can interact with the virtual world simply by carrying or transporting client device 120 into the real world. In the illustrated embodiment, client device 120A includes a device proximity module 210, a game module 220, a user interface module 230, a device discovery data store 240, and a local data store 250. In other embodiments, client device 120A includes additional or different components than those shown in Figure 2.
[0018] The device proximity module 210 detects other client devices 120 that are in proximity to the client device 120A associated with a player of a location-based game (i.e., a player device) as the player moves around in the real world with the client device 120A. In some embodiments, the device proximity module 210 includes a PAN device. In these embodiments, the PAN device broadcasts information describing the broadcast client device 120 or a player associated with the broadcast client device 120 so that other client devices 120 in proximity to the broadcast client device 120 can receive the broadcast information. Furthermore, the PAN device includes a scanner that identifies the information broadcast by the PAN device of the other client device 120. For example, if the PAN device is a Bluetooth LE device, the Bluetooth LE device may continuously broadcast advertising data packets using one or more channels, which include a message containing a universally unique identifier (UUID) corresponding to the Bluetooth LE device and a player identifier (e.g., player ID or username). The Bluetooth LE device may periodically or continuously listen to one or more channels used to broadcast the advertising data packets, as described above.
[0019] In the same or different embodiments, after another client device 120 is detected, the device proximity module 210 stores information describing the detection in the device detection data store 240. In particular, the device proximity module 210 stores information identifying the player received by the PAN device, or other contextual information such as a timestamp indicating when the detection occurred. The device proximity module 210 provides the game module 220 with information corresponding to the device detection. In an alternative embodiment, the device proximity module 210 directly provides the game server 110 with information corresponding to the device detection.
[0020] In some embodiments, the device proximity module 210 verifies that a particular device proximity detection meets one or more criteria before storing information describing the device proximity detection in the device detection data store 240 or providing the information to the game module 220. For example, the device proximity module 210 may verify a device proximity detection based on criteria corresponding to the time of the device proximity detection, the geographical location of the device proximity detection, the player associated with the detected device, or other contextual information. In one embodiment, the device proximity module 210 verifies that the detected client device 120 or the player associated with the detected client device 120 has not been detected within a previous time interval (e.g., the previous time, the previous day, the previous week, etc.). For example, a location-based game may perform a game action based on proximity detection of the same client device 120 only once per time interval. In this way, a location-based game can prevent multiple or frequent game actions for two players who detect each other multiple times within a time interval, unless the client device 120 is in the same physical location over a period of time. By verifying that a device proximity detection meets one or more criteria, the device proximity module 120 prevents duplicate storage of proximity detections that, after being provided to the game server 110, do not result in additional game actions. In an alternative embodiment, the device proximity module 210 stores information describing all device proximity detections, and instead, the device proximity detections are verified by the game module 220 or the game server 110 based on one or more criteria as described above.
[0021] The game module 220 runs a client-side game application for a parallel reality game hosted by the game server 110. In embodiments, the game module 220 communicates information about the virtual world with the user interface module 230, such as displaying content associated with the virtual world. The game module 220 also receives or retrieves game data from the game server 110. For example, the game module 220 may receive game data from the game server 110 describing available game content (e.g., game items) based on the location of the client device 120, the geographical location of devices associated with other players, or upcoming community events (e.g., competitive tournaments). In identical or different embodiments, the game module 220 transmits information to the game server 110 describing device proximity detection performed by the device proximity module 210 or stored in the device detection data store 240. In this case, the game module 220 receives or retrieves game data from the game server 110 describing one or more game actions based on the information describing the device proximity detection provided to the game server 110 by the game module 220. Game actions based on device detection are described in more detail below with reference to Figure 3.
[0022] In some embodiments, the game module 220 transmits information describing device detections to the game server 210 based on the occurrence of certain events. For example, when the game module 220 is disconnected from the game server 110 (e.g., when the client device 120 is not connected to the Internet), the device proximity module 210 may store information describing any device detections that occurred during the period in which the game module 220 was disconnected. In this case, after the game module 220 reconnects to the game server 110 (e.g., via the network 130), the game module 220 may transmit some or all of the device detections that occurred during that period. As another example, the game module 220 may transmit information describing one or more device proximity detections in response to a specific user interaction with the client device 120, such as when the user launches or resumes a client game application associated with a location-based game hosted by the game server 110. As yet another example, a player associated with the client device 120 may manually indicate a request to provide stored device detections through a user interaction with the client device 120. In the same or different embodiments, the game module 220 periodically provides information describing one or more stored device detections to the game server 110 at predefined time intervals (e.g., every minute).
[0023] The user interface module 230 of the client device 120 constructs and displays the components of the user interface of the client device 120. In some embodiments, the user interface displays to the user a depiction of the virtual world, including virtual world components such as virtual elements and virtual experiences received from the game module 220. The user interface module 230 may also display the location of chat rooms in the virtual world and messages sent between users within the chat rooms. The user can interact with the client device 120 to engage with virtual elements, participate in virtual experiences, or converse within chat rooms. For example, the user interface module 230 may display a view of the virtual world depicting points of interest, chat rooms, and other virtual experiences. The user of the client device 120 can interact with these components through the user interface to complete tasks, join chat rooms, or participate in competitions among other actions.
[0024] In some embodiments, the user interface module 230 provides a user interface related to proximity detection of one or more other client devices 120. For example, the user interface module 230 may display a notification indicating that another client device 120 has been detected, and information related to the detection, such as the player ID of the player associated with the detected device or the time at which the detection occurred. In the same or different embodiments, the user interface module 230 provides elements that enable a user of the client device 120 to determine what happens based on proximity detection of other client devices. For example, the user interface module 230 may adjust proximity detection preferences (e.g., enable or disable device proximity detection), initiate transmission of information describing device proximity detection stored in the device detection data store 240, review device proximity detection stored in the device detection data store 240, or provide a user interface that includes elements for selecting possible game actions based on proximity detection. In particular, the user interface module 230 may provide an interface that includes an element (e.g., a button) for initiating proximity detection, such as a "search for other players" element.
[0025] The device detection data store 240 is one or more computer-readable media configured to store information describing device proximity detection by the client device 120. The information stored by the device detection data store 240 may be received from the client device 120 or otherwise obtained or determined by the game server 110. In some embodiments, the device detection data store 240 stores at least the player identifier associated with the device detected based on the device proximity detection. The device detection data store 240 may further store contextual information describing the device proximity detection, such as a timestamp indicating when the device proximity detection occurred, or a geographical location (e.g., GPS coordinates) indicating where the device proximity detection occurred. In some embodiments where the game server 110 hosts multiple games, the device detection data store 240 stores information (e.g., game name or identifier) describing one or more games corresponding to a given device proximity detection. In yet another embodiment, the device detection data store 240 stores security information to prevent inaccurate or fraudulent proximity detection, the time interval during which proximity detection occurred (e.g., the amount of time another device was detected), or other information describing the player or device associated with the proximity detection.
[0026] The local data store 250 is one or more computer-readable media configured to store data used by the client device 120. For example, the local data store 250 may store player location information tracked by the positioning device 210, a local copy of the current state of the parallel reality game, or any other appropriate data. Although the local data store 250 is presented as a single entity, the data may be divided across multiple media. Furthermore, the data may be stored in other locations (e.g., distributed databases) and accessed remotely via the network 130.
[0027] Figure 3 shows one embodiment of a game server 110 that hosts a location-based parallel reality game. In the illustrated embodiment, the game server 110 includes a universal game module 310, a game action module 320, and a game database 330. In other embodiments, the game server 110 includes different or additional elements. Furthermore, functionality may be distributed among the elements in ways different from those described.
[0028] The game server 110 can be configured to receive requests for game data from one or more client devices 120 (for example, via remote procedure calls (RPCs)) and to respond to those requests via the network 130. For example, the game server 110 can encode game data into one or more data files and provide those data files to the client devices 120. Furthermore, the game server 110 can be configured to receive game data (for example, player location, player actions, player input, etc.) from one or more client devices 120 via the network 130. For example, the client device 120 can be configured to periodically send player input, player location, and other updates to the game server 110, which the game server 110 uses to update game data in the game database 330 and reflect the changed game conditions. The game server 110 can also send game data such as the locations of other players, chat room locations, or virtual element locations to the client devices 120.
[0029] The Universal Game Module 310 hosts a location-based game for players and acts as the authoritative source for the current state of the location-based game. The Universal Game Module 310 receives game data (e.g., player input, player location, player actions, player state, landmark information, etc.) from the client device 120 and incorporates the received game data into the overall location-based game for all players of the location-based game. Along with the game data, the Universal Game Module 310 stores the overall game state of the game, which can be sent to the client device 120 to update the local game state within the Game Module 220. The Universal Game Module 310 can also manage the distribution of game data to the client device 120 via the network 130.
[0030] The game action module 320 may be part of the universal game module 310 or separate. The game action module 320 is configured to perform game actions based on proximity detection performed by the client device 120. The game action module 320 receives information from the client device 120 describing proximity detection. Using the received proximity detection information, the game action module 320 performs game actions that create, modify, or otherwise process game data. The game action module 320 may provide game data to the client device 120 based on the game actions performed, such as the client device 120 that provided proximity detection information to the game action module 320 resulting in the game action. For example, the game action module 320 may perform game actions that process game data corresponding to a player of a location-based game (e.g., associated with a player's profile or account), such as any combination of game data described below (e.g., game data of types (1) through (9)), by referring to the game database 330. For example, if a client device 120 associated with player A detects another client device 120 associated with player B, the game action module 320 may modify the player profile of player A or player B based on the game action. In some embodiments, the game action module 320 communicates with the universal game module 310 to perform a game action. For example, the game action module 320 may communicate with the universal game module 310 to determine which game actions can be performed based on received proximity detection information or other contextual information (e.g., current time or game features). In the same or different embodiments, the game action module 320 provides information describing one or more game actions to be performed on the client device 120, such as information describing the processing to be performed on the game data corresponding to one or more game actions.Information describing one or more game actions that have been performed may include, for example, notifications to be displayed on the client device 120, such as notifications indicating that a game action has occurred or describing a game action.
[0031] In various embodiments, the game action module 320 performs game actions that process the game data of one or both players corresponding to device proximity detection. In some embodiments, the game action module 320 performs game actions for players associated with client device 120 that provided information describing proximity detection (i.e., the detected device). For example, if client device 120A provides information describing device proximity detection of client device 120B, the game action module 320 can perform game actions that affect the game data for players associated with client device 120A. Such game actions may include providing players with game items as rewards, providing players with game experiences (e.g., leveling up game characters associated with players), encouraging players to send friend requests to other players, or other game actions specific to players. In the same or different embodiments, the game action module 320 performs game actions that process the game data of players associated with the detected device (e.g., client device 120B in the previous example). The game action module 320 may perform game actions for players associated with a detected device that are the same as or different from those performed for players associated with a detected device. Furthermore, in the same or different embodiments, the game action module 320 may perform game actions that process game data for both players associated with a detected device and players associated with a detected device (for example, both client device 120A and client device 120B in the example above).Game actions performed by the game action module 320, which affects the game data of both players, may include exchanging game elements (e.g., game items, images, messages, game states, etc.) between players, providing game elements from one player to the other, initiating in-game events (e.g., combat) for both players, adding one player to an existing augmented reality experience in which the other player is already involved, updating an in-game map associated with one or both players, or providing information describing the opposite player in order to establish a connection between players.
[0032] In some embodiments, the game action module 320 determines one or more game actions to perform based on whether it has received information describing device proximity detection from both client devices 120 involved in proximity detection. For example, if the game action module has received information from client device 120A describing the detection of client device 120B, the game action module 320 may determine one or more game actions to perform based on whether it has also received information from client device 120B describing the detection of client device 120A. In other embodiments, the game action module 320 determines one or more game actions to perform based on device proximity detection information received from a single client device 120.
[0033] In some embodiments, the game action performed by the game action module 320 is the exchange of game items between two players of a location-based game (i.e., the exchange of game items). For example, in response to receiving information describing proximity detection between a first player and a second player, the game action module 320 may acquire one or more game items associated with the first player in order to trade them for one or more game items associated with the second player. In one embodiment, a player may specify one or more game items (e.g., game items associated with a player profile or account) that they wish to trade with the other player. As an example, a player may select from a set of game items collected by playing a location-based game so that they are added to a group of game items that can be traded with the other player when proximity detection of the device occurs. This selection may be made by the player using a client device 120 associated with the player, or another device (e.g., a laptop or desktop computer) that can communicate with the game server 110. Next, the game action module 320 can perform a trade between two players when one or both of its associated client devices 120 detect another device in the real world, as indicated by the received device proximity detection information. For example, if client device 120A detects client device 120B, the game action module 320 can exchange one or more game items with the player associated with client device 120A and the player associated with game client device 120B. When exchanging game items, the game action module 320 updates the game data in the game database 330. The game action module 320 may, additionally or alternatively, communicate with the universal game module 310 to perform a game item trade or to communicate that a game item trade has occurred.In one embodiment, the game action module 320 provides one or both of the client devices 120 involved in trading game items with a notification for display indicating that a trade has occurred or describing the details of the trade.
[0034] In various embodiments, the game action module 320 performs additional processing to execute a trade of game items. In one embodiment, the game action module 320 determines or identifies a value associated with a game item designated for trade by a player corresponding to device proximity detection. The value of a game item may correspond to the characteristics of the game item, the price of the game item in real or in-game currency, other indicators of the value of the game item, or a combination thereof. The game action module 320 uses the values of the game items to select and trade one or more game items for each player corresponding to device proximity detection. For example, the game action module 320 may exchange game items that have the same value or differing values within a trade threshold. Other examples of information that the game action module 320 may consider when executing trades between players include the association between players in a location-based game (e.g., whether the players are friends or both belong to an in-game organization such as a team) or the characteristics of the game item (e.g., game item type).
[0035] The game database 330 includes one or more machine-readable media configured to store game data used in a location-based game that is serviced or provided to client devices 120 via the network 130. In embodiments, the game data stored in the game database 330 may include: (1) data associated with the virtual world in the location-based game (e.g., image data used to render the virtual world on a display device, geographic coordinates of a location in the virtual world, etc.); (2) data associated with the player of the location-based game, such as player profile or account data (e.g., player information, player experience level, player currency, player inventory, current player location in the virtual world / real world, player energy level, player preferences, team information, etc.); (3) data associated with game objectives (e.g., data associated with the current game objective, the state of the game objective, past game objectives, future game objectives, desired game objectives, etc.); and (4) data associated with virtual elements in the virtual world (e.g., location of a virtual element, type of virtual element, game objectives associated with a virtual element). (1) data associated with real-world objects, landmarks, and locations linked to virtual world elements (e.g., locations of real-world objects / landmarks, descriptions of real-world objects / landmarks, and relationships of virtual elements linked to real-world objects), (2) game state (e.g., current number of players, current state of game objectives, player leaderboards), (3) data associated with player actions / inputs (e.g., current player location, past player locations, player movement, player input, player queries, player communications), (4) data associated with virtual experiences (e.g., location of virtual experiences, player actions associated with virtual experiences, virtual events such as raids), and (5) any other data used, related to, or acquired during the execution of a location-based game.Game data stored in the game database 330 can be entered either offline or in real time by the system administrator or by data received from players via the network 130 from one or more client devices 120, etc.
[0036] The game database 330 may also store real-world data. Real-world data may include population density data describing the collective locations of individuals in the real world, player density data describing the collective locations of players in the real world, player actions associated with locations of cultural or commercial value, player heatmap data describing the distribution of game actions in geographical areas, point of interest data describing real-world locations corresponding to the locations of virtual elements in the virtual world, terrain data describing the locations of various terrains and ecological conditions such as large bodies of water, mountains, and canyons, map data providing the locations of roads, highways, and waterways, current and past locations of individual players, hazard data, weather data, event calendar data, player activity data (e.g., distance traveled, exercise time, etc.), and other appropriate data. Real-world data can be collected or obtained from any appropriate source. For example, the game database 330 may be combined with, include, or be part of a map database that stores map information, such as one or more map databases accessed by a map service. As another example, the game server 110 can be connected to one or more external data sources or services that periodically provide population data, hazard data, weather data, event calendar data, etc.
[0037] Other modules besides those shown in Figure 3 can be used with the game server 110. Any number of modules can be programmed or otherwise configured to perform the server-side functions described herein. Furthermore, various components on the server side can be rearranged. Other configurations will become apparent in light of this disclosure, but this disclosure is not intended to be limited to any particular configuration.
[0038] [Device proximity detection method] Figure 4 is a flowchart showing an embodiment of method 400 for device proximity detection. In the embodiment shown, the steps in Figure 4 are shown from the perspective of a client device 120 performing method 400. However, some or all of the steps may be performed by other entities or components. Furthermore, some embodiments may perform different steps, or some of the steps in a different order, or in parallel.
[0039] In the embodiment shown in Figure 4, method 400 begins with a first client device (e.g., client device 120A) scanning the PAN for other client devices (410). For example, the first client device may use the scanner of the PAN device to scan for information broadcast by the PAN device of the other client device 120 in order to perform device proximity detection. Based on the scan, the first client device receives an identifier from the second client device (e.g., client device 120B) via the PAN corresponding to the application on the second client device (420). For example, the first client device may perform proximity detection of the second client device by receiving information broadcast by the second client device, including the player ID of a player of a location-based game associated with the second client device (e.g., using the device proximity module 210). The first client device stores the identifier received from the second client device (430). For example, the first client device may store the identifier in the device discovery data store 240.
[0040] The first client device provides an identifier to the online system corresponding to the application (440). For example, the first client device may provide an identifier to the game server 110 (for example, using the game module 220). The first client device receives data about the application corresponding to the action performed by the online system based on the receipt of the identifier by the first client device (450). For example, the first client device may receive game data corresponding to a game action performed by the game server 110.
[0041] Figure 5 is a flowchart showing one embodiment of method 500 for trading game items using device proximity detection. In the embodiment shown, the steps in Figure 5 are shown from the perspective of a client device 120 performing method 500. However, some or all of the steps may be performed by other entities or components. Furthermore, some embodiments may perform different steps, or perform some of the steps in different orders or in parallel.
[0042] In the embodiment shown in Figure 5, method 500 begins by identifying (510) a first game item for a first player of a location-based game associated with a first client device (e.g., client device 120A) as available for trade. For example, a first player may designate one or more game items included in the game data for the first player as tradable. The first client device detects (520) a second client device (e.g., client device 120B) associated with a second player that is within proximity of the first client device. In particular, the first client device receives the identifier of the second player based on the proximity detection of the second client device. For example, the first client may use the device proximity module 210 to perform proximity detection of the second client device. The first client device stores the identifier of the second player (530). For example, the first client device may store the player identifier in the device detection data store 240.
[0043] The first client device provides an identifier to an online system hosting a location-based game (540). For example, the first client device may provide an identifier to the game server 110 (for example, using the game module 220). In response, the first client device receives game data from the online system indicating the exchange of a first game item for a second game item (550). For example, the first client device may receive a push notification from the game server 110 indicating that an exchange has occurred or describing the game item received by the first player.
[0044] Figure 6 is a block diagram illustrating an exemplary computer suitable for use in the network computing environment of Figure 1, according to one embodiment. Specifically, Figure 6 shows a schematic representation of the machine in an exemplary form of computer system 600. Computer system 600 can be used to execute instructions 624 (e.g., program code or software) to cause the machine to perform any one or more of the methods (or processes) described herein, including those associated with and described in relation to a component (or module) of a game server 110 or a client device 120.
[0045] A machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a set-top box (STB), a smartphone, a network router, a switch or bridge, a cellphone tower, or any machine capable of executing instruction 624 (sequentially or otherwise) which specifies the action that the machine should take. Furthermore, although only a single machine is shown, the term “machine” shall also include any set of machines that individually or jointly execute instruction 624 to perform any of the disclosed methods.
[0046] An exemplary computer system 600 includes one or more processing units (typically one or more processors 602). The processors 602 are, for example, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a controller, a state machine, one or more application-specific integrated circuits (ASICs), one or more radio frequency integrated circuits (RFICs), or any combination thereof. Any reference to processors 602 may refer to a single processor or multiple processors. The computer system 600 also includes main memory 604. The computer system may include a storage unit 616. The processors 602, memory 604, and storage unit 616 communicate via a bus 608.
[0047] The computer system 600 may also include static memory 606, a display driver 610 (for example, for driving a plasma display panel (PDP), a liquid crystal display (LCD), or a projector), an alphanumeric input device 612 (for example, a keyboard), a cursor control device 614 (for example, a mouse, trackball, joystick, motion sensor, or other pointing device), a signal generation device 618 (for example, a speaker), and a network interface device 620, which are also configured to communicate via the bus 608.
[0048] The storage unit 616 includes a machine-readable medium 622 that can store instructions 624 (e.g., software) for performing any of the methods or functions described herein. The instructions 624 may also reside, all or partially, in the main memory 604 or in the processor 602 (e.g., in the processor's cache memory) during execution by the computer system 600. The main memory 604 and the processor 602 also constitute the machine-readable medium. The instructions 624 may be transmitted or received over the network 130 via the network interface device 620.
[0049] Although the machine-readable medium 622 is shown as a single medium in exemplary embodiments, the term “machine-readable medium” should be understood to include a single or multiple mediums capable of storing instructions 624 (e.g., a centralized or distributed database, or associated caches and servers). The term “machine-readable medium” should also be understood to include any medium capable of storing instructions 624 for machine execution and causing a machine to execute any one or more of the methods or functions disclosed herein. The term “machine-readable medium” includes, but is not limited to, data repositories in the form of solid-state memory, optical media, and magnetic media.
[0050] While this subject matter has been described in detail with respect to specific exemplary embodiments and methods, those skilled in the art will understand that by understanding the foregoing, modifications, variations, and equivalents of such embodiments can be readily created. Therefore, the scope of this disclosure is illustrative rather than restrictive, and this disclosure does not preclude such modifications, variations, or additional inclusions to the subject matter that would be readily apparent to those skilled in the art.
[0051] [Other considerations] Some parts of the above description describe embodiments of algorithmic processes or operations. These descriptions and representations of algorithms are commonly used by those skilled in the field of computation to effectively communicate the nature of their work to others skilled in the field. These operations are described functionally, computationally, or logically, but are understood to be implemented by computer programs containing instructions for execution by a processor or equivalent electrical circuit, microcode, etc. Furthermore, without loss of generality, it is sometimes convenient to refer to these configurations of functional operations as modules.
[0052] Where used herein, any reference to “one embodiment” or “one embodiment” means that the specific elements, features, structures, or features described in relation to that embodiment are included in at least one embodiment. The phrase “in one embodiment” appearing in various places herein does not necessarily refer to the same embodiment. Similarly, the use of “a” or “an” preceding an element or component is merely for convenience. This description should be understood to mean that there is one or more elements or components unless it is evident otherwise.
[0053] When a value is described as "approximate" or "substantial" (or a derivative thereof), such a value should be interpreted as an exact + / - 10% unless another meaning is evident from the context. For example, "approximately 10" should be understood to mean "within the range of 9 to 11."
[0054] Where used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” and “having,” or any other variation thereof, are intended to cover non-exclusive inclusion. For example, a process, method, article, or apparatus that includes a list of elements is not necessarily limited to those elements alone, and may include other elements not expressly enumerated or specific to such process, method, article, or apparatus. Furthermore, unless expressly stated otherwise, “or” means inclusive “or” and not exclusive “or.” For example, condition A or B is satisfied by one of the following: A is true (or exists) and B is false (or does not exist); A is false (or does not exist) and B is true (or exists); and both A and B are true (or exist).
[0055] Those skilled in the art will understand, upon reading this disclosure, further alternative structural and functional designs that may be used to employ the described techniques and approaches. Therefore, while specific embodiments and applications have been illustrated and described, it should be understood that the subject matter described is not limited to the exact structures and components disclosed. The scope of protection should be limited only by the following claims.
Claims
1. A computer-based method for exchanging virtual game items within a location-based game, The game server receives, from a first client device associated with a first player, the identifier of a second player as first device proximity detection information indicating that the first client device has detected a second client device in the vicinity of the first client device, wherein the second client device is associated with the second player in the location-based game. The game server, in response to receiving the first device proximity detection information, determines whether it has received predetermined data from the second client device. In response to the determination that the first device proximity detection information and the predetermined data have been received, the game server transmits game data associated with the exchange of virtual game items to at least one of the first client device and the second client device. Methods that include...
2. The method according to claim 1, wherein the predetermined data includes an identifier of a first player received by the game server from the second client device as second device proximity detection information, and the game server transmits the game data associated with the exchange in response to deciding to receive the first device proximity detection information and the second device proximity detection information.
3. The method according to claim 1, wherein the first player has a tradable first game item, the second player has a tradable second game item, and the transmitted game data includes game data indicating that the first game item is to be exchanged for the second game item.
4. The aforementioned method, Identifying the first value of the first game item and the second value of the second game item, The method according to claim 3, further comprising: in response that the difference between the first value and the second value is within a threshold, the game server updates the game data to reflect the exchange and transmits the updated game data indicating the exchange to at least one of the first client device and the second client device.
5. The aforementioned method, The method according to claim 3, further comprising the game server causing at least one of the first client device and the second client device to display a notification explaining the exchange on the screen of at least one of the first client device and the second client device.
6. The method according to claim 3, wherein the location-based game is a parallel reality game that includes a virtual world in which virtual geographical locations are parallel to real-world geographical locations, and the first game item is a first virtual game item that exists in the virtual world of the parallel reality game.
7. The aforementioned method, The game server receives the selection of one or more game items associated with the first player from the first client device, The method according to claim 1, further comprising assigning the one or more game items to a list of items that are tradable with other players and associated with the first player, via the game server.
8. It is an online system, A database for storing game data for location-based games, The game action module comprises, The first client device associated with the first player receives the identifier of the second player as first device proximity detection information indicating that the first client device has detected the second client device associated with the second player within the vicinity of the first client device, In response to receiving the first device proximity detection information, it is determined whether predetermined data has been received from the second client device, An online system configured to perform an operation including transmitting game data associated with a trade to at least one of the first client device and the second client device in response to a determination that the first device proximity detection information and the predetermined data have been received.
9. The online system according to claim 8, wherein the predetermined data includes an identifier of the first player received by the game action module from the second client device as second device proximity detection information, and the game action module is configured to perform the operation which includes transmitting the game data associated with the trade in response to deciding to receive the first device proximity detection information and the second device proximity detection information.
10. The online system according to claim 8, wherein the first player has a first game item available for the trade, the second player has a second game item available for the trade, and the transmitted game data associated with the trade includes game data indicating that the first game item is being exchanged for the second game item.
11. The aforementioned game action module is Identifying the first value of the first game item and the second value of the second game item, The online system according to claim 10, further configured to perform an operation including updating the game data stored in the database to reflect the trade in response to the difference between the first value and the second value being within a threshold, and transmitting the updated game data indicating the trade to at least one of the first client device and the second client device.
12. The aforementioned game action module is The online system according to claim 10, wherein at least one of the first client device and the second client device is configured to perform an operation including displaying a notification describing the trade on the screen of at least one of the first client device and the second client device.
13. The online system according to claim 10, wherein the location-based game is a parallel reality game that includes a virtual world in which virtual geographical locations are parallel to real-world geographical locations, and the first game item is a first virtual game item that exists in the virtual world of the parallel reality game.
14. The aforementioned game action module is Receiving a selection of one or more game items associated with the first player from the first client device, The online system according to claim 8, further configured to perform an operation including assigning one or more of the aforementioned game items to a list of items that are tradable with other players and associated with the first player.
15. A non-temporary computer-readable storage medium storing instructions, wherein when an instruction is executed by a first client device, the first client device receives the instructions. The first client device scans the network for other client devices in the real world, wherein both the first client device and the other client devices have a location-based game application installed. Based on the scan, the system receives an identifier from a second client device via the network, wherein the identifier is associated with a location-based game application installed on the second client device. The aforementioned identifier is provided to the game server hosting the location-based game application as first device proximity detection information, A non-temporary computer-readable storage medium that performs an operation including receiving data from the game server describing an action performed by the game server in relation to the location-based game application, in response to the game server deciding to receive predetermined data from the second client device.
16. The non-temporary computer-readable storage medium according to claim 15, wherein the predetermined data includes an identifier associated with the first client device received by the game server from the second client device as second device proximity detection information.
17. The action is based on the identifier associated with the second client device, in the non-temporary computer-readable storage medium according to claim 15.
18. The instruction is given to the first client device: The operation further includes transmitting to the game server a selection of one or more game items associated with the account of a first player corresponding to the first client device, wherein the one or more game items are game items identified by the first player as tradable with other players. The non-temporary computer-readable storage medium according to claim 15, wherein the data received from the game server includes game data associated with the exchange of one or more game items of the first player with a game item associated with the account of the second player corresponding to the second client device.
19. The network is a first network, the identifier of the second client device is received by the first client device while the first client device does not have a connection with the game server, and the command causing the first client device to provide the identifier of the second client device to the game server is given to the first client device, The first client device is detected to have a connection to the game server via the second network, A non-temporary computer-readable storage medium according to claim 15, which performs an operation including transmitting the identifier of the second client device to the game server via the second network.
20. The instruction is given to the first client device: Comparing the identifier received from the second client device with one or more previously received identifiers, wherein each of the one or more previously received identifiers is associated with a corresponding timestamp indicating when it was received by the first client device. The non-temporary computer-readable storage medium according to claim 15, further comprising providing the identifier from the second client device to the game server in response to the determination that the identifier received from the second client device has not been previously received by the first client device within a certain time interval.