TWI777334B - 具有可預測之查詢回應時間之地理定位資料的分區式儲存 - Google Patents
具有可預測之查詢回應時間之地理定位資料的分區式儲存 Download PDFInfo
- Publication number
- TWI777334B TWI777334B TW109145171A TW109145171A TWI777334B TW I777334 B TWI777334 B TW I777334B TW 109145171 A TW109145171 A TW 109145171A TW 109145171 A TW109145171 A TW 109145171A TW I777334 B TWI777334 B TW I777334B
- Authority
- TW
- Taiwan
- Prior art keywords
- database
- geographic
- game
- partition
- query
- Prior art date
Links
Images
Classifications
-
- 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/24532—Query optimisation of parallel queries
-
- 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)
- Environmental & Geological Engineering (AREA)
- Radar, Positioning & Navigation (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)
Abstract
一系統使得能夠在跨越一分區式資料庫提供一可預測之查詢回應時間之一地理區域中將任意數目個項目加索引。加索引至該地理區域之項目係儲存於一單個分區上,且額外項目被添加至彼分區,只要未滿足指示不合意之查詢回應時間之一溢位條件即可。若滿足了該溢位條件,則該系統將加索引至該地理區域之項目之儲存擴展至一或多個額外分區,以便維持可預測之查詢回應時間。該系統可維持表示用於儲存對應於一地理區域之項目之分區之總數目的一分區計數,該分區計數可用於查詢一或多個相關分區。該系統可應用確定性雜湊以便使分區跨越該分區式資料庫之資料庫節點均勻地分散。
Description
本發明大體而言係關於資料儲存,且特定而言係關於具有可預測之查詢回應時間之任意數目個地理項目之分區式儲存。
提供平行於真實世界之至少一部分之一共享虛擬世界之一平行實境遊戲可代管可吸引一玩家群體之各種互動。提供具有平行於真實世界之至少一部分之一地形之一虛擬世界會允許玩家藉由在真實世界中導航而在虛擬世界中導航。將虛擬環境中之虛擬元素與真實世界中之真實世界物件、位置及動作連結可鼓勵玩家行進至玩家通常會忽視的真實世界中之特徵且注意到該等特徵。在虛擬世界中將虛擬元素設置在與其配對真實世界物件或位置在真實世界中之位置相同之位置中會增加虛擬元素係真實世界之隱藏部分之印象。
在玩平行實境遊戲時,一玩家之用戶端裝置通常接收對應於玩家附近之虛擬元素之資料。隨著虛擬元素之密度及可用資訊之豐富性增加,遊戲資料庫中之資料量增加。使用習用資料庫儲存,此會導致查詢回應時間之一增加。然而,由於平行實境遊戲可經設計以用於玩家與虛擬世界之間的即時互動,因此在可接受之回應時間上存在一上限。因此,需要在針對一地理區域儲存之資料量增加時提供可預測之查詢回應時間之高效儲存方法。
以上及其他問題可藉由用於使得能夠在跨越一分區式資料庫提供一可預測之查詢回應時間之一地理區域中將任何數目個項目加索引(例如,使用一地理索引框架,諸如S2庫)之一系統及方法來解決。在各項實施例中,加索引至地理區域之項目儲存於一單個分區上且額外項目被添加至彼分區,只要未滿足指示不合意之查詢回應時間之一溢位條件(例如,查詢回應時間保持在一所要臨限值以下)即可。若滿足了溢位條件,則系統將加索引至地理區域之項目之儲存擴展至一或多個分區以便維持可預測之查詢回應時間。系統可維持表示用於儲存對應於一地理區域之項目之分區之總數目的一分區計數,該分區計數可用於查詢一或多個相關分區(例如,並行地)。系統可應用確定性雜湊以便使分區跨越分區式資料庫(諸如虛擬或實體資料庫伺服器)之資料庫節點均勻地分散。資料庫之一用戶端可基於分區計數判定對應於地理區域之每一分區儲存於哪些資料庫節點上,而非儲存地理區域之項目儲存於上面的每一資料庫節點之一清單。此使得能夠儲存大地理區之許多項目,同時例如在查詢一單個分區或並行地查詢多個分區時提供可預測之回應時間。
在一項實施例中,系統接收指示一地理位置之一請求。基於該地理位置,系統識別一地理區域。基於該地理區域,系統識別一資料庫之複數個資料庫分區中之一資料庫分區,該複數個資料庫分區對應於該地理區域。系統查詢該經識別資料庫分區以找出對應於該地理區域之地理定位資料,該資料庫分區之該查詢具有一可預測之回應時間。基於該所查詢之地理定位資料,系統處理查詢結果。系統回應於該請求而傳回查詢結果。
相關申請案之交叉參考
本申請案主張2019年12月20日提出申請之第62/952,140號美國臨時申請案之權益,該美國臨時申請案係以全文引用方式併入。
一遊戲伺服器可代管具有一玩家遊戲區之一平行實境遊戲,該玩家遊戲區包含具有平行於真實世界地形之至少一部分之一地形之一虛擬世界。玩家可藉由在真實世界中之一地理座標範圍中導航而在定義虛擬世界中之一虛擬空間之一座標範圍中導航。特定而言,可使用例如與一玩家之用戶端裝置(其可係一行動運算裝置)相關聯之一定位系統(例如,一GPS系統)監視或追蹤玩家之位置。玩家位置資訊可經由一網路提供至代管平行實境遊戲之遊戲伺服器且可由遊戲用於更新虛擬世界中之玩家位置。因此,當玩家帶著其用戶端裝置在真實世界中之一座標範圍中連續地到處移動時,遊戲伺服器可更新,使得玩家亦在平行虛擬世界中之一座標範圍中連續地到處移動。
虛擬世界可包含與所關注真實世界點連結之一或多個虛擬元素。例如,虛擬世界可包含與真實世界中之所關注點(諸如地標、博物館、藝術品、圖書館或其他所關注區)相關聯之各種虛擬元素。與所關注真實世界點連結之虛擬元素可提供虛擬世界係一玩家可藉由玩平行實境遊戲而與其互動的真實世界之一隱藏維度之錯覺。例如,當玩家在真實世界中之地理座標中導航時,玩家可發現提供於平行虛擬世界中之虛擬元素且與其互動。作為平行實境遊戲之部分,各種遊戲目標可鼓勵玩家與此等虛擬元素互動。在某些實施例中,遊戲伺服器可圍繞所關注真實世界點編排平行實境遊戲中之虛擬事件。
可將虛擬世界分割成對應於真實世界之連續地理區域之部分(例如,小區)。在各項實施例中,根據一地理索引框架定義虛擬世界之部分。例如,可根據S2庫定義虛擬世界之部分,S2庫定義以不同粒度等級將地球(三維物件)分割成二維小區之集合之一小區階層。在其他情形中,可使用不同地理索引框架。虛擬世界之部分可用於將與一對應地理區域相關聯之各種地理定位資料(諸如與上文所描述之虛擬元素相關聯之資訊)加索引以用於儲存。隨時間,可將新虛擬元素添加至虛擬世界且與虛擬元素相關聯之資料量可增加。舉例而言,虛擬元素可對應於真實世界中之所關注點且可在系統獲悉新所關注點時添加新虛擬元素(例如,由於所關注點之擁有者或管理者透過群眾外包或使用任何其他適合技術做出之提交)。類似地,當獲得與虛擬元素相關聯之新資訊(例如,新照片、視訊、歷史資訊等)時,可將其聯合虛擬元素一起儲存。因此,對應於虛擬世界之一部分之資料量可隨時間增加。
使用習用方法,隨著資料量增加,用於識別彼資料之查詢回應時間亦增加。然而,為了提供平行實境遊戲之一致效能,無論針對虛擬世界之任何給定部分儲存之資料量如何皆提供可預測之查詢回應時間係合意的。如下文更詳細地描述,各項實施例藉由根據指示不合意之查詢回應時間之一溢位條件限制儲存於任一給定分區中之資料量而提供可預測之查詢回應時間。可儲存每一部分之一分區計數值,其可用於識別含有虛擬世界之給定部分之資料之一分區或若干分區。使用一確定性雜湊方法來識別含有虛擬世界之一給定部分之資料之一分區或若干分區,且查詢分區以找出相關資料(例如,並行地)。因此,無論針對虛擬世界之給定部分儲存之資料量如何,查詢回應時間係可預測的,此乃因分區中之任一者中之資料量皆未超過一臨限值。
儘管所描述實施例係關於存取一平行實境遊戲之地理定位資料,但熟習此項技術者將認識到,相同或類似技術可出於其他目的與地理定位資料一起使用。舉例而言,具有關於本地風景、餐廳、博物館及其他地標之地理資訊之一導遊應用程式可以一類似方式進行分區儲存以提供可預測之查詢回應時間。例示性基於位置之平行實境遊戲系統
一平行實境遊戲係具有平行於真實世界地形之至少一部分之一虛擬世界地形使得真實世界中之玩家移動及動作影響虛擬世界中之動作且反之亦然之一基於位置之遊戲。使用本文中所提供之揭示內容,熟習此項技術者將理解,所描述標的物適用於其中驗證一使用者之位置係合意的其他情況中。另外,基於電腦之系統之固有靈活性允許系統之組件之間及當中之任務及功能性之各種各樣的可能組態、組合及劃分。例如,根據本發明之態樣之系統及方法可使用一單個運算裝置或跨越多個運算裝置(例如,在一電腦網路中連接)來實施。
圖1圖解說明其中可基於在一平行實境遊戲內之活動驗證一玩家之真實世界位置之一經網路連線運算環境100之一項實施例。經網路連線運算環境100提供具有平行於真實世界之一地形之一虛擬世界中之玩家互動。特定而言,真實世界中之一地理區可直接連結或映射至虛擬世界中之一對應區。一玩家可藉由在真實世界中移動至各種地理位置而在虛擬世界中到處移動。例如,一玩家在真實世界中之位置可被追蹤且用於更新玩家在虛擬世界中之位置。通常,玩家在真實世界中之位置係藉由尋找玩家正透過其與虛擬世界互動之一用戶端裝置120之位置且假設玩家位於相同(或大約相同)位置處而判定。舉例而言,在各項實施例中,若玩家在真實世界中之位置在與一虛擬元素在虛擬世界中之虛擬位置對應之真實世界位置之一臨限距離(例如,十米、二十米等)內,則玩家可與該虛擬元素互動。為了方便起見,參考「玩家之位置」描述各項實施例,但熟習此項技術者將瞭解,此類參考可係指玩家之用戶端裝置120之位置。
現在參考圖2,其繪示根據一項實施例之平行於可充當一平行實境遊戲之玩家之遊戲台之真實世界200的一虛擬世界210之一概念圖。如所圖解說明,虛擬世界210可包含平行於真實世界200之地形之一地形。特定而言,定義真實世界200中之一地理區或空間之一座標範圍映射至定義虛擬世界210中之一虛擬空間之一對應座標範圍。真實世界200中之座標範圍可與一城鎮、鄰里、城市、校園、地區、一國家、大陸、整個地球或其他地理區相關聯。該地理座標範圍中之每一地理座標映射至虛擬世界中之一虛擬空間中之一對應座標。
一玩家在虛擬世界210中之位置對應於玩家在真實世界200中之位置。例如,位於真實世界200中之位置212處之玩家A具有虛擬世界210中之一對應位置222。類似地,位於真實世界中之位置214處之玩家B具有虛擬世界中之一對應位置224。當玩家在真實世界中之一地理座標範圍中到處移動時,該等玩家亦在定義虛擬世界210中之虛擬空間之座標範圍中到處移動。特定而言,與玩家攜帶之一行動運算裝置相關聯之一定位系統(例如,一GPS系統)可用於在玩家在真實世界中之地理座標範圍中導航時追蹤一玩家之位置。與玩家在真實世界200中之位置相關聯之資料用於更新玩家在定義虛擬世界210中之虛擬空間之對應座標範圍中之位置。以此方式,玩家可藉由簡單地在真實世界200中之對應地理座標範圍當中行進而在定義虛擬世界210中之虛擬空間之座標範圍中導航一連續軌跡,而不必須簽入或週期性地更新真實世界200中之特定離散位置處之位置資訊。
基於位置之遊戲可包含需要玩家行進至散佈在虛擬世界中之各種虛擬位置處之各種虛擬元素及/或虛擬物件及/或與其互動之複數個遊戲目標。一玩家可藉由行進至虛擬元素或物件在真實世界中之對應位置而行進至此等虛擬位置。例如,一定位系統可連續地追蹤玩家之位置,使得在玩家在真實世界中連續地導航時,玩家亦在平行虛擬世界中連續地導航。玩家可然後與特定位置處之各種虛擬元素及/或物件互動以達成或執行一或多個遊戲目標。
舉例而言,一遊戲目標可需要玩家攜取位於虛擬世界210中之各種虛擬位置處之虛擬元素230或宣告對虛擬元素230之所有權。此等虛擬元素230可連結至真實世界200中之地標、地理位置或物件240。真實世界地標或物件240可係藝術品、紀念館、建築物、企業、圖書管、博物館或其他適合真實世界地標或物件。為了攜取此等虛擬元素230,一玩家必須行進至真實世界中之連結至虛擬元素230之地標或地理位置240且必須執行與虛擬世界210中之虛擬元素230之任何必要互動。舉例而言,圖2之玩家A可必須行進至真實世界200中之一地標240以便與和彼特定地標240連結之一虛擬元素230互動或攜取該虛擬元素。與虛擬元素230之互動可需要真實世界中之動作,諸如拍攝一照片及/或驗證、獲得或攜取關於與虛擬元素230相關聯之地標或物件240之其他資訊。在某些實施例中,與虛擬元素230之互動可進一步促進驗證玩家在真實世界200中之位置匹配玩家在虛擬世界210中之位置。
遊戲目標可需要玩家使用玩家在基於位置之遊戲中收集之一或多個虛擬項目。例如,玩家可在虛擬世界210行進以尋找可有用於完成遊戲目標之虛擬項目(例如武器、生物、能力提升道具(power up)或其他項目)。此等虛擬項目可藉由行進至真實世界200中之不同位置或藉由完成虛擬世界210或真實世界200中之各種動作而被找到或收集。在圖2中所展示之實例中,一玩家使用虛擬項目232來攜取一或多個虛擬元素230。特定而言,一玩家可將虛擬項目232部署在虛擬世界210中接近於虛擬元素230或在虛擬元素230內之位置處。以此方式部署一或多個虛擬項目232可導致特定玩家或特定玩家之團隊/幫派攜取虛擬元素230。
在一項特定實施方案中,作為平行實境遊戲之部分,一玩家可必須搜集虛擬能量。如圖2中所繪示,虛擬能量250可散佈在虛擬世界210中之不同位置處。一玩家可藉由行進至虛擬能量250在現實世界200中之對應位置而收集虛擬能量250。虛擬能量250可用於為虛擬項目提供動力及/或執行遊戲中之各種遊戲目標。失去所有虛擬能量250之一玩家可與遊戲斷開連接。
根據本發明之態樣,平行實境遊戲可係其中遊戲中之每一參與者共享同一虛擬世界之一大型多玩家基於位置之遊戲。玩家可劃分成單獨團隊或幫派且可一起工作以達成一或多個遊戲目標,諸如攜取一虛擬元素或宣告對一虛擬元素之所有權。以此方式,平行實境遊戲可本質上係鼓勵玩家之間在遊戲內協作之一社交遊戲。來自對立團隊之玩家可在平行實境遊戲期間彼此對抗地工作(或有時合作以達成相互目標)。一玩家可使用虛擬項目來攻擊或阻礙對立團隊之玩家之前進。在某些情形中,針對平行實境遊戲中之協作或互動型事件,玩家被鼓勵來聚集在真實世界位置處。在此等情形中,遊戲伺服器尋求確保玩家實際上實體地存在且並非係欺騙的。
平行實境遊戲可具有各種特徵來增強及鼓勵平行實境遊戲內之遊戲玩法。例如,玩家可累積一虛擬貨幣或可遍及遊戲使用(例如,用以購買遊戲中項目)之另一虛擬報酬。隨著玩家完成一或多個遊戲目標且在遊戲內獲得經驗,玩家可前進至各種等級。在某些實施例中,玩家可透過在遊戲中提供之一或多個通信介面而彼此通信。玩家亦可獲得可用於完成遊戲內之遊戲目標之經增強「動力」或虛擬項目。使用本文中所提供之揭示內容,熟習此項技術者應理解,平行實境遊戲可包含各種其他遊戲特徵,此並不背離本發明之範疇。
圖3繪示可作為一玩家與虛擬世界210之間的介面之部分呈現於一用戶端120之一顯示器上之一遊戲介面300之一項實施例。遊戲介面300包含可用於顯示虛擬世界210及遊戲之各種其他態樣(諸如玩家位置222及虛擬世界210中之虛擬元素230、虛擬項目232及虛擬能量250之位置)之一顯示視窗310。使用者介面300亦可顯示其他資訊,諸如遊戲資料資訊、遊戲通信、玩家資訊、用戶端位置驗證指令及與遊戲相關聯之其他資訊。舉例而言,使用者介面可顯示玩家資訊315,諸如玩家姓名、經驗等級及其他資訊。使用者介面300可包含用於存取各種遊戲設定及與遊戲相關聯之其他資訊之一選單320。使用者介面300亦可包含使得遊戲系統與玩家之間及平行實境遊戲之一或多個玩家之間能夠通信之一通信介面330。
根據本發明之各態樣,一玩家可藉由簡單地在真實世界中隨身攜帶一用戶端裝置120而與平行實境遊戲互動。例如,一玩家可藉由簡單地在一智慧型電話上存取與平行實境遊戲相關聯之一應用程式且在真實世界中帶著智慧型電話到處移動而玩遊戲。就此而言,玩家不必為了玩基於位置之遊戲而在一顯示螢幕上連續地觀看虛擬世界之一視覺圖示。因此,使用者介面300可包含允許一使用者與遊戲互動之複數個非視覺元件。例如,遊戲介面可在玩家正接近遊戲中之一虛擬元素或物件時或在平行實境遊戲中發生一重要事件時將聲訊通知提供至玩家。一玩家可利用音訊控制件340控制此等聲訊通知。可端視虛擬元素或事件之類型而將不同類型之聲訊通知提供至使用者。聲訊通知可端視一玩家向一虛擬元素或物件之接近度而增加或減小頻率或音量。可將其他非視覺通知及信號提供至使用者,諸如一振動通知或者其他適合通知或信號。
使用本文中所提供之揭示內容,熟習此項技術者將瞭解,將依據本發明明瞭眾多遊戲介面組態及基礎功能性。本發明不意欲限於任一特定組態。
往回參考圖1,一用戶端120可係可由一玩家使用來與遊戲系統100介接之任何可攜式運算裝置。例如,一用戶端120可係一無線裝置、一個人數位助理(PDA)、可攜式遊戲裝置、蜂巢式電話、智慧型電話、平板電腦、導航系統、手持式GPS系統、可佩戴式運算裝置、具有一或多個處理器之一顯示器,或其他此類裝置。簡言之,一用戶端120可係可使得一玩家能夠與遊戲系統100互動之任何電腦裝置或系統。
用戶端120可包含一或多個處理器及一或多個電腦可讀媒體。電腦可讀媒體可儲存致使處理器執行操作之指令。用戶端120可包含用於提供及接收來自一玩家之資訊之各種輸入/輸出裝置,諸如一顯示螢幕、觸控螢幕、觸控墊、資料輸入鍵、揚聲器、相機及/或適合於語音辨識之一麥克風。用戶端120亦可包含用於記錄來自用戶端120之資料之其他各種感測器,包含但不限於移動感測器、加速度計、陀螺儀、其他慣性量測單元(IMU)、氣壓計、定位系統、溫度計、光感測器等。用戶端120可進一步包含用於經由網路130提供通信之一網路介面。一網路介面可包含用於與一或多個網路介接之任何適合組件,包含例如傳輸器、接收器、埠、控制器、天線,或其他適合組件。
由於經網路連線運算環境100提供一基於位置之遊戲,因此用戶端120較佳地係可容易地攜帶或以其他方式隨一玩家運輸之一可攜式運算裝置,諸如一智慧型電話或平板電腦。在圖1中所展示之實施例中,每一用戶端120包含軟體組件,諸如一遊戲模組122及一定位模組124。在其他實施例中,用戶端120可包含不同或額外元件,諸如一顯示器(作為用戶端120之一組件或在用戶端120外部之一組件)、各種輸入裝置(例如,一觸控螢幕、一滑鼠、一手寫筆等)。
遊戲模組122為一玩家提供參與平行實境遊戲之一介面。遊戲伺服器110經由網路130將遊戲資料傳輸至用戶端120以供用戶端120處之遊戲模組122使用來為遠離遊戲伺服器110之位置處之玩家提供遊戲之本端版本。伺服器110可包含用於經由網路130提供通信之一網路介面。一網路介面可包含用於與一或多個網路介接之任何適合組件,包含例如傳輸器、接收器、埠、控制器、天線,或其他適合組件。
由用戶端120執行之遊戲模組122在一玩家與平行實境遊戲之間提供一介面。遊戲模組122可在與用戶端120相關聯之一顯示裝置上呈現一使用者介面,該使用者介面顯示與遊戲相關聯之一虛擬世界(例如再現虛擬世界之影像)且允許一使用者在該虛擬世界中互動以執行各種遊戲目標。遊戲模組122亦可控制各種其他輸出以在不需要一玩家觀看一顯示螢幕之情況下允許該玩家與遊戲互動。例如,遊戲模組122可控制允許玩家在不注視顯示螢幕之情況下玩遊戲之各種音訊、振動或其他通知。遊戲模組122可存取自遊戲伺服器110接收之遊戲資料以向使用者提供遊戲之一準確表示。遊戲模組122可接收及處理玩家輸入且經由網路130將更新提供至遊戲伺服器110。
定位模組124可係用於監視用戶端120之位置之任何裝置或電路。舉例而言,定位模組124可藉由使用一衛星導航定位系統(例如一GPS系統、一伽利略定位系統、全球導航衛星系統(GLONASS)、北斗衛星導航與定位系統)、一慣性導航系統、一航位推算系統、基於IP位址、藉由使用三角量測及/或至蜂巢式基地台或Wi-Fi熱點之接近度及/或用於判定位置之其他適合技術而判定實際或相對位置。定位模組124可進一步包含可幫助準確地定位用戶端120位置之各種其他感測器。
當玩家在真實世界中帶著用戶端120到處移動時,定位模組124追蹤玩家之位置且將玩家位置資訊提供至遊戲模組122。遊戲模組122基於玩家在真實世界中之實際位置而更新與遊戲相關聯之虛擬世界中之玩家位置。因此,一玩家可僅藉由在真實世界中攜帶或運輸用戶端120而與虛擬世界互動。特定而言,玩家在虛擬世界中之位置可對應於玩家在真實世界中之位置。遊戲模組122可經由網路130將玩家位置資訊提供至遊戲伺服器110,使得通用遊戲模組112遍及遊戲保持追蹤所有玩家位置。應理解,與一玩家相關聯之位置資訊僅在已向玩家通知玩家之位置資訊將被存取及位置資訊將如何在遊戲之內容脈絡中利用之後被授予許可之情況下被利用(例如,用以更新虛擬世界中之玩家位置)。另外,與玩家相關聯之任何位置資訊將被以保護玩家隱私之一方式儲存及維持。
經網路連線運算環境100使用一用戶端-伺服器架構,其中一遊戲伺服器110經由一網路130與一或多個用戶端120通信以在用戶端120處將一平行實境遊戲提供至玩家。經網路連線運算環境100亦可包含其他外部系統,諸如贊助者/廣告者系統或企業系統。儘管圖1中圖解說明僅一個用戶端120,但任何數目個用戶端120或其他外部系統可經由網路130連接至遊戲伺服器110。此外,經網路連線運算環境100可含有可以不同於下文所描述之一方式在用戶端120與伺服器110之間分散之不同或額外元件及功能性。
遊戲伺服器110可係任何運算裝置且可包含一或多個處理器及一或多個電腦可讀媒體。電腦可讀媒體可儲存致使處理器執行操作之指令。遊戲伺服器110可包含一遊戲資料庫115或可與遊戲資料庫115通信。遊戲資料庫115儲存在平行實境遊戲中使用之遊戲資料以經由網路130供應或提供至用戶端120。
儲存於遊戲資料庫115中之遊戲資料可包含:(1)與平行實境遊戲中之虛擬世界相關聯之資料(例如用於在一顯示裝置上再現虛擬世界之影像資料、虛擬世界中之位置之地理座標等);(2)與平行實境遊戲之玩家相關聯之資料(例如玩家設定檔,包含但不限於玩家資訊、玩家經驗等級、玩家貨幣、虛擬世界/真實世界中之當前玩家位置、玩家能量等級、玩家偏好、團隊資訊、幫派資訊等);(3)與遊戲目標相關聯之資料(例如與當前遊戲目標、遊戲目標狀態、過去遊戲目標、未來遊戲目標,所要遊戲目標等相關聯之資料);(4)與虛擬世界中之虛擬元素相關聯之資料(例如虛擬元素之位置、虛擬元素之類型、與虛擬元素相關聯之遊戲目標;虛擬元素之對應實際世界位置資訊;虛擬元素之行為、虛擬元素之相關性等);(5)與連結至虛擬世界元素之真實世界物件、地標、位置相關聯之資料(例如真實世界物件/地標之位置、真實世界物件/地標之描述、連結至真實世界物件之虛擬元素之相關性等);(6)遊戲狀態(例如當前玩家數目、當前遊戲目標狀態、玩家排行榜等);(7)與玩家動作/輸入相關聯之資料(例如當前玩家位置、過去玩家位置、玩家移動、玩家輸入、玩家查詢、玩家通信等);及(8)在平行實境遊戲之實施期間使用、與其相關或在其期間獲得之任何其他資料。儲存於遊戲資料庫115中之遊戲資料可由系統管理員及/或藉由經由網路130自系統100之使用者/玩家(諸如自一或多個用戶端120)接收之資料離線或即時地填充。
遊戲伺服器110可經組態以經由網路130自一或多個用戶端120 (例如經由遠端程序呼叫(RPC))接收針對遊戲資料之請求且對彼等請求做出回應。例如,遊戲伺服器110可將遊戲資料編碼於一或多個資料檔案中且將資料檔案提供至用戶端120。另外,遊戲伺服器110可經組態以經由網路130自一或多個用戶端120接收遊戲資料(例如玩家位置、玩家動作、玩家輸入等)。例如,用戶端120可經組態以週期性地將玩家輸入及其他更新發送至遊戲伺服器110,遊戲伺服器110使用該等玩家輸入及其他更新來更新遊戲資料庫115中之遊戲資料以反映遊戲之任何及所有經改變狀況。
在所展示之實施例中,伺服器110包含一通用遊戲模組112、一商業遊戲特徵模組114、一資料收集模組116、一事件模組118及一查詢模組119。遊戲伺服器110自一遠端分散式遊戲資料庫115存取遊戲資料。下文參考圖4更詳細地描述查詢模組119及遊戲資料庫115之各項實施例。在其他實施例中,遊戲伺服器110含有不同及/或額外元件。另外,該等功能可以不同於所描述之一方式在元件當中分散。例如,遊戲資料庫115可整合至遊戲伺服器110中。
通用遊戲模組112代管所有玩家之平行實境遊戲且充當所有玩家之平行實境遊戲之當前狀態之權威來源。通用遊戲模組112自用戶端120接收遊戲資料(例如玩家輸入、玩家位置、玩家動作、地標資訊等)且將所接收之遊戲資料併入至平行實境遊戲之所有玩家之總體平行實境遊戲中。通用遊戲模組112亦可管理遊戲資料經由網路130向用戶端120之遞送。通用遊戲模組112亦可管控用戶端120之安全態樣,包含但不限於保護用戶端120與遊戲伺服器110之間的連接、在各種用戶端120之間建立連接,及驗證各種用戶端120之位置。
在其中包含商業遊戲特徵模組之實施例中,商業遊戲特徵模組114可與通用遊戲模組112分開或係其一部分。商業遊戲特徵模組114可管理在平行實境遊戲內是否包含與真實世界中之一商業活動連結之各種遊戲特徵。例如,商業遊戲特徵模組114可經由網路130 (經由一網路介面)自外部系統(諸如贊助者/廣告者、企業或其他實體)接收要在平行實境遊戲中包含與商業活動連結之遊戲特徵之請求。商業遊戲特徵模組114可然後安排在平行實境遊戲中包含此等遊戲特徵。
遊戲伺服器110可進一步包含一資料收集模組116。在包含資料收集模組之實施例中,資料收集模組116可與通用遊戲模組112分開或係通用遊戲模組112之部分。資料收集模組116可管理在平行實境遊戲內是否包含與真實世界中之一資料收集活動連結之各種遊戲特徵。例如,資料收集模組116可修改儲存於遊戲資料庫115中之遊戲資料以在平行實境遊戲中包含與資料收集活動連結之遊戲特徵。資料收集模組116亦可分析由玩家依據資料收集活動收集之資料且提供該資料以供由各種平台存取。
事件模組118管理玩家對平行實境遊戲中之事件之存取。儘管為了方便起見使用術語「事件」,但應瞭解,此術語不必指一特定位置或時間之一特定事件。而是,其可指對存取受控之遊戲內容之任何提供,其中使用一或多個存取準則來判定玩家是否可存取彼內容。此內容可係包含具有較少或不具有存取控制之遊戲內容之一較大平行實境遊戲之部分,或可係一獨立、存取受控之平行實境遊戲。
查詢模組119構建且執行關於遊戲資料庫115之查詢且將結果提供至經網路連線運算環境100之其他組件(例如,提供至一用戶端裝置120之遊戲模組122以供在一平行實境遊戲中使用)。圖4圖解說明遊戲資料庫115之一項實施例。在所展示之實施例中,遊戲資料庫115包含N個節點410A至410N。每一節點410可係一不同實體機器或一不同虛擬機器。因此,節點410可被獨立地查詢。當將與表示一地理區域之一小區對應之一分區之地理定位資料添加至一節點410時,查詢模組119監視該節點以發現一溢位條件,該溢位條件指示針對儲存於該節點上之資料之查詢及(引申開來)針對該分區之查詢之一回應時間係不合意的。溢位條件可係對儲存於節點上之資料量、儲存於節點上之項目數目、關於節點之查詢之查詢回應時間或指示儲存於節點上之資料量及因此指示預期查詢回應時間之任何其他適合參數之一限制。若滿足了溢位條件,則查詢模組119使小區之分區計數遞增且在一不同節點410上開始小區之一新分區。因此,當一給定小區之資料量增加時,對應於該小區之地理定位資料儲存於上面的節點410之數目動態地增加,同時任一節點上之資料量係受拘限的,使得查詢回應時間保持可預測。在某些實施例中,查詢模組119設定與節點上之分區相關聯之一旗標(例如,一經儲存參數),該旗標指示與小區相關聯之分區已擴展至另一節點。舉例而言,查詢模組119可在儲存一小區之新資料時檢查是否設定了與該小區相關聯之一或多個分區之旗標。在此情形中,若查詢模組119判定設定了一特定分區之旗標,則其可嘗試將資料儲存於另一分區上,直至查詢模組119識別出其中未設定旗標之一分區或針對小區產生了一新分區為止。
往回參考圖1,查詢模組119回應於自用戶端裝置120接收之請求而基於用戶端裝置120之一位置產生針對地理定位資料之查詢。該等查詢可檢索、更新或以其他方式操縱地理定位資料。查詢模組119進一步基於所查詢之地理定位資料之處理將一查詢回應(諸如包含所請求之地理定位資料之查詢回應)提供至用戶端裝置120。在一項實施例中,查詢模組119自一用戶端120接收一位置(例如,由定位模組124產生之一GPS位置)且諸如藉由以下操作而基於該位置識別所關注虛擬世界之一或多個部分:查詢表示與包含該位置之地理區域對應之虛擬世界之部分之小區之一地理小區索引。舉例而言,在其中使用S2小區之情形中,查詢模組可識別用戶端120位於其中之一指定級別(例如,級別12)之S2小區、其至少一部分在位置之一指定半徑(例如,兩千米)內之一指定級別(例如,級別16)之任一S2小區、完全在一指定半徑內之一指定級別之任一S2小區,或S2小區之任何其他適合集合(例如,在考慮到用戶端之當前行進方向之一橢圓形內)。
每一S2小區具有一小區ID。查詢模組119亦儲存指示包含小區之資料之分區數目之一分區編號。查詢模組119使用小區ID及分區編號來產生包含小區之資料之每一分區之一唯一鍵。可藉由組合小區ID與自零至分區編號之每一整數值而產生一唯一鍵或若干唯一鍵。舉例而言,針對一小區ID 7686及分區編號3,可產生三個鍵7686-0、7686-1及7686-2。可使用產生唯一鍵之任何適合組合方法,諸如串連。
查詢模組119基於唯一鍵判定具有相關資料之每一分區位於分散式資料庫115之哪一節點。在某些實施例中,查詢模組119應用一確定性雜湊技術以將一唯一鍵轉換成一槽編號。例如,資料庫115可具有最大數目個槽(例如,16565),且查詢模組119可使用最大槽數目將一模數雜湊技術應用於唯一鍵以產生槽編號(例如,以最大槽數目為模對唯一鍵進行模運算)。在其他實施例中,可使用其他確定性雜湊技術來將唯一鍵轉換成槽編號。
查詢模組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)來執行。
本文中所論述之技術參考伺服器、資料庫、軟體應用程式及其他基於電腦之系統以及所採取之動作及發送至此等系統及自此等系統發送之資訊。熟習此項技術者將認識到,基於電腦之系統之固有靈活性允許組件之間及組件當中的任務及功能性之各種各樣的可能組態、組合及劃分。例如,本文中所論述之伺服器處理程序可使用一單個伺服器或組合地工作之多個伺服器來實施。除了另外陳述之情況,資料庫及應用程式可實施於一單個系統上或跨越多個系統分散。類似地,分散式組件可順序地或並行地操作。
另外,在其中本文中所論述之系統及方法存取且分析關於使用者之個人資訊或利用諸如位置資訊等個人資訊之情況下,可為使用者提供控制程式或特徵是否收集該資訊及控制是否及/或如何自系統或其他應用程式接收內容之一機會。直至使用者已被提供收集何種資訊及如何使用資訊之有意義通知之後才收集或使用此類資訊或資料。除非使用者提供使用者可在任何時間撤銷或修改之同意書,否則不收集或使用資訊。因此,使用者可具有對如何收集關於使用者之資訊及應用程式或系統如何使用該資訊之控制。另外,特定資訊或資料可在被儲存及被使用之前以一或多個方式處理,使得個人可識別資訊被移除。舉例而言,可處理一使用者之身份,使得不可針對該使用者判定個人可識別資訊。實例方法
圖5圖解說明用於提供包含具有可預測之查詢回應時間之任意數目個項目之地理定位資料之一實例方法500。圖5之步驟係自查詢模組119執行方法500之角度圖解說明的。然而,該等步驟中之某些或所有步驟可由其他實體及/或組件執行。另外,某些實施例可並行地執行該等步驟、以不同次序執行該等步驟,或執行不同步驟。
在圖5中所展示之實施例中,方法500開始於查詢模組119接收指示一地理位置(例如,一用戶端120之GPS座標)之一請求。如先前所描述,該請求可描述各種資料庫查詢,諸如要檢索、更新或以其他方式修改地理定位資料之一請求。查詢模組119基於該地理位置而識別520一或多個地理區域。舉例而言,如先前所描述,地理區域可係與該位置相距一預定距離內之一指定級別之S2小區。
查詢模組119識別530一資料庫之一或多個資料庫分區,其中一或多個資料庫分區各自對應於一或多個地理區域中之一各別地理區域。如先前所描述,分區可使用一確定性雜湊技術來識別。查詢模組119查詢540經識別分區以找出對應於一或多個地理區域之地理定位資料,其中查詢540具有一可預測之查詢回應時間。如上文所描述,若經識別資料庫分區包含多個資料庫分區,則查詢模組119可並行地查詢多個分區。查詢模組119使用所查詢之地理定位資料處理550查詢結果且作為對所接收請求之一回應而傳回560查詢結果。舉例而言,若查詢模組119並行地查詢多個分區,則查詢模組119可將來自並行查詢中之每一者之查詢結果(例如,自各別分區中之每一者檢索之地理定位資料)彙總成一總體查詢結果且作為對所接收請求之回應而提供總體查詢結果。實例運算系統
圖6係圖解說明能夠自一機器可讀媒體讀取指令且在一處理器(或控制器)中執行指令之一實例機器之組件之一方塊圖。具體而言,圖6展示呈一電腦系統600之實例形式之一機器之一圖解圖示。電腦系統600可用於執行用於致使機器執行本文中所描述之方法(或處理程序)中之任一者之指令624 (例如,程式碼或軟體)。該機器可操作為一獨立式裝置或聯合其他經連接(例如,經網路連線)裝置提供所描述功能性。該機器可以一伺服器-用戶端網路環境中之一伺服器或一用戶端之能力操作,或操作為一同級間(或分散式)網路環境中之一同級機器。
該機器可係一伺服器電腦、一用戶端電腦、一個人電腦(PC)、一平板PC、一智慧型電話、一網路路由器,或能夠執行指定由彼機器採取之動作之指令1024 (順序或以其他方式)之任何其他機器。此外,雖然僅圖解說明一單個機器,但術語「機器」亦應理解為包含個別地或聯合地執行指令624以執行本文中所論述之方法中之任一者或多者之機器之任何集合。
實例電腦系統600包含一或多個處理單元(通常係一或多個處理器602)。舉例而言,處理器602係一中央處理單元(CPU)、一圖形處理單元(GPU)、一數位信號處理器(DSP)、一控制器、一狀態機、一或多個特殊應用積體電路(ASIC)、一或多個射頻積體電路(RFIC),或此等之任何組合。本文中對一處理器602之任何提及可係指一單個處理器或多個處理器。電腦系統600亦包含一主記憶體604。該電腦系統可包含一儲存單元616。處理器602、記憶體604及儲存單元616經由一匯流排608進行通信。
另外,電腦系統600可包含一靜態記憶體606、一顯示驅動器610 (例如,用以驅動一電漿顯示面板(PDP)、一液晶顯示器(LCD)或一投影儀)。電腦系統600亦可包含文數輸入裝置612 (例如,一鍵盤)、一游標控制裝置614 (例如,一滑鼠、一追蹤球、一操縱桿、一運動感測器、一觸控螢幕或其他定位儀器)、一信號產生裝置618 (例如,一揚聲器)及一網路介面裝置620,其亦經組態以經由匯流排608進行通信。電腦系統600亦可包含其他輸入裝置/感測器,諸如一麥克風、相機、氣壓計、陀螺儀、加速度計等。
儲存單元616包含上面儲存體現本文中所描述之方法或功能中之任一者或多者之指令624 (例如,軟體)之一機器可讀媒體622。指令624亦可在其由電腦系統600執行期間完全或至少部分地駐存於主記憶體604內或處理器602內(例如,一處理器之快取記憶體內),主記憶體604及處理器602亦構成機器可讀媒體。指令624可在一網路130上經由網路介面裝置620傳輸或接收。
雖然機器可讀媒體622在一實例實施例中展示為一單個媒體,但術語「機器可讀媒體」應理解為包含能夠儲存指令624之一單個媒體或多個媒體(例如,一集中式或分散式資料庫或者相關聯快取記憶體及伺服器)。術語「機器可讀媒體」亦應理解為包含能夠儲存供由機器執行且致使機器執行本文中所揭示之方法中之任一者或多者之指令624之任何媒體。術語「機器可讀媒體」包含但不限於呈固態記憶體、光學媒體及磁性媒體之形式之資料儲存庫。額外考量
已出於圖解說明之目的呈現對實施例之前述說明;其不意欲係窮盡性的或將專利權限於所揭示之精確形式。熟習此項技術者可瞭解,依據以上揭示內容,許多修改及變化形式係可能的。
此說明之某些部分描述對資訊之操作之演算法及符號表示方面之實施例。此等演算法說明及表示通常由資料處理技術領域之熟習此項技術者用來向其他熟習此項技術者有效地傳達其工作之實質。雖然在功能上、運算上或邏輯上描述此等操作,但應將其理解為由電腦程式或等效電路、微碼或諸如此類來實施。此外,亦已證明有時將此等操作配置稱為模組係方便的,而不會喪失通用性。所描述之操作及其相關聯模組可以軟體、韌體、硬體或其任何組合來體現。
本文中所描述之步驟、操作或處理程序中之任一者可以一或多個硬體或軟體模組單獨地或與其他裝置組合地執行或實施。在一項實施例中,一軟體模組係以包括含有電腦程式碼之一電腦可讀媒體之一電腦程式產品實施,該電腦程式碼可由用於執行所描述之步驟、操作或處理程序中的任何或所有步驟、操作或處理程序之一電腦處理器執行。
實施例亦可係關於一種用於執行本文中之操作之設備。此設備可專門針對所需目的而構造,及/或其可包括藉由儲存於電腦中之一電腦程式來選擇性地啟動或重新組態之一般用途運算裝置。此一電腦程式可儲存於一非暫時性有形電腦可讀儲存媒體或可耦合至一電腦系統匯流排之適合於儲存電子指令之任何類型之媒體中。此外,本說明書中所提及之任何運算系統可包含一單個處理器或可係採用多個處理器設計以實現經提高運算能力之架構。
實施例亦可係關於藉由本文中所描述之一運算處理程序產生之一產品。此一產品可包括自一運算處理程序產生之資訊(其中該資訊被儲存於一非暫時性有形電腦可讀儲存媒體上),且可包含一電腦程式產品之任何實施例或本文中所描述之其他資料組合。
如本文中所使用,對「一項實施例」或「一實施例」之任何提及意指結合該實施例一起闡述之一特定元件、特徵、結構或特性包含於至少一項實施例中。片語「在一項實施例」中在本說明書中之各種地方之出現不必全部指代同一實施例。類似地,「一(a或an)」在一元件或組件前面之使用係僅為了方便起見。此說明應理解為意指存在元件或組件中之一或多者,除非顯而易見其另有其他意指。
在將值描述為「大約」或「實質上」(或其派生詞)之情況下,此類值應被解釋為在+/-10%上係準確的,除非自內容脈絡明瞭另一含義。舉例而言,「大約十」應理解為意指「在自九至十一之一範圍內」。
如本文中所使用,術語「包括(comprise)」、「包括(comprising)」、「包含(include)」、「包含(including)」、「具有(has)」、「具有(having)」或其任何其他變化意欲涵蓋一非窮盡性包含。舉例而言,包括一系列元素之一處理程序、方法、物品或設備未必僅限於彼等元素,而是可包含未明確列出或此處理程序、方法、物品或設備所固有之其他元素。此外,除非明確陳述相反之情形,否則「或」係指一包含性或而非一排他性或。舉例而言,一條件A或B係藉由以下情況中之任一者滿足:A係真(或存在)且B係假(或不存在),A係假(或不存在)且B係真(或存在),以及A及B兩者皆係真(或存在)。
在閱讀本發明之後,熟習此項技術者將瞭解可用於採用所描述之技術及方法之又一些額外替代結構及功能設計。因此,雖然已圖解說明及描述特定實施例及應用,但應理解,所描述標的物不限於所揭示之精確構造及組件。保護之範疇應僅受隨附申請專利範圍限制。
最後,本說明書中所使用之語言主要係出於易讀性及指導性目的而選擇,且其可並非為劃定或限定專利權而選擇。因此,意欲專利權之範疇不受此詳細說明限制,而是由討論基於本文之一應用之任何技術方案限制。因此,實施例之揭示內容意欲說明而非限制在隨附申請專利範圍中陳述的專利權之範疇。
100:經網路連線運算環境/遊戲系統/系統
110:遊戲伺服器/伺服器
112:通用遊戲模組
114:商業遊戲特徵模組
115:遊戲資料庫/遠端分散式遊戲資料庫/分散式資料庫/資料庫
116:資料收集模組
118:事件模組
119:查詢模組
120:用戶端裝置/用戶端/請求用戶端
122:遊戲模組
124:定位模組
130:網路
200:真實世界/現實世界
210:虛擬世界
212:位置
214:位置
222:對應位置/玩家位置
224:對應位置
230:虛擬元素
232:虛擬項目
240:地標/地理位置/物件/真實世界地標或物件
250:虛擬能量
300:遊戲介面/使用者介面
310:顯示視窗
315:玩家資訊
320:選單
330:通信介面
340:音訊控制件
410A至410N:節點
500:方法
510:步驟
520:步驟
530:步驟
540:步驟
550:步驟
560:步驟
600:電腦系統
602:處理器
604:主記憶體/記憶體
606:靜態記憶體
608:匯流排
610:顯示驅動器
612:文數輸入裝置
614:游標控制裝置
616:儲存單元
618:信號產生裝置
620:網路介面裝置
622:機器可讀媒體
624:指令
圖1係根據一項實施例之一經網路連線運算環境之一方塊圖,在該經網路連線運算環境中,可以可預測之查詢回應時間儲存任意數目個地理項目之遊戲資料。
圖2繪示根據一項實施例之具有平行於真實世界之一地形之一虛擬世界之一圖示。
圖3繪示根據一項實施例之一平行實境遊戲之一例示性遊戲介面。
圖4係根據一項實施例之圖1中所展示之遊戲資料庫之一方塊圖。
圖5係根據一項實施例之提供具有可預測之查詢時間之任意數目個地理項目之遊戲資料之一方法的一流程圖。
圖6係圖解說明根據一項實施例之適合於在圖1之經網路連線運算環境中使用之一實例電腦之一方塊圖。
100:經網路連線運算環境/遊戲系統/系統
110:遊戲伺服器/伺服器
112:通用遊戲模組
114:商業遊戲特徵模組
115:遊戲資料庫/遠端分散式遊戲資料庫/分散式資料庫/資料庫
116:資料收集模組
118:事件模組
119:查詢模組
120:用戶端裝置/用戶端/請求用戶端
122:遊戲模組
124:定位模組
130:網路
Claims (18)
- 一種用於檢索地理定位資料(geolocated data)之方法,該方法包括:根據一溢位條件(overflow condition)評估儲存於一或多個資料庫分區(database shards)之一集合中之一資料庫分區內之地理定位資料,該資料庫分區集合對應於一地理區域,且該溢位條件指示針對該資料庫分區之一查詢之一回應時間係不合意的;基於該評估判定儲存於該資料庫分區內之該地理定位資料滿足該溢位條件;回應於判定滿足了該溢位條件,將一新資料庫分區添加至對應於該地理區域之該資料庫分區集合;回應於接收到與該地理區域相關聯之額外地理定位資料待儲存,將該額外地理定位資料儲存於該新資料庫分區中;接收地理定位資料之一請求,該請求指示該地理區域內之一地理位置;回應於該請求,使用該地理位置識別該資料庫分區集合;查詢該資料庫分區集合以找出對應於該地理區域之地理定位資料,該資料庫分區集合之該查詢具有一可預測之回應時間;及回應於該請求而傳回該等查詢結果。
- 如請求項1之方法,其中該查詢進一步包括:並行地查詢該資料庫分區集合以找出對應於該地理區域之地理定位資料,該資料庫分區集合之該並行查詢具有該可預測之回應時間。
- 如請求項1之方法,其中該溢位條件包括以下各項中之一或多者:儲存於該資料庫分區內之地理定位資料之一臨限記憶體大小、儲存於該資料庫分區內之資料庫記錄之一臨限數目,或針對該資料庫分區之查詢之一臨限查詢回應時間。
- 如請求項1之方法,其進一步包括:回應於判定該地理定位資料滿足該溢位條件,設定與該資料庫分區相關聯之一旗標,該旗標指示對應於該地理區域之資料庫分區之一數目已增加。
- 如請求項1之方法,其中該請求包含指示該地理區域之一大小之一小區級別,且其中識別該地理區域包括:使用該地理位置及該小區級別查詢一地理小區索引以找出對應於該地理區域之一地理小區。
- 如請求項5之方法,其中該地理小區與一小區識別符及一定數目個資料庫分區相關聯,且其中查詢該經識別資料庫分區包括:基於該地理小區之該小區識別符及與該地理小區相關聯之資料庫分區之該數目而判定該地理小區之該資料庫分區之一唯一鍵;判定儲存對應於該唯一鍵之該資料庫分區之一資料庫節點;及查詢該資料庫節點以找出包含於對應於該唯一鍵之該資料庫分區中之地理定位資料。
- 如請求項6之方法,其中判定儲存對應於該唯一鍵之該資料庫分區之該資料庫節點包括:藉由將該唯一鍵及該資料庫之槽之一最大數目應用於一雜湊函數而產生一槽編號;及比較該槽編號與指示相關聯於該槽編號之一資料庫槽係儲存於該資料庫節點上之一資料庫映射。
- 如請求項1之方法,其中該請求係從一用戶端裝置接收,且該地理位置對應於該用戶端裝置之一地理位置。
- 如請求項1之方法,其中該地理定位資料包含與該地理區域內之位置相關聯之一或多個虛擬元素。
- 如請求項9之方法,其中該一或多個虛擬元素與該用戶端裝置上之一平行實境遊戲應用程式之一虛擬世界相關聯。
- 一種包括指令之非暫時性電腦可讀儲存媒體,該等指令在由一電腦處理器執行時致使該處理器執行包括以下各項之操作:根據一溢位條件評估儲存於一或多個資料庫分區之一集合中之一資料庫分區內之地理定位資料,該資料庫分區集合對應於一地理區域,且該溢位條件指示針對該資料庫分區之一查詢之一回應時間係不合意的;基於該評估判定儲存於該資料庫分區內之該地理定位資料滿足該溢 位條件;回應於判定滿足了該溢位條件,將一新資料庫分區添加至對應於該地理區域之該資料庫分區集合;回應於接收到與該地理區域相關聯之額外地理定位資料待儲存,將該額外地理定位資料儲存於該新資料庫分區中;接收地理定位資料之一請求,該請求指示該地理區域內之一地理位置;回應於該請求,使用該地理位置識別該資料庫分區集合;查詢該資料庫分區集合以找出對應於該地理區域之地理定位資料,該資料庫分區集合之該查詢具有一可預測之回應時間;及回應於該請求而傳回該等查詢結果。
- 如請求項11之電腦可讀儲存媒體,其中該查詢進一步包括:並行地查詢該資料庫分區集合以找出對應於該地理區域之地理定位資料,該資料庫分區集合之該並行查詢具有該可預測之回應時間。
- 如請求項11之電腦可讀儲存媒體,其中該溢位條件包括以下各項中之一或多者:儲存於該資料庫分區內之地理定位資料之一臨限記憶體大小、儲存於該資料庫分區內之資料庫記錄之一臨限數目,或針對該資料庫分區之查詢之一臨限查詢回應時間。
- 如請求項11之電腦可讀儲存媒體,其中該等指令進一步致使該處理器執行包括以下各項之操作: 回應於判定該地理定位資料滿足該溢位條件,設定與該資料庫分區相關聯之一旗標,該旗標指示對應於該地理區域之資料庫分區之一數目已增加。
- 如請求項11之電腦可讀儲存媒體,其中該請求包含指示該地理區域之一大小之一小區級別,且其中識別該地理區域包括:使用該地理位置及該小區級別查詢一地理小區索引以找出對應於該地理區域之一地理小區。
- 如請求項15之電腦可讀儲存媒體,其中該地理小區與一小區識別符及一定數目個資料庫分區相關聯,且其中查詢該經識別資料庫分區包括:基於該地理小區之該小區識別符及與該地理小區相關聯之資料庫分區之該數目而判定該地理小區之該資料庫分區之一唯一鍵;判定儲存對應於該唯一鍵之該資料庫分區之一資料庫節點;及查詢該資料庫節點以找出包含於對應於該唯一鍵之該資料庫分區中之地理定位資料。
- 如請求項16之電腦可讀儲存媒體,其中判定儲存對應於該唯一鍵之該資料庫分區之該資料庫節點包括:藉由將該唯一鍵及該資料庫之槽之一最大數目應用於一雜湊函數而產生一槽編號;及比較該槽編號與指示相關聯於該槽編號之一資料庫槽係儲存於該資料庫節點上之一資料庫映射。
- 如請求項11之電腦可讀儲存媒體,其中該請求係從一用戶端裝置接收,且該地理位置對應於該用戶端裝置之一地理位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962952140P | 2019-12-20 | 2019-12-20 | |
US62/952,140 | 2019-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202131204A TW202131204A (zh) | 2021-08-16 |
TWI777334B true TWI777334B (zh) | 2022-09-11 |
Family
ID=76438462
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109145171A TWI777334B (zh) | 2019-12-20 | 2020-12-18 | 具有可預測之查詢回應時間之地理定位資料的分區式儲存 |
TW111130707A TWI813413B (zh) | 2019-12-20 | 2020-12-18 | 具有可預測之查詢回應時間之地理定位資料的分區式儲存 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111130707A TWI813413B (zh) | 2019-12-20 | 2020-12-18 | 具有可預測之查詢回應時間之地理定位資料的分區式儲存 |
Country Status (9)
Country | Link |
---|---|
US (2) | US11687530B2 (zh) |
EP (1) | EP4076691A4 (zh) |
JP (1) | JP7458485B2 (zh) |
KR (1) | KR20220114076A (zh) |
CN (1) | CN115175747A (zh) |
AU (1) | AU2020407633A1 (zh) |
CA (1) | CA3165438A1 (zh) |
TW (2) | TWI777334B (zh) |
WO (1) | WO2021124287A1 (zh) |
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276692A1 (en) * | 2010-05-10 | 2011-11-10 | Apple Inc. | Server load balancing using geodata |
TW201250613A (en) * | 2011-06-10 | 2012-12-16 | Microsoft Corp | Geographic data acquisition by user motivation |
WO2015192117A1 (en) * | 2014-06-14 | 2015-12-17 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
CN106178506A (zh) * | 2016-07-09 | 2016-12-07 | 杨跃龙 | 一种与地标对应的平行实境游戏互动点设置框架 |
Family Cites Families (16)
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 |
US8458209B2 (en) * | 2010-08-24 | 2013-06-04 | International Business Machines Corporation | Virtual world query response system |
US10997211B2 (en) * | 2010-12-23 | 2021-05-04 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US9396275B2 (en) * | 2011-09-15 | 2016-07-19 | Hewlett Packard Enterprise Development Lp | Geographically partitioned online search system |
KR101438358B1 (ko) | 2012-05-30 | 2014-11-03 | 모다정보통신 주식회사 | M2m 오버레이 네트워크 제공 방법과 그를 위한 시스템, 서버 및 게이트웨이 |
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 |
CN103220376B (zh) | 2013-03-30 | 2014-07-16 | 清华大学 | 利用移动终端的位置数据来定位ip位置的方法 |
CA2931776A1 (en) | 2013-11-27 | 2015-06-04 | Magic Leap, Inc. | Virtual and augmented reality systems and methods |
CN105100150B (zh) * | 2014-05-13 | 2020-03-31 | 中兴通讯股份有限公司 | 一种云桌面迁移的方法、装置及分布式云桌面系统 |
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 |
CN108885561B (zh) * | 2016-03-04 | 2022-04-08 | 谷歌有限责任公司 | 计算机处理的资源调配 |
US11496588B2 (en) * | 2016-06-21 | 2022-11-08 | Micro Focus Llc | Clustering layers in multi-node clusters |
US10585915B2 (en) | 2017-10-25 | 2020-03-10 | International Business Machines Corporation | Database sharding |
-
2020
- 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/zh active
- 2020-12-18 CN CN202080097176.7A patent/CN115175747A/zh active Pending
- 2020-12-18 TW TW111130707A patent/TWI813413B/zh active
- 2020-12-18 JP JP2022538067A patent/JP7458485B2/ja active Active
- 2020-12-18 US US17/127,408 patent/US11687530B2/en active Active
- 2020-12-18 KR KR1020227025220A patent/KR20220114076A/ko active Search and Examination
- 2020-12-18 CA CA3165438A patent/CA3165438A1/en active Pending
- 2020-12-18 WO PCT/IB2020/062239 patent/WO2021124287A1/en unknown
-
2023
- 2023-04-11 US US18/133,375 patent/US20230359618A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276692A1 (en) * | 2010-05-10 | 2011-11-10 | Apple Inc. | Server load balancing using geodata |
TW201250613A (en) * | 2011-06-10 | 2012-12-16 | Microsoft Corp | Geographic data acquisition by user motivation |
WO2015192117A1 (en) * | 2014-06-14 | 2015-12-17 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
CN106178506A (zh) * | 2016-07-09 | 2016-12-07 | 杨跃龙 | 一种与地标对应的平行实境游戏互动点设置框架 |
Also Published As
Publication number | Publication date |
---|---|
EP4076691A4 (en) | 2023-06-14 |
WO2021124287A1 (en) | 2021-06-24 |
KR20220114076A (ko) | 2022-08-17 |
TWI813413B (zh) | 2023-08-21 |
JP7458485B2 (ja) | 2024-03-29 |
TW202247009A (zh) | 2022-12-01 |
US20230359618A1 (en) | 2023-11-09 |
US11687530B2 (en) | 2023-06-27 |
CN115175747A (zh) | 2022-10-11 |
TW202131204A (zh) | 2021-08-16 |
JP2023507499A (ja) | 2023-02-22 |
CA3165438A1 (en) | 2021-06-24 |
EP4076691A1 (en) | 2022-10-26 |
US20210191940A1 (en) | 2021-06-24 |
AU2020407633A1 (en) | 2022-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6905154B2 (ja) | 並行現実ゲーム内の活動を用いたプレイヤーの現実世界位置の検証 | |
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 | |
US10300395B1 (en) | Systems and methods for filtering communication within a location-based game | |
US9604131B1 (en) | Systems and methods for verifying player proximity within a location-based game | |
US10130888B1 (en) | Game data validation | |
US20230359618A1 (en) | Sharded Storage of Geolocated Data with Predictable Query Response Times | |
KR20240005790A (ko) | 관심 지점들의 반복성 예측 | |
US20230271088A1 (en) | Anonymizing User Location Data in a Location-Based Application | |
TWI804257B (zh) | 用於在擴增實境環境中之多使用者路線追蹤之方法、非暫時性電腦可讀儲存媒體及電腦系統 | |
US20210228988A1 (en) | Background process for importing real-world activity data into a location-based game | |
US11007429B2 (en) | Background process for importing real-world activity data into a location-based game | |
JP2022153228A (ja) | 仮想キャラクターの移動 | |
US20230016152A1 (en) | Reducing latency in anticheat dataflow | |
Delnevo et al. | Pervasive Games as Web-applications: a Case Study based on a Laser Game |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |