為什麼不能徹底解決fps遊戲外掛呢?

rt


Moba類遊戲上傳量非常簡單,你滑鼠點擊地圖的位置算一次,技能的釋放算一次,大部分可以交由伺服器端完成,因此即時互動性很高。比如延遲時我們看到的人物閃動,是在沒有收到下一次指令時角色本來的路線,電腦只不過是按照上一次信息自動演算。當信息包從服務端到你電腦時,又會迅速修正。所以伺服器的判斷也很簡單。

Fps遊戲中你的每一次視角移動,角色移動都是即時的,如果全局上傳,誤差極大。比如你眼中的法鷹還在地上,對面眼中的法雞已經飛到你後面開始正義了。這種延遲下每一幀都上傳是不可能的。只能以雙方本地計算結果上傳,交由伺服器端進行判斷,該補償補償該回滾回滾,反饋回你電腦可能都是半秒一秒之後了。最直觀的例子就是路霸穿牆勾,很多人在躲進掩體後被路霸追魂一勾。你以為躲起來了,人家眼裡勾你時,你還在外大搖大擺。fps網遊這種依託大量本地計算的特性容易遭到破解和修改。守望先鋒為了保證遊戲流暢性,採用了與之很類似的計算方式。

外掛大部分以修改客戶端遊戲數據為主要手段。像fps這種對於人物方向,位置的送包方式,修改上傳給伺服器端後就極難分辨,至於像透視,貼圖這種不交互處理的數據更是難以防範。還有利用了本地延遲補償機制的手段就難以預防,只能針對性的解決。即使檢測第三方軟體修改,也並不是毫無漏洞可言。

並非說修改本地數據是fps的專利。比如lol曾經就可以通過修改本地數據無限閃現。只要是本地的數據計算,都有作弊的可能。

有朋友問坦克世界……

硬要說的話,是服務端運算為主,客戶端做的大部分是插值,這種情況下的對面數據都是由服務端送包賦予的,即使有外掛能勉強抓包計算差值,變動率也極高。

這種情況下伺服器如何保證玩家間遊戲流暢,就會根據發包率進行延後、提前運算。當數據返回時會直接得到結果,而不是本地得出結果反饋伺服器。

就好像你移動時突然跳紅格,幾秒過後發現坦克跑去洗澡了。那就是停止指令的數據包沒有送出去,伺服器就認為你還在移動。下一次信息對等的時候,伺服器跟你講你下水了,你就非得洗澡不可。

當然我只是臆測,實際計算方式可能並非簡單的二段式,比如有的遊戲會在移動過程中固定時間發送數據包以保持狀態。

所以在坦克世界裡,年年有全亮掛的傳說。


外行人拋磚引玉。之前有人提到過,大意是MOBA 遊戲的許多計算判定都是在伺服器端完成的,要開掛就要黑進伺服器(但是 LOL 還是有腳本什麼的)。然而 FPS 的許多計算在本地完成,這就有了用外掛的機會。


換個思路其實很容易,現在的實名制就是一張身份證一個名字,蠢的一筆卵用沒有。改成一張身份證一段驗證視頻,ai驗證人工輔助,一張身份證下不限制賬號,但是任何一個賬號開掛追溯封身份,第一次一月第二次半年。


因為解決不了

現代MO遊戲雖然已經達到了「伺服器不信任任何本地結算」的程度,但類似於透視、自瞄這樣只需要攔截下行通信,再攔截操作的掛實際上並沒有機制上進行判斷的辦法。

BLZ的外掛檢測實際上是通過實時掃描玩家進程完成的……是的玻璃渣就是你爹


fps遊戲瞄準輔助類外掛的終極形式就是一個完美反應的機器人坐在屏幕前替你打,你在計算機上做再多措施也沒用。

現在的外掛只是這個機器人在內存中讀取、修改csgo的內存數據或者模擬滑鼠鍵盤輸入。對於主流的操作系統來說,高許可權進程(Admin,root)具有查看,修改普通用戶進程內存空間的能力。對於一個general purpose的系統而言,這本就是為了讓用戶有充分的自由,包括開外掛的自由。封閉系統,比如主機系統,在不考慮bug,漏洞的前提下,就可以避免這個問題。


雲端渲染技術成熟後就能完美解決啦


推薦閱讀:

如何評價光環5這款遊戲?
玩點卡收費遊戲遇到過哪些暖心的故事,是一種怎樣的體驗?
如何評價LGD職業選手godv?
你會因為一個特別想玩的遊戲買主機嗎?
如何評價《極品飛車 20》僅獲 IGN 5.9 分?

TAG:遊戲 | 穿越火線CF | 反恐精英:全球攻勢CS:GO | 守望先鋒? |