预防游戏外挂
我們游戲的移動同步邏輯的基本原理是:單位在主控端(玩家自己的客戶端)根據玩家輸入執行移動邏輯,然后將位置點以及時間信息以一定的頻率發送給從端,服務端以及其他客戶端根據主控端發來的移動同步信息模擬、預測、糾正單位的位置。
基于以上同步機制,移動模塊需要考慮三種外掛情況:
1.主控客戶端偽造或篡改瞬移消息。
2.主控客戶端修改本地內存中的移動速度。
3.主控客戶端使用加速器
由于我們游戲所有的移動都是在主控客戶端發起和執行,然后服務端跟隨,所以瞬移也是客戶端先執行,然后通知服務端。
為了保證客戶端不能發送非法瞬移消息,我們將瞬移流程定義為:由服務端發起、客戶端執行、服務端再驗證。
1.服務端發起瞬移,但是并不將單位移動到對應位置,而是將瞬移信息發送給客戶端。
2.客戶端收到位移信息后,將單位移動到對應位置。
3.客戶端發送一個瞬移消息給服務端,服務端收到后,將單位移動到對應位置。
基于以上瞬移流程,可以比較簡單的實現瞬移防外掛功能。
服務端發送瞬移信息給客戶端時,記錄下來瞬移目標的位置。
服務端收到客戶端的瞬移消息,進行以下驗證:
若服務端沒有發送瞬移消息給客戶端,則瞬移非法。
若收到的瞬移位置與記錄的瞬移位置不同,則瞬移非法。
基于以上流程,可以保證瞬移雖然是客戶端執行的,但是仍然由服務端發起和驗證。
總結
- 上一篇: 游戏外挂的不同种类
- 下一篇: 罗赖马山(Mount Roraima)+