Proximity Detection of Player Devices for Location-Based Games

Proximity detection using Bluetooth or Wi-Fi Direct in location-based games allows for enhanced player interaction and community engagement by identifying nearby players, facilitating game actions and data exchange.

JP7795483B2Active Publication Date: 2026-01-07NIANTIC INC
View PDF 16 Cites 0 Cited by

Patent Information

Application Number
JP2022577238
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-06-15
Filing Date
2021-06-07
Publication Date
2026-01-07
Estimated Expiration
2041-06-07

AI Technical Summary

Technical Problem

Players in location-based games using parallel reality are often unaware of each other in the real world, missing opportunities for dynamic interaction and community engagement.

Method used

Implementing proximity detection using personal area network devices like Bluetooth or Wi-Fi Direct to identify nearby player devices, allowing for game actions and data exchange even when disconnected from the online system, with information shared upon reconnection.

Benefits of technology

Enhances player interaction and community engagement by enabling game actions and data exchange between nearby players, improving the gaming experience through proximity detection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007795483000001
    Figure 0007795483000001
  • Figure 0007795483000002
    Figure 0007795483000002
  • Figure 0007795483000003
    Figure 0007795483000003
Patent Text Reader

Abstract

A client device associated with a player of a location-based game detects client devices associated with other players that are in the player device's vicinity. This detection of other players' client devices can result in various game actions, such as exchanging game elements between players, progressing players in the game, accessing game features, or establishing connections between players. The detection of player devices can be performed using a personal area network device of the client device, such as Bluetooth. Proximity detection can occur when a player's client device is disconnected from the online system hosting the location-based game, and the detection is later reported to the online system by one or both devices.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates generally to proximity detection of devices, and more particularly to detecting player devices over a local area network for use in location-based gaming. [Background technology]

[0002] Location-based games use the real world as the geography of the location-based game. Parallel reality games are a 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 from around the world may interact and accomplish various game objectives in the parallel virtual world by navigating and performing actions in the real world. Similar-located players may play together in the same physical location in the real world, such as by participating in organized community game action (e.g., live game action associated with a particular geographic location). However, outside of planned game action, similarly located players may pass each other on the street in the physical world during everyday life without recognizing each other. For example, two players may pass each other in a public space with their respective mobile devices used to play a parallel reality game. Thus, players may be unaware of the player community and opportunities for dynamic interaction they encounter.

[0003] [overview] A method, system, and computer-readable storage medium are disclosed 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 the player device's proximity. Proximity detection of other players' client devices may result in game actions corresponding to the detection, such as the exchange of game data between the players or their client devices, player game progression, access to game features, or the establishment of a connection between the players. In an embodiment, 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 a different embodiment, proximity detection can occur when a player's client device is disconnected from an online system hosting a location-based game. In this case, the player device can store proximity detections of other players' client devices 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 executes game actions based on the received information describing the 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. A client device associated with the first player detects a second client device associated with a second player of the parallel reality game that is within proximity of the first client device. In response to detecting 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 parallel reality game. The first client device receives updated game data from the online system based on the identifier, indicating an exchange of the first game item for the second game item.

[0005] In some embodiments, a first player device scans a 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 the client device. 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, aspects, and advantages may be better understood with reference to the following description and appended claims. The accompanying drawings illustrate certain embodiments and, together with the description, serve to explain various principles. The drawings, however, should not be considered limiting. Rather, the scope of protection should be determined from the claims. [Brief explanation of the drawings]

[0007] [Figure 1] FIG. 1 is a block diagram illustrating a computing environment for a location-based gaming system, according to one embodiment. [Figure 2] FIG. 2 is a block diagram of the client device shown in FIG. 1 according to one embodiment. [Figure 3] FIG. 3 is a block diagram of the game server shown in FIG. 1 according to one embodiment. [Figure 4] FIG. 4 is a flow chart illustrating a method for device proximity detection, according to one embodiment. [Figure 5]FIG. 5 is a flow chart illustrating a method 500 for trading game items using device proximity detection methods, according to one embodiment. [Figure 6] FIG. 6 is a block diagram illustrating an exemplary computer suitable for use in the computing environment of FIG. 1, according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0008] [Detailed explanation] Reference will now be made to several embodiments, examples of which are illustrated in the accompanying drawings. It should be noted that, wherever practicable, like or similar reference numbers have been used in the drawings to indicate like or similar functionality. Also, where like elements are identified by a reference number followed by a letter, reference to the number 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 structures and methods may be used without departing from the principles described.

