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