射擊網游中網絡時延的處理
(金慶的專欄)
網游中的網絡時延是無法避免的事.
例如移動, 客戶端發出命令到收到服務器的確認會有100ms的時延,
如果客戶端等待100ms后再移動, 操作性將會非常差.
一般是不等服務器確認, 先移動起來.
對于攻擊, 同樣也有時延.
一般的PK網游中,攻擊速度很慢,大概1s發一次攻擊,
攻擊傷害結果延時100ms沒有問題.
因為攻擊動作播放大于100ms.
但在射擊類網游中, 網絡時延就很難處理.
開槍射擊后, 是否打中的結果要100ms后才知道.
大多數的處理是用客戶端判斷, 所以可能出現外掛.
因為網絡時延的存在, 網絡游戲其實并不適合射擊, 格斗這些即時性強的游戲.
最適合的是星際戰爭這類遠距離的對打, 發個導彈會需要一段時間后才命中,
正好符合網絡有時延的特征.
為了處理網絡時延, 射擊的結果不應該立即表現出來.
對目標開槍后, 目標不應該立即倒地死亡, 而是應該表現出一種可能被擊中的動作,
等待服務器確認后才倒地.
這符合真實的情景, 即使被擊中要害部位, 倒地前仍然可能有一定的動作.
如果服務器判定沒有死亡, 目標可能僅僅是受傷, 可能是未打中,
目標這時可恢復其正常的動作.
(金慶的專欄)
網游中的網絡時延是無法避免的事.
例如移動, 客戶端發出命令到收到服務器的確認會有100ms的時延,
如果客戶端等待100ms后再移動, 操作性將會非常差.
一般是不等服務器確認, 先移動起來.
對于攻擊, 同樣也有時延.
一般的PK網游中,攻擊速度很慢,大概1s發一次攻擊,
攻擊傷害結果延時100ms沒有問題.
因為攻擊動作播放大于100ms.
但在射擊類網游中, 網絡時延就很難處理.
開槍射擊后, 是否打中的結果要100ms后才知道.
大多數的處理是用客戶端判斷, 所以可能出現外掛.
因為網絡時延的存在, 網絡游戲其實并不適合射擊, 格斗這些即時性強的游戲.
最適合的是星際戰爭這類遠距離的對打, 發個導彈會需要一段時間后才命中,
正好符合網絡有時延的特征.
為了處理網絡時延, 射擊的結果不應該立即表現出來.
對目標開槍后, 目標不應該立即倒地死亡, 而是應該表現出一種可能被擊中的動作,
等待服務器確認后才倒地.
這符合真實的情景, 即使被擊中要害部位, 倒地前仍然可能有一定的動作.
如果服務器判定沒有死亡, 目標可能僅僅是受傷, 可能是未打中,
目標這時可恢復其正常的動作.