[0009] [An exemplary location-based parallel reality game system] Various embodiments are described in which proximity detection of player devices 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 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 location-based applications, such as other types of games or interactive applications.

[0010] FIG. 1 is a block diagram illustrating one embodiment of a computing environment for location-based gaming system 100. In the illustrated embodiment, location-based gaming system 100 provides for multi-player interaction in a virtual world having a geography parallel to the real world. In particular, geographic areas in the real world can be directly linked or mapped to corresponding areas in the virtual world. Players can navigate through the virtual world by moving to various geographic locations in the real world. For example, system 100 can track the player's position in the real world and update the player's position in the virtual world based on the player's current position 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 FIG. 1, the system 100 includes a game server 110 connected to a network 130. , including client devices 120A-120C; It has a client-server architecture that communicates with one or more client devices 120. 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 gaming system 100 includes different or additional elements. Furthermore, functionality may be distributed among the elements in ways different from that described.

[0012] The game server 110 hosts the master state of the location-based game and provides game state updates 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 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 usernames or player IDs (e.g., unique numbers or alphanumeric strings) 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 the client devices 120 detecting each other in the real world. The game server 110 receives information from the client device 120 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 associated 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 the client device 120 and FIG. 2. The game server 110 further performs various game actions based on information received from the 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 FIG. 3.

[0014] Client devices 120 are computing devices through which players can interact with game server 110. For example, client devices 120 can be smartphones, portable gaming devices, tablets, personal digital assistants (PDAs), mobile phones, navigation systems, handheld GPS systems, or other such devices. Although only three client devices are shown in FIG. 1 (i.e., client devices 120A, 120B, and 120C), location-based gaming system 100 can include any number of client devices 120. Client devices 120 execute software associated with location-based games hosted by server 110, such as client game applications, to enable players to interact with the virtual world. Client devices 120 can also include hardware, software, or both for providing a user interface for chat rooms. Client devices 120 are configured to detect other client devices 120 when they are in close proximity to one another in the physical world (i.e., device proximity detection). In embodiments, client device 120 performs proximity detection using a personal area network (PAN) device and associated communication protocol (e.g., Bluetooth, ZigBee, infrared, ultra-wideband, near-field communication, Wi-Fi Direct, etc.). 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 a user of the detected client device or a device identifier associated with the detected client device). Client device 120 may provide the stored information corresponding to the detection to game server 110. Various embodiments of client device 120 are described in more detail below with reference to FIG. 2.

[0015] The distance range within which a 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 a 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 approximately 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 approximately 100 meters. In the same or a different embodiment, a client device 120 may perform proximity detection of other client devices 120 using other devices or technologies. As an example, a client device 120 may use geographic 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 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 distance range for proximity detection may be the range within which client device 120 can connect to a particular LAN, and may be affected by the associated software and hardware that provides that LAN (e.g., the type of wireless LAN router used).

[0016] Network 130 can be any type of communications network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or some combination thereof. The network can also include a direct connection between client device 120 and game server 110. In general, communication between game server 110 and client device 120 can be performed over a network interface using any type of wired and / or wireless connection, using a variety of communications protocols (e.g., TCP / IP, HTTP, S1v1TP, FTP), encodings or formats (e.g., HTML, JSON, XML), and / or protection schemes (e.g., VPN, secure HTTP, SSL).

[0017] FIG. 2 is a block diagram of one embodiment of client device 120A shown in FIG. 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. Because gaming 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. A 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 detection data store 240, and a local data store 250. In other embodiments, client device 120A includes additional or different components than those shown in FIG. 2.

