開發幕後:Vanguard x《英雄聯盟》回顧

反作弊系統到目前為止如何反作弊。

各位旅人好: 

自從我們為《英雄聯盟》推出Vanguard以來,已經經過了近八百萬秒。在這段難解的時間中,我們經歷了一些精彩與低谷,甚至還至少出現了Vanguard的角色扮演者(身著高級訂製服裝)。我們現在要與你們分享前兩件事,這是我們持續努力做到的事。而我們的目的,是成為PC遊戲界最積極與玩家交流,且最公開透明的反作弊團隊。但在此之前,也建議各位考慮閱讀我們在Vanguard推出前發表的文章,將其視為清新的14道開胃菜

我們該提前澄清某個哲學開胃小點一下,意即雖然我們會繼續改進Vanguard x《英雄聯盟》的整合(而作弊玩家也會繼續改進他們的作弊手段),但我們仍會堅定持續使用這項技術。所有的反作弊方式都是在玩家體驗,以及提高反作弊效果之間的平衡定位,這也顯示出Riot對於競技體驗的重視程度。當停權無法有效針對不良行為者時,免費遊戲模式會遇到太多無法解決的問題,包含送頭、不良行為與代打等行為。若你們不喜歡核心層級的反作弊系統也沒關係,但我們不會被動等待PC平台自行提升安全功能,而是會採取主動措施,以保護我們自己的遊戲。在那之前,我們真心相信有效的反作弊系統是保持《英雄聯盟》蓬勃發展的最佳方式。

好了,讓我們繼續上接下來的菜。再次介紹,我是「mirageofpenguins」,今晚將由我擔任各位的領班。我的烹飪資歷包含在某間Subway工作了九個月以後遭解雇,但從那之後,我就一直在Riot為各位製作了超過十年的新鮮反作弊系統。

目前的進展

就像任何一份像樣的三明治一樣,在Vanguard,我們會先放上麵包。在這方面,更新《英雄聯盟》的反作弊系統已經實現了許多我們最初的目標,甚至達到了某些人考慮推出Vanguard 2的地步。好啦,並沒有人真的這麼想(而且更新反作弊系統的樂趣大概就像替貓戴手套一樣少),但將《英雄聯盟》的反作弊系統在本世紀引入還是取得了一些立竿見影的成功,這可能並不令人意外就是了。

腳本玩家減少

上圖顯示了積分對戰中至少有一名腳本玩家的百分比,以及因為「使用腳本」在競技對戰中遭停權的玩家數量。聽說我喜愛這張圖表到把它刺青在我的兩隻前臂上,而且每三週就會回到刺青店忍痛更新一次。真希望我在身上沒地方刺青之前,這些腳本玩家就會被我們消滅殆盡。

我們最顯著的首要勝利,就是現在遊戲中的作弊玩家大幅減少了。上圖顯示的是《英雄聯盟》積分對戰中的腳本使用率,同時也顯示出每日反作弊的停權玩家數量,並依據判斷停權所使用的系統進行了分類(「Packman」是舊的反作弊系統,而「Vanguard」則是新的)。腳本玩家數量立即減少的原因,大部分要歸功於Vanguard的預防功能,但從「硬體停權」這個類別的出現能夠得知,之所以能進一步的減少情況,是因我們偵測到在Vanguard推出後仍「英勇」嘗試作弊的玩家。這些玩家為了測試反作弊系統是否有停權上限(事實證明並沒有),壯烈犧牲了所有的帳號。

自Vanguard推出以來,我們已經因為作弊行為停權了175,000個以上的帳號,但更重要的是,積分對戰腳本使用率首次在近四年來降到了1%以下。截至撰寫本文時,每200場積分對戰中只有1場有腳本玩家參與,我想我終於能安全地完成我的排位戰了。我絕對還是會以10%的勝率落在鐵牌II牌位,但至少現在我只要把責任都推給劫這個英雄就好了。

最近一次的停權數量暴增(發生在7月8日),是由於Riot所謂的「暑假」所直接造成的結果,我們回來後就面臨了突如其來的反作弊能量爆發,在48小時內就停權了35,000位腳本玩家。雖然很多人可能會對於反作弊人員也需要休息感到驚訝,但請放心,我們大多數人幾乎可以確定是100%的人類。我們也喜歡一些簡單的樂趣,例如看看樹木與攝取營養,所以一週好好的休息就只會增強我們的決心。

外掛機器人減少

