改善在線游戲的預(yù)測的方法與系統(tǒng)的制作方法
【專利摘要】一種改善例如在線游戲的預(yù)測的方法與系統(tǒng),所述方法包括以下步驟:隨時間變化從至少一個傳感器接收的數(shù)值中進(jìn)行采樣;將所采樣的數(shù)值與傳感器數(shù)值的至少一個預(yù)定的模式相比較;以及鑒別一組所采樣的數(shù)值是否至少部分地匹配至少一個預(yù)定的模式;其中,所采樣的傳感器數(shù)值至少部分地對應(yīng)于由至少一個傳感器所感知的非指令輸入相關(guān)的運動,且傳感器數(shù)值的預(yù)定模式是被預(yù)期為先于給出的指令輸入。
【專利說明】改善在線游戲的預(yù)測的方法與系統(tǒng)
[0001]【技術(shù)領(lǐng)域】與
【背景技術(shù)】
[0002]本發(fā)明涉及在線游戲、監(jiān)控系統(tǒng)、刺激器(刺激物)和其他應(yīng)用的預(yù)測,尤其是涉及用于改善基于預(yù)先輸入的運動、姿勢、程序等的預(yù)測的方法與系統(tǒng),這些預(yù)測“透露出”用戶的意圖,并能被用于在用戶實際進(jìn)行該動作或者完成該動作之前預(yù)測用戶的動作。
[0003]“游戲控制器”是一種與游戲或娛樂系統(tǒng)共同使用的裝置,以提供輸入到視頻游戲,通常用于控制在游戲中的對象或字符??刂破魍ǔJ峭ㄟ^線纜或電源線連接到游戲控制臺或者電腦,雖然無線控制器也是廣泛使用的。已經(jīng)被分類為游戲控制器的輸入設(shè)備包括:鍵盤、鼠標(biāo)、游戲板、游戲操縱桿等。特殊目的的設(shè)備,例如用于駕駛游戲的方向盤和用于射擊游戲的光槍,也是游戲控制器。
[0004]“視頻游戲控制臺”是一種交互式娛樂電腦或者產(chǎn)生視頻播放信號的定制的電腦系統(tǒng),它能與顯示設(shè)備(電視機、監(jiān)視器等)一起使用以顯示視頻游戲。
[0005]“人機交互設(shè)備” (HID)是一種類型的電腦設(shè)備,它能直接與人進(jìn)行交互作用,大多數(shù)經(jīng)常從人獲取輸入,并可將輸出傳遞到人。
[0006]總的來說,游戲包括循環(huán)的一系列狀態(tài)或者“幀”。在每個幀期間,游戲接受用戶輸入,進(jìn)行必要的計算(Al、制圖等)。當(dāng)所有處理已被完成時,該游戲?qū)⒏掠螒驙顟B(tài),并產(chǎn)生一個輸出,例如在屏幕上以新的圖像的方式輸出,和/或?qū)⑿畔l(fā)送到服務(wù)器。產(chǎn)生幀的頻率通常是指幀的速率。
[0007]在在線游戲中,“滯后(lag) ”是在游戲者的動作與服務(wù)器的反應(yīng)之間的可察覺的遲延。雖然由于高的通訊潛伏期可導(dǎo)致滯后,也可以是由于在客戶端和/或服務(wù)器和/或在服務(wù)器上的非優(yōu)化構(gòu)造和/或任意終端設(shè)備的處理能量不足而導(dǎo)致滯后。而且,潛伏期不是恒定的,而是波動的導(dǎo)致稱為“跳動(jitter)”的現(xiàn)象。用于處理跳動的大多數(shù)普遍使用的解決方案是創(chuàng)建更大的緩存以致該系統(tǒng)具有更多時間來運行平滑算法來使游戲平滑。更大緩存的結(jié)果是:具有增加的潛伏期,但至少該潛伏期是恒定的。
[0008]對于整個滯后(潛伏期的所有部分和緩存以減緩跳動)的容忍度主要取決于游戲的類型。例如,具有低步調(diào)的策略游戲或者回合制游戲可以具有高的閾值,或者甚至通常不受高遲延的影響,而“短促反應(yīng)(twitch gameplay) ”游戲,例如具有顯著較高步調(diào)的第一人稱射擊游戲,會要求顯著較低的遲延以便能夠提供令人滿意的游戲反應(yīng)。
[0009]解決方案與滯后補償
[0010]有多種不同方法用于減少或掩蓋遲延:
[0011]客戶端
[0012]盡管客戶端通常不允許定義主要的游戲狀態(tài),而是從服務(wù)器接收游戲狀態(tài),客戶端補償?shù)闹饕蝿?wù)是盡可能精確地表現(xiàn)虛擬世界。盡管更新伴隨遲延,甚至是被降低的,有時需要客戶端來預(yù)測游戲的流向。因為該狀態(tài)是以離散步驟來更新的,客戶端必須能夠基于可用的樣本來估計運動。
[0013]因此,“客戶端預(yù)測”可被定義為在視頻游戲中采用的一種網(wǎng)絡(luò)程序技術(shù),以便試圖掩蓋高潛伏期連接的負(fù)效應(yīng)。該技術(shù)試圖使得游戲者輸入感覺更瞬間完成,同時在遠(yuǎn)程服務(wù)器上管理游戲者的動作。兩種基礎(chǔ)方法能被用于獲得這樣的效果:外推法和內(nèi)插法。
[0014]外推法是試圖估計未來的游戲狀態(tài)。只要接收到來自服務(wù)器的信息包,對象的位置將被更新到新的位置。等候下一次更新時,下一個位置是基于當(dāng)前位置和更新時的運動來推斷的?;旧?,客戶端可假設(shè):運動的對象將會繼續(xù)在相同的方向上運動。當(dāng)接收到新的信息包,該位置可被稍微校正。
[0015]內(nèi)插法基本上是通過對游戲狀態(tài)進(jìn)行緩沖,并將游戲狀態(tài)以微小的、恒定的遲延呈現(xiàn)給游戲者而起作用。當(dāng)來自服務(wù)器的信息包到達(dá)時,代替對象位置的立即更新,客戶端將會啟動插入該位置,從最后已知的位置開始插入。在插入間隙之上,所述將可被呈現(xiàn)為在兩個位置之間平滑地移動。理想地,這個間隙可精確地匹配在信息包之間的遲延,但由于損失和可變的遲延,這種情形很少見。兩種方法都有優(yōu)點和缺點。
[0016]內(nèi)插法確保對象將僅在有效位置之間移動,并將會產(chǎn)生具有恒定遲延且沒有損失。將會落下或者無序的信息包溢出內(nèi)插緩存,客戶端將不得不將對象凍結(jié)在合適的位置直到新的信息包到達(dá),或者回歸為外推法。
[0017]外推位置的問題是相當(dāng)明顯的:它不可能精確地預(yù)測未來。它僅當(dāng)運動是恒定時,才能夠正確地表現(xiàn)運動,但運動并不總是恒定的。游戲者可隨機改變速度和方向。這樣會導(dǎo)致出現(xiàn)小量的“扭曲(warping) ”或“折斷(snapping) ”,盡管新的更新到達(dá)且估計的位置被校正,也會在命中檢測中出現(xiàn)問題,盡管游戲者可被提供在他們實際上并不在的合適的位置。
[0018]通常,為了使得能夠平滑反應(yīng),客戶端需要對于游戲狀態(tài)做出軟改變。雖然服務(wù)器可最終保持彈藥的軌道、健康、位置等,客戶端可被允許基于游戲者的動作來預(yù)測新的服務(wù)器端游戲狀態(tài),例如,使得游戲者在服務(wù)器已經(jīng)響應(yīng)指令之前開始移動??傮w上,這些改變會在通常條件下被接受,并使得延遲更為明顯。當(dāng)客戶端預(yù)測是非常顯然不能由服務(wù)器來完成時,問題會僅在高度延遲或者損失的情況下產(chǎn)生。有時,在微小差別的情況下,服務(wù)器甚至可以允許基于來自客戶端的更新對所述狀態(tài)進(jìn)行“不正確的”改變。
[0019]服務(wù)器端
[0020]與客戶端不同,服務(wù)器知道精確的當(dāng)前游戲狀態(tài),盡管這樣的預(yù)測是不必要的。服務(wù)器端滯后補償?shù)闹饕康氖谴嫣峁┛蛻舳藙幼鞯臏?zhǔn)確效果。這是重要的,因為隨著時間變化,游戲者的指令已經(jīng)到達(dá)的時間將已經(jīng)移動,而世界將不會處于當(dāng)游戲者發(fā)出他們的指令時所看到的狀態(tài)。這個非常明確的例子是對于在第一人稱射擊游戲武器開火的命中檢測,如果不正確地處理時,即使邊緣是小的,也能潛在地導(dǎo)致明顯的問題。
[0021]直到現(xiàn)在,客戶端預(yù)測,以及任意其他預(yù)測的解決方案,已經(jīng)被局限為基于用戶輸入和基于游戲的目標(biāo)的速度和加速度的運動的預(yù)測,當(dāng)來自游戲者輸入的更新最終到達(dá)服務(wù)器時,該游戲的狀態(tài)將會在服務(wù)器上,并將處于該狀態(tài)的游戲呈現(xiàn)給游戲者。換言之,游戲者的客戶端系統(tǒng)在服務(wù)器已經(jīng)知道用戶輸入并已經(jīng)更新游戲狀態(tài)之前本地地對該用戶輸入做出反應(yīng),這樣做是為了預(yù)測游戲狀態(tài)。
[0022]在其他服務(wù)器-客戶端游戲格式,服務(wù)器完成所有計算并將預(yù)測狀態(tài)發(fā)送游戲者。這些預(yù)測也是基于客戶指令而且基于游戲引擎程序。
[0023]一種用于預(yù)測用戶的意圖而不是用戶的實際輸入的方法與系統(tǒng),或者至少是在用戶已經(jīng)完成輸入用戶輸入之前預(yù)測用戶的意圖的方法與系統(tǒng),是具有較高優(yōu)勢的。
【發(fā)明內(nèi)容】
[0024]本發(fā)明使得進(jìn)一步減輕延遲/滯后,通過預(yù)測和影響使用者在實際提供輸入或者完成提供輸入之前的輸入。
[0025]根據(jù)本發(fā)明所述,提供了一種用于改善預(yù)測的方法,例如用于改善在線游戲的預(yù)測的方法,所述方法包括以下步驟:隨時間變化從至少一個傳感器接收的數(shù)值中進(jìn)行采樣;將所采樣的數(shù)值與傳感器數(shù)值的至少一個預(yù)定的模式相比較;以及鑒別一組所采樣的數(shù)值是否至少部分地匹配至少一個預(yù)定的模式;其中,所采樣的傳感器數(shù)值至少部分地對應(yīng)于由至少一個傳感器所感知的非指令輸入相關(guān)的運動;所述傳感器數(shù)值的預(yù)定模式是被預(yù)期為先于給出的指令輸入。
[0026]根據(jù)本發(fā)明下面所述的優(yōu)選實施例中的進(jìn)一步特征,所述的方法還包括以下步驟:將所鑒別的采樣數(shù)值組發(fā)送到中央預(yù)測單元。
[0027]根據(jù)在優(yōu)選【具體實施方式】中所述的進(jìn)一步的特征,所述的方法還包括以下步驟:評估所鑒別的采樣數(shù)值組將會先于給出的指令輸入的可能性的水平;以及將所鑒別的采樣數(shù)值組與所評估的可能性的水平一起發(fā)送到中央預(yù)測單元;或者基于至少部分的所鑒別的采樣數(shù)值組與所評估的可能性的水平來創(chuàng)建預(yù)測狀態(tài)。
[0028]根據(jù)進(jìn)一步的特征,所述中央預(yù)測單元是被定位在遠(yuǎn)程服務(wù)器或客戶端設(shè)備上。
[0029]根據(jù)進(jìn)一步的特征,所述的方法還包括以下步驟:基于相關(guān)的采樣傳感器數(shù)值,更新所述傳感器數(shù)值的預(yù)定模式。
[0030]根據(jù)進(jìn)一步的特征,所述傳感器數(shù)值的預(yù)定模式還包括對應(yīng)于一系列至少一些所述指令輸入的傳感器數(shù)值。
[0031]根據(jù)進(jìn)一步的特征,所述的方法還包括以下步驟:鑒別對應(yīng)于指令輸入的一系列所采樣的數(shù)值是否匹配于所述預(yù)定的模式。
[0032]根據(jù)進(jìn)一步的特征,所述的方法還包括以下步驟:在用戶對所述給出的指令輸入產(chǎn)生影響之前,基于所采樣的傳感器數(shù)值對于所述用戶創(chuàng)建獨特的輪廓。
[0033]根據(jù)另一個【具體實施方式】,提供了一種用于改善預(yù)測的客戶端系統(tǒng),所述系統(tǒng)包括:(a)用于從用戶接收指令輸入的人輸入設(shè)備(HID) ; (b)至少一個傳感器,被配置為感知所述用戶的運動;以及(C)應(yīng)用邏輯程序,適合于接收和處理來自所述至少一個傳感器的傳感器數(shù)值,并基于所述傳感器數(shù)值將預(yù)測數(shù)據(jù)發(fā)送到中央預(yù)測單元;其中,所接收的傳感器數(shù)值是與傳感器數(shù)值的至少一個預(yù)定模式進(jìn)行比較,所述傳感器數(shù)值的預(yù)定模式對應(yīng)于在輸入所述指令輸入之前影響的運動;以及傳感器數(shù)值至少部分地匹配所述預(yù)定模式,導(dǎo)致所述應(yīng)用邏輯程序?qū)㈩A(yù)測數(shù)據(jù)發(fā)送到中央預(yù)測單元,所述預(yù)測數(shù)據(jù)是預(yù)測與所匹配的預(yù)定模式相關(guān)的指令輸入。
[0034]根據(jù)進(jìn)一步的特征,所述運動是至少部分地非指令輸入相關(guān)的運動。
[0035]根據(jù)進(jìn)一步的特征,所述中央預(yù)測單元是被定位在遠(yuǎn)程服務(wù)器上。
【專利附圖】
【附圖說明】
[0036]這里將僅通過實施例的方式結(jié)合所附的附圖來描述多種不同的【具體實施方式】,在這些附圖中:
[0037]圖1是用于處理的在常規(guī)間隔采樣的所感知的輸入的示意圖;
[0038]圖2是將所鑒別的初始模式和可能性以及所感知的實際游戲者輸入指令一起發(fā)送的應(yīng)用程序的示意圖。
【具體實施方式】
[0039]根據(jù)本發(fā)明所述的預(yù)測方法與系統(tǒng)的原理和操作可參考附圖以及相關(guān)的描述而得以清楚的理解。
[0040]現(xiàn)在參考附圖,圖1顯示了用于處理的在常規(guī)間隔采樣的所感知的輸入的示意圖。游戲者使用輸入設(shè)備(HID)來輸入在他們的客戶端系統(tǒng)上的游戲動作。這樣的輸入設(shè)備的例子包括:鼠標(biāo)或者游戲操縱桿,用于與個人電腦進(jìn)行交互,以及平板電腦的觸摸屏,例如iPad?。采用這樣的設(shè)備輸入游戲動作或者指令的過程包括:在游戲動作(或者指令)被實際輸入之前的一些初步運動。這些初步運動或動作可通過一種或另一種客戶端機構(gòu)(傳感器)來檢測,這些機構(gòu)能檢測多種不同的游戲者活動。例如,采用鼠標(biāo)的游戲者需要移動鼠標(biāo)以致在顯示屏上的光標(biāo)是處于正確的位置,然后點擊其中一個鼠標(biāo)鍵以輸入游戲動作。鼠標(biāo)在到達(dá)合適位置途中的轉(zhuǎn)換和旋轉(zhuǎn),開始相對較快,然后變慢,當(dāng)游戲者使鼠標(biāo)接近于想要的位置時。鼠標(biāo)鍵的按壓是通過鼠標(biāo)的細(xì)微振動來進(jìn)行的。
[0041]根據(jù)本發(fā)明所述,游戲應(yīng)用程序(總體上定位于客戶端設(shè)備)知道在游戲者的運動之間的聯(lián)系,正如通過鼠標(biāo)或者任意其他輸入設(shè)備所感知的,當(dāng)游戲者開始玩游戲時,游戲應(yīng)用程序也知道最終游戲動作輸入。在一些【具體實施方式】中,現(xiàn)有的在游戲設(shè)備(例如加速器)上可用的背景傳感器,但不是被用作所定義的輸入設(shè)備,仍能不斷地在背景中允許,并收集正在進(jìn)行中的基礎(chǔ)上的數(shù)據(jù)。這個數(shù)據(jù)可被用于使用戶意圖有效。游戲應(yīng)用程序可預(yù)定或獲得與游戲的期望(可用)活動相關(guān)聯(lián)的總體模式。
[0042]非指令運動的預(yù)定模式和/或由游戲者作出的指令輸入順序包括:精確的模式值在該模式的定義范圍內(nèi)的可接受的背離(除非在上下文中另外解釋)。因此,在實際輸入指令之前,用戶做出的初始運動的總體模式包括:該模式在可接受的(和預(yù)定的)參數(shù)范圍內(nèi)的可接收的背離。這些背離可以是例如:關(guān)于這些數(shù)值(例如非簡單的I或0,而是給出的數(shù)值,可以是正負(fù)2或3或類似的“背離”)或者這樣的事實:該模式的僅一些數(shù)值是存在的,而其他數(shù)值不存在,等等。
[0043]本地游戲應(yīng)用程序?qū)@知游戲者活動,并重新定義總體模式以匹配游戲者的實際行為。當(dāng)游戲應(yīng)用程序已經(jīng)認(rèn)識游戲者的鼠標(biāo)運動軌跡,具有足夠精確度來預(yù)測,在百毫秒的級別,在游戲者實際輸入游戲動作之前,游戲動作的內(nèi)容將會被轉(zhuǎn)送到中央預(yù)測單元,該單元通常定位在游戲服務(wù)器上。預(yù)測動作或指令的能力實際上可以是更微妙。也就是說,隨著時間變化,給定順序的可能性將會導(dǎo)致期望動作滿意地增加。然后,這個信息是被包括在總的預(yù)測過程(通過中央預(yù)測單元來計算,該單元或者定位于遠(yuǎn)程游戲服務(wù)器,或者定位于本地客戶端應(yīng)用程序上)中作為信息的附加來源,但不是絕對確定的。在其他具體實施例中,客戶端應(yīng)用程序可以是獨立模塊,僅基于初步運動或模式來預(yù)測。
[0044]根據(jù)本發(fā)明所述,由輸入機構(gòu)(HID)的傳感器A、B、C(例如,加速器、照相機等)測量的數(shù)值是周期性采樣的,或者由于觸發(fā)事件而采樣。所采樣的數(shù)值是已處理的(P)以找到對應(yīng)于預(yù)定初步順序的模式,該初步順序是被預(yù)期為終止于用戶輸入指令L到游戲中。
[0045]在時間點t0,數(shù)值Α0、Β0和CO是被發(fā)送用于處理P。在時間點tl,數(shù)值A(chǔ)1、B1和Cl是被發(fā)送用于處理P,等等。
[0046]實施例1-表1.1
[0047]
【權(quán)利要求】
1.一種用于改善預(yù)測的方法,所述方法包括以下步驟: (a)隨時間變化從至少一個傳感器接收的數(shù)值中進(jìn)行采樣; (b)將所采樣的數(shù)值與傳感器數(shù)值的至少一個預(yù)定的模式相比較;以及 (C)鑒別一組所采樣的數(shù)值是否至少部分地匹配至少一個預(yù)定的模式; 其中,所采樣的傳感器數(shù)值至少部分地對應(yīng)于由至少一個傳感器所感知的非指令輸入相關(guān)的運動; 所述傳感器數(shù)值的預(yù)定模 式是被預(yù)期為先于給出的指令輸入。
2.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟: (d)將所鑒別的采樣數(shù)值組發(fā)送到中央預(yù)測單元。
3.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟: (d)評估所鑒別的采樣數(shù)值組將會先于給出的指令輸入的可能性的水平。
4.根據(jù)權(quán)利要求3所述的方法,還包括以下步驟: (e)將所鑒別的采樣數(shù)值組與所評估的可能性的水平一起發(fā)送到中央預(yù)測單元。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于:所述中央預(yù)測單元是被定位在遠(yuǎn)程服務(wù)器上。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于:所述中央預(yù)測單元是被定位在客戶端設(shè)備上。
7.根據(jù)權(quán)利要求3所述的方法,還包括以下步驟: (e)基于至少部分的所鑒別的采樣數(shù)值組與所評估的可能性的水平來創(chuàng)建預(yù)測狀態(tài)。
8.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟: (d)基于相關(guān)的采樣傳感器數(shù)值,更新所述傳感器數(shù)值的預(yù)定模式。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述傳感器數(shù)值的預(yù)定模式還包括對應(yīng)于一系列至少一些所述指令輸入的傳感器數(shù)值。
10.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟: (d)鑒別對應(yīng)于指令輸入的一系列所采樣的數(shù)值是否匹配于所述預(yù)定的模式。
11.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟: (d)在用戶對所述給出的指令輸入產(chǎn)生影響之前,基于所采樣的傳感器數(shù)值對于所述用戶創(chuàng)建獨特的輪廓。
12.一種用于改善預(yù)測的客戶端系統(tǒng),所述系統(tǒng)包括: (a)用于從用戶接收指令輸入的人輸入設(shè)備(HID); (b)至少一個傳感器,被配置為感知所述用戶的運動;以及 (c)應(yīng)用邏輯程序,適合于接收和處理來自所述至少一個傳感器的傳感器數(shù)值,并基于所述傳感器數(shù)值將預(yù)測數(shù)據(jù)發(fā)送到中央預(yù)測單元; 其中,所接收的傳感器數(shù)值是與傳感器數(shù)值的至少一個預(yù)定模式進(jìn)行比較,所述傳感器數(shù)值的預(yù)定模式對應(yīng)于在輸入所述指令輸入之前影響的運動;以及 傳感器數(shù)值至少部分地匹配所述預(yù)定模式,導(dǎo)致所述應(yīng)用邏輯程序?qū)㈩A(yù)測數(shù)據(jù)發(fā)送到中央預(yù)測單元,所述預(yù)測數(shù)據(jù)是預(yù)測與所匹配的預(yù)定模式相關(guān)的指令輸入。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于:所述運動是至少部分地非指令輸入相關(guān)的運動。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于:所述中央預(yù)測單元是被定位在遠(yuǎn)程服務(wù)器 上。
【文檔編號】G06F3/033GK104081321SQ201380007794
【公開日】2014年10月1日 申請日期:2013年1月31日 優(yōu)先權(quán)日:2012年2月1日
【發(fā)明者】約瑟夫·米茲臘希 申請人:約瑟夫·米茲臘希