閱前提醒,本文僅為客戶端內一些遊戲信息做出科學化的解析,瞭解與否對遊戲並無太大影響。最後有省流版
你好,瓦友,請先看下面這組gif動畫,我們再繼續聊今天的話題。
由這兩張圖可以得出兩個結論。
第一點是命中判定範圍。
靶場bot在用肉眼觀察下的命中範圍比實際的命中範圍要小一點。(假設瞄準鏡中的bot頭部寬度為2.3cm,則實際上前後左右仍有0.3cm左右的命中餘量,此時距離bot5m左右),而對英雄的判定結果幾乎是沒有這一點的命中餘量。換句話說靶場bot相當於脫了衣服的英雄,每天我們都在打果體bot(bushi
當然實際對戰中這一點幾乎可以忽略不計。
第二點是子彈的命中反饋。
子彈命中反饋和彈孔以及彈道畫面不在同一幀畫面中。
今天要展開聊的是第二點的關於瓦這款遊戲的命中判定。
畢竟作為短TTK遊戲,一發精準爆頭,就足以結束對槍。在瀏覽過valorant的開發者工作日誌以及解析無畏契約的遊戲文件包之後,寫者可以很確鑿地說無畏契約裡的關於射擊的正確度判定是優先於清晰度的。
正確度指的是射擊結果判斷錯誤。(例如:子彈射擊頭部,卻被判定成擊中身體,或是敵人在用戶端的顯示和服務器不同)
清晰度指的是射擊結果在視覺上不易判斷(例如:子彈擊中肩膀,但視覺反饋看起來像是擊中頭部)
從左鍵射擊到爆頭
在開始說明武器射擊之前,首先必須科普一下游戲是如何模擬戰鬥場景。
無畏契約的遊戲體驗經過兩層的模擬:首先是通過服務器(模擬呈現結果以此為準),接著再由玩家的用戶端二度模擬(為了讓遊戲體驗更流暢用戶端會預測服務器結果)。
遊戲模擬包括組成遊戲世界的所有元素,像是玩家的位置、交戰使用的技能,以及戰場上的煙塵。每個畫面的生成,都是遊戲擷取模擬內容後,渲染呈現在螢幕上的結果。服務器也會以相同的機制生成每個畫面(但會省略渲染的步驟,因為玩家不會看到服務器畫面)。
這裡看圖舉例來解釋說明或許能更顯而易見一些。
獵梟(palyer)在看見了奶媽準備偷背身,此時他摁下左鍵,“射擊”這一輸入信號會傳入輸入系統(可能會有小幅度的硬件/系統延遲)。在每個遊戲畫面中,輸入系統都會處理上一個畫面之後收到的所有輸入信號。此時,“射擊”的輸入信號會和時間戳一起傳送至服務器,以便判斷射擊發生在模擬的哪一個畫面。
此時需要分開描述用戶端和服務器端。
用戶端。“射擊”動作一旦發送至服務器,用戶端就會開始運作,在電腦畫面上顯示槍口閃光和彈道,由於遊戲必須在畫面上更新一幀畫面,因此送出輸入信號後,最快要經過一幀,才會看到槍口閃光和彈道,這點很重要,顯示彈道的畫面,至少與收到“射擊”信號的畫面相差一幀,這兩者並不在同一幀畫面上。
服務器端。服務器最終收到了來自獵梟(palyer)用戶端的武器射擊的信息,由於網絡延遲,距離玩家射擊武器已經過了一段時間,為了確定武器是在同一個模擬上射擊,服務器會先將模擬倒轉到用戶端發送的時間戳,在評估命中判定,這個倒轉步驟包括了玩家的位置和動作(蹲起跳等),在判定後,服務器會將結果回傳至用戶端,假設獵梟的這一發射擊的結果是”爆頭“。
是否命中的判定結果由服務器決定。
用戶端會從服務器結果擊中結果,並根據結果播放視覺特效和音效。由於用戶端必須等待服務器傳送擊中判定結果,所以彈道和命中特效之間有時差,時差就等於網絡往返時間+處理延遲。(用下圖舉例,即為41ms),延遲越嚴重,時差越明顯,即你的網絡優勢越小。
圖源網絡,那時候捷風還有三個煙
這裡截圖了畫面來對我上述內容加以說明。
觀察以上三圖可以簡單驗證我上文論述的內容。
省流版
ping值越低越好。
玩家端而言,由於網絡延遲和輸入延遲等,命中特效與敵人位置大相徑庭,
由此可得,是否命中的判定依據只能由反饋的視覺命中特效來判斷。
而從鼠標左鍵摁下的瞬間需要通過輸入系統➡服務器模擬命中反饋➡結果返回至用戶端
箭頭中影響的因素有網絡延遲以及硬件處理時間(包括CPU處理軟硬件處理等)
並且命中判定由系統決定。
這裡也就能解釋為什麼網絡延遲高低對於高分段玩家甚至職業選手如此之大。
同時也能解釋了校園網玩家出現延遲子彈的原因。
那麼問題來了。
請觀察以下這個gif圖,並回答投票中的問題。
最後,感謝您看到這裡,祝生活愉快,上分順利。