上圖為每個遊戲列隊中使用外掛機器人的總時長。你們猜得沒錯,我在這裡使用「時長」這個單位,是為了讓管理階層能更直接感受到這個情況對錢包最深層的影響(伺服器成本)。

我們的第二張圖表展示了今年外掛機器人所浪費的對戰時間。使用外掛機器人和使用腳本很相似,因此我們主要透過玩家的表現與遊戲用戶端來區分這兩種違規行為。例如外掛機器人會死於防禦塔下,並以最高9 FPS的效能運作。以原生資料語言來說,看起來會像這樣:

select date, game_mode, sum(minutes_in_game) * 60

from anticheat.detections 

where client.resolution_x + client.resolution_y < 1000

   and client.avg_fps < 15 fps

group by 1, 2

總之,Vanguard的反虛擬機器技術,對編程能力有如普通咖啡機的外掛機器人完成一場《英雄聯盟》對戰的能力,造成了相當大的打擊,使每日使用外掛機器人的總遊戲時長從超過100萬小時,降至不到5000小時。許多外掛機器人工作室因此陷入了長久的情緒動盪,如果你們玩過玩家vs電腦模式,你們可能會看到它們站在你們那一隊的溫泉中進行深刻的自我反省。這些外掛機器人快速癱瘓的原因很簡單,因為它們並未執行Vanguard——沒執行Vanguard就無法連線至伺服器。某些外掛機器人嘗試利用舊的OSX虛擬機器重新進入遊戲,這部分我們會留到「甜點」的時候再來探討(請繼續往下看)。 

在推出Vanguard不久後,我們還清理了350萬個尚未出售的外掛機器人帳號,這麼做的目的是為了逐步削弱小帳市場。外掛機器人對推動《英雄聯盟》競技的濫用扮演了重要角色,它們既為代打者提供新的小帳與顧客一起列隊,也為腳本玩家提供新的帳號以利「遊玩」。事實上,我並不確定這兩種行為是否都能稱之為「遊玩」《英雄聯盟》,所以我們必須對那些如智慧烤麵包機一樣的外掛機器人保持高度警惕,讓我們的其他懲罰措施能造成最大程度的痛苦。

停權速度更快

你們可能以為我已經放棄了那個令人難以忍受的三明治比喻,因此鬆了一口氣。但就像所有謀生艱難的作家一樣,我仍對寫作與食物比喻的藝術表達苦苦堅持。因此,接下來的這些圖表可視為是三明治中的美乃滋,就像現實中的美乃滋一樣,它們是三明治的核心重點。

「行動時間」(左圖)以對戰數量計算;「偵測時間」(右圖)則以天數計算。前者更著重於我們清除不良行為者的速度,而後者則探討我們能對已知的作弊行為執行偵測的速度。值得注意的一點在於,偵測到某些行為並不意味者我們會立即為此停權帳號。

左上圖顯示的是我們主要的反作弊關鍵績效指標「行動時間」,此指標可簡單理解為一作弊玩家在遭停權前能夠遊玩的對戰數量。對三維生物而言,這種時空壓縮演算法就相當於所謂的停權。由於我們的更新不需要再依賴《英雄聯盟》的更新節奏,因此Vanguard大幅加快了從《英雄聯盟》中清除腳本玩家的過程。我們的「行動時間」已經從45場以上對戰降低至不到10場,而這種短暫的延遲也大多是刻意為之,目的是延緩這些作弊工具的開發者意識到我們已包圍他們的情況。

為此,右圖則展現了此過程的另一面。「偵測時間」衡量的是某作弊行為(或其更新版本)在被發現,並把偵測碼寫在卷軸後,將其焚燒獻祭至具自我意識的Vanguard雲端之前,能在《英雄聯盟》的系統中隱藏多久的時間。我們可以透過查看新偵測結果送出時(這可能是它們「首次出現」的時間),首次識別出的所有帳號與硬體組合的最長存在時間(以天為單位)去估算這個數值。我們現在的速度很快,但隨著作弊手段變得更為隱密或先進,我們找到並執行對應的偵測會需要更長的時間。這就是反作弊的微妙平衡:我們不能過度優先考慮「行動」,否則會使作弊玩家的更新加速並減緩我們的「偵測」速度。

