1. 程式人生 > >以彼之道,還施彼身——使用機器學習來揪出作弊的玩家

以彼之道,還施彼身——使用機器學習來揪出作弊的玩家

ota 這一 團隊 如何 s系列 競賽 用戶 常見 fps

大家現在都有聽過「吃雞」這個遊戲的威名吧!這個本名為「絕地求生·大逃亡」的射擊遊戲已經成為了當下最火的多人在線遊戲,甚至超越了Dota2和CS:GO這些經典大作,變成了遊戲玩家中的一個熱點話題。

絕地求生·大逃亡是現在非常火的一個遊戲,當然,外掛也非常猖獗

事實上,從最早的毀滅戰士、半條命,到現在的戰地、守望先鋒以及絕地求生,FPS遊戲一直有著蓬勃的生命力,也一直吸引著數以萬計的玩家每天在線上廝殺——射擊遊戲的魅力毋庸置疑,但也並非是那麽完美,因為有一個東西一直是所有遊戲的夢魘,那就是作弊工具。

與其他對抗類遊戲不同的是,射擊遊戲的主要較量點並不在於團隊策略或是個人戰術(至少對於業余玩家如此),而在於個人的操作水平高低。一個大神可以單手把其余玩家虐出心理陰影,而對於天賦一般的普通玩家而言,想短時間提升射擊遊戲水平就是天方夜譚,那麽如何才能體驗虐人的快感呢?很簡單,買一套作弊工具就好了。

守望先鋒中的自動瞄準作弊工具

作弊工具是如此的強大,它不僅能幫你在遊戲中實現自動瞄準、報告敵方位置等功能,甚至在某些遊戲中還能賦予玩家超能力,讓你上天入地、刀槍不侵,這對於很多玩家來說的確是莫大的誘惑——當然,對於其他玩家而言就是極度地不公平。因此,越來越多的玩家會去嘗試使用作弊工具來打遊戲,久而久之,遊戲中的正常玩家就會越來越少,整個遊戲生態也會逐漸毀滅。

還記得小時候一起開黑的CS嗎?作弊問題幾乎毀了這個遊戲

遊戲開發商和運營商當然不會坐視不管,重拳打擊往往是一些知名廠商的做法,而為了懲戒這些「調皮」的玩家,如何識別出使用了作弊工具的電腦環境就顯得尤為重要。關於這一點,我們必須要提一提Valve(CS系列的開發商)的VAC系統(Valve Anti-Cheat System),這個系統內置在Valve的遊戲平臺Steam之中,對於大多數在線遊戲都會自動啟用。這個系統的主要運作原理是在遊戲運行時查詢是否有登記在黑名單之中的、有作弊嫌疑的工具在同時啟用,如果檢查到這類軟件,VAC會自動將用戶的賬號停用甚至封禁。

Valve公司推出的VAC系統

這種辦法和我們常見的殺毒軟件有些類似,它們共同的一個弊端就是容易被軟件所欺瞞,同時對於新生的軟件工具沒有任何抵抗力——由於其具有這種不健全以及滯後性的特征,我們把這種防禦稱之為被動防禦。當然,其他的遊戲公司所采取的反作弊方式可能更老套,一些遊戲商會引導玩家進行舉報,然後對遊戲錄像進行篩查,最後在給出審查結果以及決定是否懲罰相關玩家——這種做法無疑效率緩慢,但是為了遊戲生態,遊戲商不得不花費大量人力物力進行此類工作。

作弊與反作弊的較量已經持續了數十年了,可為什麽我們現在要討論這個話題呢?這是因為現在視頻遊戲的相關產業逐漸健全起來,尤其是競技遊戲的獎金水漲船高,僅CS:GO一項遊戲的全年總獎金就已經接近一億美元。在巨額回報的誘惑下,很多人都會鋌而走險,甚至在一些重要比賽中使用作弊工具。而鑒於現在很多的遊戲賽事都是線上比賽,玩家並不會親臨現場受到監督,因此作弊的風險也會相對較低。

CS:GO目前是全世界最具影響力的競技遊戲之一

另一方面,得益於計算機技術與程序算法的發展,作弊工具的能力和偽裝能力也越來越強。在以前的遊戲中,作弊工具的效果都會非常誇張以至於瞬間就能被其他玩家發現,而現在,優秀的作弊工具會表現得更像一個職業選手,除非是非常有經驗的玩家或者是程序分析師,否則一般玩家很難分辨出一個表現優異的角色操控者是人還是算法。

