close

連線飛行時,視距內的玩家從自已的畫面能看見彼此,你知道自己和別人飛機在哪;但實際上所有飛機的位置和動作,呈現在每個人的畫面裡都有些許的差異,並沒有兩位玩家是完全相同的。這種差異緣自於 lag (網路延遲),是指資訊從一個玩家的電腦傳輸到另一個玩家的電腦所耗用的時間。

Lag (網路延遲)

你之所以能看到另一個玩家的動作,是由該玩家的 AH 遊戲程式 (前端) 傳遞他的資訊至遊戲伺服器 (主機),經過主機處理再傳遞到你的電腦前端;同時間,你的前端也傳遞了你的資訊到主機,同樣經主機處理再傳遞給其他玩家。 資訊從前端傳遞到主機的時間稱為 ping time,也就是你登入到 AH 主機時,從飛行計劃夾看到的各個 arena 旁邊的數字。

lag1[1].gif

<圖1>

資訊在兩個玩家之間傳遞所花費的時間稱為 lag,就是這兩個玩家 ping time 的總合(如圖1)。

在下方的示意圖, 深綠和深紅色的 icon 代表 Player 1 從他的電腦所看到的,同時間 Player 2 看到的卻是 淺綠和淺紅色的 icon。

 

圖2:假設每個玩家的 ping time 都是 50ms. 所以資訊從 Player 1 的前端到 Player 2 的前端大約是 100ms,或說 1/10 秒。若 Player 2 待在塔台看著 Player 1 以 時速 360mph 飛越,當 Player 2 看到 Player 1 在 B 的時候,Player 1 自己看到的位置卻已經到了 A。

lag2[1].gif

<圖2>

在這個範例,A 和 B 之間的距離 (X) 大約是 52.8ft,比大部份戰機的縱長和翼展還要大! (360mph = 528ft/sec; X = 528ft/s x 0.1s = 52.8ft) 注意,若兩個玩家的 ping time 分別是 60ms 和 40ms,結果仍相同;關鍵在於兩者的合計,不是只看其中一個人。

 

圖3:假設 Player 1 和 Player 2 這兩個人同時以 360mph 朝著對方飛去,ping time 也都為 50ms. 在這個範例,兩點距離一樣是 52.8ft,可是因為 lag 的緣故,Player 1 看到雙方交會的位置在 A,Player 2 看到的交會位置卻是在 B。雙方的速度相同,因此彼此看到交會的時間點是相同的,但是位置不同。

lag3[1].gif

<圖3>

圖4:若雙方速度不同,結果就不是這樣。假設 Player 1 空速為 360mph、Player 2 為 180mph;故距離 X 仍為 52.8ft,Y 卻只有 26.4ft。當 Player 1 看到雙方「已經」交會了,從 Player 2 的畫面看來卻是雙方「快要」交會而已。而且不只是交會的位置不同,時間點也不相同。

lag4[1].gif

<圖4>

雖然雙方的時間差只有 (60-40) = 20ms,造成的空間位置差也才短短的幾十英呎,然而因 lag 所衍生的一些狀況卻可能讓玩家之間產生誤解、甚至敵意。

Collisions (空中碰撞)

空戰時發生的碰撞與它的設計原理是最常被誤解的,爭議也是不斷的:為什麼對方沒事,我卻有事? 要解釋原因,必須先了解 lag 在兩個前端造成的影響,以及遊戲設計者 HiTech 是如何處理。

圖5:首先要了解,碰撞有可能只發生在一個前端而已,原因是 lag 造成雙方的位置差。從右圖中,雖然 Player 1 看到自己在 A 和 Player 2 已經安全的交會;然而同時間 Player 2 卻看到自己在 B 和 Player 1 碰撞。無論 Player 1 是否有做動作閃避,總之在 Player 1 的前端並沒有發生碰撞,而 Player 2 有。

lag5[1].gif

<圖5>

以下兩張圖片說明了只有一個前端會發生碰撞的情形,這是玩家 Bronk 和 Tangle 在 DA 的錄影檔。

圖6:取自玩家 Bronk 的錄影檔, 可以清楚的看到雙方發生了碰撞。

lag-bronkview[1].jpg

<圖6>

圖7:在相同的時間點,擷取自玩家 Tangle 的錄影檔。請注意到無線電訊息列出現了 "Bronk has collided with you". 然而從 Tangle 的觀點,雙方卻有大約兩個機身的距離。

lag-tangleview[1].jpg

<圖7>

這也同時說明了 HiTech 如何處理碰撞的,就是:若你的前端發生了碰撞,你就有事;若你的前端沒發生碰撞,你就沒事。總而言之, 要避免碰撞就是不要讓碰撞在你的前端發生,就是這麼簡單 (圖8)。

lag6[1].gif

<圖8>

Warps (瞬間移動、折線飛行)

當 lag 的時間不穩、變化過於極端就會發生 warping。你的前端因為不斷的接收來自主機的資訊、更新其他飛機(玩家) 的位置,所以你才會看到其他飛機在空中運動;可是在主機傳遞資訊給你之前,它必須先收到其他玩家前端的資訊,若收不到,其他玩家在你的前端的資訊就無法更新,只會維持著本來的路徑移動;一旦有了更新資訊,其他玩家會「立即的」移到最新位置,這就是 warp,肇因不穩定的 lag --可能是你,也可能是別人。

玩家的網路狀況不良,就無法穩定的傳遞更新資訊給主機,他座艙的 beacon 燈號就會亮起,或者完全的斷線。

若你看到所有人都在 warp……那應該本身的問題了。請打開飛行計劃夾檢查連線狀態 (Net Status), "Variance in Delay" 的圖表應該是平緩接近中間的直線,若看起來是忽上忽下的話,請離開遊戲檢查網路吧,省得引起其他玩家抱怨。

"Impossible" Shots (太扯了,這樣也會打到?)

另一個 lag 所引發的現象是被其他玩家在不可能的角度、甚至和對方交會之後才被擊中。如同之前提過的,lag 肇因各個前端間的差異。這個差異讓防守者以為他已離開攻擊者的射擊線,然而從攻擊者的前端看來,射擊機會卻依然存在 (圖9)。

lag7[1].gif

<圖9>

而和碰撞不同的是,若你的對手從他的前端確認擊中你,你一樣會受到傷害 -- 就算你以為已經和對手交錯而過了。這樣聽起來有點像是自己拖著一個「分身靶」在飛。你看不見這個靶,但是敵機可以,一旦靶被敵機射中,受傷的可是你本尊。

綜合以上分析, 我們得到以下結論:

  • 攻擊時--就瞄準你在畫面看到的,只要子彈命中目標,對方就受傷。
  • 防禦時--請不斷的提醒自己,你看到的是敵機的「分身」,他的真實位置得再「超前」一點點。而且別忘了敵機看到的也是你的分身,多想想,別讓對手打到分身。
  • 空中碰撞--其實空戰中無法完全防止「莫名的碰撞」, 特別是對方根本不知道撞上了你的時候(或者說對方的前端根本沒發生碰撞這件事);這個時候……就認了吧。

我們台灣玩家的 ping time 大約為 220-350ms,而美國當地的玩家通常低於 100ms。在瞭解了 lag 是啥麼碗糕,以及它在 AH 的影響之後,你是否會重新思考防禦動作的操作時間點呢?

圖文來源: Aces High II Trainer Corps. by Hammer

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 shoheiwb 的頭像
    shoheiwb

    = ROCAF 46th = 飛行中隊

    shoheiwb 發表在 痞客邦 留言(0) 人氣()