在進入Vanguard時代後,仍願意作弊的玩家通常並不重視帳號的所有權或公平遊戲的理念。他們的社群通常由其他作弊玩家組成,而他們與遊戲的互動方是就是作弊,只有隨著時間推移或青春期的結束才有可能改變這點。在此之前,我們能做的就是不斷改進與這些作弊玩家的對抗策略,而作弊玩家遭重新識別的速度,則反映出我們在打擊作弊行為上的成效。

其他「有趣」的變化

婕莉的資料變化看起來可能很誘人,但請記住,作弊是通往「停權之城」的單程票,而居住在那裡的應付稅額是作弊玩家的所有帳號。

上方的儀表板監控著九位最常使用腳本的英雄,觀察由於部署Vanguard後可能導致的任何變化。由於腳本能比人類更快完成大量的滑鼠點擊操作,所以使用腳本時大多會選擇ADC英雄。左邊的時間軸顯示的是當玩家使用腳本作弊時,比起不作弊時的勝率增加率(即腳本玩家與一般玩家之間的積分對戰勝率差異),而右邊的圖表則顯示了同一位英雄在Vanguard部署前後60天的總勝率變化。為保障資料的有效性,我們選取了當時白金以上排位的玩家使用圖表,來對應英雄的所有對戰資料。

隨著光子從圖表反射至視網膜,你們會觀察到令人欣慰的現象:作弊玩家的表現些微「下滑」了。這個現象涉及了許多的因素,但最關鍵的一點在於Vanguard讓執行「內部」的作弊行為變得非常困難,因而無法使用具易偵測模式的作弊方式。這導致許多作弊玩家不是轉而採取手動操作,就是選擇使用「外部」類型的作弊方式。一如「外部」說法的暗示,這些作弊方式無法讀取遊戲記憶體,因此它們僅能藉由擷取畫面資料進行作弊,並嘗試替作弊玩家輸入指令。簡而言之,它們的效果……,並不好。

此外,腳本使用者的減少(與腳本效果的降低)似乎也影響了這些腳本常用英雄的整體勝率。在分析資料時,很難排除遊戲平衡性調整、賽季重置與相剋英雄變得更受歡迎等因素的影響。然而,其中某部分的勝率下降的確是由於作弊玩家難以將帳號保持在鑽石排位的緣故。每當想到這點,就讓我心情愉快。

將誤判降至最低

所有新的反作弊系統都有誤判的風險,可能會錯誤標記「看似」作弊工具的軟體資產(通常是惡意軟體或其他遊戲的作弊工具),但幸虧Vanguard並沒有那麼新 —— 它今年已經四歲了。而作為這份三明治的最後一片麵包(我現在才意識到這份三明治其實只是兩片沾了醬料的拖鞋麵包而已),我們將檢視Vanguard在《英雄聯盟》中的誤判率。

值得一提的是,我們並不接受「我哥哥的寵物鬣蜥在我的電腦上安裝了腳本」這種說法為作弊的有效藉口,但我們真的太常收到這種推托之辭,讓我們不禁開始擔心《哥吉拉》系列電影可能是某種預言。

上圖左軸顯示的是所有因Vanguard停權後又撤回的百分比(長條圖),並根據撤回停權的原因進行類別劃分。右軸則是這些帳號在遭停權期間的平均時間(折線圖)。此處有三種類別的停權撤回情況,以下依照出現順序排列:

  1. 在遭偵測作弊行為時處於被盜用(並非故意共用)狀態的帳號。

  2. 由於借用或購買先前遭停權的硬體而被上鎖的帳號。

  3. 因為某些非明確使用於《英雄聯盟》作弊的資產或行為,而遭到停權的帳號。

我們認為「真正」的誤判是上述的最後一種情況,而到目前為止,這種情況的總體發生率低於0.01%,即每10,000次停權中不到1次。更棒的是,這些無辜帳號的平均停權時間不到72小時。在系統推出時,為了更適應玩家在遊玩《英雄聯盟》時可能同時執行其他遊戲的非典型行為模式,我們確實需要調整一些規則,但自此之後,情況一直相對順利。我們非常重視懲罰措施的準確性,並持續重新審查Vanguard的規則,以將附帶損害降至最低。

儘管如此,作弊玩家仍需要更多帳號進行作弊,因此「盜用帳號」仍是最常見的狀況。雖然客服偶爾會對明顯遭到盜用的帳號網開一面,但有時很難判斷「誰」是帳號的原始擁有者,尤其是在帳號長期處於故意共用的情況下更是如此。將Vanguard應用於《英雄聯盟》後,許多共用帳號者都意識到了同伴的作弊傾向,但當兩名或以上的玩家都聲稱擁有某帳號時,我們實際上能做的事情非常有限。

