逗游網(wǎng):值得大家信賴的游戲下載站!
發(fā)布時間:2021-01-08 08:40 來源:小黑盒 作者:小ti妹
機制介紹
收起CSGO怎么打的更準是很多玩家關注的焦點,F(xiàn)PS游戲中射擊延遲和判定是決定射擊準度的關鍵,下面給大家分享FPS游戲系統(tǒng)延遲與判定機制詳解
?一,fps游戲中一次射擊的判定。
FPS游戲由于各個射擊角度和射擊方位不同,擊中敵方位置的不同,需要大量計算量,如果全部由服務器來計算的話,服務器壓力太過于巨大。所以這部分工作基本是由客戶端來完成的,再使用算法封包發(fā)回服務器,這時候服務器只需要判斷發(fā)回的數(shù)據(jù)為是否擊中,和擊中血量,就可以反饋到另一個玩家身上。
也就是說,在fps游戲中擊中一個人的過程分為:?玩家操作→?玩家電腦判斷是否擊中(以及擊中部位)→?玩家電腦發(fā)送擊中信息給服務器→?服務器扣血并發(fā)送扣血信息到敵人電腦。本文內(nèi)容是關于?→?過程中的系統(tǒng)延遲問題。
二,系統(tǒng)延遲與網(wǎng)絡延遲。
延遲的定義:延遲是一種時間指標,用于描述執(zhí)行所需操作和取得預期結果之間的延時。在fps游戲中就是玩家操作鼠標鍵盤打中敵人到看到敵人扣血或者擊殺信息中間的時間差。
提到延遲大部分人想到的是游戲中的pin值,也就是客服端(玩家電腦)到服務器的網(wǎng)絡延遲,也就是在上述過程中的?→?和?→?過程。本文不作討論。
準確的系統(tǒng)延遲是擊中→判斷是否擊中所用的時間。但是玩家在屏幕看到敵人的時間點在本次討論中非常重要。所以本文的討論的過程是:?玩家在自己電腦屏幕上看到敵人→?玩家操作鍵盤鼠標擊中敵人→?玩家電腦判斷是否擊中的過程。
三,系統(tǒng)延遲的組成。
外設延遲: 輸入設備處理機械輸入并將這些輸入事件發(fā)送到 PC 所需的時間。
游戲延遲:CPU 處理對游戲世界的輸入或更改并提交新幀供 GPU 渲染所需的時間。和cpu性能相關,更強的cpu性能代表更短的游戲延遲。
渲染延遲:從待渲染的幀排隊列齊到 GPU 完全渲染幀之間的時間。和顯卡性能相關,更強的顯卡性能代表更短的隊列。
PC 延遲:幀在 PC 上傳輸所需的時間。這包括游戲延遲和渲染延遲。
顯示延遲:GPU 完成幀渲染后,顯示器呈現(xiàn)新圖像所需的時間。和顯示器性能有關,具體參考數(shù)值為灰階響應(GTG)時間。
系統(tǒng)延遲:涵蓋整個端到端測量的時間。也就是圖中整個過程所需要的時間。
這個延遲決定了你在多長時間后看到了你對輸入設備(鼠標鍵盤)的操作。絕大部分玩家在游戲中的系統(tǒng)延遲為50-100毫秒。大部分玩家的系統(tǒng)延遲是大于網(wǎng)絡延遲的。
四,系統(tǒng)延遲與射擊判定的關系。
了解這個問題需要我們更全面的來看fps游戲中一次擊中的過程。
第一個部分是玩家從屏幕上發(fā)現(xiàn)敵人
第二部分使用鼠標瞄準敵人
第三部分開槍
第四看到擊殺信息
至此我們就完成了一次fps游戲中的擊殺。
讓我們把時間暫停到第二部分的畫面
我們把它放大
神奇的現(xiàn)象發(fā)生了,其實瞄準的地方并沒有在敵人身體但是我們還是完成了這次擊殺,相信這種情況各位盒友也都遇到過,包括與之相反的情況-確定自己已經(jīng)瞄準但就是沒有打中。這其中有子彈飛行速度的影響但是在這種近距離的射擊中,系統(tǒng)延遲造成了更大的影響。
我們繼續(xù)把時間暫定到這一幀畫面
然后再次回到系統(tǒng)延遲構成圖
當玩家在看到這一幀畫面的時候,所看到的幀來自于顯示器,也就是顯示器目前所顯示的幀,在這個時刻,游戲程序由cpu繼續(xù)運行,也就是說反應這個敵人所在的真正位置的幀,和顯示器目前所顯示的幀,中間隔了渲染隊列,渲染延遲,和顯示延遲相加的時間。所以在這幀畫面中
敵人在我們屏幕中的移動方向是向左,而我們所瞄準的位置雖然不是敵人的身體,卻是敵人目前真正的位置,所以電腦把這次射擊判定為命中。
注意這段內(nèi)容中涉及到的兩個位置:①玩家看到的敵人位置,②敵人目前的真正位置。這兩個位置一般是有所重合但不完全重合的。而系統(tǒng)延遲的高低決定了這兩個位置的重合度,系統(tǒng)延遲較低,這兩個位置的重合度就更高,系統(tǒng)延遲越高,則這兩個位置也就越遠。
如果你的系統(tǒng)延遲為100毫秒,那你就是用0.1秒前的槍來打0.1秒后的敵人(好大的官威呦),即使你在屏幕上已經(jīng)瞄準了,還是會因為這0.1秒敵人的移動發(fā)生沒打中的情況。
所以有時候你明明瞄準了卻沒打中,現(xiàn)在知道為什么了吧。那種很離譜的人體描邊,往往也是因為系統(tǒng)延遲高的原因。