[0018] The device proximity module 210 detects other client devices 120 in proximity to the client device 120A associated with the player (i.e., player device) of the location-based game as the player moves around with the client device 120A in the real world. 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 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. Additionally, 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 use one or more channels to continuously broadcast advertising data packets that include a universally unique identifier (UUID) corresponding to the Bluetooth LE device and a message including the player's identifier (e.g., player ID or username). The Bluetooth LE device may periodically or continuously listen to one or more channels used to broadcast advertising data packets, as described above.

[0019] In the same or a different embodiment, 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 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 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 the device proximity detection based on criteria corresponding to the time of the device proximity detection, the geographic 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 hour, day, week, etc.). For example, a location-based game may perform a game action based on the 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 whose client devices 120 are in the same physical location over a period of time or otherwise detect each other multiple times within a time interval. By verifying that a device proximity detection meets one or more criteria, the device proximity module 120 prevents redundant storage of proximity detections that do not result in additional game action 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 runs 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, such as to display 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 geographic locations of devices associated with other players, or upcoming community events (e.g., competitive tournaments). In the same or a different embodiment, the game module 220 transmits to the game server 110 information describing 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 retrieves game data from the game server 110 describing one or more game actions based on the information describing the 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.

[0022] In some embodiments, the game module 220 sends information describing device detections to the game server 210 based on the occurrence of a particular event. For example, if the game module 220 becomes disconnected from the game server 110 (e.g., 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 particular user interaction with the client device 120, such as a user launching or resuming 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 a different embodiment, 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 representation of the virtual world including 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 chat rooms in the virtual world and messages sent between users in the chat rooms. The user may 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 the detection occurred. In the same or a different embodiment, the user interface module 230 provides elements that allow a user of a client device 120 to decide what to do based on the proximity detection of another client device. For example, the user interface module 230 may provide a user interface that includes elements for adjusting proximity detection preferences (e.g., enabling or disabling device proximity detection), initiating the transmission of information describing device proximity detections stored in the device detection data store 240, reviewing device proximity detections stored in the device detection data store 240, or selecting from possible game actions based on proximity detection. In particular, the user interface module 230 may provide an interface that includes an element for initiating proximity detection, such as a “Find Other Players” element (e.g., a button).

[0025] Device detection data store 240 is one or more computer-readable media configured to store information describing device proximity detection by client device 120. The information stored by device detection data store 240 may be received from client device 120 or otherwise obtained or determined by game server 110. In embodiments, device detection data store 240 stores at least an identifier of a player associated with a device detected based on a device proximity detection. Device detection data store 240 may further store contextual information describing a device proximity detection, such as a timestamp indicating when the device proximity detection occurred or a geographic location (e.g., GPS coordinates) indicating where the device proximity detection occurred. In some embodiments in which game server 110 hosts multiple games, device detection data store 240 stores information describing one or more games (e.g., game names or identifiers) corresponding to a given device proximity detection. In yet another embodiment, device detection data store 240 stores security information to prevent inaccurate or fraudulent proximity detection, the time interval during which a 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] Local data store 250 is one or more computer-readable media configured to store data used by client device 120. For example, local data store 250 may store player position information tracked by positioning device 210, a local copy of the current state of a parallel reality game, or any other suitable data. Although local data store 250 is shown as a single entity, the data may be split across multiple media. Additionally, data may be stored elsewhere (e.g., in a distributed database) and accessed remotely via network 130.

[0027] 3 illustrates one embodiment of a game server 110 hosting 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 a manner different from that described.

[0028] The game server 110 can be configured to receive requests for game data from one or more client devices 120 (e.g., via remote procedure calls (RPCs)) and respond to those requests over the network 130. For example, the game server 110 can encode the game data into one or more data files and provide the data files to the client devices 120. Additionally, the game server 110 can be configured to receive game data (e.g., player positions, player actions, player input, etc.) from one or more client devices 120 over the network 130. For example, the client devices 120 can be configured to periodically send player input, player positions, and other updates to the game server 110, which the game server 110 uses to update the game data in the game database 330 to reflect changed game conditions. The game server 110 may also send game data to the client devices 120, such as the positions of other players, chat rooms, or virtual elements.

