任何遊戲都需要按照一定規則進行才好玩,特別是在競技類遊戲中,一個良好的遊戲環境有賴於每一個玩家恪守規則。但也總有少數玩家,TA們慣於破壞規則塑造自己扭曲的強大,並將罪惡的“快感”建立在他人的痛苦之上。
在射擊類遊戲中,這些人被稱為大哥、神仙或者...一個很有騰訊特色的說法——清朝老兵(因為會被封號10年)。面對這些破壞遊戲環境的人,大多數廠商都會想盡辦法對抗,並且研發了種種不盡相同的反作弊系統,從V社的VAC,再到拳頭的Vangard,騰訊端遊的ACE等等不一而足。然而,儘管有著這些系統保駕護航,射擊遊戲的外掛似乎還是很難被根絕,甚至讓人生出“道高一尺魔高一丈”的感慨。
不過方妹我聽說,咱們家的《暗區突圍》在反外掛這塊還是頗有心得的,上線這一年多來,雖然玩家數量一直在提升,但反外掛這塊可絲毫沒馬虎,不僅對作弊玩家的封禁及時性、準確性大幅提升,還線下抓捕了不少外掛作者。可以說是公司內反外掛工作的標兵了。這次魔方研究,我就抓了一位為暗區反外掛做出突出貢獻的同事好好聊了聊。為什麼FPS的外掛會除之不盡?如今的反外掛手段是怎麼運轉的?反外掛的同事又是怎麼把那些“清朝老兵”繩之以法的?這期節目,我們就來解答大家的這些困惑。
第一步,增強免疫
FPS為什麼外掛這麼多?這其實是個老生常談的話題。在幾乎所有FPS中 ,精準瞄準特定目標並扣下扳機,都是獲勝的不二法門。如此樸實無華的設定也意味著,玩家間的“見招拆招”往往被壓縮至瞬息之間。
為了讓每個玩家都能享受這種緊張又刺激的體驗,開發者們自然希望遊戲的操作反饋延遲能夠儘可能的低。相較於其他不太要求“即時性”的遊戲而言,射擊遊戲的更多運算和判定需要在玩家的本地客戶端完成。
這固然解決了延遲的問題,但同時卻也為製作外掛提供了可能,諸如:非法讀取其它用戶的位置信息,這就是透視;強制鎖定瞄準特定模型(鎖頭鎖胸),甚至於直接向服務器端發送虛假數據包,讓角色一槍一個小朋友,或者直接飛天遁地(傷害掛、飛天掛)等等。
CSGO中的透視掛
瞭解了這一點,我們就可以開始思考如何處理外掛了。首先,如果將外掛視為入侵身體的“病毒”,那麼最簡單也是最有效的,自然就是增強自身免疫力了。
首先可以做的,自然是儘量保護遊戲數據不被非法讀取,在遊戲啟動時,客戶端會先對自己運行的“環境”進行檢測,比如客戶端是否被篡改,手機是否越獄,是不是處於模擬器環境,是否有可疑的軟件在同時運行等等。在檢測到異常環境時,遊戲可能會無法啟動,甚至賬號也會被短期封禁。不過這算能是一道最基礎的免疫屏障,僅憑啟動時的檢測來防護是不夠完善的。
接下來,便是遊戲中的服務器檢測,服務器端也會對客戶端的數據做一些驗算和核實。比如一個玩家用特定子彈打出的傷害是否合理,玩家所處的位置是否合法等等。
舉個例子,去年7月暗區剛剛上線時,就曾短暫出現過隔空取物的外掛。隨即負責安全策略的同事迭代了服務器驗證的流程,在拾取物資時,服務器端會驗證先鋒與物資的距離,如果過遠,則判定為無效。通過外掛隔空取物自然就行不通了。不僅如此,暗區中高價值的物資也得到了更高級別的保護。比如遊戲的保險箱中到底有什麼東西,只有當玩家摸保險箱後,服務器端才會下發其中的信息,因此所謂的“保險透視掛”如今完全是無法實現的。
可能有玩家們看到這裡可能就要提問了,方妹方妹,那為什麼不給所有物資,或者所有行為數據都加嚴密的服務器驗算流程呢?這樣不就可以徹底擺脫外掛了麼?
當然不是啦。正如前面提到的,FPS是為了保證延遲,才將部分的數據計算任務交給了本地客戶端,服務器端的驗算算是一道保險,如果做得太多太複雜,同樣會造成過度延遲的問題。
比如說,關於玩家透視掛,我們其實也可以像保護物資一樣,通過服務器驗證的方式對其進行一定程度的限制。但基於性能問題,這個課題我們已經研究有小半年之久。
因此,我們還需要其它方式來應對“外掛”的襲擾。想要擺脫病毒的困擾,提高自身免疫力只是一方面,如何對症下藥,也是治病的關鍵。
第二步,對症下藥
眾所周知,接種疫苗,讓抗原刺激機體產生抗體,是抵禦病毒最有效的方法。為了處理外掛,同樣也需要類似的操作,也就是蒐集外掛樣本,識別特徵,記錄在案。
至於如何蒐集更多的外掛樣本,我們通常劃分為主動蒐集、玩家舉報這兩種方式:
主動蒐集,說白了就是潛伏臥底各大外掛售賣平臺和論壇社區,收集常見的外掛樣本。
外掛售賣群
而玩家舉報,顧名思義,就是通過玩家的舉報去定位一些可能有使用外掛嫌疑的玩家,定位後結合一些技術手段去多維度分析這個玩家到底有沒有使用外掛,查實後,還提取對應外掛的特徵。我們將這些蒐集來的外掛程序特徵加入到客戶端檢測機制中,就可以識別一個用戶是否開掛了——大家十分熟悉的騰訊ACE安全系統就是這樣工作的。
只要這兩套機制運轉正常,一個全新的外掛只要活躍了一段時間,就會被撲滅;雖然新外掛還會不斷出現,但註定很難掀起太大波瀾。
《暗區突圍》中玩家舉報界面
那麼大家可能會好奇,既然如此,為什麼封禁的時間有長有短,難道是因為傳說中的“充錢保命”?其實並非如此,一些玩家被被放到小黑屋,或者短時封禁(而不是10年),是因為,我們可能發現了一些高危的特徵,但並不實錘玩家開掛。例如檢測到手機處於越獄狀態,以及其它一些阻斷外掛檢測的情況。
這裡額外說一句,其實大家的局內舉報是非常有用的。我們會啟動一個AI模型來分析被舉報玩家的局內錄像,來看他的特徵是不是像“開了掛”——例如預瞄掩體後玩家,控槍異常等。如果AI認為有開掛嫌疑,則會推給人工進行核實。這個AI模型的準確度隨著時間推移變得更高,讓發現新外掛的速度變得更快了。
總的來說,騰訊遊戲反外掛工作實際上是由一個龐大的中臺體系支撐,背後的技術含量相當高。而暗區投入在反外掛的支出,每個月都超過百萬,雖然談不上“杜絕外掛”,但還是可以把外掛的影響控制在最低的範圍內。
第三步,根治病灶
除了通過遊戲內的技術手段應對外掛,在遊戲外,我們同樣建立了直接針對外掛使用者和製作者的一些機制。
比如,經過常年的研究,我們發現,約有超過一半的外掛使用者是慣犯,他們會在不同遊戲間,開多個賬號使用外掛。針對這種情況,我們就有了跨遊戲的騰訊遊戲信用分系統。如果在別的騰訊遊戲中被檢測到不當行為,或者因使用外掛被封禁,那麼在這一賬號登錄其它騰訊遊戲時,就會被列為重點檢測對象,早發現早治療。
騰訊信用分系統
而對於製售外掛的人,就更不必多言了。只要非法獲益金額金額達到立案標準,我們就會將蒐集到的場外信息提交警方,直接線下抓捕那些賣外掛的人,並順藤摸瓜將製作外掛的人一起繩之以法。這樣的抓捕行動,在過去一年已經進行了好幾次。方妹也在這裡敬告大家,製售遊戲外掛是真正的違法行為,大家不要鋌而走險哦。
輻射系列有一句名臺詞,叫"War, war never changes."反外掛可能也是這樣一場永不改變、永無休止的戰爭。而我們唯一能做的,無非就是保持鬥爭,始終嘗試為玩家提供更乾淨更公平的遊戲環境。
好了那麼這一期的魔方研究就聊到這裡吧,如果覺得對大家有啟發,不妨在評論區討論,讓我們下期節目再見!