Proximity detection of player device for location base game

The system facilitates proximity detection between client devices in location-based games, enabling dynamic interactions and community building by using personal area network devices for proximity detection.

JP2025087811APending Publication Date: 2025-06-10NIANTIC INC
View PDF 19 Cites 0 Cited by

Patent Information

Application Number
JP2025034612
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-06-15
Filing Date
2025-03-05
Publication Date
2025-06-10

AI Technical Summary

Technical Problem

Location-based games struggle to facilitate dynamic interactions between players in close proximity, as players often pass each other without recognizing the player community or opportunities for interaction.

Method used

A method and system for proximity detection between client devices associated with players of a location-based game, using personal area network devices like Bluetooth or Wi-Fi Direct, allowing for game actions such as data exchange, game progression, or feature access when players are in close proximity.

Benefits of technology

Enables players to discover and interact with each other in real-time, enhancing the gaming experience by allowing for spontaneous interactions and community building, even when not connected to an online system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025087811000001_ABST
    Figure 2025087811000001_ABST
Patent Text Reader

Abstract

To detect a player device via a local area network so as to be used especially in a location base game regarding proximity detection of a device.SOLUTION: A client device related to a player of a location base game detects a client device related to another player near a player device. The detection of a client device of the other player can cause occurrence of various game actions, such as exchange of game elements among players, a player's game progress, access to game features, and establishment of connection among players. Detection of the player device can be executed by using a personal area network device of a client device, such as Bluetooth. Proximity detection can occur when a player's client device is disconnected from an on-line system hosting the location base game, and detection is reported to the on-line system by one or both devices.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

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 locations 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 specific geographical location). However, outside of planned game actions, players in similar locations may pass each other in the physical world during daily life without recognizing each other. For example, two players may pass each other in a public space, each with their respective mobile devices used to play a parallel reality game. Thus, players may not be aware of the player community and opportunities for dynamic interactions that the player encounters.

[0003] [Summary] Disclosed are a method, a system, and a computer-readable storage medium for proximity detection between client devices associated with players of a location-based game. A player's client device can detect client devices associated with other players within the proximity of the player device. Detection of a client device of another player can result in a game action corresponding to the detection, such as an exchange of game data between the players or their client devices, progression of the player's game, access to a game feature, or establishment of a connection between the players. In an embodiment, detection of the player device 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 a different embodiment, proximity detection can occur when a player's client device is disconnected from an online system hosting the location-based game. In this case, the player device can store detection of the proximity of a client device of another player and, after connecting to the online system (e.g., via the Internet), provide information describing the detection to the online system. The online system then performs a game action based on the information received describing the detected proximity.

[0004] In some embodiments, a first game item associated with a first player of an augmented reality game available for trade is identified. A client device associated with the first player detects a second client device associated with a second player of the augmented reality game within the proximity of the first client device. In response to the detection of the second client device, the first client device stores an identifier of the second player. The first client device provides the identifier of the second player to an online system hosting the augmented reality game. The first client device receives updated game data indicating an exchange of the first game item for a second game item from the online system based on the identifier.

[0005] In some embodiments, the 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 an identifier associated with the client device. After storing the identifier, the client device provides the identifier to an online system that hosts 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, aspects and advantages can be better understood with reference to the following description and the appended claims. The accompanying drawings illustrate particular embodiments and, together with the description, serve to explain various principles. However, the drawings should not be considered limiting. Rather, the scope of protection should be determined from the claims.

Brief Description of the Drawings

[0007]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

[0008] [Detailed Description] Reference is now made to some embodiments, examples of which are illustrated in the accompanying drawings. It should be noted that, wherever possible, similar or like reference numbers are used in the drawings to denote similar or like functions. Also, when similar elements are identified by reference numbers followed by a letter, reference in the following description to only the number shall refer to all such elements, any one of such elements, or any combination of such elements. Those skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods may be used without departing from the principles described.

[0009] [Exemplary Location-Based Parallel Reality Game System] Various embodiments are described in which proximity detection of a player device is performed in the context of a parallel reality game. A parallel reality game is a location-based game having a virtual world geography that parallels at least a portion of the real-world geography such that real-world player movement and actions affect actions in the virtual world. However, the subject matter of the present disclosure may be equally applicable to other types of games or other location-based applications such as interactive applications.