切勿共用帳號,切勿重複使用密碼,並請啟用多重驗證

更複雜的議題

大約有0.0%的人會對安裝強制性的反作弊系統感到期待,因此也不指望Vanguard團隊在《英雄聯盟》上推出時會受到熱烈歡迎。Vanguard是個相當複雜的產品,幾乎完全在不透明的環境下運作。為有效對付想瞭解此系統更多細節的作弊玩家,這種不透明的設計非常有必要,但這樣的模糊性也使Vanguard極易招致批評,尤其在無法提供詳細解釋的情況下更是如此。接下來的某些部分可能會具稍顯複雜的技術性,但請隨我一起深入瞭解這些內容。

阻擋易受攻擊的驅動程式

Vanguard的目標並非成為某種持續性的侵入監視系統,而是成為保障系統安全的工具。Vanguard會在Windows核心層級建立防護機制,判斷系統是否處於安全狀態。若Windows的原始保護機制並未遭破壞,且處於已知的安全狀態下,Vanguard就無須對系統深入收集過多的資訊。 

我們的反作弊系統無須建立網路連線,只要在開機時載入驅動程式,即可防止其他潛在的驅動程式在核心層級進行隱匿性操作——進一步避免無法偵測到後來載入的任何工具的窘境。我們通常稱此為「誰先載入」的問題。Vanguard透過保障自身在開機時的優先載入,進而避免這樣的情況發生。

Vanguard阻擋的驅動程式如下:

  1. 具權限提升漏洞的易受攻擊驅動程式,作弊玩家可利用它們使程式碼進入核心層級。 

  2. 較舊的驅動程式,其憑證簽署並沒有時間戳記。

  3. 專為作弊而開發的驅動程式,由偽裝成正規軟體公司的作弊開發者簽署。

第二種情況是最常見的衝突來源,使用這些舊憑證的主要問題在於,其中許多已遭作弊玩家盜用。在大多數情況下,此問題可透過簡單下載相應驅動程式的較新版本來解決,但有時原開發者早已不再維護這些驅動程式。即使他們有能力這麼做,廢止舊簽署也會導致所有正規使用者無法再使用他們所簽署的軟體。因此,Vanguard在執行時會阻擋所有具舊憑證的驅動程式。你們隨時都可以關閉Vanguard以載入這些驅動程式,但若要執行Vanguard所保護的遊戲,我們須保障Windows自開機後不受任何入侵。

反覆重開機現象

最近一次大規模的反覆重開機事件引起了全球對執行核心驅動程式潛在危險的擔憂。然而儘管這起事件的確令人不安,但Vanguard在很大程度上並不容易受到這種最糟糕情況的影響。此處有幾個不同因素與直接緩解措施發揮了成效。

開機區別化

經Microsoft認證的反惡意軟體組件擁有ELAM權限,因此可以在「開機」時比Vanguard「系統」更早載入驅動程式(細心的讀者可能會認知這是「誰先載入」軍備競賽的自然進展)。然而更重要的是,許多反惡意軟體驅動程式還能在執行過程中,從遠端伺服器「動態」取得配置資料,而無須重建與重新認證驅動程式。這種設計大幅加快了應對威脅的反應速度,但也同時會在本機儲存資料以供每次初始化時使用。然而,若任何配置導致資源競爭的情況出現,使作業系統在當機前無法下載新的資料,就會進一步導致不可逆的更新問題。若採用動態的開機載入驅動程式則會顯著增加風險,這是Vanguard團隊為了睡得更安穩而不採用的選擇。

靜態程式碼

Vanguard的驅動程式(VGK.sys)則在開機時不會執行任何動態操作——它完全是靜態程式碼。我們利用Vanguard的用戶端組件(VGC.exe),僅在玩家實際進行遊戲時才遠端啟動這些驅動程式功能。驅動程式並不會將任何配置儲存、更改或保留到下次開機,如果出現嚴重錯誤,我們只要停止傳送相應的配置,這樣在下次重新開機時,驅動程式就會恢復到靜態的被動狀態。Vanguard的驅動程式組件本身並沒有網路連線,用戶端必須在與平台建立連線後,驅動程式才會執行任何實質操作,包含阻擋在啟動後載入的易受攻擊驅動程式。

簡單的故障安全機制

某些「積極進取」的年輕工程師已經詳述了這個過程,但在Vanguard驅動程式的入口處,有個以vgkbootstatus.dat檔案形式存在的警醒裝置機制。在Vanguard首次載入時,會檢查此檔案的狀態,若此檔案並未顯示「已啟動」,則驅動程式就會以不影響系統穩定性的方式退出。在其他情況下,Vanguard會將該檔案的狀態設定為「啟動中」,在前置作業成功完成後,狀態就會再度被設定為「已啟動」。基本上,如果VGK.sys未能成功完成載入,該檔案仍會顯示「啟動中」,且驅動程式在更新前(如透過啟動Riot遊戲或刻意重新安裝Vanguard)將不會再次執行。

周遭的「Vanguard事件」

Vanguard與《英雄聯盟》的整合有點獨特。最主要的一點,在於反作弊工作階段是在輕型桌面用戶端啟動時建立,而非在遊戲用戶端啟動時建立(像《特戰英豪》一樣)。從反作弊的角度來看,這樣的設計有點古怪,還引來了一個看似簡單的挑戰:玩家經常會讓桌面用戶端維持執行狀態。這代表著兩件事:(1) 在《英雄聯盟》工作階段執行時,電腦可能會進入睡眠狀態;(2) 一個工作階段通常會取代另一個(例如在家用電腦與工作用電腦間切換)。

可惜,《英雄聯盟》與Vanguard的整合並未處理這些情況,並且由於每個帳號同時只能有一個Vanguard工作階段,導致玩家會處於無Vanguard的狀態。所以,若你們正在遊戲中,而另一部電腦重新驗證了Vanguard,你們就會因為不再處於反作弊工作階段而遭伺服器踢出。同樣地,如果你們在對戰配對時失去了工作階段,你們可能必須等到進入載入畫面後才會收到通知並遭踢出,這可能會讓你們經歷重新配對與隨之而來的聯盟分數損失等殘酷體驗。

Riot在這部分真的是徹底大失誤。儘管已透過修補重新驗證的機制進行了快速修復,但《英雄聯盟》也正在為配對加入工作階段檢查,以確保這樣的情況300%不會再次發生。如果你們一直都有在注意我無懈可擊的晚餐比喻的話,那麼這道菜將會是義大利麵,雖然這是Riot的招牌菜,但我們希望避免出現有人不得不吃的情況。

還有一些情況……

最後,我想再佔用大家一點時間,強調我們發現的另外三個問題,希望需要幫助者能透過Google搜尋找到這個頁面,並覺得受到了幫助。一如既往,獲得幫助的最佳方式就是提交表單

點擊延遲或掉幀

有幾種第三方應用程式(如模組、懸浮工具或被動性能測試工具)會試圖隨意讀取《英雄聯盟》用戶端的資料,或攔截特定事件通知。而現在遊戲受到了Vanguard的保護,這些操作必然會失敗。我們完全不希望任何事物干擾遊戲進行,因此這樣的阻擋行為是100%有意為之的。然而,某些應用程式應對Windows執行失敗的方式可能會有所不同,從靜靜地忽略問題到毫不延遲地反覆嘗試都有可能,我們幾乎無法處理這類問題。所以,如果你們知道哪個應用程式是罪魁禍首,而它並沒有讓你們將LoL.exe加入白名單的機制的話,你們可以利用此處的作弊碼阻止它嘗試干擾LoL.exe。

啟用TPM 2.0

我們發現針對在Windows 11上的TPM 2.0需求,會導致某些玩家在BIOS設定中啟用時遇到困難。BIOS設定會因製造商而異,在目前已知的兩個案例中,玩家在啟用TPM時,儘管當下的Windows安裝在主開機紀錄(MBR)分割表格式下,還是遭提示要切換至UEFI模式。不幸的是,若要支援UEFI模式,Windows必須安裝在GUID分割表格式下(GPT),否則可能會無法開機。雖然這本來應該在一開始安裝Windows 11時就處理好(因為Microsoft也要求這麼做),但對於某些繞過Microsoft初始TPM 2.0檢查的玩家而言,Vanguard將迫使他們面對這個問題。


如果你們正為了任何反作弊系統需求而嘗試啟用TPM 2.0,也知道自己的Windows安裝在MBR下,且不希望因為重新格式化而失去資料的話,Microsoft有個工具可協助你們在不刪除任何資料的情況下,將磁碟轉換為GPT。

特定硬體相容性問題

當OEM或供應商不小心把有問題的韌體傳送或推送至部分裝置上時,就可能會為驅動程式的開發帶來阻礙。我們試圖在相容性實驗室中提前解決這個問題,但某些情況的確超出了我們的掌控範圍。如果你們仍受到隨機藍螢幕當機的困擾,且使用的是第13代或第14代Intel處理器的話,那非常有可能是你們裝置的韌體版本過時所導致的。Intel正在努力解決這些影響範圍較廣的問題。

《英雄聯盟》反作弊的下一步

反作弊工作永遠不會結束,儘管像Vanguard這樣的系統已經有效減少遭到攻擊的機會,並提高了作弊玩家的作弊難度,但作弊玩家總是在尋找獲得不公平優勢的新方法。以下是我們為確保他們無法得逞,而正在準備的一些措施。

功能提升

儘管許多作弊開發者已放棄,但我們很高興地宣布:「目前還有人沒放棄」,我們已等不及想展示更多的Vanguard功能來對付他們。目前的停權不過是開胃菜而已,我們這間「廚房」很有信心,能對這項服務做足準備。許多作弊玩家經常陷入悲傷循環的「否認」階段,因此我們將每次的停權視為一種熄滅他們希望燭火焰的舉動。藉由讓每位作弊玩家漸漸遭黑暗徹底吞噬,他們最終能真正醒悟作弊的無謂。

「隨選」Vanguard

未來終有一天會一如我們的預期,能夠依賴Windows自身的安全功能保護核心層級,而無須在開機時載入驅動程式進行保護。這使我們有機會在遊戲用戶端執行時才開始啟動反作弊服務,但前提是終端使用者已啟用所有的功能。我們會在明年初針對這個話題進行更多的溝通,但如果你們使用的是Windows 11與較新的硬體,我們想告訴你們,你們可能不再需要忍受任務欄上的Vanguard圖示了(儘管我們為它的標誌下了很多功夫就是了)。

偵測代打

代打是指故意與(或使用)等級較低的帳號一起遊玩,以提升積分牌階的行為。自2018年以來,反作弊團隊一直沒有偵測這種行為,而令我們高興的是,我們現在具備足夠的指紋識別技術,以再次應對這個問題。我們計畫將大部分精力集中在偵測使用剛降低排位的小號和顧客列隊的代打者,然後我們會給予這些帳號整賽季的停權以示獎勵(第一層懲罰)。反覆與這些受罰代打者一起列隊的玩家也會受到類似的懲罰(第二層懲罰)。如果有人敢把自己的帳號全權交予代打服務,此帳號也會被判定為小號(第一層懲罰),以有效圍堵此漏洞。

在這方面我們還有許多工作必須完成,但我們計畫在明年夏天全面施行。

Mac x Vanguard(又名Vanguard 2)

一如我們在「外掛機器人」部分所提過的內容,某些作弊玩家開始轉而使用macOS虛擬機器,以規避使用Vanguard。這個行為就像在鬆餅上淋糖漿一樣在意料之內,我們很高興能宣布即將在Mac上推出Vanguard姊妹產品,「嵌入式Vanguard(mVG)」。macOS環境的獨特安全性,使我們在監控其核心層級時能稍微放寬我們的設計,因此顧名思義,並不需要任何額外的安裝——此產品已經直接嵌入遊戲用戶端。此外,我們已在《特戰英豪》主機版與《激鬥峽谷》上成功使用了mVG。

當Mac版的Vanguard在今年年底推出時,我們希望它能成為對付外掛機器人,以及那兩位公開腳本軟體開發者的致命一擊。因為這些開發者現在才意識到自己浪費了三個月的時間,將作弊工具移植到OSX上。不過別太擔心,畢竟會Swift這種程式語言在履歷上看起來也滿吸引人的。

結語

朋友們,現在我們必須返回陰暗的反作弊廚房,去準備我們的下一道菜了。但別擔心,我們將永遠為你們的權利而戰,讓各位能享受到沒有作弊玩家的公平競賽,我們永遠不會向那些拒絕練習以提升自身實力的人妥協。能為同款遊戲開發四個不同版本的反作弊系統是非常罕見的經歷,我對於《英雄聯盟》的反作弊系統能躋身最頂尖之列感到無比滿足。能與各位一起遊玩,為各位撰寫文章,並一同停權作弊者真是令人欣喜。

備註:我重讀了這篇文章,我想我在寫它的時候可能有點餓吧?