TW202023665A - 機器學習驅動式資源分配 - Google Patents
機器學習驅動式資源分配 Download PDFInfo
- Publication number
- TW202023665A TW202023665A TW108142314A TW108142314A TW202023665A TW 202023665 A TW202023665 A TW 202023665A TW 108142314 A TW108142314 A TW 108142314A TW 108142314 A TW108142314 A TW 108142314A TW 202023665 A TW202023665 A TW 202023665A
- Authority
- TW
- Taiwan
- Prior art keywords
- game
- online
- processing
- resource allocation
- resources
- Prior art date
Links
- 238000013468 resource allocation Methods 0.000 title claims abstract description 120
- 238000010801 machine learning Methods 0.000 title claims description 30
- 238000012545 processing Methods 0.000 claims abstract description 249
- 238000000034 method Methods 0.000 claims abstract description 108
- 230000008569 process Effects 0.000 claims abstract description 86
- 238000012549 training Methods 0.000 claims abstract description 52
- 238000007726 management method Methods 0.000 claims abstract description 42
- 238000004422 calculation algorithm Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 11
- 239000000463 material Substances 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 2
- 230000006835 compression Effects 0.000 claims 1
- 238000007906 compression Methods 0.000 claims 1
- 238000009877 rendering Methods 0.000 abstract description 2
- 238000013473 artificial intelligence Methods 0.000 description 104
- 239000003795 chemical substances by application Substances 0.000 description 58
- 238000003860 storage Methods 0.000 description 28
- 230000004044 response Effects 0.000 description 13
- 238000013500 data storage Methods 0.000 description 12
- 238000013515 script Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 7
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000003292 glue Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- 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/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- 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/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/407—Data transfer via internet
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/531—Server assignment
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一種用於為一線上遊戲提供資源之分佈式遊戲引擎包括複數個管理節點及複數個處理節點。該等管理節點經組態以將該分佈式遊戲引擎之功能部分分佈在該複數個處理節點上。一資源分配模式係根據包括在玩遊戲訓練資料中之使用者輸入、該線上遊戲之遊戲狀態及成功準則構造。使用一資源分配代理存取該資源分配模型且與一組態代理通信,以基於由該資源分配模型指定之該資源分配來識別處理該線上遊戲之該等功能部分中的特定功能部分所需之該等處理節點。一程序同步層與該等處理節點及該等管理節點介接,以提供資源來執行該線上遊戲之該等功能部分,以便產生用於在使用者之客戶端裝置處呈現的視訊框。
Description
本發明係關於為線上遊戲分配資源,且更確切地係關於構建人工智慧(artificial intelligence;AI)模型及使用該AI模型識別資源且為線上遊戲分配資源。
線上遊戲在遊戲世界內已經變得非常流行。線上遊戲、尤其係大型多玩家線上(MMO)遊戲,大量使用者經由電腦之網路同時地參加該遊戲。因此,MMO遊戲需要用於執行線上遊戲之遊戲邏輯的資源的大量協調,以便向使用者提供令人滿意之玩遊戲體驗。在一些實例中,使用遊戲控制台之網路來玩線上遊戲,其中每一遊戲控制台專用於特定使用者。在玩遊戲對話期間,遊戲控制台之數目視線上遊戲之需求而上調或下調。每一遊戲控制台為對應使用者提供用於線上遊戲之可用資源。各個遊戲控制台之資源係獨立地控制且不在使用者間共用。
在替代實例中,線上遊戲係使用遊戲雲端系統之資源在遊戲雲端上執行,且使用者能夠連接至在雲端伺服器上執行之線上遊戲。在遊戲雲端上執行線上遊戲之優點為執行遊戲所需之資源被集中。然而,由於玩線上遊戲之玩家的數目同時地增大,遊戲雲端系統資源之壓力持續地增大,從而使得難以向線上遊戲之使用者提供可接受的服務品質。資源之壓力可以歸因於針對線上遊戲產生之資料的量。舉例而言,在MMO遊戲中,每一玩家必須具備基於玩家自身感知之遊戲資料。為了避免該壓力,遊戲開發者設定能夠同時參加玩遊戲對話之使用者的數目的極限。即使具有設定之極限,資源之壓力亦可導致潛時,從而嚴重地影響使用者之玩遊戲體驗,尤其在需要將遊戲資料快速地散播至使用者,使得使用者能夠籌劃其下一步動作之快節奏遊戲中。此外,基於使用者之分佈將資源分配給在雲端伺服器上執行之線上遊戲非常複雜。
在此上下文中,本發明之實施例出現。
本發明之實施例係關於用於為一線上遊戲提供資源之系統及方法。該線上遊戲係使用包括複數個管理節點及處理節點之一分佈式遊戲引擎執行。該等管理節點係用於識別該分佈式遊戲引擎之功能部分及將該分佈式遊戲引擎之該等功能部分分佈至複數個處理節點進行處理。該等功能部分與處理該線上遊戲之特定特徵的該分佈式遊戲引擎之遊戲引擎任務有關。該等功能部分係使用一資源分配模型分佈至該等處理節點。該資源分配模型係使用機器學習演算法構建且用玩遊戲訓練資料來訓練,該玩遊戲訓練資料包括自使用者(即,玩家、開發者)接收的輸入、自歷史玩遊戲獲得的該線上遊戲之遊戲狀態及成功準則。該資源分配模型識別該線上遊戲所需的該遊戲引擎之該等功能部分、處理該等功能部分所需的資源及在一雲端遊戲系統內的能夠提供用於處理該等經識別的功能部分之必要資源的該等處理節點中的特定處理節點。一分配代理係用於與一組態代理通信以將該等經識別的功能部分分配至該等處理節點中的該等特定處理節點進行處理。
該機器學習演算法使用來自該線上遊戲之一開發者之初始輸入產生該分配模型。接著使用來自使用者(玩家、觀眾等)之輸入、自伺服器之網路收集的關於先前及當前遊戲過程的該線上遊戲之遊戲狀態來訓練該產生的分配模型。該機器學習演算法相對於針對該線上遊戲定義之成功準則分析該等遊戲狀態,以識別具有用於處理該線上遊戲之該遊戲引擎之該等功能部分的資源之恰當處理節點的最佳量。該產生的資源分配模型包括複數個互連之處理節點,其中一或多個處理節點經指派用於處理該遊戲引擎之一特定功能部分。每一處理節點係由一伺服器表示。該伺服器可為一獨立的實體伺服器,或作為一資料中心之部分的一實體伺服器,作為虛擬雲端系統之部分的一虛擬伺服器,或一容器伺服器,或其任何組合。在資料中心內之實體伺服器可為一單一伺服器,或可為在資料中心內之一排伺服器的部分,經由諸如架頂路由器之機架式路由器來存取該排伺服器。
該分佈式遊戲引擎經組態以:管理該線上遊戲之該等遊戲引擎任務(即,功能部分)中的特定遊戲引擎任務至自該資源分配模型識別出的該等處理節點中的對應處理節點之指派;將該等特定遊戲引擎任務分佈至恰當處理節點進行處理;在該等處理節點之間以及在該等處理節點與一組態代理之間路由經處理的結果;以及藉由在考慮用於處理該等遊戲引擎任務之程序時序的同時管理該等遊戲引擎任務之佇列而使對分佈在該等處理節點間的該等遊戲引擎任務之處理同步。
使用該等處理節點之資源處理的該等功能部分可包括該線上遊戲之某些核心領域,僅舉幾個例子,諸如遊戲物理、圖形、音訊、邏輯、人工智慧(AI)、指令碼、動畫、網路連接、串流、優化、記憶體管理、執行緒化、本土化支援。前述功能部分僅作為實例提供且不應被視為詳盡的。該分佈式遊戲引擎之該資源分配模型提供框架,其中許多可再用組件(即,處理節點)經識別以用於處理該線上遊戲之核心特徵,該等核心特徵用於使該線上遊戲變得生動。根據隨時間自線上遊戲執行收集的使用者輸入(即,訓練資料之部分)連續地更新該資源分配模型。在更新該分配模型之前,根據該等成功準則來分析該等收集到的使用者輸入。對該分配模型之該等更新可包括對處理該遊戲引擎之該等功能部分(即,遊戲引擎任務)可能需要的資源之數目及類型的調整。只要線上視訊遊戲被使用者存取,對輸入之收集及對該資源分配模型之更新仍在進行。
在一個實施例中,揭示一種用於為一線上遊戲提供資源之分佈式遊戲引擎。該分佈式遊戲引擎包括複數個管理節點,該複數個管理節點經組態以將該分佈式遊戲引擎之功能部分分佈在複數個處理節點上。該分佈式遊戲引擎亦包括一資源分配模型,該資源分配模型係根據玩遊戲訓練資料構造。該訓練資料包括自使用者接收的輸入、該線上遊戲之遊戲狀態及成功準則。該分佈式遊戲引擎進一步包括一資源分配代理,該資源分配代理用於存取該資源分配模型及與一組態代理通信以識別處理該線上遊戲之該等功能部分中的特定功能部分所需的該複數個處理節點,其中處理該等功能部分中之每一功能部分所需的該等處理節點之類型及數目係基於由該資源分配模型指定之資源分配。該分佈式遊戲引擎包括一程序同步層,該程序同步層與該複數個處理節點中之每一者及該複數個管理節點中之每一者介接,以提供該等處理節點之資源用於執行該線上遊戲,該線上遊戲產生用於在該等使用者之客戶端裝置處呈現的視訊框。
在另一實施例中,揭示一種用於為一線上遊戲提供資源之方法。該方法包括接收該線上遊戲之訓練資料。該訓練資料識別使用者輸入、該線上遊戲之遊戲狀態及成功準則。該方法亦包括根據該訓練資料產生用於該線上遊戲之一資源分配模型。該產生的資源分配模型識別複數個處理節點,該複數個處理節點經組態用於處理用於該線上遊戲之一分佈式遊戲引擎之功能部分。該複數個處理節點中的選定處理節點經組態以提供處理資源以處理該分佈式遊戲引擎之一特定功能部分。根據由該資源分配模型指定之資源分配來分配該複數個處理節點以處理該線上遊戲之該等功能部分,其中每一功能部分識別一特定遊戲引擎任務。該分配包括:對指派選定處理節點以處理該線上遊戲的與該特定功能部分相關聯的遊戲引擎任務中的選定遊戲引擎任務進行管理;將該等遊戲引擎任務中的該等選定遊戲引擎任務分佈至該等選定處理節點進行處理;在該等選定處理節點與該複數個處理節點中的剩餘處理節點之間以及在該等選定處理節點與用於為該等處理節點提供資源的一組態代理之間路由經處理的結果;以及使對分佈在該複數個處理節點間的該等遊戲引擎任務之處理同步。
結合附圖,自以下的詳細描述將瞭解本發明之其他態樣,該詳細描述借助於實例說明本發明之原理。
儘管以下詳細描述含有用於說明目的之許多特定細節,但一般熟習此項技術者將瞭解,以下細節之許多變化及更改在本發明之範圍內。相應地,在不損失在此描述後之申請專利範圍的一般性且不對申請專利範圍強加限制的情況下,闡述下文所描述的本發明之態樣。
一般來說,本發明之各種實施例描述實現機器學習演算法以使用由線上遊戲提供之訓練資料來構建遊戲應用程式之資源分配模型(即,AI模型)的系統及方法。訓練資料包括由線上遊戲之使用者提供的輸入、受使用者之輸入影響的遊戲狀態及針對線上遊戲定義之成功準則。使用者之輸入係在不知道玩家的情況下經由後端伺服器(例如,遊戲控制台、遊戲伺服器等)之網路收集,且在使用利用基於人工智慧(AI)之演算法的機器學習構建及訓練AI模型時使用。經過訓練的AI模型用於學習線上遊戲之繁瑣細節,包括如何處理遊戲資料。舉例而言,分析來自用於給定遊戲資料之經過訓練的AI模型之輸出以識別滿足針對線上遊戲定義之成功準則所需的資源。
在一些實施中,成功準則可以定義為提供充足資源用於處理遊戲相關的資料,以便為使用者提供最佳遊戲體驗。成功準則可基於使用者輸入、使用者之類型(玩家、觀眾等)及正在玩的遊戲之類型。舉例而言,可以定義成功準則以包括最小潛時,或高品質之影像或音訊,或高效率記憶體管理,或更大的通信頻寬等。在此等實施中,機器學習演算法分析訓練資料以找出與輸入之給定集合相關的輸出,以識別分配用於處理產生滿足針對線上遊戲定義之成功準則之輸出的資源。該演算法因此將輸出圖案映射至所定義之成功準則的使用者輸入,以產生及/或訓練AI模型。使用經過訓練的AI模型之映射,可以關於在後續玩線上游期間所遇到的輸入之集合判定對資源之預測需求。AI模型可經過訓練以提供不同輸出至滿足不同成功準則的使用者之輸入的映射,且該演算法能夠使用不同映射以預測與定義之成功準則有關的線上遊戲之資源需求。
舉例而言,對於高強度遊戲,成功準則可定義為遊戲資料之更快處理及更高傳輸速率,使得玩線上遊戲之使用者將能夠以即時方式接收遊戲資料,以便籌劃使用者之下一個動作。遊戲資料傳輸之任何遲滯可嚴重地影響使用者之遊戲過程。在此實例中,該演算法將使用經過訓練的AI模型以識別達成訊框至客戶端裝置的所需處理及傳輸速度所需的資源之類型(即,規定之成功準則)。因此,使用經過訓練的AI模型內之映射,該演算法可能夠識別使用具有更快CPU之處理資源中的某些處理資源的先前遊戲過程中之一或多個,該等處理資源處理遊戲資料、對遊戲資料編碼且以快速且高效率之方式將遊戲資料組譯成訊框。可識別提供用於將訊框傳輸至客戶端裝置之更高頻寬的額外資源。基於此資訊,該演算法可識別處理資源,且在玩遊戲可能需要此等資源以在最小遲滯的情況下將遊戲資料提供至客戶端裝置的預料中時提供此等處理資源。可由該演算法識別以提供至線上遊戲之資源可為先前指派給線上遊戲的相同資源,或具有類似或更好的能力之資源。
機器學習演算法使用分類器引擎以識別用於處理線上遊戲之不同特徵之遊戲引擎的各種功能部分,學習定義該等特徵與輸出之間的關係之規則,且構建具有安置在不同層中且以階層方式互連之複數個節點的AI模型,其中一或多個節點識別特徵。該等節點亦識別用於處理特徵之資源。AI模型之節點中的每一特徵可與其他層中之其他節點的一或多個特徵鏈接,其中關係參數由規則定義。所產生的AI模型將藉由基於在玩遊戲期間自使用者接收的輸入而改進每一節點中之特徵來進一步訓練。經過訓練的AI模型基於由成功準則定義之規則而將該等輸入映射至不同輸出。當後續玩遊戲由使用者起始時,經過訓練的AI模型能夠用於基於當前遊戲狀態及針對線上遊戲定義之成功準則而識別提供所要結果所需的資源。AI模型經過訓練以識別滿足不同成功準則之多種結果。AI模型因此能夠用於預測對某些類型之資源的需求以便滿足特定成功準則,使得在後續執行線上遊戲期間能夠快速地提供恰當類型及量的資源,以便滿足成功準則。
在基於AI模型的對處理資源之初始分配之後,持續地自玩遊戲連續地收集使用者輸入,且在訓練AI模型時使用該等使用者輸入。在調整分配至線上遊戲之資源時使用經過訓練的AI模型之節點中所提供之資訊。舉例而言,由於線上遊戲之複數個使用者中之每一者以其自身的步調前進,因此對資源之預測需求可改變。此可由相應使用者之輸入及線上遊戲的所得遊戲狀態所產生之遊戲資料的變化引起。因此,改進之AI模型用於識別且預測性地提供用於線上遊戲之必要資源。
由於對各種實施例之以上一般理解,現將參考各種圖式來描述實施例之實例細節。
圖1係用於使用資源分配模型為線上遊戲提供資源之系統的簡化實體視圖,使用機器學習演算法來訓練該資源分配模型。該系統包括與使用者1至n相關聯的複數個客戶端裝置100,該複數個客戶端裝置經由諸如網際網路之網路200存取遊戲雲端系統(GCS) 300。根據本發明之一實施,該遊戲雲端系統包括執行一或多個線上遊戲應用程式之實例(instance)的後端伺服器之網路。後端伺服器係經組態以執行一或多個遊戲之一或多個實例之遊戲伺服器。遊戲伺服器可為在該遊戲雲端系統中可用的任何類型之伺服器計算裝置。舉例而言,遊戲伺服器可管理主機上的支援執行使用者之線上遊戲之實例的遊戲處理器的虛擬機。該等客戶端裝置可為任何計算裝置,諸如行動電話、平板電腦、個人電腦等,計算裝置包括記憶體、處理器及用於藉由存取網路200而與後端伺服器相互作用之網路介面,或可為提供用於與提供計算功能的後端伺服器相互作用之介面的瘦客戶端。
在一些實施中,線上遊戲可由遊戲雲端系統之複數個伺服器遠端地執行,且遊戲資料經由網路200串流至玩家之客戶端裝置,其中玩家係參加玩遊戲之使用者。由玩家使用客戶端裝置中所提供之控制選項或使用以通信方式連接至客戶端裝置之控制器來控制玩線上遊戲。在其他實施中,線上遊戲可在客戶端裝置處本端地執行,且來自執行線上遊戲的後設資料將經由網路200傳輸至後端伺服器,以用於影響遊戲狀態及用作用於產生及訓練AI模型之目的之訓練資料。
用於訓練AI模型之訓練資料包括遊戲過程之特定點處的線上遊戲之遊戲狀態。遊戲狀態提供玩線上遊戲之繁瑣細節。因此,遊戲狀態例如可包括遊戲角色、遊戲對象、遊戲對象屬性、遊戲屬性、遊戲對象狀態、圖形疊加等。遊戲狀態亦包括線上遊戲之實例在執行時所使用的伺服器之網路的每一個裝置或模組或組件之狀態,諸如用於產生及呈現玩遊戲資料之CPU、GPU、記憶體、暫存器值、程式計數器值、可程式化DMA狀態、DMA之緩衝資料、音訊晶片狀態、CD-ROM狀態、可用通信頻寬等。遊戲狀態亦識別當前呈現之可執行碼的部分及需要載入以繼續玩遊戲之可執行碼的部分。玩家的包括在遊戲狀態中之使用者保存資料可包括玩家之使用者設定檔、遊戲對象之使用者定製、遊戲類型、由玩家選擇之遊戲等級/難度、遊戲工具/獲勝/點/現金/獎勵的量等。遊戲狀態亦可包括隨機產生之特徵或AI重疊或遊戲繁瑣細節,前述各者在理解與玩線上遊戲相關聯的遊戲細節時有用。
在遊戲雲端系統上執行之線上遊戲可為大型多玩家線上(MMO)遊戲,且遊戲伺服器可包括多玩家分佈式遊戲引擎310,該多玩家分佈式遊戲引擎與線上遊戲之遊戲邏輯通信以允許玩家(即,使用者)與遊戲邏輯的交互及在每一玩家之對應遊戲環境內的玩家之間的交互。遊戲邏輯經組態以在MMO遊戲對話期間管理每一玩家之遊戲狀態。對於線上遊戲,遊戲狀態包括在特定點處的每一玩家玩遊戲之遊戲狀態,及每一玩家之保存資料,包括由玩家提供之任何遊戲定製。使用遊戲狀態,多玩家分佈式遊戲引擎310能夠將物體及字符疊加/插入至參與MMO遊戲對話之玩家的遊戲環境中之每一者中。
分佈式遊戲引擎310與複數個模組相互作用,僅舉幾個例子,該等模組諸如使用者帳戶模組310a、遊戲標題模組310b、使用者度量模組310c及遊戲狀態度量310d。使用者帳戶模組310a用於針對玩線上遊戲而鑑認存取GCS 300之使用者。遊戲標題模組310b用於針對玩遊戲判定在GCS 300處可供與使用者帳戶相關聯的使用者使用之遊戲標題,包括免費的遊戲、使用者已經購買的遊戲等。分佈式遊戲引擎310回應於使用者對要玩的遊戲之選擇而在GCS 300內之複數個伺服器上執行遊戲之實例。當使用者玩線上遊戲時,採集使用者輸入且使用該等使用者輸入更新使用者度量及遊戲度量。該等使用者輸入由遊戲邏輯處理以影響遊戲之遊戲狀態且產生用於傳輸至使用者之客戶端裝置的玩遊戲資料。線上遊戲之遊戲狀態經過分析以識別使用者之使用者度量及線上遊戲之遊戲狀態度量。用使用者之使用者度量來更新使用者度量模組310c。更新至使用者度量模組310c之使用者度量中的一些包括遊戲識別符、使用者存取線上遊戲之時間、使用者用來玩遊戲的時間量、所玩的遊戲等級、每一遊戲等級所用之時間量、在每一遊戲等級內戰勝之挑戰的數目、戰勝每一挑戰的嘗試次數、遊戲得分/勝利、使用者之技能水平等。類似地,遊戲狀態度量模組310d自線上遊戲之玩遊戲資料提取線上遊戲之遊戲狀態度量。
分佈式遊戲引擎310與資源分配代理315相互作用以識別提供遊戲之最佳遊戲過程所需的資源320a至320m。資源分配代理315係指使用機器學習演算法產生的用於預測線上遊戲之執行所需的資源之類型及每種類型之資源的量的資源分配模型。預測係基於線上遊戲之狀態、使用者輸入及針對線上遊戲定義之成功準則。基於如成功準則所指定的對不同類型之資源的預測需求,資源分配代理向組態代理發信號以為線上遊戲提供資源320至320m,因此線上遊戲能夠高效率地運行。
圖2圖示分佈式遊戲引擎之實施,回應於在玩遊戲期間接收到的使用者之輸入,該分佈式遊戲引擎將實體資源用於處理與針對線上遊戲產生的遊戲資料之特徵有關的分佈式遊戲引擎之功能部分。線上遊戲可為由複數個使用者存取之大型多玩家線上(MMO)遊戲。複數個使用者可為隊伍的部分,或社交聯絡人,或可為正在跨越跨城市之地理區域或跨越多個城市或跨越國家或全球地存取線上遊戲之獨立使用者。為了允許使用者高效率地存取線上遊戲,使用分佈式遊戲引擎來執行線上遊戲,該分佈式遊戲引擎使用跨地理區域分佈的伺服器/系統資源之網路以執行線上遊戲之遊戲引擎及遊戲邏輯的實例。
一般來說,遊戲引擎係用作諸如MMO遊戲之遊戲之基礎的軟體層 ,且提供用於開發線上遊戲之框架。遊戲引擎將進行每一個遊戲所需的共同相關任務(即,遊戲引擎任務)之細節抽象化,而線上遊戲開發者提供遊戲邏輯,該遊戲邏輯提供如何玩線上遊戲之細節。遊戲引擎框架包括複數個可再用組件,該複數個可再用組件用於處理使線上遊戲變得生動的線上遊戲之幾個功能部分(即,核心特徵)。由遊戲引擎處理之基本核心特徵可包括物理(例如,衝突偵測、衝突回應、軌跡、基於重力、摩擦的物體之移動等)、圖形、音訊、人工智慧、指令碼、動畫、網路連接、串流、優化、記憶體管理、執行緒化、本土化支援,以及更多特徵。該等可再用組件包括用於處理針對線上遊戲識別之核心特徵的程序引擎。在遊戲運行期間,遊戲引擎管理線上遊戲之遊戲邏輯,以最佳方式管理用於處理遊戲資料的遊戲引擎之功能部分之分配及同步,且產生傳輸回至客戶端裝置以用於呈現的遊戲資料之訊框。目前可用之多種遊戲引擎提供不同的核心功能性,且恰當的遊戲引擎可基於可用於執行線上遊戲之功能性來選擇。
在圖2中所圖示之實施中,遊戲引擎及遊戲邏輯之實例跨複數個伺服器分佈,其中每一伺服器執行遊戲引擎之特定功能部分。不同的伺服器可藉由同時執行不同的實例來平行地處理遊戲資料。以此方式,分佈式遊戲引擎允許對遊戲資料之更快且高效的處理。遊戲引擎可經組態以處理用於使線上遊戲變得生動所需的複數個功能部分。在一些實施中,針對MMO遊戲環境開發之每一線上遊戲可識別使線上遊戲工作所需的遊戲引擎之不同功能部分。在其他實施中,針對MMO遊戲環境開發之線上遊戲中的每一個遊戲可能需要相同類型之功能部分以用於使線上遊戲之相應線上遊戲變得生動。在每一個線上遊戲識別相同類型之功能部分的實施中,線上遊戲中的特定者可著重於該等功能部分中的選定功能部分多於其他功能部分,且重點可基於存取線上遊戲之使用者的類型、遊戲的類型、線上遊戲之遊戲狀態及針對線上遊戲定義之成功準則。舉例而言,使用者可為玩家類型,或觀眾類型。因此,當線上遊戲由玩家存取時,重點可關於能夠以快速且高效的方式提供遊戲資料之功能部分(即,與物理、組譯/編碼及頻寬有關的功能部分,以便以最小潛時將遊戲資料提供至客戶端裝置)。當線上遊戲由觀眾存取時,重點可基於能夠提供對觀眾選擇跟隨的特定玩家玩遊戲或一般的線上遊戲之存取的功能部分(例如,與物理、音訊、指令碼及場景圖形有關的功能部分,以便提供高品質遊戲資料)。替代地,線上遊戲可為高強度類型或低強度類型。因此,當線上遊戲係高強度類型時,重點可關於物理、更快的處理、組譯及傳輸,而對於低強度遊戲,重點可關於物理、紋理、暗影、動畫、場景圖形、指令碼及/或聲音。類似地,玩家可為高等級玩家,或新手,或中級玩家。因此,當玩家為高等級玩家時,重點可關於更快的處理、組譯/編碼及頻寬,而對於中等或新手等級玩家,重點可關於不同的功能部分。在其他實施中,不同的MMO遊戲可著重於不同類型之功能部分。
功能部分可由線上遊戲之開發者識別,或可藉由分析線上遊戲之遊戲邏輯來判定。基於線上遊戲之規範要求,遊戲引擎及遊戲邏輯之實例可在複數個伺服器(即,處理節點)上執行,其中每一遊戲引擎實例基於所定義之成功準則而在佔用特定程序引擎之伺服器上執行以處理與自玩線上遊戲產生的遊戲資料之特定特徵有關的功能部分。在圖2中圖示之簡化實例實施中,線上遊戲-遊戲1-之遊戲引擎、遊戲邏輯之實例在6個伺服器(伺服器1至6)上實例化,其中每一伺服器用於處理與線上遊戲-遊戲1-之遊戲資料的特定特徵相關的遊戲引擎之特定功能部分。舉例而言,伺服器1 (即,處理節點1)可用於佔用物理引擎以處理線上遊戲之遊戲資料的遊戲物理特徵,伺服器2 (即,處理節點1)可用於處理紋理,伺服器3 (即,處理節點1)用於處理暗影,諸如此類。遊戲引擎之實例藉由使來自第一伺服器之輸出(即,來自功能部分之處理的結果)充當至第二伺服器之輸入、使來自第二伺服器之輸出充當至第三伺服器(或至第一伺服器)之輸入等來提供對遊戲資料的迭代處理。在圖2中圖示之實施中,單一伺服器(即,處理節點)經指派用於執行遊戲引擎之實例及用於處理遊戲引擎之特定功能部分的遊戲邏輯。在其他實施中,基於如使用者輸入所指定的對此處理之預測需求及成功準則,各自執行遊戲引擎之實例及遊戲邏輯的複數個伺服器可經指派以處理特定功能部分。由於遊戲引擎及遊戲邏輯係在用於處理使線上遊戲變得生動所需的遊戲引擎之不同功能部分的複數個伺服器上實例化,因此將遊戲引擎稱為「分佈式」的。因此,本申請案中對分佈式遊戲引擎之任何引用係指遊戲引擎及遊戲邏輯之對應部分將在多個伺服器上實例化的此組態。
自不同伺服器輸出之遊戲資料經過同步、組譯、編碼且傳輸至客戶端裝置之相應客戶端裝置以用於呈現。遊戲引擎亦包括同步引擎(未圖示),該同步引擎用於將遊戲引擎之各種功能部分之分佈同步至不同伺服器、使對指派至不同伺服器的遊戲引擎之不同功能部分之處理同步且在伺服器之間及在伺服器與組態代理之間路由經處理的結果。分佈式遊戲引擎之組態代理(未圖示)用於追蹤用於處理遊戲引擎之特定類型的功能部分的伺服器,及經指派用於處理特定類型的功能部分之伺服器之類型及數目。基於針對線上遊戲定義之成功準則,組態代理可與分佈式遊戲引擎之資源分配代理315相互作用,以提供用於處理遊戲引擎之特定類型的功能部分之額外伺服器(即,處理資源320)。
對處理資源之分配可在使用者為了玩遊戲而存取線上遊戲之前進行,且此分配係基於自使用機器學習演算法開發之AI模型判定的對資源之預測需求。當使用者為了玩遊戲而存取線上遊戲時,自客戶端裝置接收的使用者之輸入受到監測且用於影響線上遊戲之遊戲狀態。使用者之輸入及線上遊戲之遊戲狀態由分佈式遊戲引擎使用以產生AI模型且使用來自AI模型之資訊以判定是否需要提供額外處理資源以便提供對線上遊戲之最佳玩遊戲體驗。
圖3圖示識別用於為線上遊戲提供資源之分佈式遊戲引擎之各種組件的實例實施。線上遊戲可為大型多玩家線上遊戲,該線上遊戲可在遊戲雲端系統300之多個伺服器上實例化,使得使用者能夠自不同的地理位置存取線上遊戲。分佈式遊戲引擎310係遊戲雲端系統300之部分且包括使線上遊戲變得生動所需的功能部分,其中該等功能部分能夠在分開的伺服器上執行。分佈式遊戲引擎310在線上遊戲(例如,遊戲1)之玩遊戲期間使用網路介面經由網路200與複數個使用者之客戶端裝置100通信,且接收線上遊戲之使用者輸入。回應於使用者之輸入,產生遊戲資料之視訊框、對該等視訊框編碼且將該等視訊框傳回至客戶端裝置100以用於呈現。分佈式遊戲引擎310包括膠合邏輯306,該膠合邏輯自不同客戶端裝置接收不同使用者之輸入,且作為回應,識別將以每一客戶端裝置為目標的遊戲資料之訊框,將遊戲資料捆綁在一起且將遊戲資料之訊框轉發至使用者之客戶端裝置。
遊戲引擎係在遊戲雲端系統300之一或多個後端伺服器上執行。後端伺服器提供例如機器學習引擎,以分析回應於自使用者接收之輸入所產生的遊戲資料且訓練由使用者選擇用於玩遊戲之線上遊戲的資源分配模型(AI模型) 315。AI模型最初自由處理由線上遊戲之開發者提供之輸入產生的遊戲資料產生。由開發者提供之輸入可來自由開發者執行之模擬玩遊戲,或為自玩線上遊戲之玩家之受控群組獲得的輸入。接著使用來自不同使用者玩遊戲之輸入持續地訓練所產生的AI模型。使用者之輸入用於驅動線上遊戲之遊戲狀態。AI模型係使用多層的互連節點產生,其中每一節點與遊戲資料之不同特徵有關。AI模型之節點係用特徵填充,且建立相互關係以理解玩線上遊戲之繁瑣細節。基於針對線上遊戲定義之不同成功準則,輸入至AI模型之遊戲資料識別各種資源組態輸出,其中藉由遵循AI模型之不同相互關係路徑來識別不同成功準則的輸出。舉例而言,當提供特定成功準則、遊戲輸入及遊戲狀態作為輸入時,AI模型能夠用於識別達成線上遊戲之遊戲狀態之特定成功準則所需的特定資源組態。
圖3中圖示的分佈式遊戲引擎包括複數個管理節點302及用於處理針對線上遊戲產生之遊戲資料的複數個處理節點308。來自經處理遊戲資料之資訊係用於構建及訓練AI模型,且用於使用AI模型預測線上遊戲所需的特定資源組態。複數個管理節點302及複數個處理節點308中之每一者執行遊戲引擎的實例及線上遊戲之遊戲邏輯。每一處理節點或管理節點能夠視為經組態以執行遊戲引擎之實例及線上遊戲之遊戲邏輯的不同伺服器。管理節點302參考AI模型315以:識別需要在不同處理節點上執行之遊戲引擎任務;管理遊戲引擎任務至提供處理所指派的遊戲引擎任務所需的資源之恰當處理節點之指派;將遊戲引擎任務分佈至處理節點(即,伺服器)以進行處理;使用來自經處理的遊戲引擎任務之資訊來構建AI模型;基於AI模型來管理用於各種處理節點的資源之分配;以及將經處理的結果自一個處理節點路由至另一處理節點。至少一個處理節點經組態以:組譯由各種處理節點輸出的各種遊戲引擎任務之結果;對來自處理節點之結果編碼以產生串流遊戲資料135之視訊框以向前傳輸至相應的客戶端裝置以用於呈現。該至少一個處理節點經進一步組態以格式化視訊框,使得視訊框具有用於使用者之不同客戶端裝置的相容格式。在一些實施中,視訊框係基於由處理節點進行以判定用於傳輸視訊框之可用頻寬及協定的測試而格式化。串流遊戲資料135之視訊框由膠合邏輯306處理,以識別以客戶端裝置中之每一者為目標之視訊框,以便相應地路由視訊框。額外節點(例如,主伺服器節點304)可設置在分佈式遊戲引擎310中以協調指派至不同處理節點(即,伺服器)之遊戲引擎任務的同步及/或管理遊戲引擎任務之佇列。當新使用者加入遊戲雲端系統時,分佈式遊戲引擎亦經組態以將新使用者路由至在遊戲雲端系統之處理節點處執行的線上遊戲之實例。
在一實施中,複數個管理節點302中之每一者用於執行特定管理任務。舉例而言,配備組態代理311之第一管理節點(節點m1) 302-m1經組態以:自執行線上遊戲之處理節點伺服器接收系統輸入;分析該等系統輸入以識別當前資源組態;以及管理線上遊戲之資源組態。該等系統輸入提供系統組態資訊以及由處理自使用者玩遊戲接收之遊戲輸入產生的線上遊戲之遊戲狀態。配備資料收集引擎之第二管理節點(節點m2) 302-m2經組態以:接收來自玩線上遊戲之複數個使用者(即,玩家)的使用者輸入及來自組態代理311的系統輸入;處理該等輸入以產生遊戲資料;以及自經處理的遊戲資料產生用於訓練資源分配模型(AI模型)之訓練資料。配備資源分配代理313之第三管理節點(節點m3) 302-m3經組態以最佳化線上遊戲之資源分配。確切地,在需要上調或下調某些資源的情況下,資源分配代理313可判定是否已為線上遊戲提供最佳量的資源,及在何時提供。使用該資源分配代理來判定當前提供的用於線上遊戲之資源之類型及量,及達成成功準則所需的資源之類型及量,且遵循「彈性計算」概念以對該組態代理發信號以上調或下調該等資源中的某些資源以滿足線上遊戲之變化需求。該資源分配代理提供靈活性以藉由在玩遊戲期間的任何時間點基於遊戲狀態及成功準則而控制資源之提供及取消提供來適應工作負荷變化,使得系統具有充足資源可用於儘可能地匹配接近系統資源之當前需求。具有一或多個分類器引擎314之第四管理節點(節點m4) 302-m4經組態以使用訓練資料根據針對線上遊戲定義之成功準則來產生且訓練資源分配模型315,該訓練資料包括使用者輸入及系統輸入。資源分配模型315由資源分配代理使用以對組態代理發信號以調整分配給線上遊戲之資源。
圖3A圖示訓練資源分配模型315時所使用的實例訓練資料之各種分量。如所示,訓練資料包括在玩遊戲期間接收的來自複數個使用者之使用者輸入312a、受該等使用者輸入影響的複數個使用者中之每一者的線上遊戲之遊戲狀態312b及成功準則312c。當然,訓練資料的前述分量僅作為實例提供,且亦可考慮任務其他類型之輸入以用於訓練資源分配模型315。提供輸入之使用者可為玩家、觀眾及/或開發者,且資源分配模型315係設計成識別用於每種類型之使用者的恰當資源。
資源分配模型315使用機器學習演算法以訓練模型315。該機器學習演算法可在機器學習伺服器(即,ML處理器) 302-m4上提供,該機器學習伺服器可經特別組態以包括一或多個分類器引擎以產生且訓練資源分配模型315。經過訓練的模型315提供滿足針對線上遊戲定義之成功準則之輸出至使用者輸入的映射,其中該等使用者輸入經處理以影響線上遊戲之遊戲狀態。回應於使用者之輸入,該機器學習演算法分析由遊戲邏輯產生之遊戲資料,以識別用於處理遊戲資料之特定特徵的遊戲引擎之各種功能部分及用於處理該等特定特徵以達成線上遊戲之不同成功準則的系統資源。遊戲資料之特徵可包括物理、紋理、暗影、組譯/編碼、音訊處理、指令碼、動畫、記憶體管理、場景圖形等,且遊戲引擎之功能部分可識別為了處理特定特徵的相應特徵而佔用之特定組件(即,引擎或模組)。經過訓練的模型315由分佈式遊戲引擎使用,以判定處理遊戲資料之不同特徵所需的遊戲引擎之不同功能部分,以及處理該等不同特徵所需的資源之類型及每種類型之資源的量。資源之類型及每種類型之資源的量由針對在玩線遊戲的不同時間點定義之成功準則驅動,且該等成功準則反而取決於使用者的類型、使用者之使用者度量中的某些使用者度量、線上遊戲之遊戲狀態等。舉例而言,針對玩線上遊戲的玩家定義之成功準則可不同於針對跟隨特定玩家玩遊戲或大體上玩線上遊戲的觀眾定義之成功準則。類似地,針對有經驗或高度熟練的玩家定義之成功準則可不同於針對新手或中等玩家定義之成功準則。
資源分配模型315係使用分類器引擎構建/訓練,該等分類器引擎用於識別遊戲資料之特徵且對該等特徵分類,以便填充資源分配模型(AI模型) 315的互連節點之網路內的各種節點。每一分類器引擎經預定義以識別遊戲資料中之特徵中的特定特徵且對該特定特徵分類。舉例而言,若資源分配模型315將針對規定線上遊戲之最佳效能之成功準則加以訓練,則可提供分類器引擎中的特定分類器引擎以識別影響效能之特徵中的某些特徵(例如,諸如潛時、影像品質、頻寬等的特徵)且對某些特徵分類。用於構建/訓練AI模型之分類器引擎學習,以識別經處理的遊戲資料中之彼等特徵、分析使用遊戲引擎之功能部分進行處理的遊戲資料之彼等特徵(其中AI模型中所使用的遊戲資料係藉由處理歷史使用者輸入及遊戲狀態而產生)、用自該分析獲得的資訊來更新多個層的互連節點內之節點且使用互連以導出特定成功準則之輸出。成功準則可包括可接受的潛時,或每一伺服器上之可接受負荷,或佇列之較佳長度,或佇列計時,或遊戲資料之品質,或傳輸速度等,或其任何組合。不同成功準則的前述清單已僅作為實例提供且不應被視為詳盡的。如早前所提及,由遊戲引擎之功能部分處理的遊戲資料之一些實例特徵包括物理、紋理、暗影、組譯/編碼、音訊、指令碼、動畫、記憶體管理、場景圖形,僅舉幾個例子。當然,可存在針對遊戲資料中之處理識別出的更小或更大數目個特徵。相應地,遊戲引擎之功能部分執行處理在遊戲資料中識別出之特徵的相關遊戲引擎任務。因此,可用於執行遊戲資料的前述特徵之遊戲引擎的一些功能部分可包括物理引擎、紋理模組/引擎、暗影模組/引擎、組譯模組、音訊引擎、指令碼引擎、動畫引擎等。前述功能部分已僅作為實例提供且不應被視為詳盡的。
藉由處理遊戲資料及用自遊戲資料提取之特徵及用於處理該特徵之資源的細節填充AI模型之每一節點來構建AI模型。如所提及,用於填充AI模型之遊戲資料係自玩遊戲歷史獲得。接著用自當前或未來玩遊戲對話獲得之額外玩遊戲資料來即時地更新產生的AI模型。用來自遊戲資料之處理的資訊填充AI模型中之節點,且在填充AI模型之節點時所遵循的序列可遵循在由遊戲引擎之功能部分處理遊戲資料時所遵循的相同序列。換言之,來自第一節點之經處理輸出將與遊戲資料一起傳輸至互連的第二節點以進行另外處理,其中第一及第二節點係基於在遊戲資料之處理期間所遵循的序列而識別。舉例而言,遊戲資料首先可經歷由物理引擎進行之處理以處理物理分量。來自物理引擎處理之資訊可上載至第一節點,且具有經處理物理分量之遊戲資料可作為輸入提供至與紋理有關的已連接第二節點,且具有物理及紋理分量之遊戲資料可提供至暗影的已連接第三節點,諸如此類。隨著遊戲資料前進通過互連節點之多個層,聚集來自每一經處理特徵之知識且產生輸出。所產生的輸出與特定成功準則有關。自輸入節點至輸出節點之道路可由與特定成功準確相關的一或多個預定義規則判定。資源分配模型315可藉由在輸入節點與輸出節點之間遵循AI模型之互連節點的不同路徑來產生多個輸出,其中每一輸出由定義成滿足特定成功準則之對應預定義規則驅動。來自分類器引擎之輸出可提供判定輸出(即,資源分配)是否滿足針對線上遊戲定義之預定義成功準則所必需的資訊。舉例而言,來自資源分配模型315之資訊可識別使用者X正在玩遊戲1的等級J,且接收到x等級之效能、y等級之潛時及z等級之品質。此外,成功準則可定義成最小潛時,此意味著必須對遊戲資料進行快速處理、快速組譯及編碼以及傳輸,以使得遊戲資料係即時地提供至客戶端裝置呈現。來自資源分配模型315之輸出可根據定義成功準則之預定義規則由資源分配代理進行分析,以判定用於滿足該等成功定義之資源組態的類型。使用此資訊,基於針對線上遊戲接收到的特定遊戲狀態及遊戲輸入而可針對線上遊戲作出對不同資源之預測,包括提供的或識別出的資源組態是否需要針對後續的玩遊戲對話進行微調。該微調可包括判定「何時」及哪個(哪些)資源需要針對線上學習加以調整(即,彈性地增多或減少)以達成成功準則。
簡單地說,機器學習用於藉由使用資源分配模型(即,AI模型)解譯使用者之輸入來理解來自使用者之原始輸入資料。舉例而言,使用者之輸入用於識別使用者之遊戲狀態度量及使用者度量。使用者之遊戲狀態度量及使用者度量由機器學習演算法使用以特性化在玩遊戲期間強加於各種資源之應力,且此應力能夠基於線上遊戲之遊戲狀態改變。該機器學習演算法產生具有節點之神經網路的AI模型,且用在玩線上遊戲之各種階段所使用的資源填充此等節點,以學習:(a)遊戲資料之不同特徵如何彼此有關;及(b)藉由使用分配之資源處理特定特徵所產生的輸出如何與針對線上遊戲定義之成功準則有關。分類器引擎用於識別不同引擎且填充AI模型之不同節點。在使用分配之資源處理不同特徵後,用對遊戲資料之特定特徵之處理的輸出來更新對應節點。機器學習分析來自對不同特徵之處理的輸出以識別根據該處理出現的圖案,且將AI模型之輸出關聯至針對線上遊戲定義之成功準則。使用定義成功準則之預定義規則來進行該分析。基於該分析,機器學習判定當前分配是否為最佳的,或分配用於處理特徵中的某些特徵之資源中的選定資源是否需要選擇性地(向上或向下)縮放以改進總體效能且將輸出更好地對準至成功準則。
當當前資源分配展示為最佳(即,基於遊戲狀態及使用者之輸入,輸出與針對線上遊戲定義之成功準則對準)時,系統可選擇維持當前資源分配。另一方面,可自對AI模型之分析判定輸出滿足成功準則,但對保持閒置之資源中的某些資源存在過度分配。由於處理資源成本高昂,因此對為了玩線上遊戲而提供每一個資源之最佳化係重要的。因此,資源分配代理可使用分析之結果以將信號發送至組態代理,以減少展示為對於處理特定特徵過度分配之資源中的某些資源。機器智慧可使用監督學習、無監督學習、半監督學習或任何其他機器學習,以產生且訓練用於將輸出對準至成功準則之資源分配模型。
在一實施中,該等預定義規則可定義成包括遊戲資料之特徵中之每一者以作為待考慮的參數,且輸出可藉由使用指派給遊戲資料之每一參數的權重產生(即,哪個參數需要比其他參數權重更大)。根據該等預定義規則中之一或多個預定義規則,資源分配代理可使用對AI模型輸出之分析以判定資源的當前分配是否足以滿足成功準則,且當判定分配用於處理特徵之一或多個資源並非最佳時,可以對組態代理發信號以前瞻性地調整系統資源。舉例而言,成功準則可規定遊戲資料需要在線上遊戲的後續玩遊戲期間以最小潛時提供至線上遊戲之玩家(即,參加玩遊戲之使用者)。基於規定之成功準則,分析來自資源分配模型之不同輸出以識別針對遊戲輸入之一集合定義的輸出,其中系統資源組態先前滿足遊戲之遊戲狀態的規定之成功準則。使用由資源分配模型提供之資訊,資源分配代理判定在當前玩遊戲期間的資源之分配是否足以滿足規定之成功準則,或系統資源是否需要增多或減少。當判定用於當前玩遊戲之資源分配不足以滿足用於達成成功準則之預測需求時,信號可由資源分配代理發送至組態代理,以前基於預測之資源需求而瞻性地增多或減少用於玩線上遊戲的當前對話之系統資源中的特定系統資源。對於針對玩家之當前玩遊戲對話的成功準則規定高等級玩家之最小潛時而不管遊戲資料之訊框的品質如何的以上實例,滿足匹配高等級玩家之遊戲輸入的遊戲輸入之最小潛時之成功準則的輸出係根據資源分配模型識別,且用於判定當前資源分配。在判定當前資源分配後,該機器學習演算法可進一步分析輸出,以判定分配給線上遊戲之資源(例如,分配至遊戲之CPU資源的量及通信頻寬)是否需要針對當前遊戲過程加以調整,以滿足相同的成功準則。類似地,若成功準則規定傳回至客戶端裝置的遊戲資料之品質,則對應於遊戲資料之品質的輸出可用於判定指派給線上遊戲之當前對話之資源中的某些資源是否需要增多或減少以滿足成功準則。基於該判定,資源分配代理產生信號且將該信號轉發至組態代理以調整分配給線上遊戲之資源。
為了判定是否需要作出任何調整,資源分配代理313可與組態代理311相互作用,以判定當前的系統資源分配且在當前的系統資源分配不匹配來自資源分配模型315的滿足遊戲之遊戲狀態之成功準則的資源分配時,發信號至組態代理311。至組態代理311之信號可識別資源之類型及為了達成針對線上遊戲定義之成功準則需要作出的調整之類型(放大、縮小、提供新資源、取消提供現有資源等)。組態代理311經組態以回應於來自資源分配代理313之信號而恰當地彈性地調整資源。
圖3展示指派用於處理來自當前遊戲對話的遊戲資料之特定特徵的各種處理節點(節點p1至p8) 308。每一處理節點包括遊戲引擎之實例及用於處理遊戲引擎之特定功能部分的遊戲邏輯。處理節點可為伺服器,或遊戲控制台,或經組態以提供處理遊戲引擎之特定功能部分的所需資源之計算裝置。為簡單起見,圖3所示之每一處理節點經組態以處理遊戲引擎或i的特定功能部分,而實際上,可佔用多於一個的處理節點以處理特定功能部分,如將參考圖4A至圖4C更詳細地討論。
主節點304可用於使對遊戲資料之各種特徵的處理同步。主節點之程序同步層304a提供複數個處理節點中之每一者與複數個管理節點中之每一者之間的通信介面,以對指派資源用於執行遊戲引擎之遊戲功能部分以便處理遊戲資料之各種特徵進行管理。遊戲引擎之每一功能部分表示遊戲引擎任務,且程序同步層304a充當虛擬匯流排以基於由管理節點之資源分配模型提供的資訊來管理遊戲引擎任務之功能部分。確切地,程序同步層304a管理遊戲引擎任務至不同處理節點之指派,將遊戲引擎任務中的特定遊戲引擎任務分配至選定處理節點,在選定處理節點(即,互連節點)之間及選定處理節點與組態代理之間路由經處理的結果。提供至組態代理之結果用於彈性地縮放指派用於處理遊戲引擎任務之資源,使得輸出滿足成功準則。彈性地縮放可包括添加用於處理特定特徵之額外處理節點(例如,額外服務),或增加所提供的處理節點內之資源(例如,添加或移除伺服器節點之額外CPU核心)。遊戲引擎任務之同步包括在考慮每一遊戲引擎任務之程序時序的情況下管理任務佇列。
圖4A圖示處理節點之一個實例實施,該實施可在分配用於處理遊戲資料之資源以便滿足針對線上遊戲定義之成功準則時使用。該等處理節點中之每一者配備遊戲引擎,且包括處理特定遊戲引擎任務的所需資源。圖4A中圖示之實施展示資源分配的非常基礎形式,其中每一處理節點經指派特定的遊戲引擎任務進行處理。因此,節點p1用於使用伺服器1之資源來處理遊戲資料的物理分量,節點p2用於使用伺服器2之資源來處理遊戲資料的紋理分量,節點p3用於使用伺服器3之資源來處理暗影分量,節點p4用於使用伺服器k之資源來組譯及編碼自不同處理節點接收的遊戲資料,節點p5用於使用伺服器m之資源來處理音訊分量(即,聲音),節點p6用於使用伺服器m+1之資源來處理指令碼分量,節點p7用於使用伺服器m+2之資源來處理動畫分量,節點p8用於使用伺服器p之資源來執行記憶體管理,且節點p9用於使用伺服器p+1之資源來處理場景圖形分量,僅舉幾個例子。圖4A中識別出的遊戲引擎任務之類型係出於說明目的提供且不應被視為詳盡的或限制性的。可使用在不同伺服器上執行之遊戲引擎之實例來識別及處理更少或額外類型的遊戲引擎任務。該等處理節點中之每一者可與其他處理節點相互作用,且此相互作用可經由將充當虛擬匯流排之程序同步層。類似地,每一管理節點可經由虛擬匯流排或直接地彼此相互作用。此外,每一管理節點可經由程序同步層與一或多個處理節點相互作用。在圖4A中圖示之實例中,每一伺服器經組態以僅執行一個遊戲引擎任務。在替代實例中,多於一個的遊戲引擎任務可由單一伺服器執行。沿著類似線路,可佔用多於一個的伺服器以執行遊戲引擎任務。
圖4B圖示一個此種實例。資源分配代理可能已指示,需要額外資源以用於處理遊戲資料之特定特徵,且作為回應,組態代理311可能已提供用於處理特定特徵之額外處理節點。因此,在圖4B中圖示之實例中,提供複數個物理節點以提供用於處理遊戲資料之物理分量的所需處理資源,提供複數個紋理節點以提供用於處理紋理分量的所需處理資源,且提供複數個指令碼節點以提供用於處理指令碼的所需處理資源。該等處理節點中之每一者可包括用於處理相應分量之單核心處理器或多核心處理器、限定頻寬或單一子組件或多個子組件。遊戲資料之剩餘分量可使用與相應的單一處理節點相關聯的伺服器之處理資源來處理。
圖4C圖示用於針對遊戲定義之成功準則的可在分析資源分配模型315之輸出之後由資源分配代理產生的信號。成功準則可由諸如遊戲類型、遊戲之遊戲狀態、所產生的遊戲資料之量等的一或多個遊戲狀態度量及諸如使用者之類型(開發者、玩家或觀眾)、使用者之經驗等級的一或多個使用者度量來驅動。舉例而言,對於專家玩家所玩的高強度遊戲,成功準則可定義為以最小潛時提供遊戲資料。對於觀眾,成功準則可為提供為全部觀眾提供以用於觀看玩線上遊戲的共同觀看窗口,或定製觀看窗口以用於獨立地導覽遊戲過程的遊戲場景,或允許觀眾獨立地跟隨專家玩家的遊戲過程的單獨觀看窗口,或允許專家玩家充當觀眾且跟隨新手玩家的遊戲過程且提供指導的觀看窗口等。基於該等成功準則,自分配模型315識別出輸出,且調整系統之資源以為線上遊戲之每一使用者提供所要的玩遊戲體驗。在圖4C中圖示之實例中,資源分配代理可分析資源分配模型315之輸出,以獲得線上遊戲之當前組態370且基於線上遊戲之當前遊戲狀態及當前組態370而提供具有組態更新372的信號以便滿足針對線上遊戲定義之成功準則。如所示,由資源分配代理313傳遞至組態代理311之信號可指示,用於處理物理分量、指令碼分量、動畫分量及組譯之處理節點需要再生更多,而分配用於暗影、聲音、記憶體管理及場景圖形之處理節點的量將維持在當前位準,用於處理紋理分量之處理節點之數目需要減小。由資源分配代理傳輸之信號係基於對基於成功準則而自對AI模型之分析識別出的不同資源之預測需求,且用於確保在預期預測需求時以即時方式為線上遊戲提供必要的資源,使得當使用者與線上遊戲交互時,遊戲資料係根據針對使用者之使用者度量及線上遊戲之遊戲狀態度量定義的成功準則使用分配的資源進行處理,且傳回至存在的使用者之客戶端裝置。
圖5圖示在基於對在線上遊戲之先前玩遊戲期間收集到的訓練資料之分析預測預期需求時用於為線上遊戲提供資源之遊戲雲端系統的實例邏輯結構。線上遊戲係複數個使用者同時玩的大型多玩家線上(MMO)遊戲。遊戲在遊戲雲端系統上執行且經由諸如網際網路之網路200存取。存取線上遊戲之使用者將對照保持在使用者帳戶310a中之對應使用者設定檔進行驗證。該驗證用於識別使用者經授權存取的線上遊戲之遊戲標題310b。在成功驗證後,允許使用者存取線上遊戲以玩遊戲。使用者可自不同地理位置存取線上遊戲,且遊戲雲端系統藉由在跨地理分佈的伺服器之網路上實例化線上遊戲來提供對線上遊戲之存取。分佈式遊戲引擎310用於執行線上遊戲之遊戲邏輯。實例化線上遊戲包括在伺服器之網路的每一伺服器上執行遊戲引擎310e及遊戲邏輯310f之實例。遊戲引擎提供必要的引擎/模組以用於處理遊戲引擎之不同功能部分,其中每一功能部分經組態以處理遊戲資料之對應特徵。舉例而言,可提供物理引擎以處理遊戲資料之物理分量,可提供暗影引擎以處理暗影分量,諸如此類。
玩線上遊戲期間之使用者輸入係自複數個使用者收集且用於影響遊戲之遊戲狀態及產生用於傳回至客戶端裝置以呈現的遊戲資料。使用者之輸入用於更新使用者之使用者度量310c,且遊戲之遊戲狀態經更新至遊戲狀態度量310d。使用者之使用者度量310c及遊戲狀態度量310d由分佈式遊戲引擎310使用以產生資源分配模型315 (AI模型)。資源分配模型315用於預測對用於線上遊戲之資源的需求且在預期資源將在玩線上遊戲期間使用之前前瞻性地縮放必要資源。該預測需求識別需要增加的資源及需要減少的資源。
如先前所提及,分佈式遊戲引擎管理遊戲邏輯,該遊戲邏輯影響在遊戲雲端系統上執行之遊戲的結果且提供複數個可再用組件以用於處理用於使線上遊戲變得生動的線上遊戲之某些核心特徵。由遊戲引擎之可再用組件處理的核心特徵包括圖形、音訊、物理、人工智慧、指令碼、動畫、網路連接、串流、最佳化、記憶體管理、執行緒化、本土化支援,僅舉幾個例子。遊戲邏輯基於自使用者接收之輸入而判定遊戲之遊戲狀態(即,結果)。自線上遊戲之執行產生的遊戲資料包括使線上遊戲變得生動的經處理特徵,以及遊戲之結果。
除了處理線上遊戲之核心特徵之外,該分佈式遊戲引擎亦使用機器學習演算法,以使用線上遊戲之遊戲資料來更新AI模型315之節點的神經網路。該機器學習演算法包括用於提供輸出以產生/改進資源分配模型之分類器。每一分類器具有引擎/模組,該引擎/模組經組態以識別且處理遊戲資料之特定特徵,且用與對特徵之處理及用於處理特徵之資源相關的資訊來更新AI模型之對應節點。經處理資訊將與遊戲資料一起向下轉發至其他分類器以進行進一步處理。舉例而言,可建造分類器以判定物理特徵之品質。可建造另一分類器以判定暗影之品質。可建造又一分類器以管理執行緒化(即,識別處理存在的不同特徵之遊戲切片的數目、該等遊戲切片如何互連、與不同特徵相關聯的遊戲切片之處理時間、用於佇列中之特定特徵之遊戲切片的數目等)。可建造其他分類器以識別紋理、記憶體管理、指令碼、場景圖形、動畫之品質,僅舉幾個例子。
神經網路包括具有經由邊緣連接之兩個連續節點的複數個節點。節點能夠經由不同邊緣連接至其他節點。自輸入節點起穿過互連節點之一集合通向輸出節點的邊緣限定路徑。基於互連之邊緣,可存在界定在輸入節點與輸出節點之間的許多路徑。使用AI模型,回應於使用者在玩線上遊戲期間之輸入而產生的遊戲資料將經由將輸入節點連接至輸出節點的互連節點(即,隱藏節點)之網路處理。每一節點用於分析遊戲資料以判定處理遊戲資料之特定特徵的效率及判定根據處理遊戲資料實現的圖案之一致性。舉例而言,該圖案可指示:物理或紋理或暗影之品質係/並非最佳的,音訊係/並非始終清晰的,存在來自遊戲切片之執行緒化的可接受/不可接受潛時等。資源分配代理313使用預定義分析器規則313a之一集合來分析由AI模型之分析器提供的圖案以導出輸出。該輸出指示特定成功準則得到滿足或未滿足,及所提供之資源係充足的或需要增多/減少。AI模型藉由跟隨互連節點之不同路徑及識別圖案來提供遊戲資料至不同輸出的映射。來自不同路徑之輸出可與關於遊戲狀態的得到滿足或未滿足之線上遊戲之成功準則有關。此外,輸出中之每一者識別為了處理沿著相應路徑經處理的遊戲資料之每一特徵所提供的資源之類型及每種類型之資源的量。基於該分析,資源分配代理產生信號至分佈式遊戲引擎組態代理311以將資源上調或下調。
組態代理可佔用資源管理服務330以管理對用於線上遊戲之資源的分配。資源管理服務330與硬體調度程式332相互作用,以判定在遊戲雲端系統中可用的硬體資源320中之每一者之狀態。在硬體調度程式332內之調度程式快取332a可識別資源中的哪些資源目前經指派用於執行工作(即,遊戲引擎任務)、哪些資源經調度以指派給工作、資源中的哪些資源係自由的、資源能力等。基於自硬體調度程式332獲得之資訊,資源管理服務330可識別資源中的可供分配以執行遊戲引擎任務之特定資源。使用由資源管理服務330共用之資訊,組態代理311可分配資源以用於處理線上遊戲之遊戲資料之特徵中的特定特徵。當新使用者加入遊戲對話時,在為新使用者選擇路由時使用分佈式遊戲引擎系統組態,因此,線上遊戲之使用者能夠具有令人滿意的玩遊戲體驗。
在一些實例實施中,圖6A至圖6C圖示各種類型之伺服器,可提供該等伺服器以用於實例化遊戲引擎及遊戲邏輯且用於處理關於線上遊戲產生的遊戲資料之特徵。如圖6A所示,伺服器可為實體伺服器308a。伺服器308a可為獨立的伺服器,或可為遊戲雲端系統內之資料中心的部分。資料中心中之伺服器可為資料中心內的獨立伺服器,或可為機架之部分,其中每一機架含有多個伺服器計算裝置。將參考圖7論述關於伺服器機架之更多資訊。實體伺服器包括必要的資源,諸如用於執行一或多個應用程式及/或遊戲引擎之一或多個功能部分的作業系統、記憶體、微處理器。應用程式或遊戲引擎之功能部分係儲存在記憶體中,使用微處理器來處理且由作業系統管理。
在遊戲世界中,許多使用者可自任何地理位置存取及玩MMO遊戲,但該等使用者可在一個虛擬遊戲空間中聚在一起。可佔用複數個伺服器以為使用者提供對線上遊戲之更快存取以用於玩遊戲。藉由玩在不同伺服器上執行之線上遊戲產生的遊戲狀態必須以快速且高效率的方式在該等伺服器間共用,使得以本質上即時地向處在虛擬遊戲空間中或在虛擬遊戲空間中觀看玩遊戲之使用者提供其自身(即,每一使用者自身)對遊戲場景的視點。在一實施中,為了提供對遊戲資料之更快存取,分佈式遊戲引擎之實例可在作為單一資料中心之部分的不同伺服器上執行。此組態高效率地工作,此係因為資料能夠沒有很多潛時地在資料中心內的不同伺服器之間交換。將參考圖7更詳細地論述用於在單一資料中心的伺服器之間交換資料之網路架構的細節。在一替代實施中,執行分佈式遊戲引擎及遊戲邏輯之實例的複數個伺服器可為在地理上分佈之複數個資料中心的部分。在此實施中,在不同伺服器中的伺服器間交換藉由玩線上遊戲產生的遊戲狀態,使得使用者能夠具備其自身對遊戲場景的視點。在遊戲狀態交換期間存在很小的相關潛時,但可以提供資源以減小潛時。
如圖6B中圖示,伺服器可為作為遊戲雲端系統之部分的虛擬機。該遊戲雲端系統可包括在主機機器之超級監督器(hypervisor)上運行的複數個虛擬機(VM) 308b,其中一或多個虛擬機經組態以支援利用主機之超級監督器可用的硬體資源來執行線上遊戲之實例的遊戲處理器。當與複數個虛擬機相關聯的複數個遊戲處理器執行線上遊戲之實例時,收集使用者之輸入,由遊戲雲端系統之一或多個後端伺服器(即,實體伺服器或虛擬伺服器)對該等輸入進行組織且對該等輸入進行處理以影響線上遊戲之遊戲狀態。對由線上遊戲回應於使用者之輸入產生的遊戲資料進行組譯、編碼且作為遊戲資料之串流訊框轉發至使用者之客戶端裝置以用於呈現。使用者之輸入亦用於產生用於訓練AI模型之訓練資料,AI模型用於管理用於線上遊戲之資源。虛擬機中之每一者可包括使用主機機器之虛擬化層(即,超級監督器)可用的硬體資源由作業系統執行的一或多個應用程式(例如,一或多個線上遊戲應用程式)。
在一實施中,圖6C圖示能夠用於為線上遊戲提供資源之伺服器的另一實例。該伺服器可為雲端容器308c之部分,該雲端容器允許諸如線上遊戲應用程式之應用程式及運行線上遊戲應用程式需要的應用程式之全部依存件、庫及組態文件一起捆綁至虛擬容器中,其中該應用程式使用容器內的已分配資源來運行該應用程式。該容器在沒有完整作業系統的情況下操作,由此提供作業系統層次虛擬化。容器能夠以最少量的資源操作以執行任務,諸如執行遊戲引擎之實例及線上遊戲之遊戲邏輯,其中資源(即,實體硬體資源)被虛擬化。雲端容器係可攜式的,此係因為雲端容器能夠完全部署至不同伺服器。在一實施中,該容器藉由與容器主體共用核心來提供經由程序及名字空間隔離技術的應用隔離。在一替代實施中,容器主體之核心不共用,由此藉由運行來自虛擬機之容器化應用程式來提供增強的隔離。前述類型之伺服器僅作為實例提供且不應被視為限制性的。亦可使用提供用於實例化遊戲引擎及遊戲邏輯之資源的其他形式之伺服器或計算裝置。
在一實施中,圖7圖示實例資料中心,用於運行線上遊戲之伺服器位於資料中心中。伺服器可為複數個伺服器(308-r11至308-r1m、308-r21至308-r2m、308-r31至308-r3m,諸如此類)的部分,該複數個伺服器網路連接在一起以提供用於執行諸如大型多玩家線上(MMO)遊戲之線上應用程式的必要計算能力。資料中心包括複數個機架(或塔)的伺服器及/或儲存設備。圖7展示3個機架/塔(機架1至3)。然而,資料中心可包括多於三個的機架且有時候包括幾百個機架的伺服器/儲存設備。資料中心中之機架能夠使用架頂式(top-of-rack;TOR)設計及列末端(end-of-row;EOR)設計來網路連接。
在TOR設計中,每一機架/塔包括置放在相應機架之頂部的機架式路由器(機架1之路由器350-a、機架2之路由器350-b、機架3之路由器350-c,諸如此類),且每一機架之計算裝置(即,伺服器/儲存設備)連接至相應的機架式路由器。機架式路由器中之每一者又連接至聚合開關360。在資料中心內的不同機架中之伺服器之間交換的資料流經相應的機架式路由器(350-a至350-c),而資料中心內的伺服器之間或在資料中心與資料中心外的另一計算裝置之間交換的資料流經相應的機架式路由器(350-a至350-c)及對應的聚合開關360。舉例而言,當對線上遊戲之遊戲資料的處理需要在資料中心內自機架1中之伺服器1 (308-r11)移動至機架3中之伺服器3 (308-r33) (由實心紅色線展示)以便更接近根據玩線上遊戲產生的其他資料時,轉移過程如下所述地進行:(a)上調伺服器308-r33,若不在上部且未運行;(b)將機架1之伺服器1 (308-r11)中的資料轉移至機架3之伺服器3 (308-r33),且在伺服器1 308-r11與伺服器3 308-r33之間同步資料,其中經由相應的頂架路由器350-a及350-c來處置資料之轉移及同步;以及(c)將控制遞交至伺服器3 (參見圖7中之紅色虛線)。使用頂架設計方法之一個優點係佈線複雜性減到最小,此係因為特定機架之全部伺服器連接至特定機架的對應架頂路由器,且僅有限數目個纜線延伸超出以連接至其他機架及聚合開關。諸如需要較少量的纜線、由於每一資料中心機架伴隨內建纜線的資料中心機架之模組化部署等的其他優點能夠由熟習此項技術者證明。
另一方面,在EOR網路設計中,各個機架中之每一伺服器直接連接至共用的EOR聚合開關-即,連接係直接的,而非經由相應機架之各個TOR路由器。因此,資料流通過EOR聚合開關。此方法之某一優點為,資料中心中之伺服器的擴展能夠容易地進行且伺服器之置放能夠獨立地進行而無需考慮任何伺服器機架約束,潛時減到最小,此係因為資料通過較少數目的路由器/開關。熟習此項技術者能夠想到此設計實施之其他優點。
在一些實施中,使用者可自世界上之任何地點連接至雲端遊戲系統之線上遊戲應用程式。線上遊戲應用程式藉由在分佈在世界上的不同資料中心之不同伺服器上起始多個遊戲實例來實現此連接。在玩線上遊戲期間在相應客戶端裝置處產生的使用者之輸入資料係自伺服器之網路收集,且使用網路模型中之任一者將遊戲資料之訊框傳回至相應客戶端裝置。本申請案中所描述的可用於在遊戲雲端系統的伺服器之間通信的網路模型之一些實例包括TCP/IP網路模型,或基於國際標準化組織(ISO)的開放式系統互連(OSI)網路架構。分佈式伺服器之間的資料處理及通信可遵守複數個現存協定中之任一者。ISO模型包括應用層(應用層、表示層、對話層)及資料流層(傳輸層、網路層、資料鏈路層及實體層)之一集合。該等應用層經組態以:識別傳輸及接收實體;以相應實體理解的方式在傳輸實體與接收實體之間轉移諸如線上遊戲之應用程式的資料;以及以最小資料損失管理且同步傳輸實體與接收實體之間的通信。該等資料流層經組態以判定是否應在順序或平行路徑中進行資料傳輸、將資料分組、將分組的資料組譯成訊框及沿著較佳路由傳輸資料之訊框應遵守的協定。應注意,前述描述僅提供在經由用於線上遊戲的伺服器之網路傳遞資料時所使用的ISO模型之概述,且各種層之作用的更精細細節係熟習此項技術者瞭解的,且因此不加以更詳細地描述。
圖8根據本發明之一實施圖示實例系統300A之概述,該系統支援收集使用者輸入以更新訓練資料且使用經更新的訓練資料構建及/或訓練與玩線上遊戲有關的資源分配模型。特別地,系統圖300A實現存取及玩儲存在遊戲雲端系統(GCS) 300中之視訊遊戲。一般來說,遊戲雲端系統GCS 300可為經由網路200操作之雲端計算系統,以經由對應遊戲過程來支援玩線上遊戲應用程式之複數個玩家。可提供與彼等玩遊戲有關的資料,以作為用於構建及/或訓練與玩線上遊戲應用程式有關的AI模型之訓練資料。特別地,系統300A包括GCS 300、一或多個社交媒體提供者240及客戶端裝置100,前述組件全部經由網路200 (例如,網際網路)連接。與複數個使用者相關聯的複數個客戶端裝置可連接至網路200以存取由GCS 300及社交媒體提供者240提供之服務。使用者可為跟隨特定玩家或玩線上遊戲的玩家或觀眾。
在一個實施例中,遊戲雲端系統300包括遊戲伺服器205、視訊記錄器271、標籤處理器273及包括使用者設定檔管理器之帳戶管理器274、遊戲選擇引擎(即,遊戲選擇器) 275、遊戲對話管理器285、使用者存取邏輯280、網路介面290及社交連接管理器295。GCS 300可進一步包括複數個儲存系統,諸如遊戲狀態儲存體、使用者帳戶、使用者資料儲存體等,該等儲存系統通常可儲存在資料儲存體260中。其他遊戲儲存系統可包括遊戲碼儲存體261、記錄之遊戲儲存體262、標籤資料儲存體263、視訊遊戲標題儲存體264及遊戲網路使用者儲存體265。在一個實施例中,GCS 300係可提供線上遊戲應用程式、服務、遊戲有關的數位內容及系統、應用程式、使用者及社交網路間之互連性的系統。GCS 300可經由網路介面290經由社交連接管理器295與使用者裝置100及社交媒體提供者240通信。社交連接管理器295可經組態以關聯一或多個朋友。在一個實施例中,每一交媒體提供者240包括展示使用者社交網路連接之至少一個社交圖形245。
玩家(即,使用者)能夠經由遊戲對話管理器285存取由GCS 300提供之服務。舉例而言,帳戶管理器274在GCS 300上實現玩家對遊戲標題之鑑認及存取。帳戶管理器274儲存關於使用者(玩家、觀眾)之資訊且管理每一使用者之使用者設定檔。使用者資訊能夠被帳戶管理器274用於鑑認目的。另外地,使用者擁有之遊戲標題可由帳戶管理器274來管理。舉例而言,儲存在遊戲標題儲存體264中之視訊遊戲可供擁有彼等視訊遊戲或存取彼等視訊遊戲之使用者使用。
在一個實施例中,使用者能夠借助於客戶端裝置100經由網路200上的連接來存取由GCS 300及社交媒體提供者240提供之服務。客戶端裝置100能夠包括任何類型的具有處理器及記憶體之裝置,該裝置係有線或無線的,可攜式的或非可攜式的。在一個實施例中,客戶端裝置100能夠呈智慧型電話、平板電腦或以可攜式形狀因子提供觸控螢幕能力之混合物的形式。一個例示性客戶端裝置能夠包括可攜式電話裝置,該可攜式電話裝置運行作業系統且具備可經由網路200獲得且在本端可攜式裝置(例如,智慧型電話、平板、膝上型裝置、桌上型裝置等)上執行之各種應用程式(app)的存取。
客戶端裝置100包括顯示器132,該顯示器充當供使用者用於發送輸入命令236且顯示自GCS 300及社交媒體提供者240接收之資料及/或資訊135的介面。顯示器132能夠組態為觸控螢幕,或通常由平板顯示器、陰極射線管(CRT)或能夠呈現顯示之其他裝置提供的顯示器。替代地,客戶端裝置100能夠使其顯示器132與裝置分離,類似於桌上型電腦或膝上型電腦。
在一個實施例中,客戶端裝置100經組態以與GCS 300通信以使使用者(玩家)能夠玩視訊遊戲。舉例而言,玩家可經由遊戲選擇引擎275(例如,根據遊戲標題等)選擇在遊戲標題資料儲存體264中可獲得之視訊遊戲。啟用選擇之視訊遊戲,且載入視訊遊戲之實例以用於供GCS 300上之遊戲伺服器205執行。在一個實施例中,玩遊戲主要在GCS 300中執行,使得客戶端裝置100將自GCS 300接收遊戲視訊框135之串流,且將用於驅動遊戲過程之使用者輸入命令236傳輸回至GCS 300。來自串流遊戲過程之接收到的視訊框135將在客戶端裝置100之顯示器132上呈現。
在一個實施例中,在玩家選擇要玩的可用遊戲標題之後,所選擇的遊戲標題之遊戲對話可由玩家經由遊戲對話管理器285起始。遊戲對話管理器285首先存取資料儲存體260中之遊戲狀態儲存體以擷取玩家玩過的最後對話之保存遊戲狀態(對於選中的遊戲),若存在的話,使得玩家能夠自先前玩遊戲停止點重新開始玩遊戲。在識別出恢復或開始點後,遊戲對話管理器285可通知遊戲伺服器205中之遊戲執行引擎,以執行來自遊戲碼儲存體261的所選擇的遊戲標題之遊戲碼。在起始遊戲對話之後,遊戲對話管理器285可經由網路介面290將遊戲視訊框135 (即,串流視訊資料)傳遞至例如客戶端裝置100之客戶端裝置。
在玩遊戲期間,遊戲對話管理器285可與遊戲伺服器205、視訊記錄器271中之記錄引擎及標籤處理器273通信,以產生或保存玩遊戲或玩遊戲對話之記錄(例如,視訊)。在一個實施例中,玩遊戲之視訊記錄能夠包括在玩遊戲期間鍵入或提供之標籤內容,或其他遊戲相關後設資料。標籤內容亦可經由快照保存。玩遊戲之視訊記錄及與彼玩遊戲相對應的的任何遊戲度量一起可保存在記錄之遊戲儲存體262中。任何標籤內容可保存在標籤資料儲存體263中。
在玩遊戲期間,遊戲對話管理器285可與遊戲伺服器205通信以遞送及獲得使用者輸入命令236,該等使用者輸入命令用於影響與玩視訊遊戲相對應的結果。由玩家鍵入之輸入命令236可自客戶端裝置100傳輸至GCS 300之遊戲對話管理器285。輸入命令(例如,控制器輸入或使用者輸入) 236包括用於驅動玩遊戲的輸入命令及使用者交互式輸入,諸如標籤內容(例如,文本、圖形、視訊記錄片段等)。遊戲輸入命令以及任何使用者遊戲度量(使用者玩遊戲有多久等)可儲存在遊戲網路使用者儲存體中。與玩視訊遊戲有關的選擇資訊可用於實現可供使用者使用之多個特徵。
相應地,在各種實施例中,本發明描述系統及方法,該等系統及方法實現機器學習(亦稱為深度學習)演算法以使用訓練資料建構AI模型且用於使用經過訓練的AI模型提供與線上遊戲應用程式及/或玩線上遊戲應用程式有關的各種功能性,該訓練資料係自執行支援一次或多次玩遊戲的線上遊戲應用程式之實例的伺服器之網路收集。
如早前所提及,AI模型係使用互連節點之網路構建。每一節點自作為輸入提供至AI模型之遊戲輸入學習一些資訊。知識經由互連在網路內的不同節點之間交換。輸入至AI模型之遊戲資料激活網路中的節點之初始集合。接下來,節點之此初始集合激活其他節點,由此將關於遊戲輸入之知識自一個節點傳播至下一個節點。跨其他節點重複此激活程序,由此根據知識構建,以提供輸出。輸出表示給定集合之遊戲資料的預期或預測結果,其中給定集合之訓練資料包括特定集合的使用者之輸入及線上遊戲之遊戲狀態。在後續執行線上遊戲期間,接著可將來自AI模型之輸出用於改進處理節點之分配(即,用於處理遊戲資料之特定特徵的伺服器資源),以便滿足成功準則。由於用於訓練AI模型之遊戲資料與玩線上遊戲有關,因此AI模型經過訓練以學習可用於獲得與不同成功準則相關聯的玩線上遊戲之不同輸出之資源的每一個可能組態。因此,當給予AI模型與後續玩線上遊戲有關的一集合之遊戲資料(例如,使用者之輸入、遊戲狀態等)時,AI模型能夠提供與彼玩遊戲之成功準則最對準的輸出。AI模型可經由各種機器學習(即,AI)演算法產生,該等機器學習演算法包括深度學習(即,機器學習)、強化學習、監督學習、非監督學習、半監督學習、增量學習、基於獎勵的學習等。上文列出的AI演算法之類型僅為了說明目的而給出,而非詳盡或限制性的。分類器引擎用於識別AI模型之節點的特徵,且規則將與節點相關聯的給定集合之特徵鏈接至特定輸出。舉例而言,在監督學習環境中,給定集合之特徵的輸出係預定的,且深度學習引擎學習將該集合之特徵鏈接至輸出的規則,其中每一規則與輸出相關聯,且應用成功準則以定義該規則。在非監督學習環境中,不將給定集合之特徵自動地繫結至輸出,但可藉由查找相似性或與其他類似集合之特徵有關的資料點之叢集來學習該規則。深度學習可使用監督學習來構建初始AI模型及使用無監督學習來改進AI模型。將經過訓練的AI模型用於判定線上遊戲之當前資源分配、用於給定成功準則的預測資源分配,且彈性地調整分配給線上遊戲以便在玩線上遊戲期間獲得所要結果的資源。
圖9根據一實施圖示用於為了玩線上遊戲提供資源之方法的樣本流程操作。該方法自操作910開始,其中接收線上遊戲之訓練資料。線上遊戲係有複數個玩家存取線上遊戲以參加玩遊戲對話的多玩家遊戲。該等玩家可自任何位置存取線上遊戲以玩遊戲。因此,在複數個伺服器上執行線上遊戲之複數個實例,包括線上遊戲之遊戲引擎及遊戲邏輯,且將藉由執行線上遊戲產生的來自線上遊戲之遊戲資料轉發至玩家之客戶端裝置中的相應客戶端裝置。除了玩家之外,複數個觀眾亦可存取線上遊戲以跟隨特定玩家之遊戲過程或線上遊戲的遊戲過程。由遊戲雲端系統之遊戲伺服器自複數個玩家收集使用者在玩遊戲期間的輸入,且對該等輸入進行處理以影響線上遊戲之遊戲狀態且產生遊戲資料。訓練資料包括使用者之輸入及線上遊戲之遊戲狀態,以及針對線上遊戲定義之成功準則。
使用訓練資料來產生資源分配模型,如操作920中所說明。使用採用機器學習演算法之人工智慧(AI)模型化器來產生資源分配模型。模型化器識別用於處理關於線上遊戲所產生的遊戲資料之特定特徵的分佈式遊戲引擎之功能部分,且將與該等功能部分有關的資訊上載至AI模型的互連之複數個節點中的特定節點。上載至節點之資訊可包括遊戲引擎之功能部分,基於線上遊戲之遊戲狀態及使用者之輸入以及針對線上遊戲之遊戲狀態定義的成功準則得到滿足或未被滿足,該功能部分用於處理遊戲資料之特定特徵、用於處理特定特徵之資源的類型及量。
使用由資源分配模型提供之資訊,分配資源以用於執行線上遊戲之功能部分,如操作930中所說明。該等功能部分執行與遊戲資料之特徵中的特定特徵有關的遊戲引擎任務中之選定遊戲引擎任務。所分配的資源提供充分資源以用於處理相應的遊戲引擎任務,且分配用於執行該等功能部分之資源的類型及量係資源分配模型指定的。
資源之分配可包括:對指派識別出的處理節點中的選定處理節點以處理特定遊戲引擎任務進行管理;將該等特定遊戲引擎任務分佈至該等選定處理節點進行處理;在該等選定處理節點與該複數個處理節點中的剩餘處理節點之間以及在該等選定處理節點與組態代理之間路由經處理的結果;以及使對分佈在該複數個處理節點間的該等遊戲引擎任務之處理同步。對處理節點進行分配以提供最佳資源以成功地處理遊戲資料,以滿足針對線上遊戲定義之成功準則,使得線上遊戲之使用者具有令人滿意的玩遊戲體驗。
圖10圖示能夠用於執行本發明之各種實施例之態樣的實例裝置600的組件。舉例而言,根據本發明之一個實施例,圖10圖示適合訓練AI模型之例示性硬體系統,該AI模型能夠執行與線上遊戲及/或玩線上遊戲有關的各種功能性。此方塊圖圖示裝置600,裝置600能併有或可為個人電腦、伺服器電腦、遊戲控制台、行動裝置或其他數位裝置,前述裝置中之每一者適合實踐本發明之實施例。替代地,裝置之功能性可在實體伺服器中或在虛擬機或容器伺服器上實現。裝置600包括用於運行軟體應用程式及視情況的作業系統之中央處理單元(CPU) 602。CPU 602可由一或多個同質或異質的處理核心組成。
根據各種實施例,CPU 602係具有一或多個處理核心之一或多個通用微處理器。能夠使用具有微處理器架構之一或多個CPU來實現另外的實施例,該等微處理器架構特別適應高度平行且計算密集的應用,例如媒體及互動式娛樂應用,應用經組態用於深度學習、內容分類及使用者分類。舉例而言,CPU 602可經組態以包括AI引擎,該AI引擎經組態以支援及/或執行關於提供與線上遊戲及/或玩線上遊戲有關的各種功能性(例如,預測)之學習操作。深度學習引擎可包括組態用於構建及/或訓練AI模型之模型化器120,該AI模型經組態以提供與線上遊戲及/或玩線上遊戲有關的各種功能性。此外,CPU 602包括分析器140,所述分析器經組態用於產生及訓練AI模型。經過訓練的AI模型回應於特定集合的使用者之輸入而提供輸出,其中輸出取決於經過訓練的AI模型之預定義功能性。經過訓練的AI模型可用於判定資源分配,該資源分配將在玩遊戲期間實現以滿足針對線上遊戲定義之成功準則。分析器140經組態以執行與線上遊戲及/或玩線上遊戲有關的各種功能性且提供回應,各種功能性包括分析針對給定輸入(例如,控制器輸入、遊戲狀態資料、成功準則)的來自經過訓練的AI模型160之輸出。
記憶體604儲存供CPU 602使用之應用程式及資料。儲存器606提供應用程式及資料之非揮發性儲存器及其他電腦可讀媒體,且可包括固定磁碟驅動器、可移式磁碟驅動器、快閃記憶體裝置及CD-ROM、DVD-ROM、藍光(Blu-ray)、HD-DVD或其他光學儲存裝置,以及信號傳輸及儲存媒體。使用者輸入裝置608將來自一或多個使用者之使用者輸入傳達至裝置600,裝置600之實例可包括鍵盤、鼠標、遊戲桿、觸控板、觸控螢幕、靜態或視訊記錄器/攝影機、遊戲控制器及/或麥克風。網路介面614允許裝置600經由電子通信網路與其他電腦系統通信,且可包括區域網及例如網際網路之廣域網上的有線或無線通信。音訊處理器612經調適以根據由CPU 602、記憶體604及/或儲存器606提供之指令及/或資料來產生類比或數位音訊輸出。包括CPU 602、記憶體604、資料儲存器606、使用者輸入裝置608、網路介面610及音訊處理器612之裝置600的組件經由一或多個資料匯流排622連接。
圖形子系統613另外與資料匯流排622及裝置600之組件連接。圖形子系統613包括圖形處理單元(GPU) 616及圖形記憶體618。圖形記憶體618包括用於儲存輸出影像之每一像素之像素資料的顯示記憶體(例如,訊框緩衝器)。圖形記憶體618能夠與GPU 616集成在同一個裝置中,作為分開的裝置與GPU 616連接,及/或在記憶體604內實現。像素資料能夠自CPU 602直接提供至圖形記憶體618。替代地,CPU 602為GPU 616提供定義所要輸出影像的資料及/或指令,GPU 616根據資料及/或指令產生一或多個輸出影像之像素資料。定義所要輸出影像之資料及/或指令能夠儲存在記憶體604及/或圖形記憶體618中。在一實施例中,GPU 616包括3D呈現能力,該3D呈現能力用於根據定義場景之幾何形狀、照明、暗影、紋理、運動及/或相機參數的指令及資料來產生輸出影像的像素資料。GPU 616可進一步包括能夠執行著色器(shader)程式之一或多個可程式化執行單元。在一個實施例中,GPU 616可在AI引擎內實現以提供額外的處理能力,諸如用於AI或深度學習功能性。
圖形子系統613定期自圖形記憶體618輸出影像之像素資料,以在顯示裝置610上顯示或由投影系統640投影。顯示裝置610可為能夠回應於來自裝置600之信號而顯示視覺資訊之任何裝置,包括CRT、LCD、等離子及OLED顯示器。裝置600可為顯示裝置610提供例如類比或數位信號。
應理解,本文中定義之各種實施例可使用本文中揭示之各種特徵來組合或組裝成特定實施。因此,所提供的實例僅係一些可能的實例,但不限於藉由組合各種元件以定義更多實施而有可能的各種實施。在一些實例中,在不背離所揭示或等效之實施的精神的情況下,一些實施可包括更少的元件。
可用各種電腦系統組態來實踐本發明之實施例,該等電腦系統組態包括手持式裝置、微處理器系統、基於微處理器的或可程式化的消費者電子設備、微型電腦、大型電腦以及類似裝置。本發明之實施例亦可在任務係由經由有線或無線網路鏈接之遠端處理裝置執行的分佈式計算環境中實踐。
記住以上實施例,應理解,本發明之實施例能夠使用涉及儲存在電腦系統中之資料的各種電腦實現的操作。此等操作係需要對物理量進行實體操控之操作。形成本發明之實施例的本文中所描述的操作中的任一者係有用的機器操作。本發明之實施例亦係關於用於執行此等操作之裝置或設備。可針對所需目的特別地構造該設備,或該設備可為藉由儲存在電腦中之電腦程式選擇性地啟動或組態之通用電腦。特別地,各種通用機器能夠與根據本文中的教示寫出的電腦程式一起使用,或構造更專用的設備以執行所需操作可能更便利。
本發明亦可具體化為電腦可讀媒體上之電腦可讀碼。電腦可讀媒體係可儲存資料的任何資料儲存裝置,資料儲存裝置此後能用電腦系統來讀取。電腦可讀媒體之實例包括影碟機、網路附接儲存(NAS)、唯讀記憶體、隨機存取記憶體、CD-ROM、CD-R、CD-RW、磁帶及其他光學及非光學的資料儲存裝置。電腦可讀媒體可包括分佈在網路耦合電腦系統上之電腦可讀有形媒體,因此將以分佈式方式來儲存且執行電腦可讀碼。
儘管按特定次序描述了方法操作,但應理解,可以在操作之間執行其他的家務操作,或可對操作進行調整,使得操作在稍微不同的時間發生,或可以分佈在允許處理操作按與處理相關聯的各種間隔發生的系統中,只要按所要方式執行對重疊操作的處理。
儘管出於理解清楚的目的,已相當詳細地描述前述揭示內容,但將瞭解,在附加之申請專利範圍的範圍內,能夠實踐某些變化及修改。相應地,本發明之實施例被視為說明性的,而非限制性的,且本發明之實施例不限於本文中給出之細節,但可以在附加之申請專利範圍的範圍及等效物內進行修改。
100:客戶端裝置
120:模型化器
132:顯示器
135:遊戲視訊框
140:分析器
200:網路
205:遊戲伺服器
236:輸入命令
240:社交媒體提供者
245:社交圖形
260:資料儲存體
261:遊戲碼儲存體
262:記錄之遊戲儲存體
263:標籤資料儲存體
264:遊戲標題儲存體
265:遊戲網路使用者儲存體
271:視訊記錄器
273:標籤處理器
274:帳戶管理器
275:遊戲選擇器
280:使用者存取邏輯
285:遊戲對話管理器
290:網路介面
295:社交連接管理器
300:遊戲雲端系統(GCS)
300A:系統
302:管理節點
302-m1:節點m1
302-m2:節點m2
302-m3:節點m3
302-m4:節點m4
304:主伺服器節點
304a:程序同步層
306:膠合邏輯
308:處理節點
308a:實體伺服器
308b:虛擬機
308c:雲端容器
308-r11:伺服器
308-r12:伺服器
308-r13:伺服器
308-r1m:伺服器
308-r21:伺服器
308-r22:伺服器
308-r23:伺服器
308-r2m:伺服器
308-r31:伺服器
308-r32:伺服器
308-r33:伺服器
308-r3m:伺服器
310:分佈式遊戲引擎(DGE)
310a:使用者帳戶模組
310b:遊戲標題模組
310c:使用者度量模組
310d:遊戲狀態度量模組
310e:遊戲引擎
310f:遊戲邏輯
311:分佈式遊戲引擎(DGE)組態代理
312:訓練資料
312a:使用者輸入
312b:遊戲狀態
312c:成功準則
313:資源分配代理
313a:分析器規則
314:分類器引擎
315:資源分配模型/AI模型
320:處理資源/可用的硬體資源
320a:資源
320b:資源
320c:資源
320m:資源
330:資源管理服務
332:硬體調度程式
332a:調度程式快取
350-a:路由器
350-b:路由器
350-c:路由器
360:聚合開關
370:當前組態
372:組態更新
600:裝置
602:中央處理單元(CPU)
604:記憶體
606:儲存器
608:使用者輸入裝置
610:顯示裝置
612:音訊處理器
613:圖形子系統
614:網路介面
616:圖形處理單元(GPU)
618:圖形記憶體
622:資料匯流排
910:操作
920:操作
930:操作
藉由結合附圖參考以下描述可最佳地理解本發明。
[圖1]根據本發明之一實施圖示在提供資源時使用之遊戲雲端系統的簡化實體視圖。
[圖2]根據本發明之一實施圖示在用於為線上遊戲提供資源之遊戲雲端系統內所使用之分佈式遊戲引擎的簡化方塊圖。
[圖3]根據本發明之一實施圖示在為線上遊戲提供資源時使用之分佈式遊戲引擎的各種組件。
[圖3A]根據本發明之一實施圖示在產生及訓練在為線上遊戲提供資源時使用之資源分配模型中所使用的訓練資料的分量。
[圖4A]根據本發明之一實施圖示具有用於處理分佈式遊戲引擎之功能部分之資源的已分配處理節點的簡化方塊圖。
[圖4B]根據本發明之一實施圖示分配用於處理分佈式遊戲引擎之功能部分之處理節點的替代實施。
[圖4C]根據本發明之一實施圖示展示對用於處理分佈式遊戲引擎之功能部分之處理節點的組態之更新的簡化方塊圖。
[圖5]根據本發明之一實施圖示遊戲雲端系統之邏輯結構的簡化方塊圖,該邏輯結構佔用分佈式遊戲引擎以為線上遊戲提供資源。
[圖6A]至[圖6C]根據本發明之一實施圖示用於提供用於處理線上遊戲的分佈式遊戲引擎之功能部分之資源的各種類型之處理節點伺服器。
[圖7]根據本發明之一實施圖示能夠用於提供資源的在資料中心內之伺服器機架的簡化方塊圖。
[圖8]根據本發明之一實施圖示用於執行線上遊戲且經由雲端遊戲網路將遊戲資料之訊框提供至一或多個客戶端裝置的遊戲雲端系統的系統圖。
[圖9]根據本發明之一實施圖示用於使用資源分配模型為線上遊戲提供資源之方法的流程操作。
[圖10]根據本發明之一實施圖示用於使用模型化器構建及訓練資源分配模型(人工智慧(AI)模型)之實例計算裝置的組件。
200:網路
310:分佈式遊戲引擎(DGE)
310a:使用者帳戶模組
310b:遊戲標題模組
310c:使用者度量模組
310d:遊戲狀態度量模組
311:分佈式遊戲引擎(DGE)組態代理
313:資源分配代理
313a:分析器規則
315:資源分配模型/AI模型
320:處理資源/可用的硬體資源
330:資源管理服務
332:硬體調度程式
332a:調度程式快取
Claims (20)
- 一種用於為一線上遊戲提供資源之分佈式遊戲引擎,該分佈式遊戲引擎包含: 複數個管理節點,該複數個管理節點經組態用於將該分佈式遊戲引擎之功能部分分佈在複數個處理節點上; 一資源分配模型,該資源分配模型係根據玩遊戲訓練資料構造,該玩遊戲訓練資料包括藉由玩該線上遊戲而自使用者接收之輸入、該線上遊戲之遊戲狀態及成功準則;以及 一資源分配代理,該資源分配代理用於存取該資源分配模型及用於與一組態代理通信以基於由該資源分配模型指定之資源分配來識別處理該線上遊戲之該等功能部分中的特定功能部分所需的該複數個處理節點中之每一者的資源, 其中該分佈式遊戲引擎包括一程序同步層,該程序同步層與該複數個處理節點中之每一者及該複數個管理節點中之每一者介接,以提供資源來執行該線上遊戲之該等功能部分,此產生用於在該等使用者之客戶端裝置處呈現的視訊框。
- 如申請專利範圍第1項之分佈式遊戲引擎,其中該資源分配模型識別處理該分佈式遊戲引擎之該等功能部分中的該等特定功能部分所需的處理節點之類型及每種類型的處理節點之數目。
- 如申請專利範圍第2項之分佈式遊戲引擎,其中該等輸入係自該等使用者之該玩遊戲連續地收集,且將基於該等收集到的輸入及成功準則而即時地更新該資源分配模型,其中該更新包括基於該線上遊戲之遊戲狀態來調整處理該分佈式遊戲引擎之該等功能部分中的特定功能部分所需的處理節點之該類型及每種類型的處理節點之數目。
- 如申請專利範圍第1項之分佈式遊戲引擎,其中每一功能部分識別該分佈式遊戲引擎之一特定遊戲引擎任務,且其中該程序同步層包括一虛擬匯流排以用於: 對指派該複數個處理節點中的選定處理節點以處理該線上遊戲之遊戲引擎任務中的特定遊戲引擎任務進行管理; 將該等遊戲引擎任務中的該等特定遊戲引擎任務分佈至該等選定處理節點進行處理; 在該等選定處理節點與該複數個處理節點中的剩餘處理節點之間以及在該等選定處理節點與該組態代理之間路由經處理的結果;以及 使對分佈在該複數個處理節點間的該等遊戲引擎任務之處理同步,該同步包括根據該等遊戲引擎任務中的相應遊戲引擎任務之程序時序來管理該等遊戲引擎任務之佇列。
- 如申請專利範圍第1項之分佈式遊戲引擎,其中該等處理節點中之至少一者經組態以:組譯來自該複數個處理節點之該遊戲資料;處理該遊戲資料;壓縮該遊戲資料;對該遊戲資料編碼以產生用於傳輸至該等使用者之客戶端裝置的視訊框, 其中執行該壓縮及該編碼以將該等視訊框格式化成與該等視訊框被轉發至的該等使用者之該等客戶端裝置中的相應客戶端裝置相容,該等視訊框之該等格式化係基於判定對該等客戶端裝置中的該等相應客戶端裝置進行傳輸所使用的可用頻寬及傳輸協定而進行的測試來完成。
- 如申請專利範圍第1項之分佈式遊戲引擎,其中該複數個管理節點中之每一者及該複數個處理節點中之每一者經指派給明顯分開的伺服器以供執行。
- 如申請專利範圍第6項之分佈式遊戲引擎,該等伺服器分佈在一單一資料中心內,或跨在地理上分佈之複數個資料中心而分佈。
- 如申請專利範圍第6項之分佈式遊戲引擎,其中該等伺服器係獨立的實體伺服器,或作為一或多個資料中心之部分的實體伺服器,或虛擬伺服器,或容器伺服器,或其任何組合。
- 如申請專利範圍第1項之分佈式遊戲引擎,其中自使用者接收之輸入包括自遊戲開發者接收之輸入及在玩遊戲期間獲得的自玩家接收之輸入。
- 如申請專利範圍第1項之分佈式遊戲引擎,其中該資源分配模型係使用一機器學習演算法構造。
- 如申請專利範圍第1項之分佈式遊戲引擎,其中該資源分配模型係構造成基於存取該線上遊戲之使用者之類型來識別該資源分配。
- 如申請專利範圍第11項之分佈式遊戲引擎,其中使用者之該類型包括玩家、觀眾或玩家與觀眾之一組合。
- 如申請專利範圍第1項之分佈式遊戲引擎,其中該分佈式遊戲引擎之該等功能部分包括與將在執行該線上遊戲期間執行之特定遊戲引擎任務相對應的遊戲邏輯。
- 一種用於為一線上遊戲提供資源之方法,該方法包含: 接收該線上遊戲之訓練資料,其中該訓練資料識別在玩該線上遊戲期間接收到的使用者輸入、該線上遊戲之遊戲狀態及成功準則; 使用該訓練資料產生用於該線上遊戲之一資源分配模型,該資源分配模型識別經組態用於處理一分佈式遊戲引擎之功能部分的複數個處理節點,其中該複數個處理節點中的選定處理節點經組態以提供處理資源以處理該分佈式遊戲引擎之一特定功能部分;以及 根據由該資源分配模型指定之資源分配來分配該複數個處理節點以處理該線上遊戲之該等功能部分,其中該特定功能部分執行遊戲引擎任務中的選定遊戲引擎任務,該分配包括彈性地調整該等分配的資源, 其中由一雲端遊戲系統之一伺服器之一處理器執行該方法的操作。
- 如申請專利範圍第14項之方法,其中該分配包括, 對指派該等選定處理節點以處理與該特定功能部分相關聯的該等遊戲引擎任務中的該等選定遊戲引擎任務進行管理; 將該等遊戲引擎任務中的該等選定遊戲引擎任務分佈至該等選定處理節點進行處理; 在該等選定處理節點與該複數個處理節點中的剩餘處理節點之間以及在該等選定處理節點與用於彈性地調整為該等處理節點分配之該等資源的一組態代理之間路由經處理的結果;以及 使對分佈在該複數個處理節點間的該等遊戲引擎任務之處理同步。
- 如申請專利範圍第15項之方法,其中分配包括識別需要提供至選定處理節點以用於處理該分佈式遊戲引擎之該特定功能部分的資源之類型及該類型之資源的量。
- 如申請專利範圍第15項之方法,其中接收訓練資料包括, 在玩該線上遊戲期間連續地自複數個使用者收集該等使用者輸入,該等使用者輸入更新該訓練資料;以及 基於該更新的訓練資料及該等成功準則來即時地更新該資源分配模型,該更新包括針對該線上遊戲動態地調整需要提供至該等選定處理節點以用於處理該分佈式遊戲引擎之該特定功能部分的資源之類型及該類型之資源的量。
- 如申請專利範圍第14項之方法,其中將該複數個處理節點中之每一者指派給一不同的伺服器,該不同的伺服器提供處理向其指派的對應功能部分所需的資源。
- 如申請專利範圍第14項之方法,其中使用者輸入包括來自該線上遊戲之開發者的輸入,或來自該線上遊戲之玩家的輸入,或來自觀看玩該線上遊戲之觀眾的輸入,或其任何組合。
- 如申請專利範圍第14項之方法,其中該資源分配模型基於存取該線上遊戲之使用者的類型來識別資源分配,其中使用者之該類型包括玩家,或觀眾,或玩家與觀眾之一組合。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/208,461 US11077362B2 (en) | 2018-12-03 | 2018-12-03 | Machine learning driven resource allocation |
US16/208,461 | 2018-12-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202023665A true TW202023665A (zh) | 2020-07-01 |
TWI716201B TWI716201B (zh) | 2021-01-11 |
Family
ID=69646028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108142314A TWI716201B (zh) | 2018-12-03 | 2019-11-21 | 用於為一線上遊戲提供資源之分佈式遊戲引擎及方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11077362B2 (zh) |
EP (1) | EP3891607A1 (zh) |
JP (2) | JP7259033B2 (zh) |
KR (1) | KR102322941B1 (zh) |
CN (1) | CN111249724A (zh) |
TW (1) | TWI716201B (zh) |
WO (1) | WO2020117442A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11161046B2 (en) * | 2019-05-10 | 2021-11-02 | Christopher Bogart Slovak | Artificial intelligence based video game state detection |
CN111951366B (zh) * | 2020-07-29 | 2021-06-15 | 北京蔚领时代科技有限公司 | 一种云原生3d场景游戏方法和系统 |
US20220129295A1 (en) | 2020-10-25 | 2022-04-28 | Meta Platforms, Inc. | Server-side hosted environment for a cloud gaming system |
US11018938B1 (en) | 2020-11-06 | 2021-05-25 | Salesforce.Com, Inc. | Auditing metadata representation of a cloud-computing platform based datacenter |
US11609794B2 (en) * | 2020-11-10 | 2023-03-21 | Oracle International Corporation | Techniques for modifying cluster computing environments |
US20220171960A1 (en) * | 2020-11-30 | 2022-06-02 | Sony Interactive Entertainment Inc. | Reaction track for different spectator groups within an audience |
KR102484455B1 (ko) * | 2020-12-04 | 2023-01-02 | 손동우 | 클라우드 게이밍 시스템 및 이를 제어하는 방법 |
US20220214917A1 (en) * | 2021-01-07 | 2022-07-07 | Quanta Computer Inc. | Method and system for optimizing rack server resources |
CN113368504B (zh) * | 2021-06-09 | 2023-10-17 | 咪咕互动娱乐有限公司 | 云游戏服务系统、交互方法、存储介质 |
CN113730902A (zh) * | 2021-08-13 | 2021-12-03 | 许磊 | 一种用于游戏的免下载运行方法 |
US11826644B2 (en) * | 2021-10-05 | 2023-11-28 | Sony Interactive Entertainment Inc. | Bifurcation of gameplay between mobile and non-mobile play with intelligent game state saving, and startups |
US11848842B2 (en) * | 2021-12-08 | 2023-12-19 | Sony Interactive Entertainment Inc. | Network storage game allocation based on artificial intelligence |
CN114880107A (zh) * | 2021-12-09 | 2022-08-09 | 许磊 | 一种高效低成本的云游戏系统 |
KR20230087319A (ko) * | 2021-12-09 | 2023-06-16 | 국민대학교산학협력단 | 인공지능 기반 클라우드 학습장치 및 방법 |
US11745109B2 (en) * | 2022-02-08 | 2023-09-05 | Sony Group Corporation | Methods for controlling use of computing resources, such as virtual game consoles |
CN114760639A (zh) * | 2022-03-30 | 2022-07-15 | 深圳市联洲国际技术有限公司 | 资源单元分配方法、装置、设备及存储介质 |
CN114826917B (zh) * | 2022-04-25 | 2023-12-08 | 中国农业银行股份有限公司 | 一种基于博弈的网络资源分配方法及装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9138644B2 (en) * | 2002-12-10 | 2015-09-22 | Sony Computer Entertainment America Llc | System and method for accelerated machine switching |
US8840475B2 (en) * | 2002-12-10 | 2014-09-23 | Ol2, Inc. | Method for user session transitioning among streaming interactive video servers |
US20100113159A1 (en) | 2008-11-06 | 2010-05-06 | International Business Machines Corporation | Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems |
US20120102185A1 (en) * | 2010-10-20 | 2012-04-26 | Sony Computer Entertainment America Inc. | Resource management of server hosts in online game environment |
CN102262534B (zh) | 2011-07-12 | 2013-10-02 | 红石娱动网络科技(北京)有限公司 | 基于互联网b/s结构的计算机网络游戏开发系统及方法 |
US20130254417A1 (en) | 2012-03-21 | 2013-09-26 | Jason Nicholls | System method device for streaming video |
US9433862B2 (en) | 2013-02-12 | 2016-09-06 | Microsoft Technology Licensing, Llc | Dynamic allocation of computing resources in remote gaming environment |
US9628332B2 (en) * | 2013-05-20 | 2017-04-18 | Microsoft Technology Licensing, Llc | Resource allocation to game titles in a remote gaming environment |
CN105794177A (zh) * | 2013-12-01 | 2016-07-20 | 交互数字专利控股公司 | 使用基于策略的决策引擎的体验质量优化 |
CN105830031B (zh) * | 2013-12-18 | 2020-12-11 | 瑞典爱立信有限公司 | 用于选择媒体处理单元的方法和网络节点 |
US10296391B2 (en) * | 2014-06-30 | 2019-05-21 | Microsoft Technology Licensing, Llc | Assigning a player to a machine |
US9354937B2 (en) | 2014-07-18 | 2016-05-31 | Thomson Reuters Global Resources | System and method for electronic work prediction and dynamically adjusting server resources |
US9675889B2 (en) | 2014-09-10 | 2017-06-13 | Zynga Inc. | Systems and methods for determining game level attributes based on player skill level prior to game play in the level |
CN104363277A (zh) * | 2014-11-13 | 2015-02-18 | 上海交通大学 | 云游戏分布式系统中带宽资源分配管理系统及其管理方法 |
CN104598292B (zh) * | 2014-12-15 | 2017-10-03 | 中山大学 | 一种应用于云游戏系统的自适应流适配和资源优化方法 |
US10709988B2 (en) * | 2015-03-06 | 2020-07-14 | Sony Interactive Entertainment America Llc | Predictive instant play for an application over the cloud |
US10200261B2 (en) * | 2015-04-30 | 2019-02-05 | Microsoft Technology Licensing, Llc | Multiple-computing-node system job node selection |
US10140164B2 (en) | 2016-07-25 | 2018-11-27 | Accenture Global Solutions Limited | Computer resource allocation to workloads in an information technology environment |
KR101892739B1 (ko) | 2016-09-30 | 2018-08-28 | 한국전자통신연구원 | 게임 운영 시나리오 생성 장치 및 그 방법 |
US10491666B2 (en) | 2017-04-03 | 2019-11-26 | Sony Interactive Entertainment America Llc | Systems and methods for using a distributed game engine |
US11003499B1 (en) * | 2017-06-14 | 2021-05-11 | Amazon Technologies, Inc. | Resource allocation based on agent behavior in a simulation environment |
US10579494B2 (en) * | 2018-01-05 | 2020-03-03 | Nec Corporation | Methods and systems for machine-learning-based resource prediction for resource allocation and anomaly detection |
US10841236B1 (en) * | 2018-03-30 | 2020-11-17 | Electronic Arts Inc. | Distributed computer task management of interrelated network computing tasks |
US10918941B2 (en) * | 2019-03-27 | 2021-02-16 | Electronic Arts Inc. | Predictive execution of distributed game engines |
-
2018
- 2018-12-03 US US16/208,461 patent/US11077362B2/en active Active
-
2019
- 2019-11-13 JP JP2021531532A patent/JP7259033B2/ja active Active
- 2019-11-13 WO PCT/US2019/061320 patent/WO2020117442A1/en unknown
- 2019-11-13 EP EP19853275.6A patent/EP3891607A1/en active Pending
- 2019-11-21 TW TW108142314A patent/TWI716201B/zh active
- 2019-12-03 CN CN201911218760.9A patent/CN111249724A/zh active Pending
- 2019-12-03 KR KR1020190158872A patent/KR102322941B1/ko active IP Right Grant
-
2021
- 2021-08-03 US US17/393,344 patent/US20210362049A1/en active Pending
-
2023
- 2023-04-05 JP JP2023061569A patent/JP2023089076A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI716201B (zh) | 2021-01-11 |
JP2022509882A (ja) | 2022-01-24 |
KR102322941B1 (ko) | 2021-11-08 |
WO2020117442A1 (en) | 2020-06-11 |
US20210362049A1 (en) | 2021-11-25 |
JP2023089076A (ja) | 2023-06-27 |
KR20200067109A (ko) | 2020-06-11 |
US11077362B2 (en) | 2021-08-03 |
EP3891607A1 (en) | 2021-10-13 |
JP7259033B2 (ja) | 2023-04-17 |
CN111249724A (zh) | 2020-06-09 |
US20200171382A1 (en) | 2020-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI716201B (zh) | 用於為一線上遊戲提供資源之分佈式遊戲引擎及方法 | |
US10870057B2 (en) | Automated artificial intelligence (AI) personal assistant | |
US11992761B2 (en) | Artificial intelligence (AI) controlled camera perspective generator and AI broadcaster | |
EP3897892B1 (en) | Massive multi-player compute | |
US11065550B2 (en) | Local game execution for spectating and spectator game play | |
US11285390B2 (en) | Artificial intelligence (AI) controlled camera perspective generator and AI broadcaster | |
JP7313467B2 (ja) | サーバーの負荷予測及び高度なパフォーマンス測定 |