[0010] FIG. 1 is a block diagram showing an embodiment of a computing environment for a location-based game system 100. In the illustrated embodiment, the location-based game system 100 provides interaction of a plurality of players in a virtual world having a geography parallel to the real world. In particular, a geographical area in the real world can be directly linked or mapped to a corresponding area 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 position of a player in the real world and update the position of the player in the virtual world based on the current position of the player in the real world. For example, a coordinate system in the real world (e.g., longitude and latitude) can be mapped to a coordinate system in the virtual world (e.g., x / y coordinates, virtual longitude and latitude, etc.).

[0011] In the embodiment shown in FIG. 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 through 120C, via a network 130. Although three client devices 120 are shown in FIG. 1, any number of client devices 120 can be connected to the game server 110 via the network 130. In other embodiments, the distributed location-based game system 100 includes different or additional elements. Further, functions can be distributed among the elements in a manner different from that described.

[0012] The game server 110 hosts the master state of the location-based game and provides updates to the game state to the player's client device 120 (e.g., based on actions taken by other players in the game, changes in real-world conditions, changes in the game state or conditions, etc.). The game server 110 receives and processes inputs from players within the location-based game. A player may be identified by a username or player ID (e.g., a unique number or alphanumeric string) that the player's client device 120 transmits 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 from the client device 120 information indicating that the client device 120 (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 the device ID. Proximity detection is described in more detail below with reference to the client device 120 and FIG. 2. The game server 110 further executes various game actions based on the information received from the client device 120 that describes the detection of another client device 120. Device proximity detection and game actions based on various embodiments of the game server 110 are described in more detail below with reference to FIG. 3.

[0014] The client device 120 is a computing device through which a player can interact with the game server 110. For example, the client device 120 can be a smartphone, a portable game device, a tablet, a personal digital assistant (PDA), a mobile phone, a navigation system, a handheld GPS system, or other such devices. Although only three client devices are shown in FIG. 1 (i.e., client devices 120A, 120B, and 120C), the location-based game system 100 can include any number of client devices 120. The client device 120 runs software associated with a location-based game hosted by the server 110, such as a client game application, to enable the player to interact with the virtual world. The client device 120 can also include hardware, software, or both to provide a user interface for a chat room. The client device 120 is configured to detect other client devices 120 when they are in proximity to each other in the physical world (i.e., device proximity detection). In an embodiment, the client device 120 performs proximity detection using a personal area network (PAN) device and an associated communication protocol (e.g., Bluetooth, ZigBee, infrared, ultra-wideband, near field communication, Wi-Fi Direct, etc.). The client device 120 can 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 can provide the stored information corresponding to the detection to the game server 110. Various embodiments of the client device 120 will be described in more detail below with reference to FIG. 2.

[0015] The distance range within which the client device 120 can perform proximity detection of other client devices 120 can vary depending on the technology or device used. As described above, when the client device 120 uses a PAN device for proximity detection, the distance range for proximity detection is the range within 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, the client device 120 can use other devices or technologies to perform proximity detection of other client devices 120. As an example, the client device 120 can use the geographical coordinates of the client device 120 determined using a GPS receiver on the client device 120. In this case, the distance range for proximity detection can be a probabilistic threshold distance (e.g., 20m). As another example, the client device 120 can 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 distance range for proximity detection can be the range within which the client device 120 can connect to a particular LAN and can be affected by the relevant software and hardware that provides 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 them. The network can also include a direct connection between the client device 120 and the game server 110. Generally, communication between the game server 110 and the client device 120 can be performed via a network interface that uses any type of wired and / or wireless connection, using various communication protocols (e.g., TCP / IP, HTTP, S1v1TP, FTP), encodings or formats (e.g., HTML, JSON, XML), and / or protection schemes (e.g., VPN, secureHTTP, SSL).

[0017] FIG. 2 is a block diagram of an embodiment of the client device 120A shown in FIG. 1. The 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 architectures and are associated with other players of the parallel reality game. Since the game system 100 is for a location-based game, the client device 120 is preferably a portable computing device such as a smartphone or other portable device, which can be easily carried or otherwise transported with the player. The player can interact with the virtual world just by carrying or transporting the client device 120 into the real world. In the illustrated embodiment, the client device 120A includes a device proximity module 210, a game module 220, a user interface module 230, a device detection data store 240, and a local data store 250. In other embodiments, the client device 120A includes additional or different components than those shown in FIG. 2.

[0018] As the player moves around in the real world with the client device 120A, the device proximity module 210 detects other client devices 120 that are in proximity to the client device 120A associated with the player of the location-based game (i.e., the player device). In some embodiments, the device proximity module 210 includes a PAN device. In these embodiments, the PAN device broadcasts information that describes the broadcast client device 120 or the player associated with the broadcast client device 120 so that other client devices 120 within the proximity of the broadcast client device 120 can receive the broadcast information. Further, the PAN device includes a scanner that identifies information broadcast by the PAN devices of other client devices 120. For example, if the PAN device is a Bluetooth LE device, the Bluetooth LE device may continuously broadcast an advertisement data packet that includes a universal unique identifier (UUID) corresponding to the Bluetooth LE device and a message that includes an identifier of the player (e.g., player ID or username) using one or more channels. The Bluetooth LE device may periodically or continuously listen to one or more channels used to broadcast the advertisement data packet, as described above.

[0019] In the same or different embodiments, after another client device 120 is detected, the device proximity module 210 stores information that describes the detection in the device detection data store 240. In particular, the device proximity module 210 stores information that identifies the player received by the PAN device or other context information such as a timestamp indicating when the detection occurred. The device proximity module 210 provides information corresponding to the device detection to the game module 220. In an alternative embodiment, the device proximity module 210 provides information corresponding to the device detection directly to the game server 110.

[0020] In some embodiments, the device proximity module 210 stores information describing device proximity in the device detection data store 240 or verifies that a particular device proximity detection meets one or more criteria before 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., previous time, previous day, previous week, etc.). For example, a location-based game may perform game actions based on proximity detection of the same client device 120 only once per time interval. In this way, the location-based game can prevent multiple or frequent game actions for a player whose client device 120 is in the same physical location over a period of time or, alternatively, for two players who detect each other multiple times at a certain time interval. By verifying that a device proximity detection meets one or more criteria, the device proximity module 120 prevents duplicate storage of proximity detections that would not result in additional game actions after being provided to the game server 110. 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 operates a client - side game application for a parallel reality game hosted by the game server 110. In an embodiment, the game module 220 communicates information about the virtual world with the user interface module 230 to display content associated with the virtual world and so on. The game module 220 further receives or obtains game data from the game server 110. For example, the game module 220 may receive from the game server 110 game data that describes 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 the same or different embodiments, the game module 220 transmits to the game server 110 information that describes device proximity detections made by the device proximity module 210 or stored in the device detection data store 240. In this case, the game module 220 receives or obtains from the game server 110 game data that describes one or more game actions based on the information that describes device proximity detections 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 FIG. 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, if the game module 220 is disconnected from the game server 110 (e.g., if 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 when 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 components of the user interface of the client device 120. In some embodiments, the user interface displays to the user a depiction of a virtual world that includes components of the virtual world, such as virtual elements and virtual experiences received from the game module 220. The user interface module 230 may also display the location of a chat room in the virtual world and messages sent between users within the chat room. The user may interact with the client device 120 to engage with virtual elements, participate in virtual experiences, or converse within the chat room. 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 via the user interface to complete tasks, participate in chat rooms, or participate in competitions among other actions.

[0024] In some embodiments, the user interface module 230 provides a user interface related to the 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 the user of the client device 120 to determine what happens based on the 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 from 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 can be received from the client device 120 or otherwise obtained or determined by the game server 110. In embodiments, the device detection data store 240 stores at least the identifier of the player associated with the device detected based on device proximity detection. The device detection data store 240 can further store context 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 unauthorized proximity detections, the time interval during which the 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 can store player position information tracked by the positioning device 210, a local copy of the current state of the augmented reality game, or any other suitable data. Although the local data store 250 is shown as a single entity, the data can be split across multiple media. Further, the data can be stored elsewhere (e.g., a distributed database) and accessed remotely via the network 130.

[0027] FIG. 3 shows an embodiment of a game server 110 that hosts a location-based parallel reality game. In the illustrated embodiment, game server 110 includes a universal game module 310, a game action module 320, and a game database 330. In other embodiments, game server 110 includes different or additional elements. Further, the functionality may be distributed among the elements in a different manner than described.

[0028] Game server 110 can be configured to receive requests for game data from one or more client devices 120 (e.g., via remote procedure call (RPC)) and respond to those requests via network 130. For example, game server 110 can encode game data in one or more data files and provide those data files to client devices 120. Further, game server 110 can be configured to receive game data (e.g., player position, player action, player input, etc.) from one or more client devices 120 via network 130. For example, client devices 120 can be configured to periodically send player input, player position, and other updates to game server 110, which is used for game server 110 to update the game data in game database 330 and reflect the changed game conditions. Also, game server 110 can send game data such as the positions of other players, the positions of chat rooms, or the positions of virtual elements to client devices 120.

[0029] The Universal Game Module 310 hosts location-based games for players and serves 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 that 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 devices 120 via the network 130.

[0030] The game action module 320 can be part of or separate from the universal game module 310. The game action module 320 is configured to execute game actions based on proximity detection performed by the client device 120. The game action module 320 receives information describing proximity detection from the client device 120. Using the received proximity detection information, the game action module 320 executes game actions that create, modify, or otherwise process game data. The game action module 320 can provide game data to the client device 120 based on the executed game actions, such as the client device 120 that provided the proximity detection information to the game action module 320 that resulted in the game action. For example, the game action module 320 processes game actions that process game data (e.g., associated with a player's profile or account) corresponding to a player of a location-based game, such as any combination of game data (e.g., game data of types (1) through (9)) described below with reference to the game database 330. As an example, when the client device 120 associated with player A detects another client device 120 associated with player B, the game action module 320 can 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 execute game actions. For example, the game action module 320 can communicate with the universal game module 310 to determine which game actions can be executed based on the received proximity detection information or other context information (e.g., current time or game characteristics). In the same or different embodiments, the game action module 320 provides information describing one or more game actions to be executed on the client device 120, such as information describing the processing to be performed on game data corresponding to one or more game actions.Information describing one or more game actions that have been performed may include a notification for display on the client device 120, such as a notification indicating that a game action has occurred or describing the game action.

[0031] In various embodiments, the game action module 320 performs game actions that process the game data of one or both players in response to device proximity detection. In some embodiments, the game action module 320 performs game actions for the player associated with the client device 120 that provided information (i.e., the detecting device) describing the proximity detection. For example, if the client device 120A provides information describing the device proximity detection of the client device 120B, the game action module 320 can perform game actions that affect the game data for the player associated with the client device 120A. Such game actions can include providing game items to the player as a reward, providing a game experience to the player, (e.g., leveling up the game character associated with the player), recommending that the player send a friend request to another player, or other game actions specific to the player. In the same or different embodiments, the game action module 320 performs game actions that process the game data of the player associated with the detected device (e.g., the client device 120B in the previous example). The game action module 320 can perform game actions for the player associated with the detected device that are the same as or different from those performed for the player associated with the detecting device. Further, in the same or different embodiments, the game action module 320 performs game actions that process the game data of both the player associated with the detecting device and the player associated with the detected device (e.g., both the client device 120A and the client device 120B in the above example).The game actions executed by the game action module 320 that affect 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 player, starting in-game events (e.g., battles) for both players, adding one player to an existing augmented reality experience in which the other player is already participating, updating the in-game map associated with one or both players, or providing information describing the opposite player to establish a connection between the players.

[0032] In some embodiments, the game action module 320 determines one or more game actions to execute based on whether the game action module 320 has received information describing device proximity detection from both client devices 120 involved in proximity detection. For example, if the game action module receives information describing the detection of client device 120B from client device 120A, the game action module 320 may determine one or more game actions to execute based on whether the game action module has also received information describing the detection of client device 120A from client device 120B. In other embodiments, the game action module 320 determines one or more game actions to execute based on device proximity detection information received from a single client device 120.

[0033] In some embodiments, the game action executed by the game action module 320 is an exchange of game items (i.e., trading of game items) between two players of a location-based game. For example, in response to receiving information describing proximity detection between a first player and a second player, the game action module 320 can obtain one or more game items associated with the first player to trade with one or more game items associated with the second player. In one embodiment, a player can specify one or more game items (e.g., game items associated with a player profile or account) that the player wishes to trade with another player. As an example, a player can select from a set of game items collected by playing a location-based game such that the player is added to a group of game items that can be traded with another player when proximity detection of the device occurs. This selection can be made by the player using the 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. Then, the game action module 320 can execute a trade between the two players when one or both of the 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 between the player associated with client device 120A and the player associated with game client device 120B. The game action module 320 updates the game data in the game database 330 when exchanging game items. The game action module 320 can additionally or alternatively communicate with the universal game module 310 to execute a trade of game items or to convey that a trade of game items has occurred.In one embodiment, the game action module 320 provides a notification for a display indicating that a trade has occurred or describing details of the trade to one or both of the client devices 120 involved in the trade of game items.

[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 can correspond to the characteristics of the game item, the price of the game item in actual or in-game currency, other indicators of the value of the game item, or a combination thereof. The game action module 320 uses the value of the game item to select one or more game items to trade for each player corresponding to device proximity detection. For example, the game action module 320 can exchange game items having the same value or values with a difference within a trade threshold. Other examples of information that the game action module 320 can consider when performing a trade between players include associations between players in a location-based game (e.g., whether the players are friends or both are associated with an in-game organization such as a team) or characteristics of the game items (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 served or provided to a client device 120 via a network 130. In an embodiment, the game data stored in the game database 330 can include: (1) data associated with a virtual world in a location-based game (e.g., image data used to render the virtual world on a display device, geographical coordinates of a location in the virtual world, etc.), (2) data associated with a player of a location-based game, such as a player profile or account data (e.g., player information, player experience level, player currency, player inventory, current player location in the virtual / real world, player energy level, player preferences, team information, etc.), (3) data associated with game objectives (e.g., data associated with current game objectives, the state of game objectives, past game objectives, future game objectives, desired game objectives, etc.), (4) data associated with virtual elements in the virtual world (e.g., the location of virtual elements, the type of virtual elements, game objectives associated with virtual elements, actual world location information corresponding to virtual elements, the behavior of virtual elements, the relevance of virtual elements, etc.), (5) data associated with real-world objects, landmarks, locations linked to virtual world elements (e.g., the location of real-world objects / landmarks, the description of real-world objects / landmarks, the relevance of virtual elements linked to real-world objects, etc.), (6) the game state (e.g., the current number of players, the current state of game objectives, the player leaderboard, etc.), (7) data associated with player actions / inputs (e.g., current player location, past player location, player movement, player input, player queries, player communication, etc.), (8) data associated with virtual experiences (e.g., the location of virtual experiences, player actions associated with virtual experiences, virtual events such as attacks, etc.), and (9) any other data used, related to, or obtained during the execution of the location-based game.The game data stored in the game database 330 can be input either offline or in real time, by a system administrator, or by data received from one or more client devices 120, such as via the network 130, from a player.

[0036] The game database 330 can also store real-world data. Real-world data can include population density data that describes the collective location of individuals in the real world, player density data that describes the collective location of players in the real world, player actions associated with locations of cultural or commercial value, player heatmap data that describes the distribution of game actions in a geographical area, point-of-interest data that describes real-world locations corresponding to the locations of virtual elements in a virtual world, terrain data that describes the locations of various terrains and ecological conditions such as large bodies of water, mountains, canyons, etc., map data that provides the locations of roads, highways, and waterways, the 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 suitable data. Real-world data can be collected or obtained from any suitable source. For example, the game database 330 can be coupled to, 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 coupled to one or more external data sources or services that periodically provide population data, hazard data, weather data, event calendar data, etc.

[0037] Modules other than those shown in FIG. 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. Further, various components on the server side can be rearranged. Other configurations will be apparent in light of the present disclosure, but the present 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 of Figure 4 are shown from the perspective of client device 120 that executes method 400. However, some or all of the steps may be executed by other entities or components. Further, some embodiments may execute different steps, or execute 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 (410) for a PAN for another client device. For example, the first client device may use a PAN device scanner to scan for information broadcast by the PAN device of other client devices 120 in order to perform device proximity detection. Based on the scan, the first client device receives (420) an identifier from a second client device (e.g., client device 120B) via a PAN corresponding to an application on the second client device. For example, the first client device may perform proximity detection of the second client device by receiving information broadcast by the second client device (e.g., using device proximity module 210) that includes a player ID of a player of a location-based game associated with the second client device. The first client device stores (430) the identifier received from the second client device. For example, the first client device may store the identifier in device detection data store 240.

[0040] The first client device provides an identifier to an online system corresponding to the application (440). For example, the first client device may provide an identifier to game server 110 (e.g., using game module 220). The first client device receives data regarding the application corresponding to an action to be performed by the online system based on 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 game server 110.

[0041] FIG. 5 is a flowchart showing one embodiment of a method 500 for trading game items using device proximity detection. In the embodiment shown, the steps of FIG. 5 are shown from the perspective of client device 120 that executes method 500. However, some or all of the steps may be performed by other entities or components. Further, some embodiments may perform different steps, or perform some of the steps in a different order or in parallel.

[0042] In the embodiment shown in FIG. 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 being available for trade. For example, the first player may specify one or more game items included in the game data for the first player as being tradable. The first client device detects (520) a second client device (e.g., client device 120B) associated with a second player within the proximity of the first client device. In particular, the first client device receives an identifier of the second player based on proximity detection of the second client device. For example, the first client may perform proximity detection of the second client device using device proximity module 210. The first client device stores (530) the identifier of the second player. For example, the first client device may store the player identifier in device detection data store 240.

[0043] The first client device provides (540) the identifier to an online system that hosts the location-based game. For example, the first client device may provide the identifier to game server 110 (e.g., using game module 220). In response, the first client device receives (550) game data from the online system indicating an exchange of the first game item for a second game item. For example, the first client device may receive from game server 110 a push notification indicating that an exchange has occurred or describing the game item received by the first player.

[0044] FIG. 6 is a block diagram showing an exemplary computer suitable for use in the network computing environment of FIG. 1 according to one embodiment. Specifically, FIG. 6 shows a schematic representation of a machine in an exemplary form of computer system 600. Computer system 600 can be associated with components (or modules) of game server 110 or client device 120 and is used to execute instructions 624 (e.g., program code or software), which are for causing the machine to execute any one or more of the methods (or processes) described herein, including those to be described.

[0045] The machine can 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 cell phone tower, or any machine capable of executing instructions 624 (sequentially or otherwise) that specify actions to be taken by that machine. Further, although only a single machine is shown, the term "machine" shall also include any collection of machines that individually or jointly execute instructions 624 to perform any of the disclosed methods.

[0046] Exemplary computer system 600 includes one or more processing units (generally one or more processors 602). Processor 602 can be, 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 processor 602 can refer to a single processor or multiple processors. Computer system 600 also includes main memory 604. The computer system can include storage unit 616. Processor 602, memory 604, and storage unit 616 communicate via bus 608.

[0047] In addition, computer system 600 can include static memory 606, a display driver 610 (e.g., for driving a plasma display panel (PDP), liquid crystal display (LCD), or projector). Further, computer system 600 can include an alphanumeric input device 612 (e.g., a keyboard), a cursor control device 614 (e.g., a mouse, trackball, joystick, motion sensor, or other pointing device), a signal generation device 618 (e.g., a speaker), and a network interface device 620, which are also configured to communicate via bus 608.

[0048] 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. Instructions 624 can also be present, in whole or in part, within main memory 604 or within processor 602 (e.g., within a cache memory of the processor) during execution by computer system 600. Main memory 604 and processor 602 also constitute machine-readable media. Instructions 624 can be transmitted or received over network 130 via network interface device 620.

[0049] Although machine-readable medium 622 is shown as a single medium in the exemplary embodiment, the term "machine-readable medium" should be understood to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) capable of storing instructions 624. The term "machine-readable medium" should also be understood to include any medium capable of storing instructions 624 for execution by a machine and of causing a machine to perform 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 memories, optical media, and magnetic media.

[0050] Although the subject matter has been described in detail with respect to certain exemplary embodiments and methods thereof, those skilled in the art will appreciate that, upon understanding the foregoing, such embodiments can be readily modified, varied, and equivalents thereof can be easily created. Accordingly, the scope of the present disclosure is by way of example and not limitation, and the present disclosure does not exclude the inclusion of such modifications, variations, or additions to the subject matter that would be readily apparent to those skilled in the art.

[0051] [Other Considerations] Some portions of the above description describe embodiments with respect to algorithmic processes or operations. The description and representation of these algorithms are commonly used by those skilled in the computing arts to effectively convey the substance of their work to other skilled artisans. These operations are described functionally, computationally, or logically, but it is understood that they are implemented by a computer program including instructions for execution by a processor or equivalent electrical circuitry, microcode, etc. Further, it has also been found convenient at times to refer to these configurations of functional operations as modules without loss of generality.

[0052] As used herein, any reference to "one embodiment" or "an embodiment" means that a particular element, feature, structure, or characteristic described in connection with that embodiment is included in at least one embodiment. The appearances of the phrase "in one embodiment" in various places in this specification are not necessarily all referring 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 one or more of the elements or components are present unless it is apparent otherwise.

[0053] When a value is described as "approximate" or "substantial" (or derivatives thereof), such a value should be interpreted as exact + / - 10% unless other meaning is clear from the context. For example, "about 10" should be understood to mean "in the range of 9 to 11".

[0054] As used herein, the terms "comprises", "comprising", "includes", "including", "has", and "having" or any other variations 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 only those elements, and may include other elements not expressly listed or not inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, "or" means inclusive "or" and not exclusive "or". For example, the condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or absent), A is false (or absent) and B is true (or present), and both A and B are true (or present).

[0055] Upon reading this disclosure, those skilled in the art will appreciate additional alternative structural and functional designs that may be used to employ the described techniques and approaches. Accordingly, while specific embodiments and applications have been illustrated and described, it should be understood that the described subject matter 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 non-transitory computer-readable storage medium having instructions stored thereon that, when executed by a first client device, cause the first client device to: scanning a personal area network for other client devices by the first client device; receiving an identifier from a second client device over the personal area network based on the scan, the identifier being associated with an interactive application installed on the first client device and the second client device; storing, by the first client device, the identifier associated with the second client device; providing said identifier to an online system hosting said interactive application; receiving data from the online system describing an action to be taken by the online system related to the interactive application, the action being based on the identifier; A non-transitory computer-readable storage medium for causing a computer to perform operations including:

2. The non-transitory computer-readable storage medium of claim 1 , wherein the interactive application is a location-based game.

3. 3. The non-transitory computer-readable storage medium of claim 2, wherein the first client device is associated with a player account of the location-based game, and the data describes information describing game items for the player account, game progress for the player account, game features for the player account, or one or more other game activities of the player account.

4. Scanning the personal area network includes: sharing a second identifier associated with the first client device over the personal area network, the second identifier being discernable by other client devices connected to the personal area network; and 2. The non-transitory computer-readable storage medium of claim 1 , comprising:

5. The identifier is received while the first client device does not have connectivity to the online system, and providing the identifier associated with the first client device includes: Detecting that the first client device has connectivity to the online system via the personal area network; providing the identifier to the online system in response to the first client device having connectivity; 2. The non-transitory computer-readable storage medium of claim 1 , comprising:

6. Scanning the personal area network includes: initiating the scan in response to an interaction by a user of the first client device; 2. The non-transitory computer-readable storage medium of claim 1 , comprising:

7. The non-transitory computer-readable storage medium of claim 1 , wherein the personal area network is a Bluetooth Low Energy network.

8. 10. The non-transitory computer-readable storage medium of claim 1, further comprising: displaying, by the first client device, a notification describing the receipt of the identifier of the second client device.

9. An online system, a database for storing game data for a location-based game, the game data including a plurality of game items; a game action module configured to perform actions; Including, The operation includes: identifying a first game item of the plurality of game items associated with a first player of the location-based game as available for trade; identifying a second game item of the plurality of game items associated with a second player of the location-based game as available for trade; receiving an identifier of the second player from a first client device associated with the first player, the identifier indicating that the first client device was previously within proximity of a second client device associated with the second player; updating the game data to reflect an exchange of the first game item and a second game item based on the received identifier, the exchange resulting in the first game item being associated with the second player and the second game item being associated with the first player; providing the updated game data to the first client device; Including online systems.

10. Identifying the first game item as being available for trade includes: receiving, from the first client device, a selection of one or more game items associated with the first player, the one or more game items including the first game item; allocating the one or more game items to a list of items associated with the first player that are available for trading with other players; The online system of claim 9 , comprising:

11. Updating the game data to reflect the exchange of the first game item and the second game item includes: identifying a first value of the first game item and a second value of the second game item; updating the game data to reflect the exchange in response to a difference between the first value and the second value being within a threshold; 10. The online system of claim 9, comprising:

12. 10. The online system of claim 9, wherein the first device received the identifier of the second device over a personal area network while the second device was in proximity to the first device.

Citation Information

Patent Citations

  • Program, mobile terminal, information processing method, and information processing system

    JP2013220246A

  • System and method for improved data integration in augmented reality architecture

    JP2018049010A

  • Augmented reality display system, program and method

    JP2018200519A

  • Apparatus and method for exchanging items at close range

    KR1020150039648A

  • Methods and systems for managing information relevant to shopping tasks

    US20070244758A1