魔高一尺道高一丈。作為在線遊戲的平臺提供者、競技遊戲的舉旗先鋒,Valve公司已經開始研究如何更高效、更及時地鑒別出遊戲作弊者,他們給出的答案,就是機器學習。

機器學習和遊戲有著千絲萬縷的聯系

這在某種程度上是一種以彼之道,還施彼身的做法——遊戲商同樣采用計算機算法,來對付那些算法操控的遊戲角色。那麽,這種做法真的可以奏效嗎?機器學習就能解決這個以往只有靠人力才能完成的工作嗎?答案是肯定的,Valve對此信心滿滿,並已經在旗下遊戲CS:GO中嘗試使用這種反作弊手段。

這是一種全新的自動性人工智能系統,這個系統與遊戲本身緊密關聯。系統本身會采集遊戲中的一些數據,然後通過數據分析鑒別出產生這些數據的操作是否來自於一個真實的人——這個過程有點類似於我們常用的網頁驗證碼技術,而且毫不意外的是,目前最先進的驗證碼技術——Google的reCAPTCHA,就是充分利用了機器學習技術來實現高效率和即時性。

Google的reCAPTCHA人機驗證系統

與傳統的機器學習方法類似,這個反作弊系統同樣需要使用訓練數據來進行模型訓練——這個系統的本質其實就是一個二元分類器,因此在運作上與傳統的機器學習模型並無明顯不同。遊戲中的數據是繁雜海量的,因此使用傳統方法找出關鍵數據是無法想象的。而使用機器學習方法,數學模型就能自動通過海量的訓練數據找到作弊操作和普通操作與各種遊戲數據之間的聯系,並將這種聯系轉化為關於各種特征的權重,並使用這些權重來判斷未來的操作屬於哪一類。

但是,僅僅這樣做是不夠的。正如我們之前講過的,現在的遊戲作弊工具和職業玩家非常難以區分,而如果算法錯誤地將一個技術高超的職業玩家識別為作弊玩家,那麽後果將會相當嚴重。為了盡可能杜絕這一現象發生,我們需要對算法進行額外的調整。

CS:GO的一種可用的機器學習流程圖

Valve給出的辦法是在識別過程中增加一步人類鑒別過程——這個系統被稱為Overwatch系統(很有意思有木有)。當算法認為一個操作有可能是作弊者的時候,會由專業人士來再次進行一次判別(見上圖),來確定這個玩家是不是無辜躺槍的。然後,人類的最終判別結果會被傳回模型本身用於完善,因此,這個模型會隨著測試次數的增多而不斷得到提升,最終達到一個令人滿意的準確率——也就是不再需要Overwatch系統作為輔助。

有些作弊工具比如全地圖掛就很難通過錄像去察覺——因為有些玩家會真的擁有這種大局意識

機器學習支持下的反作弊程序還會具有各種各樣的優勢,首先,由於機器學習方法下的反作弊程序可以實現一種「主動打擊」,因此傳統作弊軟件的一些偽裝策略會完全失效;而另外,由於模型本身在不斷成長,模型對於各種數據的權重判別也在不斷變化,因此對於作弊算法而言,想要找到某些漏洞進行嘗試性攻擊會是非常困難的。

當然,這一切的研究工作還處於比較早期的階段,Valve為了實現早期的訓練過程,使用了數百臺設備、上百萬個遊戲錄像用於分析。而算法的早期成長速度非常緩慢,遊戲中高維度、高密集度、高混亂度的數據給算法優化帶來了非常多的問題。解決這些問題這不僅需要高質量算法的支撐,也需要這個社區的玩家一起群策群力。

事實上,我們已經可以在線上比賽中看見機器人的身影,比如圖中的Nash其實就是算法在操縱

作為研究者,Valve同時提到,傳統的通過識別軟件特征的反作弊程序只會讓事態變的越嚴重——因為如果不具備主動識別性能,反作弊程序將會在這種「軍備競賽」中永遠落後於作弊工具,黑客們總會找到各種各樣的偽裝和優化策略來對抗遊戲商,而被動地防禦帶來的資源消耗是不可估量的。

遊戲一直是機器學習算法一個很好的練武場,我們也希望機器學習算法的成長和進步能夠為我們帶來一個更美好、更神奇的遊戲世界。作為普通玩家,在了解這些前沿科技的同時,最重要的還是從自身做起,不圖不掛,素質遊戲,自覺維護和諧、公平的遊戲環境。

相關閱讀:

https://medium.com/@SidiPi7/a-study-of-cs-go-and-machine-learning-overview-on-how-machine-learning-can-be-used-to-tackle-the-30c46289972e

以彼之道,還施彼身——使用機器學習來揪出作弊的玩家