[0029] The universal game module 310 hosts the location-based game for the 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 position, player actions, player state, landmark information, etc.) from the client devices 120 and incorporates the received game data into an overall location-based game for all players of the location-based game. Along with the game data, the universal game module 310 stores an overall game state of the game that can be sent to the client devices 120 to update the local game state in the game module 220. The universal game module 310 can also manage the distribution of game data to the client devices 120 over the network 130.

[0030] The game action module 320 can be part of the universal game module 310 or can be 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 describing the proximity detection from the client device 120. 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 can provide game data to the client device 120 based on the performed game action, such as the client device 120 providing proximity detection information to the game action module 320, which results in a game action. For example, the game action module 320 performs game actions that process game data corresponding to a player of a location-based game (e.g., associated with the player's profile or account), such as any combination of game data described below with reference to the game database 330 (e.g., game data of types (1) through (9)). As an 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 the 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., the current time or game features). In the same or a different embodiment, the game action module 320 provides information describing one or more game actions to be performed to the client device 120, such as information describing processing to be performed on game data corresponding to the one or more game actions.The information describing one or more game actions that were performed may include, for example, a notification for display on client device 120, such as a notification indicating that a game action occurred or describing the game action.

[0031] In various embodiments, game action module 320 performs game actions that process game data for one or both players corresponding to the device proximity detection. In some embodiments, game action module 320 performs game actions for the player associated with client device 120 that provided information describing the proximity detection (i.e., the detecting device). For example, if client device 120A provided information describing device proximity detection for client device 120B, game action module 320 may perform game actions that affect game data for the player associated with client device 120A. Such game actions may include game action module 320 providing game items as rewards to the player, providing game experience to the player (e.g., leveling up a game character associated with the player), encouraging the player to send friend requests to other players, or other game actions specific to the player. In the same or a different embodiment, game action module 320 performs game actions that process game data for the player associated with the detected device (e.g., client device 120B in the previous example). Game action module 320 may perform game actions for the player associated with the detected device that are the same or different from those performed for the player associated with the detecting device. Additionally, in the same or different embodiments, game action module 320 performs game actions that process game data for both the player associated with the detecting device and the player associated with the detected device (e.g., in the example above, both client device 120A and client device 120B).Game actions performed 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 state, etc.) between players, providing game elements from one player to the other, initiating an in-game event (e.g., a battle) 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 of the 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 perform based on whether the game action module 320 receives information describing the device proximity detection from both client devices 120 involved in the 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 perform based on whether it also receives 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 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 an exchange of game items (i.e., a game item exchange) 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 acquire one or more game items associated with the first player to trade for 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 they wish to trade with another player. As an example, a player may select from a set of game items collected by playing a location-based game to be added to a group of game items available for trade with other players 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) capable of communicating with the game server 110. The game action module 320 can then execute a trade between the two players when one or both of the associated client devices 120 detects the other 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 execute the trade of game items or to communicate that a trade of game items has occurred.In one embodiment, the game action module 320 provides a notification for display to one or both of the client devices 120 involved in the trade of game items 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 trades of game items. In one embodiment, the game action module 320 determines or identifies values ​​associated with game items designated for trade by players corresponding to the device's proximity detection. The game item value may correspond to characteristics of the game item, the price of the game item in real or in-game currency, other indicators of the game item's value, or a combination thereof. The game action module 320 uses the game item values ​​to select and trade one or more game items for each player corresponding to the device's proximity detection. For example, the game action module 320 may exchange game items having the same value or values ​​that differ by within a trade threshold. Other examples of information the game action module 320 may consider when executing trades 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] Game database 330 includes one or more machine-readable media configured to store game data used in location-based games served or provided to client devices 120 over network 130. In an embodiment, the game data stored in game database 330 includes: (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 locations in the virtual world, etc.), (2) data associated with players 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 goals (e.g., data associated with current game goals, game goal states, past game goals, future game goals, desired game goals, etc.), and (4) data associated with virtual elements in the virtual world (e.g., location of virtual elements, type of virtual element, game goals associated with virtual elements, etc.). , real world location information corresponding to virtual elements, behavior of virtual elements, relevance of virtual elements, etc.); (5) data associated with real-world objects, landmarks, locations linked to virtual world elements (e.g., location of real-world objects / landmarks, descriptions of real-world objects / landmarks, relevance of virtual elements linked to real-world objects, etc.); (6) game state (e.g., current number of players, current state of game objectives, player leaderboard, etc.); (7) data associated with player actions / input (e.g., current player position, past player positions, player movement, player input, player queries, player communications, etc.); (8) data associated with the virtual experience (e.g., location of the virtual experience, player actions associated with the virtual experience, virtual events such as raids, 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 entered either offline or in real time by a system administrator or by data received from players, such as from one or more client devices 120 over the network 130.

