JP7458485B2 - Sharded storage for geolocation data with predictable query response times - Google Patents
Sharded storage for geolocation data with predictable query response times Download PDFInfo
- Publication number
- JP7458485B2 JP7458485B2 JP2022538067A JP2022538067A JP7458485B2 JP 7458485 B2 JP7458485 B2 JP 7458485B2 JP 2022538067 A JP2022538067 A JP 2022538067A JP 2022538067 A JP2022538067 A JP 2022538067A JP 7458485 B2 JP7458485 B2 JP 7458485B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- shard
- game
- shards
- geographic region
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000004044 response Effects 0.000 title claims description 47
- 238000000034 method Methods 0.000 claims description 44
- 238000013507 mapping Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims 2
- 230000000694 effects Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 238000013480 data collection Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/216—Input arrangements for video game devices characterised by their sensors, purposes or types using geographical information, e.g. location of the game device or player using GPS
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/213—Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/65—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/90—Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
- A63F13/92—Video game devices specially adapted to be hand-held while playing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24545—Selectivity estimation or determination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Radar, Positioning & Navigation (AREA)
- Environmental & Geological Engineering (AREA)
- Remote Sensing (AREA)
- Operations Research (AREA)
- Computing Systems (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Description
本開示は、一般に、データストレージに関し、特に、予測可能なクエリ応答時間を有する任意の数のジオロケーションアイテム(geolocated item)のシャードストレージに関する。 This disclosure relates generally to data storage, and more particularly to sharded storage of any number of geolocated items with predictable query response times.
現実世界の少なくとも一部とパラレルである共有仮想世界を提供するパラレルリアリティゲームは、プレイヤーのコミュニティを魅了することが可能であるいろいろなインタラクションをホストすることがある。現実世界の少なくとも一部とパラレルである地形を有する仮想世界を提供することは、プレイヤーに、現実世界を進むことによって仮想世界を進むことを可能にする。仮想環境における仮想要素を、現実世界における物体、ロケーション、および活動とリンクさせることは、プレイヤーがふつうは無視するだろう現実世界における特徴に移動するように、および気づくようにプレイヤーに勧めることが可能である。現実世界において対をなす現実世界における物体またはロケーションと同一の仮想世界のロケーションにおいて仮想要素を提供することは、仮想要素が現実世界における隠れた一部であるという印象を増大させるだろう。 Parallel reality games that provide a shared virtual world that is parallel to at least a portion of the real world may host a variety of interactions that can engage a community of players. Providing a virtual world with terrain that is parallel to at least a portion of the real world allows a player to navigate the virtual world by navigating the real world. Linking virtual elements in a virtual environment with objects, locations, and activities in the real world can encourage players to move toward and notice features in the real world that they would normally ignore. It is. Providing a virtual element in the same virtual world location as its real world counterpart will increase the impression that the virtual element is a hidden part of the real world.
パラレルリアリティゲームをプレイするとき、プレイヤーのクライアントデバイスは、通常、プレイヤーの近くの仮想要素に対応するデータを受信する。仮想要素の密度が大きくなり、利用可能な情報の豊かさが増大すると、ゲームデータベースにおけるデータ量は増大する。従来のデータベースストレージを用いると、今述べたことは、クエリ応答時間における増加に帰着する。しかしながら、パラレルリアリティゲームが、プレイヤーと仮想世界との間のリアルタイムインタラクションに向けられることがあると、許容し得る応答時間に上限がある。それゆえ、地理的なリージョンに対して格納されるデータが増大すると、予測可能なクエリ応答時間を提供する効率的なストレージアプローチに対する要求がある。 When playing a parallel reality game, a player's client device typically receives data corresponding to virtual elements in the player's vicinity. As the density of virtual elements increases and the richness of available information increases, the amount of data in the game database grows. With traditional database storage, what has just been stated results in an increase in query response times. However, as parallel reality games may be oriented towards real-time interaction between the player and the virtual world, there is an upper limit to acceptable response times. Therefore, as the data stored for a geographic region grows, there is a demand for efficient storage approaches that provide predictable query response times.
上記および他の問題は、任意の数のアイテムに、シャードデータベース(sharded database)にわたって、予測可能なクエリ応答時間を提供する地理的なリージョンにおいてインデックスをつけられることができるようにする(例えば、地理的なインデックスをつけるフレームワーク、たとえばS2ライブラリなどを用いて)ためのシステムおよび方法によって取り組まれることがある。種々の態様において、地理的なリージョンにインデックスをつけられたアイテムは、単一のシャードに格納され、追加のアイテムは、望ましくないクエリ応答時間を示すオーバーフロー条件が満たされない限り(例えば、クエリ応答時間が、望ましいしきい値未満のままである)、そのシャードに追加される。オーバーフロー条件が満たされるならば、システムは、予測可能なクエリ応答時間を維持するために、地理的なリージョンにインデックスをつけられたアイテムのストレージを1つまたは複数のシャードに拡張する。システムは、1つまたは複数の関連シャードに(例えば、並列に)問い合わせるのに用いられることが可能である、地理的なリージョンに対応するアイテムを格納するのに用いられているシャードの総数を表すシャードカウントを維持することがある。システムは、シャードデータベースのデータベースノードにわたって、シャードを均等に分散させるために、決定論的なハッシングを適用することがある(たとえば仮想または物理データベースサーバーなど)。データベースのクライアントは、地理的なリージョンに対するアイテムが格納されるあらゆるデータベースノードのリストを格納することよりもむしろ、地理的なリージョンに対応する各シャードがシャードカウントに基づいて格納されるデータベースノードを決定することがある。今述べたことは、例えば、単一のシャードまたは複数のシャードを並行して問い合わせるとき、予測可能な応答時間を提供している間、広い地形上領域に対して多くのアイテムの格納を可能にする。 These and other issues allow any number of items to be indexed across a sharded database and in a geographic region that provides predictable query response times (e.g. systems and methods for indexing (using a standard indexing framework, such as the S2 library). In various aspects, items indexed by a geographic region are stored in a single shard, and additional items are not added unless an overflow condition is met that indicates an undesirable query response time (e.g., if the query response time remains below the desired threshold), it is added to that shard. If the overflow condition is met, the system expands the storage of indexed items into the geographic region to one or more shards in order to maintain predictable query response times. The system represents the total number of shards used to store items corresponding to a geographic region, which can be used to query one or more related shards (e.g., in parallel). May maintain shard count. The system may apply deterministic hashing to evenly distribute shards across database nodes of a sharded database (e.g., virtual or physical database servers) . Rather than storing a list of every database node on which items are stored for a geographic region, a database client determines which database node each shard corresponding to a geographic region is stored on based on the shard count. There are things to do. What we have just described allows the storage of many items over large terrain areas while providing predictable response times when interrogating a single shard or multiple shards in parallel, for example. do.
一態様では、システムは、ジオロケーションを示す要求を受信する。ジオロケーションに基づいて、システムは、地理的なリージョンを識別する。地理的なリージョンに基づいて、システムは、データベースの複数のデータベースシャード(database shard)のうちのデータベースシャードを識別し、複数のデータベースシャードが、地理的なリージョンに対応する。システムは、地理的なリージョンに対応するジオロケーションデータ(geolocated data)に対して、識別されたデータベースシャードに問い合わせ、データベースシャードのクエリが、予測可能な応答時間を有する。問い合わされたジオロケーションデータに基づいて、システムは、クエリ結果を処理する。システムは、要求に応答して、クエリ結果を戻す。 In one aspect, a system receives a request indicating a geolocation. Based on geolocation, the system identifies geographic regions. Based on the geographic region, the system identifies a database shard among multiple database shards of the database, where the multiple database shards correspond to the geographic region. The system queries the identified database shards for geolocated data corresponding to the geographic region, and queries of the database shards have predictable response times. Based on the queried geolocation data, the system processes the query results. The system returns query results in response to the request.
ゲームサーバーは、実世界の地形の少なくとも一部にパラレルである地形を有する仮想世界を含むプレイヤーゲーミング領域を有するパラレルリアリティゲームをホストすることが可能である。プレイヤーは、現実世界において地理座標の範囲を進むことによって、仮想世界において仮想空間を定義する座標の範囲を進むことが可能である。特に、プレイヤーの位置は、例として、モバイルコンピューティングデバイスであり得る、プレイヤーのクライアントデバイスに関連付けられた測位システム(例えば、GPSシステム)を用いて、監視されるまたはトラッキングされることが可能である。プレイヤーの位置情報は、ネットワークを介してパラレルリアリティゲームをホストするゲームサーバーに提供されることが可能であり、ゲームによって用いられて、仮想世界におけるプレイヤーのロケーションを更新することが可能である。結果として、プレイヤーが、クライアントデバイスを有して、現実世界における座標の範囲においてあちこちと連続して移動する時に、ゲームサーバーは、プレイヤーがパラレルな仮想世界の座標の範囲においてあちこちと連続して移動するように、更新することがある。 The game server can host a parallel reality game that has a player gaming area that includes a virtual world that has terrain that is parallel to at least a portion of the real world terrain. By traveling through a range of geographic coordinates in the real world, a player can travel through a range of coordinates that define virtual space in the virtual world. In particular, the player's location may be monitored or tracked using a positioning system (e.g., a GPS system) associated with the player's client device, which may be, by way of example, a mobile computing device. . The player's location information can be provided over the network to the game server hosting the parallel reality game and can be used by the game to update the player's location in the virtual world. As a result, when a player, with a client device, moves sequentially back and forth in a range of coordinates in the real world, the game server allows the player to move sequentially back and forth in a range of coordinates in a parallel virtual world. It may be updated as required.
仮想世界は、実世界のポイントオブインタレストとリンクされる1つまたは複数の仮想要素を含むことが可能である。例として、仮想世界は、たとえば、現実世界における、ランドマーク、博物館、美術品、図書館、または関心のある他の領域など、ポイントオブインタレストに関連付けられた種々の仮想要素を含むことが可能である。実世界のポイントオブインタレストとリンクされる仮想要素は、仮想世界が、プレイヤーがパラレルリアリティゲームをプレイすることによってインタラクションすることが可能である、現実世界の隠れた次元であるという錯覚を与えることが可能である。例として、プレイヤーが現実世界における地理座標を進む時に、プレイヤーは、パラレルな仮想世界に提供される仮想要素を発見し、インタラクションすることが可能である。種々のゲームの目的は、パラレルリアリティゲームの一部として、プレイヤーに、今述べた仮想要素とのインタラクションするように勧めることが可能である。いくつかの態様では、ゲームサーバーは、実世界のポイントオブインタレストの周りにパラレルリアリティゲームにおける仮想イベントを統制することがある。 A virtual world may include one or more virtual elements that are linked to points of interest in the real world. By way of example, a virtual world may include various virtual elements associated with points of interest, such as, for example, landmarks, museums, artifacts, libraries, or other areas of interest in the real world. . Virtual elements that are linked to points of interest in the real world can give the illusion that the virtual world is a hidden dimension of the real world that players can interact with by playing parallel reality games. It is possible. As an example, as a player navigates through geographic coordinates in the real world, the player can discover and interact with virtual elements provided in a parallel virtual world. Various game objectives may invite players to interact with the virtual elements just described as part of a parallel reality game. In some aspects, a game server may orchestrate virtual events in a parallel reality game around real-world points of interest.
仮想世界は、現実世界の連続した地理的なリージョンに対応する部分(例えば、セル)に区分されることがある。種々の態様において、仮想世界の部分は、地理的なインデックスをつけるフレームワークに従って、定義される。例として、仮想世界の一部は、地球、3次元物体を、粒度の異なるレベルにて2次元セルのセットに区分するセルの階層を定義するS2ライブラリに従って定義されることがある。他の場合では、異なる、地理的なインデックスをつけるフレームワークが、用いられることがある。仮想世界の部分は、たとえば、上に説明された仮想要素に関連付けられた情報など、ストレージに対して、対応する地理的なリージョンに関連付けられた種々のジオロケーションデータにインデックスをつけるのに用いられることが可能である。時間をかけて、新しい仮想要素が、仮想世界に追加されることがあり、仮想要素に関連付けられたデータ量が、増加することがある。例えば、仮想要素は、現実世界におけるポイントオブインタレストに対応することがあり、新しい仮想要素は、システムが新しいポイントオブインタレストを学習する時に(例えば、ポイントオブインタレストの所有者または管理者による提出のために、クラウドソーシングを通じて、またはどんな他適切な技法でも用いてなど)、加えられることがある。同様に、仮想要素に関連付けられた新しい情報(例えば、新しい写真、ビデオ、歴史の情報など)が取得される時、仮想要素に結合して格納されることがある。ゆえに、仮想世界の一部に対応するデータ量は、時間をかけて増えることがある。 The virtual world may be partitioned into portions (eg, cells) that correspond to contiguous geographic regions of the real world. In various aspects, portions of the virtual world are defined according to a geographic indexing framework. As an example, a portion of the virtual world may be defined according to the S2 library, which defines a hierarchy of cells that partitions the earth, a three-dimensional object, into a set of two-dimensional cells at different levels of granularity. In other cases, different geographic indexing frameworks may be used. The virtual world portion is used to index various geolocation data associated with the corresponding geographic region for storage, such as, for example, information associated with the virtual elements described above. Is possible. Over time, new virtual elements may be added to the virtual world, and the amount of data associated with the virtual elements may increase. For example, a virtual element may correspond to a point of interest in the real world, and a new virtual element may be created when the system learns a new point of interest (e.g., due to a submission by the point of interest's owner or administrator). (such as through crowdsourcing or using any other suitable technique). Similarly, when new information associated with a virtual element (eg, new photos, videos, historical information, etc.) is obtained, it may be stored in conjunction with the virtual element. Therefore, the amount of data corresponding to a portion of the virtual world may increase over time.
従来のアプローチを用いて、データ量が増える時に、さらに、そのデータを識別するためのクエリ応答時間も増大する。しかしながら、パラレルリアリティゲームの首尾一貫したパフォーマンスを提供するために、仮想世界の与えられた部分に対して格納されるデータ量に関係なく、予測可能なクエリ応答時間を提供することが望ましい。以下により詳細に説明されるように、種々の態様は、望ましくないクエリ応答時間を示すオーバーフロー条件に従って、与えられたシャードに格納されるデータ量を制限することによって、予測可能なクエリ応答時間を提供する。各部分に対するシャードカウント値は、格納されることがあり、仮想世界の与えられた部分に対するデータを含む単数のシャードまたは複数のシャードを識別するのに用いられることが可能である。決定論的なハッシングのアプローチが用いられて、仮想世界の与えられた部分に対するデータを含む単数のシャードまたは複数のシャードを識別し、シャードは、関連データに対して(例えば、並列に)問い合わせられる。ゆえに、クエリ応答時間は、仮想世界の与えられた部分に対して格納されたデータ量にかかわらず、いずれか1つのシャードのデータ量がしきい値を越えないので、予測可能である。 Using traditional approaches, as the amount of data increases, the query response time to identify that data also increases. However, to provide consistent performance of parallel reality games, it is desirable to provide predictable query response times regardless of the amount of data stored for a given portion of the virtual world. As described in more detail below, various aspects provide predictable query response times by limiting the amount of data stored on a given shard, subject to overflow conditions that indicate undesirable query response times. do. A shard count value for each portion may be stored and used to identify the shard or shards that contain data for a given portion of the virtual world. A deterministic hashing approach is used to identify a shard or shards containing data for a given portion of the virtual world, and the shards are queried (e.g., in parallel) for related data. . Therefore, the query response time is predictable because the amount of data in any one shard does not exceed the threshold, regardless of the amount of data stored for a given part of the virtual world.
説明される態様が、パラレルリアリティゲームに対して、ジオロケーションデータをアクセスすることに関係するが、当業者であれば、同一のまたは同様の技法が、他の目的に対して、ジオロケーションデータにより用いられることがあることを認識するだろう。例えば、地元の名所、レストラン、美術館、他のランドマークについてのジオロケーション情報(geolocated information)を有する旅行者ガイドアプリケーションは、予測可能なクエリ応答時間を提供する同様のやり方においてシャーディングされることがある。 Although the described aspects relate to accessing geolocated data for parallel reality games, one skilled in the art will recognize that the same or similar techniques may be used with geolocated data for other purposes. For example, a travel guide application with geolocated information about local attractions, restaurants, museums, and other landmarks may be sharded in a similar manner to provide predictable query response times.
例示的なロケーションベースのパラレルリアリティゲーミングシステム
パラレルリアリティゲームは、実世界におけるプレイヤーの移動およそ活動が仮想世界における活動に影響を与え、また与えられるような、実世界の地理の少なくとも一部にパラレルである仮想世界の地理を有するロケーションベースゲームである。当業者であれば、本明細書に提供される開示を用いて、説明される主題が、ユーザーのロケーションを照合することが望ましい他の状況において適用可能であることを理解するだろう。さらに、コンピュータベースシステムに固有の柔軟性が、システムの2つのコンポーネント間および3つ以上のコンポーネント間のタスクおよび機能性のバラエティに富む可能な構成、組み合わせ、および分割を考慮することを認めるだろう。例として、本開示の様相に従うシステムおよび方法は、単一のコンピューティングデバイスを用いて、または複数のコンピューティングデバイスにわたって(例えば、コンピューターネットワークに接続されて)実装されることが可能である。
Exemplary Location-Based Parallel Reality Gaming System A parallel reality game is a location-based game having a virtual world geography that is parallel to at least a portion of the real world geography, such that player movement and activity in the real world affects and is affected by activity in the virtual world. With the disclosure provided herein, one of ordinary skill in the art will appreciate that the subject matter described is applicable in other situations in which it is desirable to match a user's location. Moreover, one will appreciate that the flexibility inherent in computer-based systems allows for a variety of possible configurations, combinations, and divisions of tasks and functionality between two and three or more components of the system. By way of example, systems and methods according to aspects of the present disclosure can be implemented using a single computing device or across multiple computing devices (e.g., connected to a computer network).
図1は、プレイヤーの実世界のロケーションが、パラレルリアリティゲーム内の活動に基づいて、照合されることがあるネットワークコンピューティング環境100の一態様を示す図である。ネットワークコンピューティング環境100は、現実世界とパラレルである地理を有する仮想世界におけるプレイヤーのインタラクションに対して提供する。特に、現実世界における地理的な領域は、仮想世界において対応する領域に直接的にリンクされるまたはマッピングされることが可能である。プレイヤーは、現実世界における種々の地理的なロケーションに対して移動することによって、仮想世界において、あちこちと移動することが可能である。例として、現実世界におけるプレイヤーの位置は、トラッキングされ、仮想世界におけるプレイヤーの位置を更新するのに用いられることが可能である。通常、現実世界におけるプレイヤーの位置は、プレイヤーが仮想世界とインタラクションしているクライアントデバイス120のロケーションを見つけ、同一の(またはほぼ同一の)ロケーションにプレイヤーがいると仮定することによって、決定される。例えば、種々の態様において、プレイヤーは、現実世界におけるプレイヤーのロケーションが、仮想世界における仮想要素の仮想ロケーションに対応する実世界のロケーションのしきい値距離(例えば、10メートル、20メートルなど)以内にあるならば、仮想要素とインタラクションすることがある。便利なように、種々の態様は、「プレイヤーのロケーション」に関して説明されるが、当業者であれば、上記の参照が、プレイヤーのクライアントデバイス120のロケーションを引用することがあることを理解するだろう。
FIG. 1 is a diagram illustrating one aspect of a
さて、参照は、一態様に係るパラレルリアリティゲームのプレイヤーに対してゲームボードとして作動することが可能である、現実世界200とパラレルである仮想世界210の概念図を描く図2になされる。例示されている仮想世界210は、現実世界200の地形とパラレルである地形を含むことが可能である。特に、現実世界200における地理的な領域または空間を定義する座標の範囲は、仮想世界210における仮想空間を定義する座標の対応する範囲にマッピングされる。現実世界200における座標の範囲は、町、街区、都市、キャンパス、現場、国、大陸、地球全体、または他の地理的な領域と関連付けられることが可能である。地理座標の範囲の中の各地理座標は、仮想世界の中の仮想空間における対応する座標にマッピングされる。
Reference is now made to FIG. 2, which depicts a conceptual diagram of a
仮想世界210におけるプレイヤーの位置は、現実世界200におけるプレイヤーの位置に対応する。例として、現実世界200において位置212に位置されるプレイヤーAは、仮想世界210において対応する位置222を有する。同様に、現実世界において位置214に位置されるプレイヤーBは、仮想世界において対応する位置224を有する。プレイヤーが現実世界における地理座標の範囲においてあちこちと動く時、さらに、プレイヤーは、仮想世界210における仮想空間を定義する座標の範囲においてあちこちと動く。特に、プレイヤーが持って行くモバイルコンピューティングデバイスに関連付けられた測位システム(例えば、GPSシステム)が用いられて、プレイヤーが現実世界における地理座標の範囲を進む時、プレイヤーの位置をトラッキングすることが可能である。現実世界200におけるプレイヤーの位置に関連付けられたデータは、仮想世界210における仮想空間を定義する座標の対応する範囲においてプレイヤーの位置を更新するのに用いられる。このようにして、プレイヤーは、現実世界200における特定の離散的なロケーションにチェックインすることなく、または現実世界200における特定の離散的なロケーションにてロケーション情報を周期的に更新することなく、現実世界200における地理座標の対応する範囲の間を単に移動することによって、仮想世界210における仮想空間を定義する座標の範囲において連続的なトラッキングを操縦することが可能である。
The player's position in the
ロケーションベースゲームは、仮想世界において種々の仮想ロケーションに散在する種々の仮想要素および/または仮想物体に移動することをおよび/またはこれらとインタラクションすることを、プレイヤーに要求する複数のゲームの目的を含むことが可能である。プレイヤーは、今述べた仮想的なロケーションに、現実世界において仮想要素または仮想物体の対応するロケーションに移動することによって、移動することが可能である。例として、測位システムは、プレイヤーが連続して現実世界を進む時、さらにプレイヤーが連続してパラレルな仮想世界も進むように、プレイヤーの位置を連続してトラッキングすることが可能である。次に、プレイヤーは、特定のロケーションにて種々の仮想要素および/または仮想物体とインタラクションして、1つまたは複数のゲームの目的を達成する、または成し遂げることが可能である。 A location-based game includes multiple game objectives that require the player to move to and/or interact with various virtual elements and/or virtual objects dispersed in various virtual locations in a virtual world. Is possible. The player can move to the virtual location just mentioned by moving to the corresponding location of the virtual element or virtual object in the real world. As an example, the positioning system may continuously track the player's position as the player sequentially moves through the real world, and also as the player sequentially moves through a parallel virtual world. The player can then interact with various virtual elements and/or virtual objects at a particular location to accomplish or complete one or more game objectives.
例えば、ゲームの目的は、プレイヤーに、仮想世界210における種々の仮想ロケーションにて仮想要素230を捕らえる、または所有権を主張することを要求することが可能である。今述べた仮想要素230は、現実世界200におけるランドマーク、地理的なロケーション、または物体240にリンクさせることが可能である。実世界のランドマークまたは物体240は、芸術作品、モニュメント、建物、企業、図書館、博物館、または他の適切な実世界のランドマークもしくは物体であることが可能である。今述べた仮想要素230を捕らえるために、プレイヤーは、現実世界において、仮想要素230にリンクされたランドマークまたは地理的なロケーション240に移動しなければならず、仮想世界210において、仮想要素230との必要などんなインタラクションでも行わなければならない。例えば、図2のプレイヤーAは、特定のランドマーク240にリンクされた仮想要素230とインタラクションするために、またはそれらを捕らえるために、現実世界200において、ランドマーク240に移動しなければならないことがある。仮想要素230とのインタラクションは、たとえば、仮想要素230に関連付けられたランドマークまたは物体240について、写真を撮る、および/または他の情報を照合する、取得する、または捕らえるなど、実世界における活動を必要とすることが可能である。いくつかの態様では、仮想要素230とのインタラクションは、現実世界200におけるプレイヤーのロケーションが、仮想世界210におけるプレイヤーのロケーションとマッチすることの照合をさらに促すことがある。
For example, a game objective may require a player to capture or claim ownership of
ゲームの目的は、プレイヤーが、ロケーションベースゲームにてプレイヤーによって収集された1つまたは複数の仮想アイテムを用いることを要求することがある。例として、プレイヤーは、ゲームの目的を完了するために有用であることが可能である仮想アイテム(例えば、武器、クリーチャー、パワーアップ、または他のアイテム)を捜し求めて、仮想世界210を移動することがある。今述べた仮想アイテムは、現実世界200において異なるロケーションに移動すること、または仮想世界210か現実世界200かのいずれかにおいて種々の活動を完了することによって、見つけられるまたは収集されることが可能である。図2に示される例では、プレイヤーは、仮想アイテム232を用いて、1つまたは複数の仮想要素230を捕らえる。特に、プレイヤーは、仮想要素230に最も近いまたは仮想要素230内の仮想世界210におけるロケーションに仮想アイテム232を配置させることが可能である。このようにして、1つまたは複数の仮想アイテム232を配置させることは、特定のプレイヤーに対して、または特定のプレイヤーのチーム/ファクションに対して、仮想要素230の捕獲に帰着することが可能である。
The objective of the game may require the player to use one or more virtual items collected by the player in the location-based game. As an example, the player may travel through the
1つの特定の実装では、プレイヤーは、パラレルリアリティゲームの一部として、仮想エネルギーを蓄えなければならないことがある。図2に描かれている仮想エネルギー250は、仮想世界210において、異なるロケーションに散在させることが可能である。プレイヤーは、現実の世界200において、仮想エネルギー250の対応するロケーションに移動することによって、仮想エネルギー250を収集することが可能である。仮想エネルギー250は、仮想アイテムにパワーを供給するのに、および/またはゲームにおける種々のゲームの目的を成し遂げるのに、用いられることが可能である。すべての仮想エネルギー250を失ったプレイヤーは、ゲームから切断されることが可能である。
In one particular implementation, a player may be required to store virtual energy as part of a parallel reality game. The
本開示の様相によれば、パラレルリアリティゲームは、ゲームにおけるあらゆる参加者が同一の仮想世界を共有する大規模マルチプレイヤーロケーションベースゲームであることが可能である。プレイヤーは、別個のチームまたはファクションに区分されることが可能であり、たとえば、仮想要素を捕らえる、または仮想要素の所有権を主張するなど、1つまたは複数のゲームの目的を達成するためにいっしょに働くことが可能である。このようにして、パラレルリアリティゲームは、本質的に、ゲーム内のプレイヤー間の協力を勧めるソーシャルゲームであることが可能である。プレイヤーは、対抗するチームから、パラレルリアリティゲームの間、お互いに抵抗して働く(または、時々、共同して互いの目的を達成する)ことが可能である。プレイヤーは、仮想アイテムを用いて、対抗するチームのプレイヤーを攻撃する、または対抗するチームのプレイヤーの進行を妨げることがある。時には、プレイヤーは、パラレルリアリティゲームにおいて、協同のまたは双方向のイベントに対して、実世界のロケーションにて集まるように勧められる。今述べた場合、ゲームサーバーは、プレイヤーが本当に物理的に存在し、なりすましをしていないことを確実にしようとする。 According to aspects of the present disclosure, a parallel reality game can be a massively multiplayer location-based game in which all participants in the game share the same virtual world. Players can be partitioned into separate teams or factions and can work together to achieve one or more game objectives, such as capturing or claiming ownership of virtual elements. In this way, a parallel reality game can be essentially a social game that encourages cooperation between players in the game. Players can be from opposing teams and work against each other (or sometimes work together to achieve each other's objectives) during the parallel reality game. Players can use virtual items to attack or impede the progress of players on opposing teams. At times, players are encouraged to meet in real-world locations for cooperative or interactive events in the parallel reality game. In this case, the game server tries to ensure that players are truly physically present and are not impersonating others.
パラレルリアリティゲームは、パラレルリアリティゲーム内のゲームプレイを強化し、勧める種々の特徴を有することが可能である。例として、プレイヤーは、ゲームじゅうくまなく用いられることが可能である(例えば、インゲームアイテム(in-game item)を購入する)仮想通貨または他の仮想報酬を蓄積することが可能である。プレイヤーは、ゲーム内の1つまたは複数のゲームの目的を完了し、ゲーム内の経験を得る時、種々のレベルを通して前進することが可能である。いくつかの態様では、プレイヤーは、ゲームの中に提供される1つまたは複数の通信インターフェースを介して、お互い通信することが可能である。さらに、プレイヤーは、ゲーム内のゲームの目的を完了するのに用いられることが可能である強化された「パワー」またはバーチャルアイテムを取得することも可能である。当業者は、本明細書に提供される開示を用いて、種々の他のゲーム特徴が、本開示の範囲から逸脱することなく、パラレルリアリティゲームを有して含まれることが可能であることを理解すべきである。 Parallel reality games can have a variety of features that enhance and encourage gameplay within the parallel reality game. By way of example, players can accumulate virtual currency or other virtual rewards (e.g., to purchase in-game items) that can be used throughout the game. Players can progress through various levels as they complete one or more game objectives within the game and gain in-game experience. In some aspects, players can communicate with one another via one or more communication interfaces provided within the game. Additionally, players can obtain enhanced "powers" or virtual items that can be used to complete game objectives within the game. Using the disclosure provided herein, one of ordinary skill in the art should understand that various other game features can be included with a parallel reality game without departing from the scope of the present disclosure.
図3は、プレイヤーと仮想世界210との間のインターフェースの一部としてクライアント120のディスプレイに与えられることが可能であるゲームインターフェース300の一態様を描く。ゲームインターフェース300は、仮想世界210と、たとえば、仮想世界210における、プレイヤーの位置222、ならびに仮想要素230、仮想アイテム232、および仮想エネルギー250のロケーションなど、ゲームの種々の他の様相とを表示するのに用いられることが可能である表示ウィンドウ310を含む。さらに、ユーザーインターフェース300は、他の情報を、たとえば、ゲームデータ情報、ゲーム通信、プレイヤー情報、クライアントロケーション照合命令、およびゲームに関連付けられた他の情報などを、表示することも可能である。例えば、ユーザーインターフェースは、たとえば、プレイヤー名、経験レベル および他の情報など、プレイヤー情報315を表示することが可能である。ユーザーインターフェース300は、種々のゲーム設定、およびゲームに関連付けられた他の情報にアクセスするためのメニュー320を含むことが可能である。ユーザーインターフェース300は、ゲームシステムとプレイヤーとの間の、およびパラレルリアリティゲームの1人または複数のプレイヤーとの間の通信を可能にする通信インターフェース330も含むことが可能である。
3 illustrates one embodiment of a
本開示の様相によれば、プレイヤーは、現実世界において、あちこちとクライアントデバイス120を単に持って行くことによって、パラレルリアリティゲームとインタラクションすることが可能である。例として、プレイヤーは、単に、スマートフォンのパラレルリアリティゲームに関連付けられたアプリケーションにアクセスし、スマートフォンを持って現実世界においてあちこちと動くことによって、ゲームをプレイすることが可能である。この点については、プレイヤーは、ロケーションベースゲームをプレイするために、ディスプレイ画面の仮想世界の視覚表現を連続して見る必要はない。結果として、ユーザーインターフェース300は、ユーザーに、ゲームとインタラクションすることができるようにする複数の非視覚的な要素を含むことが可能である。例として、ゲームインターフェースは、プレイヤーがゲームの中の仮想要素または仮想物体に近づく時、または重要なイベントがパラレルリアリティゲームにで生じる時、プレイヤーに可聴通知を提供することが可能である。プレイヤーは、音声制御340により、今述べた可聴通知を制御することが可能である。別々のタイプの可聴通知は、仮想要素または仮想イベントのタイプによって決まり、ユーザーに提供されることが可能である。可聴通知は、仮想要素または仮想物体へのプレイヤーの接近によって決まる頻度または音量において、増えるまたは減ることが可能である。他の非視覚的な通知または信号は、たとえば振動通知または他の適切な通知もしくは信号など、ユーザーに提供されることが可能である。
According to aspects of the present disclosure, a player can interact with a parallel reality game by simply taking the client device 120 from place to place in the real world. As an example, a player may play the game simply by accessing an application associated with a parallel reality game on a smartphone and moving around in the real world with the smartphone. In this regard, a player does not need to continuously view a visual representation of the virtual world on a display screen in order to play a location-based game. As a result,
当業者であれば、本明細書に提供される開示を用いて、多数のゲームインターフェース構成および基本的な機能性が、本開示を考慮して明らかになることを理解するだろう。本開示は、どの1つの特定の構成をとっても限定されることを意図しない。 Those skilled in the art will appreciate, using the disclosure provided herein, that numerous game interface configurations and basic functionality will become apparent in light of this disclosure. This disclosure is not intended to be limited to any one particular configuration.
図1に戻って参照すると、クライアント120は、ゲームシステム100とインターフェースするプレイヤーによって用いられることが可能である、いずれかのポータブルコンピューティングデバイスであることが可能である。例として、クライアント120は、ワイヤレスデバイス、パーソナルデジタルアシスタント(PDA)、ポータブルゲーミングデバイス、携帯電話、スマートフォン、タブレット、ナビゲーションシステム、ハンドヘルドGPSシステム、ウェアラブルコンピューティングデバイス、1つまたは複数のプロセッサーを有するディスプレイ、または他のそのようなデバイスであることが可能である。手短に言えば、クライアント120は、プレイヤーに、ゲームシステム100とインタラクションできるようにすることを可能にする、いずれかのコンピューターデバイスまたはシステムであることが可能である。
Referring back to FIG. 1, client 120 can be any portable computing device that can be used by a player to interface with
クライアント120は、1つまたは複数のプロセッサーと、1つまたは複数のコンピューター読取り可能媒体とを含むことが可能である。コンピューター読取り可能媒体は、プロセッサーに、動作を行わせる命令を格納することが可能である。クライアント120は、たとえば、ディスプレイ画面、タッチスクリーン、タッチパッド、データ入力キー、スピーカー、カメラ、および/または音声認識に適したマイクなど、プレイヤーからの情報を提供するおよび受信するための種々の入力/出力デバイスを含むことが可能である。さらに、クライアント120は、限定されないが、動作センサー、加速度センサー、ジャイロスコープ、他の慣性測定装置(IMU)、気圧計、測位システム、温度計、光センサーなどを含む、クライアント120からのデータを記録するための他の種々のセンサーを含むこともある。クライアント120は、ネットワーク130を介して通信を提供するためのネットワークインターフェースをさらに含むことが可能である。ネットワークインターフェースは、例えば、トランスミッター、レシーバー、ポート、コントローラー、アンテナ、または他の適切なコンポーネントを含む、1つまたは複数のネットワークとインターフェースするためのどんな適切なコンポーネントでも含むことが可能である。
Client 120 may include one or more processors and one or more computer-readable media. A computer-readable medium can store instructions that cause a processor to perform operations. The client 120 may have various inputs/inputs for providing and receiving information from the player, such as, for example, a display screen, a touch screen, a touch pad, data entry keys, speakers, a camera, and/or a microphone suitable for voice recognition. May include output devices. Additionally, client 120 records data from client 120 including, but not limited to, motion sensors, accelerometers, gyroscopes, other inertial measurement units (IMUs), barometers, positioning systems, thermometers, light sensors, etc. It may also include a variety of other sensors for use. Client 120 may further include a network interface for providing communications over
ネットワークコンピューティング環境100が、ロケーションベースゲームを提供するので、好ましくは、クライアント120は、たとえばスマートフォンまたはタブレットなど、プレイヤーが容易に持って行くないしは別のやり方により運ぶことが可能であるポータブルコンピューティングデバイスである。図1に示される態様では、各クライアント120は、たとえばゲーミングモジュール122およびポジショニングモジュール124など、ソフトウェアコンポーネントを含む。他の態様では、クライアント120は、たとえば、(クライアント120のコンポーネントとしての、またはクライアント120の外部の)ディスプレイ、種々の入力デバイス(例えば、タッチスクリーン、マウス、スタイラスなど)などの異なるまたは追加の要素を含むことがある。
Because the
ゲーミングモジュール122は、パラレルリアリティゲームに参加するインターフェースをプレイヤーに提供する。ゲームサーバー110は、クライアント120のゲーミングモジュール122による使用のために、ネットワーク130を介してクライアント120にゲームデータを送信して、ゲームサーバー110から離れたロケーションのプレイヤーにゲームのローカルバージョンを提供する。サーバー110は、ネットワーク130を介して通信を提供するためのネットワークインターフェースを含むことが可能である。ネットワークインターフェースは、例えば、トランスミッター、レシーバー、ポート、コントローラー、アンテナ、または他の適切なコンポーネントを含む、1つまたは複数のネットワークとインターフェースするためのどんな適切なコンポーネントでも含むことが可能である。
クライアント120によって実行されるゲーミングモジュール122は、プレイヤーとパラレルリアリティゲームとの間のインターフェースを提供する。ゲーミングモジュール122は、ゲームに関連付けられた仮想世界を表示する(例えば、仮想世界のイメージをレンダリングする)クライアント120に関連付けられたディスプレイデバイスにユーザーインターフェースを与え、ユーザーに、仮想世界において、インタラクションし、種々のゲームの目的を成し遂げることを可能にすることが可能である。さらに、ゲーミングモジュール122は、プレイヤーに、ディスプレイ画面を見ることを必要とすることなく、ゲームとインタラクションすることを可能にする種々の他の出力を制御することも可能である。例として、ゲーミングモジュール122は、プレイヤーに、ディスプレイ画面を見ることなく、ゲームをプレイすることが可能である種々の音声、振動、または他の通知を制御することが可能である。ゲーミングモジュール122は、ゲームサーバー110から受信したゲームデータにアクセスして、ゲームの正確な表現をユーザーに提供することが可能である。ゲーミングモジュール122は、プレイヤーの入力を受信し処理し、ネットワーク130を介してゲームサーバー110に更新を提供することが可能である。
A
ポジショニングモジュール124は、クライアント120の位置を監視するためのいずれかのデバイスまたは回路であることが可能である。例えば、ポジショニングモジュール124は、衛星ナビゲーション測位システム(例えば、GPSシステム、ガリレオ測位システム、グローバルナビゲーション衛星システム(Global Navigation satellite system:GLONASS)、BeiDou衛星ナビゲーションおよび測位システム)、慣性ナビゲーションシステム、デッドレコニングシステム、IPアドレスに基づいて、三角測量および/またはセルラータワーもしくはWiFiホットスポットへの接近を用いることによって、および/または位置を決定する他の適切な技法を用いて、実際のまたは相対的な位置を決定することが可能である。ポジショニングモジュール124は、クライアント120のロケーションを正確に測位することを支援することがある種々の他のセンサーをさらに含むことがある。
The
プレイヤーが現実世界においてクライアント120を持ってあちこちと動く時、ポジショニングモジュール124は、プレイヤーの位置をトラッキングし、プレイヤーの位置情報をゲーミングモジュール122に提供する。ゲーミングモジュール122は、現実世界におけるプレイヤーの実際の位置に基づいて、ゲームに関連付けられた仮想世界におけるプレイヤーの位置を更新する。ゆえに、プレイヤーは、現実世界において、単に、クライアント120を持って行くことまたは運ぶことによって、仮想世界とインタラクションすることが可能である。特に、仮想世界におけるプレイヤーのロケーションは、現実世界におけるプレイヤーのロケーションと対応させることが可能である。ゲーミングモジュール122は、ユニバーサルゲームモジュール112がゲームの至る所におけるすべてのプレイヤーの位置についてのトラッキングを保持するように、ネットワーク130を介してプレイヤーの位置情報をゲームサーバー110に提供することが可能である。プレイヤーに関連付けられたロケーション情報は、プレイヤーのロケーション情報がアクセスされることが、およびロケーション情報がゲームという状況ではどのように利用されるか(例えば、仮想世界におけるプレイヤーの位置を更新すること)がプレイヤーに通知された後、許可が与えられる場合のみ利用されることは、理解されるべきである。さらに、プレイヤーに関連付けられたどんなロケーション情報でも、プレイヤーのプライバシーを保護するやり方により格納され管理されるだろう。
As the player moves around with the client 120 in the real world, the
ネットワークコンピューティング環境100は、ゲームサーバー110が、ネットワーク130を介して1つまたは複数のクライアント120と通信して、クライアント120のプレイヤーにパラレルリアリティゲームを提供する、クライアントサーバーアーキテクチャを用いる。さらに、ネットワークコンピューティング環境100は、たとえばスポンサー/広告主システムまたは企業システムなど、他の外部システムを含むこともある。1つのクライアント120のみが図1に例示されるが、何台のクライアント120または他の外部システムでも、ネットワーク130を介してゲームサーバー110に接続されることがある。その上さらに、ネットワークコンピューティング環境100は、以下に説明されるのとは異なるやり方によりクライアント120とサーバー110との間に分散されることがある、異なるまたは追加の要素および機能性を含むことがある。
ゲームサーバー110は、いずれかのコンピューティングデバイスであることが可能であり、1つまたは複数のプロセッサーと1つまたは複数のコンピューター読取り可能媒体とを含むことが可能である。コンピューター読取り可能媒体は、プロセッサーに、動作を行わせる命令を格納することが可能である。ゲームサーバー110は、ゲームデータベース115を含むことが可能である、またはゲームデータベース115と通信をしていることが可能である。ゲームデータベース115は、ネットワーク130を介してクライアント(複数可)120に供されるまたは提供されるパラレルリアリティゲームに用いられるゲームデータを格納する。
Game server 110 can be any computing device and can include one or more processors and one or more computer-readable media. A computer-readable medium can store instructions that cause a processor to perform operations. Game server 110 may include or be in communication with
ゲームデータベース115に格納されるゲームデータは、(1)パラレルリアリティゲームにおける仮想世界に関連付けられたデータ(例えば、ディスプレイデバイスに仮想世界をレンダリングするのに用いられるイメージデータ、仮想世界におけるロケーションの地理座標など)、(2)パラレルリアリティゲームのプレイヤーに関連付けられたデータ(例えば、限定されないが、プレイヤー情報、プレイヤー体験レベル、プレイヤー通貨、仮想世界/現実世界における現在のプレイヤー位置、プレイヤーエネルギーレベル、プレイヤープリファレンス、チーム情報、ファクション情報などを含むプレイヤープロファイル)、(3)ゲームの目的に関連付けられたデータ(例えば、現在のゲームの目的、ゲームの目的の状態、過去のゲームの目的、将来のゲームの目的、望ましいゲームの目的に関連付けられたデータなど)、(4)仮想世界における仮想要素に関連付けられたデータ(例えば、仮想要素の位置、仮想要素のタイプ、仮想要素に関連付けられたゲームの目的、仮想要素に対応する現実の世界の位置情報、仮想要素の挙動、仮想要素の関連性など)、(5)仮想世界の要素にリンクした実世界の物体、ランドマーク、位置に関連付けられたデータ(例えば、実世界の物体/ランドマークのロケーション、実世界の物体/ランドマークの説明、実世界の物体にリンクした仮想要素の関連性など)、(6)ゲーム状態(例えば、プレイヤーの現在の数、ゲームの目的の現在の状態、プレイヤーリーダーボードなど)、(7)プレイヤーの活動/入力に関連付けられたデータ(例えば、現在のプレイヤー位置、過去のプレイヤー位置、プレイヤー移動、プレイヤー入力、プレイヤー問い合わせ、プレイヤー通信など)、および(8)パラレルリアリティゲームの実装の間、用いられる、関係する、または取得される他のデータを含むことが可能である。ゲームデータベース115に格納されたゲームデータは、システム管理者によってオフラインかリアルタイムにかのいずれか、および/または、たとえばネットワーク130を介して1つまたは複数のクライアント120からなど、システム100のユーザー/プレイヤーから受信されるデータによって、居住することが可能である。
The game data stored in the
ゲームサーバー110は、1つまたは複数のクライアント120から(例として、リモートプロシージャコール(RPC)を介して)ゲームデータに対する要求を受信し、ネットワーク130を介してそれらの要求に応答するように構成されることが可能である。例として、ゲームサーバー110は、ゲームデータを1つまたは複数のデータファイルにエンコードし、データファイルをクライアント120に提供することが可能である。さらに、ゲームサーバー110は、ネットワーク130を介して1つまたは複数のクライアント120からゲームデータ(例えば、プレイヤー位置、プレイヤー活動、プレイヤー入力など)を受信するように構成されることが可能である。例として、クライアント120は、ゲームサーバー110が、ゲームに対して変化した周囲のどんな状況でもおよびすべての状況を反映するために、ゲームデータベース115においてゲームデータを更新するのに用いるプレイヤー入力および他の更新を、ゲームサーバー110に周期的に送るように構成されることが可能である。
Game server 110 is configured to receive requests for game data (e.g., via remote procedure calls (RPC)) from one or more clients 120 and respond to those requests over
示される態様では、サーバー110は、ユニバーサルゲームモジュール112、コマーシャルゲーム特徴モジュール114、データ収集モジュール116、イベントモジュール118、およびクエリモジュール119を含む。ゲームサーバー110は、遠隔の分散ゲームデータベース115からゲームデータにアクセスする。クエリモジュール119およびゲームデータベース115の種々の態様は、図4に関して、以下により詳細に説明される。他の態様では、ゲームサーバー110は、異なるおよび/または追加の要素を含む。さらに、機能は、説明されるのとは異なるように、要素の間に、分散されることがある。例として、ゲームデータベース115は、ゲームサーバー110に統合されることが可能である。
In the embodiment shown, server 110 includes a
ユニバーサルゲームモジュール112は、すべてのプレイヤーに対して、パラレルリアリティゲームをホストし、すべてのプレイヤーに対して、パラレルリアリティゲームの現在の状態に対する権威あるソースとして作動する。ユニバーサルゲームモジュール112は、クライアントデバイス120からのゲームデータ(例えば、プレイヤーの入力、プレイヤーの位置、プレイヤーの活動、ランドマーク情報など)を受信し、受信したゲームデータを、パラレルリアリティゲームのすべてのプレイヤーに対して、全パラレルリアリティゲームに組み入れる。さらに、ユニバーサルゲームモジュール112は、ネットワーク130を介して、クライアント120へのゲームデータの配信を管理することも可能である。さらに、ユニバーサルゲームモジュール112は、限定されないが、クライアント120とゲームサーバー110との間の接続をセキュアにすること、種々のクライアント120間の接続を確立すること、および種々のクライアント120のロケーションを照合することを含む、クライアント120のセキュリティの側面を管理することもある。
コマーシャルゲーム特徴モジュール114は、1つが含まれる態様では、ユニバーサルゲームモジュール112から分離される、またはユニバーサルゲームモジュール112の一部であることが可能である。コマーシャルゲーム特徴モジュール114は、現実世界における商業活動とリンクされる、パラレルリアリティゲーム内の種々のゲーム特徴についての含有を管理することが可能である。例として、コマーシャルゲーム特徴モジュール114は、たとえば、ネットワーク130を介して(ネットワークインターフェースを介して)スポンサー/広告主、企業、または他のエンティティなど、外部システムから要求を受信して、パラレルリアリティゲームにおいて商業活動とリンクしたゲーム特徴を含むことが可能である。次に、コマーシャルゲーム特徴モジュール114は、パラレルリアリティゲームにおける今述べたゲーム特徴の含有を手配することが可能である。
Commercial
ゲームサーバー110は、データ収集モジュール116をさらに含むことが可能である。データ収集モジュール116は、1つが含まれる態様では、ユニバーサルゲームモジュール112から分離される、またはユニバーサルゲームモジュール112の一部であることが可能である。データ収集モジュール116は、現実世界におけるデータ収集活動とリンクされる、パラレルリアリティゲーム内の種々のゲーム特徴についての含有を管理することが可能である。例として、データ収集モジュール116は、ゲームデータベース115に格納されたゲームデータを変更して、パラレルリアリティゲームにおけるデータ収集活動とリンクしたゲーム特徴を含むことが可能である。さらに、データ収集モジュール116は、データ収集活動に応じて、プレイヤーによって収集されたデータを分析し、種々のプラットフォームによるアクセスのためにデータを提供することが可能である。
Game server 110 may further include a
イベントモジュール118は、パラレルリアリティゲームにおけるイベントへのプレイヤーのアクセスを管理する。用語「イベント」が、便利なように用いられるが、この用語が、特定のロケーションまたは時間における特定のイベントに言及する必要はないことは、理解されるべきである。むしろ、1つまたは複数のアクセス基準が用いられて、プレイヤーがゲームコンテンツにアクセスしてもよいかどうかを決定する、アクセス制御されたゲームコンテンツのいずれかの供給に言及することがある。上記のコンテンツは、アクセス制御の少ないまたはないゲームコンテンツを含む、より大きなパラレルリアリティゲームの一部であり得る、またはスタンドアロンのアクセス制御されたパラレルリアリティゲームであり得る。
クエリモジュール119は、ゲームデータベース115に対するクエリを構築しおよび実行し、結果を、ネットワークコンピューティング環境100の他のコンポーネント(例えば、パラレルリアリティゲームにおける使用のためのクライアントデバイス120のゲーミングモジュール122)に提供する。図4は、ゲームデータベース115の一態様を示す図である。示される態様では、ゲームデータベース115は、N個のノード410A~Nを含む。各ノード410は、異なる物理マシン、または異なる仮想マシンであり得る。ゆえに、ノード410は、独立して問い合わされることがある。地理的なリージョンを表すセルに対応するシャードに対するジオロケーションデータがノード410に追加される時、クエリモジュール119は、ノードに格納されたデータのクエリに対する、および拡張としてシャードのクエリに対する応答時間が望ましくないことを示すオーバーフロー条件に対して、ノードを監視する。オーバーフロー条件は、ノードに格納されるデータ量の制限、ノードに格納されるアイテム数の制限、ノードにおけるクエリ応答時間の制限、またはノードに格納されるデータ量を示す、ゆえに、予想されるクエリ応答時間を示すどんな他の適切なパラメーターでもあることが可能である。オーバーフロー条件が満たされるならば、クエリモジュール119は、セルに対してャードカウントをインクリメントし、異なるノード410のセルに対して新しいシャードを開始する。ゆえに、与えられたセルに対してデータ量が増加する時、セルに対応するジオロケーションデータが動的に格納されるノード410の数が増加する一方、いずれか1つのノードのデータ量は、クエリ応答時間が予測可能のままであるように制限される。いくつかの態様では、クエリモジュール119は、セルに関連付けられたシャードが別のノードに展開したことを示すノードのシャードに関連付けられたフラグ(例えば、格納されたパラメーター)を設定する。例えば、クエリモジュール119は、セルに対して新しいデータを格納するとき、セルに関連付けられた1つまたは複数の共有されるためのフラグが設定されているかどうかを検査することがある。今述べた場合、クエリモジュール119が特定のシャードに対するフラグが設定されていることを決定するならば、クエリモジュール119が、フラグが設定されていないシャードを識別するまで、または新しいシャードがセルに対して生成されるまで、別のシャードにデータを格納しようとすることがある。
The
図1に戻って参照すると、クエリモジュール119は、クライアントデバイス120のロケーションに基づいて、クライアントデバイス120から受信した要求に応答して、ジオロケーションデータに対するクエリを生成する。クエリは、ジオロケーションデータを検索する、更新する、ないしは別のやり方により操作することがある。さらに、クエリモジュール119は、問い合わされたジオロケーションデータの処理に基づいて、たとえば、要求されたジオロケーションデータを含むクエリ応答など、クエリ応答をクライアントデバイス120に提供する。一態様では、クエリモジュール119は、クライアント120からロケーション(例えば、ポジショニングモジュール124によって生成されたGPSロケーション)を受信し、たとえばロケーションを含む地理的なリージョンに対応する仮想世界の部分を表すセルに対して地理的なセルのインデックスを問い合わせることによってなど、ロケーションに基づいて関心のある仮想世界の1つまたは複数の部分を識別する。例えば、S2セルが用いられる場合、クエリモジュールは、クライアント120が位置される指定されたレベル(例えば、レベル12)のS2セル、その少なくとも一部がロケーションの指定された半径(例えば、2キロメートル)内にある指定されたレベル(例えば、レベル16)のいずれかのS2セル、指定された半径内に完全にある指定されたレベルのいずれかのS2セル、またはS2セルのどんな他の適切なセット(例えば、クライアントの現在の移動方向を説明する楕円内)でも識別することがある。
Referring back to FIG. 1,
各S2セルには、セルIDを有する。さらに、クエリモジュール119は、セルに対してデータを含むシャードの数を示すシャード番号も格納する。クエリモジュール119は、セルIDおよびシャード番号を用いて、セルに対してデータを含む各シャードに対して一意的なキーを生成する。1つの一意的なキーまたは複数の一意的なキーは、セルIDを、0からシャード番号までの各整数値と組み合わせて、生成されることがある。例えば、7686のセルID、および3のシャード番号に対して、3つのキーは、7686-0、7686-1、7686-2として生成されることがある。一意的なキーを生成するどんな適切な組み合わせのメソッドでも、たとえば連接(concatenation)など、用いられることがある。
Each S2 cell has a cell ID. Additionally,
クエリモジュール119は、関連データを有する各シャードが一意的なキーに基づいて位置される、分散データベース115のノードを決定する。いくつかの態様では、クエリモジュール119は、一意的なキーをスロット番号に変換する、決定論的なハッシングの技法を適用する。例として、データベース115は、スロットの最大数(例えば、16565)を有することがあり、クエリモジュール119は、スロットの最大数を用いて一意的なキーにモジュラーハッシング(modular hashing)の技法を適用して、スロット番号(例えば、一意的なキーのモジュロマキシマム(modulo maximum)なスロット番号)を生成することがある。他の態様では、他の決定論的なハッシングの技法を用いて、一意的なキーをスロット番号に変換することがある。
クエリモジュール119は、データベース115のどのノード410が各スロットを格納しているかを示すマッピングを格納する。マッピングに基づいて、クエリモジュール119は、セルデータに対して、示されたノード410の各々に対して並列クエリを生成する。並列クエリの各々は、予測可能な応答時間を有し、および拡張として並列クエリ全体は、上に説明されたクエリモジュール119によるオーバーフロー条件に対する監視のために、予測可能な応答時間を有する。各並列クエリは、対応するノード410によって格納されるシャードに対するジオロケーションデータを戻す。クエリモジュール119は、各クエリからの結果を集約(例えば、連接)し、要求するクライアント120に提供する。
ネットワーク130は、いずれかのタイプの通信ネットワーク、たとえば、ローカルエリアネットワーク(例えばイントラネット)、ワイドエリアネットワーク(例えばインターネット)、またはそれらのいくつかの組み合わせなどであることが可能である。さらに、ネットワークは、クライアント120とゲームサーバー110との間の直接接続を含むことも可能である。一般に、ゲームサーバー110とクライアント120との間の通信は、いろいろの通信プロトコル(例えば、TCP/IP、HTTP、SMTP、FTP)、エンコーディングまたはフォーマット(例えば、HTML、XML、JSON)、および/または保護スキーム(例えば、VPN、セキュアHTTP、SSL)を用いて、ワイヤードおよび/またはワイヤレス接続のどのタイプでも用いて、ネットワークインターフェースを介して行うことが可能である。
The
本明細書に述べられる技術は、サーバー、データベース、ソフトウェアアプリケーション、および他のコンピュータベースシステムに、とられる作動および上記システムへの送信情報および上記システムからの送信情報も同様に、言及する。当業者であれば、コンピュータベースシステムに固有の柔軟性が、2つのコンポーネント間および3つ以上のコンポーネント間のタスクおよび機能性のバラエティに富む可能な構成、組み合わせ、および分割を考慮することを認めるだろう。例として、本明細書に述べられるサーバー処理は、単一のサーバー、または協働して働く複数のサーバーを用いて実装されることがある。特段の明言がある場合を除き、データベースおよびアプリケーションは、単一のシステムに実装されることがある、または複数のシステムにわたって分散されることがある。同様に、分散されたコンポーネントは、順次にまたは並列に動作することがある。 The techniques described herein also refer to operations taken on and information transmitted to and from servers, databases, software applications, and other computer-based systems. Those skilled in the art will appreciate that the inherent flexibility of computer-based systems allows for a wide variety of possible configurations, combinations, and divisions of tasks and functionality between two components and between three or more components. right. By way of example, the server processing described herein may be implemented using a single server or multiple servers working together. Unless explicitly stated otherwise, databases and applications may be implemented on a single system or distributed across multiple systems. Similarly, distributed components may operate sequentially or in parallel.
さらに、本明細書で述べられるシステムおよび方法がユーザーについての個人情報にアクセスおよび分析する、または、たとえばロケーション情報など、個人情報の使用がなされるという状況では、ユーザーは、プログラムまたは特徴が情報を収集するかどうかを制御し、システムまたは他のアプリケーションからコンテンツを、受信するかどうかおよび/またはどのように受信するかを制御する機会を提供されることがある。ユーザーが、どの情報が収集され、どのように情報が用いられるかについての意味のある通知を提供されるまで、収集されるまたは用いられる上記の情報はない。情報は、ユーザーが、ユーザーによっていつでも取り消せるまたは修正されることが可能である同意を提供しない限り、収集されないまたは用いられない。ゆえに、ユーザーは、アプリケーションまたはシステムによって、情報が、ユーザーについてどのように収集され用いられるかに対する制御を有することが可能である。さらに、ある情報またはデータは、個人の識別が可能な情報が取り除かれるように、格納されるまたは用いられる前に1つまたは複数のやり方により扱われることが可能である。例えば、ユーザーの身元は、ユーザーに対して決定されることが可能である個人的に識別可能な情報がないように、扱われることがある。 Furthermore, in situations where the systems and methods described herein access and analyze personal information about a user or use of personal information, such as, for example, location information, the user may be provided with an opportunity to control whether the program or feature collects the information and to control whether and/or how the user receives content from the system or other applications. No such information is collected or used unless the user is provided with meaningful notice of what information is collected and how the information is used. No information is collected or used unless the user provides consent, which may be revoked or modified by the user at any time. Thus, the user may have control over how information is collected and used about the user by the application or system. Furthermore, some information or data may be handled in one or more ways before being stored or used, such that personally identifiable information is removed. For example, the identity of the user may be handled such that no personally identifiable information can be determined about the user.
例示的な方法
図5は、予測可能なクエリ応答時間を有する任意の数のアイテムを含むジオロケーションデータを提供するための例示的な方法500を示す図である。図5のステップは、方法500を行うクエリモジュール119の視点から例示される。しかしながら、ステップのいくつかまたはすべては、他のエンティティおよび/またはコンポーネントによって行われることがある。さらに、いくつかの態様は、ステップを並列に行う、ステップを異なる順に行う、または異なるステップを行うことがある。
Exemplary Method FIG. 5 illustrates an
図5に示される態様では、方法500は、クエリモジュール119が、ジオロケーション(例えば、クライアント120のGPS座標)を示す要求を受信することにより始まる。先に述べている要求は、たとえば、ジオロケーションデータを検索する、更新する、ないしは別のやり方により変更するなど、種々のデータベースクエリを説明することがある。クエリモジュール119は、ジオロケーションに基づいて、1つまたは複数の地理的なリージョンを識別する520。例えば、先に述べている地理的なリージョンは、ロケーションから予め決められた距離内の特定のレベルについてのS2セルであり得る。
In the aspect illustrated in FIG. 5,
クエリモジュール119は、データベースの1つまたは複数のデータベースシャードを識別し、ただし、1つまたは複数のデータベースシャードは、各々、1つまたは複数の地理的なリージョンのうちのそれぞれの地理的なリージョンに対応する530。先に述べているシャードは、決定論的なハッシングの技法を用いて識別されることがある。クエリモジュール119は、1つまたは複数の地理的なリージョンに対応するジオロケーションデータに対して識別されたシャードに問い合わせること540をし、ただし、問い合わせること540は、予測可能なクエリ応答時間を有する。上に説明されている、識別されたデータベースシャードが複数のデータベースシャードを含むならば、クエリモジュール119は、複数のシャードに並列に問い合わせをすることがある。クエリモジュール119は、問い合わされたジオロケーションデータを用いてクエリ結果を処理し550、受信した要求に対する応答としてクエリ結果を戻す560。例えば、クエリモジュール119が複数のシャードを並列に問い合わせるならば、クエリモジュール119は、並列のクエリの各々からクエリ結果(例えば、それぞれのシャードの各々から検索されるジオロケーションデータ)を全クエリ結果に集約し、受信した要求への応答として全クエリ結果を提供することがある。
The
例示的なコンピューティングシステム
図6は、マシン読取り可能媒体から命令を読み、プロセッサー(またはコントローラー)において実行することができる例示的なマシンの構成要素を例示するブロック図である。具体的には、図6は、コンピューターシステム600の例示的なかたちにおけるマシンの図式的な表現を示す。コンピューターシステム600は、マシンに、本明細書に説明されるメソドロジー(またはプロセス)のいずれかを行わせるための命令624(例えば、プログラムコードまたはソフトウェア)を実行するのに用いられることが可能である。マシンは、スタンドアロンデバイスとして動作する、または、説明される機能性を、他の接続された(例えば、ネットワーク接続された)デバイスと協働して提供することがある。マシンは、サーバークライアントネットワーク環境におけるサーバーもしくはクライアントの性能において、またはピアツーピア(または分散)ネットワーク環境におけるピアマシンとして、動作することがある。
Exemplary Computing System FIG. 6 is a block diagram illustrating components of an exemplary machine that can read instructions from a machine-readable medium and execute them on a processor (or controller). Specifically, FIG. 6 shows a diagrammatic representation of a machine in the exemplary form of a
マシンは、サーバーコンピューター、クライアントコンピューター、パーソナルコンピュータ(PC)、タブレットPC、スマートフォン、ネットワークルータ、またはそのマシンによってとられることになる作動を指定する命令1024を(連続的にまたは別のやり方により)実行できるどんな他のマシンでもあり得る。さらに、単一のマシンのみが例示されているが、用語「マシン」は、本明細書に述べられる手順のうちのいずれか1つまたは複数を行う命令624を個別にまたは共同で実行するマシンのどんな集まりでも含むとも受け取られるべきである。
The machine executes (continuously or otherwise) instructions 1024 that specify actions to be taken by the server computer, client computer, personal computer (PC), tablet PC, smartphone, network router, or the machine. It could be any other machine that can. Further, although only a single machine is illustrated, the term "machine" refers to the machines that individually or jointly execute
例示的なコンピューターシステム600は、1つまたは複数の処理ユニット(一般に、1つまたは複数のプロセッサー602)を含む。プロセッサー602は、例えば、中央処理装置(CPU)、GPU(graphics processing unit)、デジタル信号プロセッサー(DSP)、コントローラー、ステートマシン、1つまたは複数の特定用途向け集積回路(ASIC)、1つまたは複数のRFIC(radio-frequency integrated circuit)、またはこれらのいずれかの組み合わせである。プロセッサー602へのどんな参照でも、単一のプロセッサーまたは複数のプロセッサーを引用することがある。さらに、コンピューターシステム600は、メインメモリー604も含む。コンピューターシステムは、ストレージユニット616を含むことがある。プロセッサー602、メモリー604、およびストレージユニット616は、バス608を介して通信する。
The
さらに、コンピューターシステム600は、スタティックメモリー606、ディスプレイドライバー610(例えば、プラズマディスプレイパネル(PDP)、液晶ディスプレイ(LCD)、またはプロジェクタを駆動するために)を含むことが可能である。さらに、コンピューターシステム600は、英数字入力デバイス612(例えば、キーボード)、カーソル制御デバイス614(例えば、マウス、トラックボール、ジョイスティック、モーションセンサー、タッチスクリーン、または他のポインティング機器)、信号生成デバイス618(例えば、スピーカー)、およびネットワークインターフェースデバイス620も含むことがあり、さらにこれらはバス608を介して通信するようにも構成される。さらに、コンピューターシステム600は、たとえば、マイク、カメラ、気圧計、ジャイロスコープ、加速度計など、他の入力デバイス/センサーを含むこともある。
Additionally,
ストレージユニット616は、本明細書に説明される手順または機能のうちのいずれか1つまたは複数を具象化する命令624(例えば、ソフトウェア)を格納されるマシン読取り可能媒体622を含む。さらに、命令624は、コンピューターシステム600による実行中に、完全にまたは少なくとも部分的に、メインメモリー604内にまたはプロセッサー602内に(例えば、プロセッサーのキャッシュメモリ内に)常駐することもあり、さらに、メインメモリー604およびプロセッサー602は、マシン読取り可能媒体も構成する。命令624は、ネットワークインターフェースデバイス620を介して、ネットワーク130によって送信されるまたは受信されることがある。
マシン読取り可能媒体622は、例示的な態様では単一の媒体であるように示されるが、用語「マシン読取り可能媒体」は、命令624を格納することができる単一の媒体または複数の媒体(例えば、集中データベースもしくは分散データベース、または関連するキャッシュおよびサーバー)を含むことを受け取られるだろう。さらに、用語「マシン読取り可能媒体」は、マシンによる実行のための命令624を格納する性能があり、マシンに、本明細書に開示された手順のいずれか1つまたは複数を行わせるどんな媒体でも含むことも受け取られるべきである。用語「マシン読取り可能媒体」は、限定されないが、ソリッドステートメモリー、光学媒体、および磁気媒体のかたちにおいてデータリポジトリを含む。
Although machine-
追加の考慮事項
態様の前述の説明は、例示の目的のために与えられ、包括的であること、または開示された正確なかたちに対して特許権を限定することを意図しない。関連当業者は、多くの変更および変形が、上記の開示を考慮して可能であることを理解することが可能である。
ADDITIONAL CONSIDERATIONS The foregoing description of aspects is given for purposes of illustration and is not intended to be exhaustive or to limit patent rights to the precise form disclosed. Those of relevant skill in the art will appreciate that many modifications and variations are possible in light of the above disclosure.
今述べた説明のいくつかの部分は、情報の動作のアルゴリズムおよび記号表現に関して態様を説明する。通例、今述べたアルゴリズムの説明および表現は、効果的に他の当業者に研究内容を伝達するデータ処理技術の当業者によって用いられる。今述べた動作は、機能的に、計算的に、または論理的に説明される一方、コンピュータープログラムにまたは同等の電気回路、マイクロコード等によって実装されることが理解される。その上さらに、動作の今述べた配置をモジュールと呼ぶことは、一般性を損なうことなく、ときどき便利であることが示されている。説明した動作および関連モジュールは、ソフトウェア、ファームウェア、ハードウェア、またはどんなそれらの組み合わせにでも、具象化されることがある。 Some portions of the description just described describe aspects in terms of algorithms and symbolic representations of operations on information. The algorithmic descriptions and representations just described are commonly used by those skilled in the data processing arts to effectively convey the substance of their work to others skilled in the art. It is understood that while the operations just described may be described functionally, computationally, or logically, they may be implemented in a computer program or equivalent electrical circuitry, microcode, or the like. Furthermore, it has proven convenient at times, without loss of generality, to refer to the just described arrangement of operations as modules. The described operations and related modules may be implemented in software, firmware, hardware, or any combination thereof.
本書に説明されたステップ、動作、または処理のいずれも、1つまたは複数のハードウェアまたはソフトウェアモジュールにより、単独にてまたは他のデバイスとの組み合わせにて、行われるまたは実装されることがある。一態様では、ソフトウェアモジュールは、説明したステップ、動作、または処理のいずれかまたはすべてを行うために、コンピュータープロセッサーによって実行されることが可能であるコンピュータープログラムコードを含むコンピューター読取り可能媒体を含むコンピュータープログラム製品により実装される。 Any of the steps, acts, or processes described herein may be performed or implemented by one or more hardware or software modules, alone or in combination with other devices. In one aspect, a software module is a computer program product that includes a computer readable medium that includes computer program code that is capable of being executed by a computer processor to perform any or all of the steps, acts, or processes described. Implemented by the product.
さらに、態様は、本明細書の動作を行うための装置に関することもある。今述べた装置は、必要とされる目的に対して特別に構築されることがある、および/または、コンピューターに格納されたコンピュータープログラムによって選択的にアクティベートされるもしくは再構成される汎用コンピューティングデバイスを含むことがある。コンピュータープログラムは、コンピュータシステムバスに結合される、非一時的な有形のコンピューター読取り可能媒体に、または、電子命令を記憶するのに適したどんなタイプの媒体にも、格納されることがある。その上さらに、本明細書にて言及されるどんなコンピューティングシステムでも、単一のプロセッサーを含むことがある、またはコンピューティング能力を高めるために複数のプロセッサー設計を利用するアーキテクチャであり得る。 Additionally, aspects may relate to an apparatus for performing the operations herein. The apparatus just described may be specially constructed for the purpose required and/or may be a general purpose computing device that may be selectively activated or reconfigured by a computer program stored in the computer. may include. A computer program may be stored on a non-transitory, tangible computer-readable medium that is coupled to a computer system bus or on any type of medium suitable for storing electronic instructions. Furthermore, any computing system referred to herein may include a single processor or may be an architecture that utilizes multiple processor designs to increase computing power.
さらに、態様は、本明細書に説明されたコンピューター処理によって生成される製品に関することもある。製品は、コンピューター処理に起因する情報を含むことがあり、ただし、情報は、非一時的な有形の非一時的なコンピューター読取り可能記録媒体に格納され、本明細書に説明されるコンピュータープログラム製品または他のデータの組み合わせのどんな態様でも含むことがある。 Additionally, embodiments may relate to products generated by the computer processes described herein. The product may include information resulting from computer processing, provided that the information is stored on a non-transitory, tangible, non-transitory computer-readable storage medium and is not a computer program product or a computer program product as described herein. It may also include any aspect of other data combinations.
本明細書に用いられている、「一態様」または「ある態様」へのどんな言及でも、態様に関連して説明される特定の要素、特徴、構造、または特性が、少なくとも1つの態様に含まれることを意味する。本明細書の種々の場所における語句「一態様では」の出現は、同一の態様にすべて言及しているとは限らない。同様に、要素またはコンポーネントの前の「a」または「an」の使用は、単に便利なようになされる。今述べた説明は、そうは意味されないことが明白でない限り、1つまたは複数の要素またはコンポーネントが存在していることを意味することが理解されるべきだろう。 As used herein, any reference to "an aspect" or "an aspect" refers to the fact that the particular element, feature, structure, or property described in connection with the aspect is included in at least one aspect. means to be The appearances of the phrase "in one aspect" in various places in this specification are not necessarily all referring to the same aspect. Similarly, the use of "a" or "an" before an element or component is merely for convenience. It should be understood that the descriptions just set forth imply that one or more elements or components are present, unless it is clear that this is not meant to be the case.
値が「おおよその」または「実質的に」(または、それらの派生語)として記述される場合、上記の値は、別の意味が文脈から明らかでない限り、正確な±10%として構築されるべきだろう。例えば、「およそ10」は、「9から11の範囲にある」ことを意味することを理解されるべきだろう。 When values are described as "approximately" or "substantially" (or derivatives thereof), the above values should be constructed as accurate ±10%, unless a different meaning is clear from the context. For example, "approximately 10" should be understood to mean "in the range of 9 to 11."
本明細書に用いられている、用語「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」またはどんな変形でも、非排他的な包含に及ぶよう意図される。例えば、要素のリスト含む処理、方法、物品、または装置は、必ずしもそれらの要素のみに限定されず、明白にリストアップされない他の要素、または上記の処理、方法、物品、または装置に固有の他の要素を含むことがある。さらに、明白に反対のことが述べられない限り、「または」は、包括的な「または」に言及し、排他的な「または」に言及しない。例えば、条件AまたはBは、次の、Aが真である(または存在する)かつBが偽である(または存在しない)、Aが偽である(または存在しない)かつBが真である(または存在する)、ならびに、AおよびBの両方が真である(または存在する)、のうちのいずれか1つによって満たされる。 As used herein, the terms "comprise", "comprising", "include", "include", "having", "having" or any variation thereof are non-exclusive inclusive. is intended to extend to. 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 explicitly listed or that are unique to the process, method, article, or apparatus described above. It may contain elements of Further, unless expressly stated to the contrary, "or" refers to an inclusive or and not to an exclusive or. For example, a condition A or B is such that A is true (or exists) and B is false (or does not exist), A is false (or does not exist) and B is true ( or exists), and both A and B are true (or exist).
本開示を読むとすぐに、当業者は、説明された技法およびアプローチを利用するのに用いられることがある、さらに追加の代替の構造設計および機能設計を理解するだろう。ゆえに、特定の態様および適用が例示され説明された一方、説明された主題は、開示された厳密な構造およびコンポーネントに限定されないことが理解されることである。保護の範囲は、次の特許請求の範囲によってのみ制限されるべきだろう。 Upon reading this disclosure, those skilled in the art will appreciate still additional alternative structural and functional designs that may be used to utilize the described techniques and approaches. Thus, while particular aspects and applications have been illustrated and described, it is to be understood that the described subject matter is not limited to the precise structures and components disclosed. The scope of protection shall be limited only by the following claims.
最後に、原則として、明細書に用いられた言葉は、読みやすさと教育の目的とのために選択され、特許権の境界を明示する、または境界を定めるために選択されていないことがある。それゆえ、特許権の範囲は、本詳細な説明によって限定されず、むしろ、本明細書に基づく出願に得られる特許請求の範囲によって限定されることが意図される。したがって、態様の開示は、次の特許請求の範囲に記載される特許権の範囲の例証であることを意図され、限定していない。 Finally, as a general rule, the language used in the specification may be chosen for readability and educational purposes and not to clarify or delimit the boundaries of patent rights. It is therefore intended that the scope of patent rights be limited not by this detailed description, but rather by the claims appended hereto. Therefore, the disclosure of the embodiments is intended to be illustrative of, and not limiting, the scope of the patent rights set forth in the following claims.
Claims (19)
ジオロケーションを示す要求を受信することと、
前記ジオロケーションに基づいて地理的なリージョンを識別することと、
地理的なリージョンに関してジオロケーションデータを格納するデータベースの複数のデータベースシャードのうちのデータベースシャードを識別することであって、前記識別されたデータベースシャードの各々は、前記地理的なリージョンに対応するジオロケーションデータを含む、ことと、
前記識別されたデータベースシャードに並列に問い合わせることであって、各並列な問い合わせは、前記地理的なリージョンに対応するジオロケーションデータに関してデータベースシャードに問い合わせ、データベースシャードに問い合わせる各並列な問い合わせは、しきい値を超えない応答時間を有する、ことと、
前記要求に応答して前記問い合わせの結果を戻すことと
を備えることを特徴とする方法。 A method for searching geolocation data, the method comprising:
receiving a request indicating a geolocation;
identifying a geographic region based on the geolocation;
identifying a database shard of a plurality of database shards of a database storing geolocation data with respect to a geographic region , each of the identified database shards storing geolocation data corresponding to the geographic region; including data ; and
querying the identified database shards in parallel , each parallel query querying the database shard for geolocation data corresponding to the geographic region, each parallel query querying the database shard comprising : having a response time that does not exceed a threshold ;
and returning results of the query in response to the request.
前記評価に基づいて、前記データベースシャード内に格納された前記ジオロケーションデータが前記オーバーフロー条件を満たすことを決定することと、
前記オーバーフロー条件が満たされると決定することに応答して、前記地理的なリージョンに対応する前記複数のデータベースシャードに新しいデータベースシャードを追加することと、
格納に対して、前記地理的なリージョンに関連付けられた追加のジオロケーションデータを受信することに応答して、前記新しいデータベースシャードに前記追加のジオロケーションデータを格納することと
をさらに備えることを特徴とする請求項1に記載の方法。 evaluating geolocation data stored in a database shard of the plurality of database shards according to an overflow condition, the overflow condition indicating a response time of the database shard to a query is undesirable; ,
determining that the geolocation data stored in the database shard satisfies the overflow condition based on the evaluation ;
adding a new database shard to the plurality of database shards corresponding to the geographic region in response to determining that the overflow condition is met;
The storing further comprises, in response to receiving additional geolocation data associated with the geographic region, storing the additional geolocation data in the new database shard. The method according to claim 1, wherein:
をさらに備えることを特徴とする請求項2に記載の方法。 in response to determining that the geolocation data satisfies the overflow condition, setting a flag associated with the database shard indicating that the number of database shards corresponding to the geographic region has increased; 3. The method of claim 2 , further comprising:
前記地理的なリージョンに対応する地理的なセルに対して、前記ジオロケーションおよび前記セルレベルを用いて地理的なセルのインデックスを問い合わせること
を含むことを特徴とする請求項1に記載の方法。 The request includes a cell level indicating the size of the geographic region, and identifying the geographic region includes:
The method of claim 1, comprising: querying a geographic cell corresponding to the geographic region for a geographic cell index using the geolocation and the cell level.
前記識別された複数のデータベースシャードの各々に対して、
前記地理的なセルに対する前記セル識別子と、前記地理的なセルに関連付けられたデータベースシャードの前記数とに基づいて、前記データベースシャードに対して一意的なキーを決定することと、
前記一意的なキーに対応する前記データベースシャードを格納するデータベースノードを決定することと、
前記一意的なキーに対応する前記データベースシャードに含まれるジオロケーションデータに対して、前記データベースノードに問い合わせることと
を含むことを特徴とする請求項5に記載の方法。 The geographic cell is associated with a cell identifier and a number of database shards, and querying the identified plurality of database shards in parallel comprises :
For each of the identified plurality of database shards,
determining a unique key for the database shard based on the cell identifier for the geographic cell and the number of database shards associated with the geographic cell;
determining a database node that stores the database shard corresponding to the unique key;
6. The method of claim 5 , comprising: querying the database node for geolocation data contained in the database shard corresponding to the unique key.
前記一意的なキーと、前記データベースノードのスロットの最大数とをハッシュ関数に適用することによって、スロット番号を生成することと、
前記スロット番号に関連付けられたデータベーススロットが前記データベースノードに格納されることを示すデータベースマッピングと、前記スロット番号を比較することと
を含むことを特徴とする請求項6に記載の方法。 Determining the database node storing the database shard corresponding to the unique key comprises:
generating a slot number by applying the unique key and a maximum number of slots of the database node to a hash function;
7. The method of claim 6 , comprising: comparing the slot number with a database mapping indicating that a database slot associated with the slot number is stored in the database node.
ジオロケーションを示す要求を受信することと、
前記ジオロケーションに基づいて地理的なリージョンを識別することと、
地理的なリージョンに関してジオロケーションデータを格納するデータベースの複数のデータベースシャードのうちのデータベースシャードを識別することであって、前記識別されたデータベースシャードの各々は、前記地理的なリージョンに対応するジオロケーションデータを含む、ことと、
前記識別されたデータベースシャードに並列に問い合わせることであって、各並列な問い合わせは、前記地理的なリージョンに対応するジオロケーションデータに関してデータベースシャードに問い合わせ、データベースシャードに問い合わせる各並列な問い合わせは、しきい値を超えない応答時間を有する、ことと、
前記要求に応答して前記問い合わせの結果を戻すことと
を含む動作を行わせる命令を含むことを特徴とする非一時的なコンピューター読取り可能記録媒体。 When executed by a computer's processor, said processor:
receiving a request indicating a geolocation;
identifying a geographic region based on the geolocation;
identifying a database shard of a plurality of database shards of a database storing geolocation data with respect to a geographic region , each of the identified database shards storing geolocation data corresponding to the geographic region; including data ; and
querying the identified database shards in parallel , each parallel query querying the database shard for geolocation data corresponding to the geographic region, each parallel query querying the database shard comprising : having a response time that does not exceed a threshold ;
and returning a result of the query in response to the request.
オーバーフロー条件に従って、前記複数のデータベースシャードのうちのデータベースシャード内に格納されたジオロケーションデータを評価することであって、前記データベースシャードの問い合わせに対する応答時間を示す前記オーバーフロー条件は、望ましくない、ことと、
前記評価に基づいて、前記データベースシャード内に格納された前記ジオロケーションデータが前記オーバーフロー条件を満たすことを決定することと、
前記オーバーフロー条件が満たされると決定することに応答して、前記地理的なリージョンに対応する前記複数のデータベースシャードに新しいデータベースシャードを追加することと、
格納に対して、前記地理的なリージョンに関連付けられた追加のジオロケーションデータを受信することに応答して、前記新しいデータベースシャードに前記追加のジオロケーションデータを格納することと
を含む動作をさらに行わせることを特徴とする請求項11に記載のコンピューター読取り可能記録媒体。 The instructions cause the processor to:
evaluating geolocation data stored in a database shard of the plurality of database shards according to an overflow condition, the overflow condition indicating a response time of the database shard to a query is undesirable; ,
determining that the geolocation data stored in the database shard satisfies the overflow condition based on the evaluation ;
adding a new database shard to the plurality of database shards corresponding to the geographic region in response to determining that the overflow condition is met;
and, in response to receiving additional geolocation data associated with the geographic region, storing the additional geolocation data in the new database shard. 12. The computer-readable recording medium according to claim 11 .
前記ジオロケーションデータが前記オーバーフロー条件を満たすことを決定することに応答して、前記地理的なリージョンに対応するデータベースシャードの数が増加したことを示す、前記データベースシャードに関連付けられたフラグを設定すること
を含む動作をさらに行わせることを特徴とする請求項12に記載のコンピューター読取り可能記録媒体。 The instructions cause the processor to:
in response to determining that the geolocation data satisfies the overflow condition, setting a flag associated with the database shard indicating that the number of database shards corresponding to the geographic region has increased; The computer-readable recording medium according to claim 12 , further comprising the following operations.
前記地理的なリージョンに対応する地理的なセルに対して、前記ジオロケーションおよび前記セルレベルを用いて地理的なセルのインデックスを問い合わせること
を含むことを特徴とする請求項11に記載のコンピューター読取り可能記録媒体。 The request includes a cell level indicating a size of the geographic region, and identifying the geographic region includes:
12. The computer-readable medium of claim 11 , further comprising: querying a geographic cell index using the geolocation and the cell level for a geographic cell corresponding to the geographic region.
前記識別された複数のデータベースシャードの各々に対して、
前記地理的なセルに対する前記セル識別子と、前記地理的なセルに関連付けられたデータベースシャードの前記数とに基づいて、前記データベースシャードに対して一意的なキーを決定することと、
前記一意的なキーに対応する前記データベースシャードを格納するデータベースノードを決定することと、
前記一意的なキーに対応する前記データベースシャードに含まれるジオロケーションデータに対して、前記データベースノードに問い合わせることと
を含むことを特徴とする請求項15に記載のコンピューター読取り可能記録媒体。 The geographic cell is associated with a cell identifier and a number of database shards, and querying the identified plurality of database shards in parallel includes :
For each of the identified plurality of database shards,
determining a unique key for the database shard based on the cell identifier for the geographic cell and the number of database shards associated with the geographic cell;
determining a database node that stores the database shard corresponding to the unique key; and
and querying the database node for geolocation data contained in the database shard that corresponds to the unique key.
前記一意的なキーと、前記データベースノードのスロットの最大数とをハッシュ関数に適用することによって、スロット番号を生成することと、
前記スロット番号に関連付けられたデータベーススロットが前記データベースノードに格納されることを示すデータベースマッピングと、前記スロット番号を比較することと
を含むことを特徴とする請求項16に記載のコンピューター読取り可能記録媒体。 Determining the database node that stores the database shard corresponding to the unique key includes:
generating a slot number by applying a hash function to the unique key and a maximum number of slots for the database node ;
17. The computer-readable medium of claim 16 , further comprising: comparing the slot number with a database mapping indicating that a database slot associated with the slot number is stored in the database node.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2024042326A JP2024088654A (en) | 2019-12-20 | 2024-03-18 | Sharded storage of geolocation data with predictable query response times |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962952140P | 2019-12-20 | 2019-12-20 | |
US62/952,140 | 2019-12-20 | ||
PCT/IB2020/062239 WO2021124287A1 (en) | 2019-12-20 | 2020-12-18 | Sharded storage of geolocated data with predictable query response times |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024042326A Division JP2024088654A (en) | 2019-12-20 | 2024-03-18 | Sharded storage of geolocation data with predictable query response times |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023507499A JP2023507499A (en) | 2023-02-22 |
JP7458485B2 true JP7458485B2 (en) | 2024-03-29 |
Family
ID=76438462
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022538067A Active JP7458485B2 (en) | 2019-12-20 | 2020-12-18 | Sharded storage for geolocation data with predictable query response times |
JP2024042326A Pending JP2024088654A (en) | 2019-12-20 | 2024-03-18 | Sharded storage of geolocation data with predictable query response times |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024042326A Pending JP2024088654A (en) | 2019-12-20 | 2024-03-18 | Sharded storage of geolocation data with predictable query response times |
Country Status (9)
Country | Link |
---|---|
US (2) | US11687530B2 (en) |
EP (1) | EP4076691A4 (en) |
JP (2) | JP7458485B2 (en) |
KR (1) | KR20220114076A (en) |
CN (1) | CN115175747A (en) |
AU (1) | AU2020407633A1 (en) |
CA (1) | CA3165438A1 (en) |
TW (2) | TWI813413B (en) |
WO (1) | WO2021124287A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11504632B1 (en) * | 2019-12-12 | 2022-11-22 | Amazon Technologies, Inc. | Dynamic adjustment of shard count for player matchmaking |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276692A1 (en) | 2010-05-10 | 2011-11-10 | Apple Inc. | Server load balancing using geodata |
US20120054217A1 (en) | 2010-08-24 | 2012-03-01 | International Business Machines Corporation | Virtual world query response system |
US20130073581A1 (en) | 2011-09-15 | 2013-03-21 | Thomas E. Sandholm | Geographically partitioned onlne search system |
WO2013180355A1 (en) | 2012-05-30 | 2013-12-05 | 모다정보통신 주식회사 | Method for providing m2m overlay network, and system, server, and gateway for same |
WO2015192117A1 (en) | 2014-06-14 | 2015-12-17 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
JP2016512620A (en) | 2013-03-30 | 2016-04-28 | ツィンファ ユニバーシティ | Method and server for specifying geographical location of IP using location data of portable terminal |
JP2018060212A (en) | 2013-11-27 | 2018-04-12 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | Virtual and augmented reality system and method |
US20190121902A1 (en) | 2017-10-25 | 2019-04-25 | International Business Machines Corporation | Database Sharding |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8447757B1 (en) * | 2009-08-27 | 2013-05-21 | A9.Com, Inc. | Latency reduction techniques for partitioned processing |
US10997211B2 (en) * | 2010-12-23 | 2021-05-04 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US8550909B2 (en) * | 2011-06-10 | 2013-10-08 | Microsoft Corporation | Geographic data acquisition by user motivation |
US9128789B1 (en) * | 2012-07-31 | 2015-09-08 | Google Inc. | Executing cross-cutting concerns for client-server remote procedure calls |
US9274863B1 (en) * | 2013-03-20 | 2016-03-01 | Google Inc. | Latency reduction in distributed computing systems |
CN105100150B (en) * | 2014-05-13 | 2020-03-31 | 中兴通讯股份有限公司 | Cloud desktop migration method and device and distributed cloud desktop system |
US9875272B1 (en) | 2015-06-23 | 2018-01-23 | Google Inc. | Method and system for designing a database system for high event rate, while maintaining predictable query performance |
US10027748B2 (en) * | 2015-07-10 | 2018-07-17 | Facebook, Inc. | Data replication in a tree based server architecture |
US10331710B2 (en) | 2015-10-01 | 2019-06-25 | Microsoft Technology Licensing, Llc | Partitioning of geographic data |
SG11201805281YA (en) * | 2016-03-04 | 2018-07-30 | Google Llc | Resource allocation for computer processing |
US11496588B2 (en) * | 2016-06-21 | 2022-11-08 | Micro Focus Llc | Clustering layers in multi-node clusters |
CN106178506A (en) * | 2016-07-09 | 2016-12-07 | 杨跃龙 | A kind of parallel real border game interactive point corresponding with terrestrial reference arranges framework |
-
2020
- 2020-12-18 CA CA3165438A patent/CA3165438A1/en active Pending
- 2020-12-18 KR KR1020227025220A patent/KR20220114076A/en active Search and Examination
- 2020-12-18 WO PCT/IB2020/062239 patent/WO2021124287A1/en unknown
- 2020-12-18 TW TW111130707A patent/TWI813413B/en active
- 2020-12-18 JP JP2022538067A patent/JP7458485B2/en active Active
- 2020-12-18 AU AU2020407633A patent/AU2020407633A1/en active Pending
- 2020-12-18 EP EP20903083.2A patent/EP4076691A4/en active Pending
- 2020-12-18 TW TW109145171A patent/TWI777334B/en active
- 2020-12-18 CN CN202080097176.7A patent/CN115175747A/en active Pending
- 2020-12-18 US US17/127,408 patent/US11687530B2/en active Active
-
2023
- 2023-04-11 US US18/133,375 patent/US20230359618A1/en active Pending
-
2024
- 2024-03-18 JP JP2024042326A patent/JP2024088654A/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276692A1 (en) | 2010-05-10 | 2011-11-10 | Apple Inc. | Server load balancing using geodata |
US20120054217A1 (en) | 2010-08-24 | 2012-03-01 | International Business Machines Corporation | Virtual world query response system |
US20130073581A1 (en) | 2011-09-15 | 2013-03-21 | Thomas E. Sandholm | Geographically partitioned onlne search system |
WO2013180355A1 (en) | 2012-05-30 | 2013-12-05 | 모다정보통신 주식회사 | Method for providing m2m overlay network, and system, server, and gateway for same |
JP2016512620A (en) | 2013-03-30 | 2016-04-28 | ツィンファ ユニバーシティ | Method and server for specifying geographical location of IP using location data of portable terminal |
JP2018060212A (en) | 2013-11-27 | 2018-04-12 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | Virtual and augmented reality system and method |
WO2015192117A1 (en) | 2014-06-14 | 2015-12-17 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
US20190121902A1 (en) | 2017-10-25 | 2019-04-25 | International Business Machines Corporation | Database Sharding |
Also Published As
Publication number | Publication date |
---|---|
JP2024088654A (en) | 2024-07-02 |
TW202247009A (en) | 2022-12-01 |
AU2020407633A1 (en) | 2022-08-11 |
TWI813413B (en) | 2023-08-21 |
CN115175747A (en) | 2022-10-11 |
EP4076691A4 (en) | 2023-06-14 |
US20210191940A1 (en) | 2021-06-24 |
KR20220114076A (en) | 2022-08-17 |
TWI777334B (en) | 2022-09-11 |
US11687530B2 (en) | 2023-06-27 |
EP4076691A1 (en) | 2022-10-26 |
WO2021124287A1 (en) | 2021-06-24 |
TW202131204A (en) | 2021-08-16 |
US20230359618A1 (en) | 2023-11-09 |
JP2023507499A (en) | 2023-02-22 |
CA3165438A1 (en) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6905154B2 (en) | Verification of player's real-world position using in-game activities | |
US9723107B1 (en) | Executing cross-cutting concerns for client-server remote procedure calls | |
US10471358B1 (en) | Regulating and scoring player interactions within a virtual world associated with a location-based parallel reality game | |
US10130888B1 (en) | Game data validation | |
JP2024088654A (en) | Sharded storage of geolocation data with predictable query response times | |
TWI804257B (en) | Method, non-transitory computer-readable storage medium, and computer system for multi-user route tracking in an augmented reality environment | |
JP2022153228A (en) | Travel of virtual character | |
US20220351518A1 (en) | Repeatability predictions of interest points | |
US20230271088A1 (en) | Anonymizing User Location Data in a Location-Based Application | |
US11007429B2 (en) | Background process for importing real-world activity data into a location-based game | |
US20210228988A1 (en) | Background process for importing real-world activity data into a location-based game | |
US20230016152A1 (en) | Reducing latency in anticheat dataflow | |
US20240033631A1 (en) | Maintaining object alignment in 3d map segments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220822 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230815 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231114 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240116 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20240215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240318 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7458485 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |