歡迎光臨
每天分享高質量文章

絕地求生外掛原始碼被公佈,或迎神仙大戰時代?

(點選上方公眾號,可快速關註)


轉自:開源中國,內容參考自吃雞總指揮和網易科技,感謝藍橋杯的整理


絕地求生大逃殺(PlayerUnknown’s Battlegrounds)》從去年開始就爆紅,還引發了全世界玩家的“吃雞”熱潮。但之後很多外掛製作者也開始瞄準吃雞這個市場,逆天外掛頻頻出現,比如之前我們已經見過的“路飛掛”、“黃金甲掛”、“隔空取物掛”等等,吃雞出神仙早已不是什麼新鮮事。



對此,騰訊宣佈代理《絕地求生》國服後,不僅成立反外掛專項小組,還聯手警方線上線下嚴打外掛團夥,一度讓不少外掛製作者膽顫心驚……



但是這幾日,某知名博主爆出一個訊息——國內某個外掛作者於前兩日已經將某外掛開源釋出在論壇上,換句話說這遊戲接下來可能會迎來外掛的免費時代。



關於這次事件,有博主表示是騰訊打擊外掛惹惱了一批得利者,這些人索性開源外掛,讓遊戲環境變得更加惡劣!我們都知道,一個月的外掛銷售額是十分驚人的,甚至達到了上百萬人民幣!但隨著騰訊代理國服,這些外掛製作者也不敢明目張膽的銷售外掛了,未來還有可能受到法律的製裁,所以就做出這魚死網破的事。


開源的外掛具體可以實現什麼操作?



開源的程式碼可以實現透視、去草等功能,最恐怖的是,竟然可以透過安全監測!


想想吧,你美滋滋的舔了空投找到了吉利服,歡歡喜喜的在草地裡當個LYB,神仙3000米之外一槍爆頭,你咋想?



畢竟,開了除草外掛的神仙們,看到的視角是,一個人傻傻趴在那裡,還綠油油的,簡直一個固定靶,槍法再臭也爆你頭。



那麼為什麼開發者沒法禁止外掛呢,下麵小藍就給大家科普一下《絕地求生》外掛的一些原理和為何不能根除的原因吧~


網路遊戲的結構原理



客戶端與伺服器聯接示意圖


首先,任何一款網路遊戲都會有客戶端與伺服器端,通常情況下客戶端負責實現我們玩遊戲時的一切互動(操作)和展現互動(操作)結果,伺服器端負責完成資料驗證、處理、分發等工作。


《絕地求生》的特殊性


但是FPS類的射擊遊戲就比較特殊了,這類遊戲對資料的實時性要求特別高,而作為主打真實的百人競技《絕地求生》,需要處理的資料就更加複雜了。



絕地求生-SKS


例如不同槍械的不同彈道,你與不同敵人間的距離,擊中不同的部位會有不同的傷害數值等等一堆資料,如果每個人的資料都交由伺服器處理,不但對伺服器效能是個重大考驗,更重要的是會產生很高的“延遲”。



舉個例子,假如資料交由伺服器處理,你這邊打了敵人一槍,然後客戶端把一系列資料傳送給伺服器,伺服器再計算結果,然後再將結果發給你和被打中的敵人,你想象一下,一臺伺服器上有很多場比賽,它需要同時處理每場比賽每個人千變萬化的資料,這中間哪怕有半秒鐘的處理時間,都會讓你覺得遊戲“好卡”啊!


因為我們玩家要看到的是打中敵人,敵人立刻飆血,容不得半秒鐘等待。



所以FPS遊戲為了保證遊戲體驗,只能讓資料都在玩家本地(也就是你的計算機)進行計算,還是以你打了敵人一槍為例,放在本地計算以後,伺服器只需接收到你對敵人造成傷害的這個結果,再將相應的結果轉發給敵人,這中間的“延遲”就會非常低了,這樣才能保證遊戲的流暢進行。



外掛的原理


但就是因為資料本地化計算,才讓外掛有了可乘之機,外掛可以透過修改資料來欺騙伺服器,比如說閃電俠外掛,玩家沒有載具的正常情況下,速度是會有個上限的,而外掛可以透過修改資料欺騙伺服器,說你現在正騎著一輛摩托(實際上沒有),能夠讓你擁有摩托車一樣的速度,這樣就實現了加速。



而自瞄也很簡單,伺服器會將戰局中其他玩家的位置傳送到你的電腦上,這樣你在遊戲中才能在正確的位置看到其他玩家的人物模型,外掛就可以透過讀取這些位置資訊,從而實現自動瞄準鎖頭等操作。



至於無限子彈,改變射速,提升子彈威力等,也都是透過修改資料產生的,所以以目前FPS遊戲處理資料的機制來看,更新遊戲只能短暫的讓外掛無法使用,想要徹底根除外掛,幾乎是不可能的,唯一能做的就是封號,還有就是像騰訊那樣配合執法部門,用法律手段打擊製作外掛的團隊,讓想要透過外掛牟利的人不敢作惡。


技術可以治好外掛,卻治不好人心


也許有一天,會有效能更強大的伺服器和更先進的技術出現,讓我們不再受到外掛的侵擾,但那些開掛才能玩遊戲的人,你們的病怕是無藥可救了。





覺得本文有幫助?請分享給更多人

關註「程式員的那些事」,提高程式設計技能

贊(0)

分享創造快樂