[0036] The game database 330 may also store real-world data. The 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 a geographic area, 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 landforms and ecological conditions such as large bodies of water, mountains, and canyons, map data providing 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. The real-world data may be collected or obtained from any suitable source. For example, the game database 330 may 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 may be coupled to one or more external data sources or services that periodically provide population data, hazard data, weather data, event calendar data, and the like.

[0037] Other modules than those illustrated in Figure 3 may be used with the game server 110. Any number of modules may be programmed or otherwise configured to perform the server-side functions described herein. Additionally, various components on the server-side may be rearranged. Other configurations will be apparent in light of this disclosure, and this disclosure is not intended to be limited to any particular configuration.

[0038] [Device proximity detection method] 4 is a flow chart illustrating an embodiment of a method 400 for device proximity detection. In the illustrated embodiment, the steps of FIG. 4 are shown from the perspective of a client device 120 performing the method 400. However, some or all of the steps may be performed by other entities or components. Additionally, some embodiments may perform different steps, or perform some of the steps in a different order or in parallel.

[0039] In the embodiment shown in FIG. 4, method 400 begins with a first client device (e.g., client device 120A) scanning a PAN for other client devices (410). For example, the first client device may use a scanner in the PAN device to scan for information broadcast by the PAN devices of the other client devices 120 to perform device proximity detection. Based on the scan, the first client device receives an identifier from a second client device (e.g., client device 120B) via the PAN corresponding to an 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 (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 the identifier received from the second client device (430). 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 the online system corresponding to the application (440). For example, the first client device may provide the identifier to the game server 110 (e.g., using the game module 220). The first client device receives data about the application corresponding to actions performed by the online system based on the first client device's receipt of the identifier (450). For example, the first client device may receive game data corresponding to game actions performed by the game server 110.

[0041] 5 is a flow chart illustrating 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 a client device 120 performing method 500. However, some or all of the steps may be performed by other entities or components. Additionally, 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 with 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, the first player may designate one or more game items included in game data for the first player as available for trade. 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 an identifier of the second player based on proximity detection of the second client device. For example, the first client device may perform proximity detection of the second client device using device proximity module 210. The first client device stores (530) an 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 the identifier to an online system hosting the location-based game (540). For example, the first client device may provide the identifier to the game server 110 (e.g., using the game module 220). In response, the first client device receives game data from the online system indicating the exchange of the first game item for the second game item (550). For example, the first client device may receive a push notification from the game server 110 indicating that the 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 diagrammatic representation of a machine in the exemplary form of a computer system 600. Computer system 600 is associated with a component (or module) of game server 110 or client device 120 and can be used to execute instructions 624 (e.g., program code or software) that cause the machine to perform any one or more of the methods (or processes) described herein, including those described.

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

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

[0047] Computer system 600 may also include static memory 606, a display driver 610 (e.g., for driving a plasma display panel (PDP), a liquid crystal display (LCD), or a projector), 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 generating device 618 (e.g., a speaker), and a network interface device 620, which are also configured to communicate over bus 608.

[0048] The storage unit 616 includes a machine-readable medium 622 that may store instructions 624 (e.g., software) for performing any of the methods or functions described herein. The instructions 624 may also reside, completely or partially, within the main memory 604 or within the processor 602 (e.g., within a processor's cache memory) during execution by the computer system 600. The main memory 604 and the processor 602 also constitute machine-readable media. The instructions 624 may be transmitted or received over the network 130 via the network interface device 620.

[0049] While machine-readable medium 622 is shown in the exemplary embodiment to be a single medium, 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, causing the 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 memory, optical media, and magnetic media.

[0050] While the present subject matter has been described in detail with reference to certain exemplary embodiments and methods thereof, it will be appreciated that those skilled in the art, upon understanding the foregoing, can readily make alterations, variations, and equivalents of such embodiments. Accordingly, the scope of the present disclosure is by way of example rather than limitation, and the present disclosure does not exclude the inclusion of such modifications, variations, or additions to the present subject matter as would be readily apparent to those skilled in the art.

[0051] [Other considerations] Some portions of the above description describe embodiments in terms of algorithmic processes or operations. These algorithmic descriptions and representations are commonly used by those skilled in the computing arts to effectively convey the substance of their work to others skilled in the art. While these operations are described functionally, computationally, or logically, it will be understood that they are implemented by computer programs including instructions for execution by a processor or equivalent electrical circuitry, microcode, or the like. Further, it has proven convenient at times to refer to these arrangements 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 do not necessarily all refer to the same embodiment. Similarly, the use of "a" or "an" preceding an element or component is done merely for convenience. This description should be understood to mean that one or more of the element or component are present, unless it is clear that a different meaning is intended.

[0053] When values ​​are stated as "approximately" or "substantially" (or derivatives thereof), such values ​​should be interpreted as being exact + / - 10% unless another meaning is clear from the context. For example, "about 10" should be understood to mean "within the range of 9 to 11."

[0054] As used herein, the terms "comprises," "comprising," "includes," "including," "has," and "having," or any other variation thereof, are intended to cover a 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 inherent in such process, method, article, or apparatus. Furthermore, unless expressly stated to the contrary, "or" means an inclusive "or," not an exclusive "or." For example, condition A or B can be satisfied by any one of A being true (or present) and B being false (or absent), A being false (or absent) and B being true (or present), and both A and B being true (or present).

[0055] Upon reading this disclosure, those skilled in the art will recognize further alternative structural and functional designs that could 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 precise structure and components disclosed. The scope of protection is to be limited only by the following claims.

Claims

1. A computer-implemented method for exchanging game items in a location-based game that utilizes the real-world geographic location of a client device, comprising: identifying a first game item associated with a first player of the location-based game as available for trade; detecting, by a first client device associated with the first player, a second client device within proximity of the first client device, the second client device being associated with a second player of the location-based game; storing, by the first client device in response to detecting the second client device, proximity detection information describing proximity detection of the second player, the proximity detection information including an identifier of the second player; providing the proximity detection information to a game server hosting the location-based game; receiving game data from the game server indicating an exchange of the first game item for a second game item; A method comprising:

2. The method of claim 1 , further comprising, in response to receiving the game data, displaying a notice on a screen of the first client device describing the exchange.

3. The method of claim 1 , wherein detecting the second client device includes receiving the identifier of the second player over a local network.

4. The method of claim 1 , wherein detecting the second client device comprises receiving the identifier of the second player over a personal area network.

5. Identifying the first game item as being available for trade includes: receiving, by 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; providing the selection of the one or more game items to the game server for inclusion in a list of items associated with the first player that are available for trade with other players; The method of claim 1 , comprising:

6. providing the proximity detection information to the game server when the second client device is detected by the first client device while the first client device is disconnected from the game server; Detecting that the first client device has reconnected to the game server over a network; transmitting, by the first client device to the game server via the network, the proximity detection information of the detected second client device while the first client device was disconnected from the game server; The method of claim 1 , comprising:

7. Storing the proximity detection information includes: comparing the identifier of the second player with one or more previously stored player identifiers, the one or more previously stored player identifiers being associated with corresponding timestamps indicating when the one or more player identifiers were stored on the first client device; storing the player identifier with a current timestamp in response to determining based on the timestamp that the identifier of the second player has not been previously stored at the client device within a time interval; The method of claim 6, comprising:

8. 10. The method of claim 1, wherein the location-based game is a parallel reality game in which geographic areas in the real world are mapped to corresponding areas in a virtual world, and the location information is associated with the areas in the virtual world.

Citation Information

Patent Citations

  • 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

  • Wi-Fi BASED GEO-LOCATION CONNECTIVITY

    US20130005386A1