在2018TGDC大會上,來自騰訊互動娛樂游戲AI研究中心的總監(jiān)鄧大付先生,分享了《牌類游戲的AI機器人研究初探》主題演講,他在2005年加入騰訊,從事大數據計算和AI算法相關工作超過13年,目前是騰訊游戲專家工程師,主要負責游戲AI相關的研究工作。以下是演講實錄:

112450bi9c9j9ipitzlctd.jpg
大家下午好,歡迎里到騰訊游戲開發(fā)者大會。自從2016年AIpha GO和李世石的圍棋大戰(zhàn)之后,這兩年的AI特別的火,尤其是學術界的教授們,都開始轉行把游戲作為他們研究AI算法的測試場。

反觀我們做游戲工業(yè)的。實際上大家從事游戲研發(fā)的同事都了解,游戲工業(yè)屆對AI的做法通常用行為樹或者狀態(tài)機,基于規(guī)則來做。這套方法有它的好處。最開始做的時候會比較簡單,寫幾個規(guī)則AI就可以跑起來。但是它也有一個壞處,當我們想要把AI的水平提高到一定的程度和階段的時候,會變得非常的困難。

這一次深度學習推動了AI技術,到底對我們游戲工業(yè)界帶來哪些好處?我們內部也一直在進行思考和探索。今天主要是給大家以斗地主牌類游戲為主分享一下我們做的思考和探索。

我的分享分為三個部分,首先會簡單的介紹一下我們所處理的問題和背景?第二部分,會講述如何用深度學習的技術做基本的AI,它的水平到底是什么樣子?第三部分,用深度學習做出來的基本AI有那些問題?我們如何解決這些問題。

在講為什么要做斗地主的AI之前,這里有一個小故事。因為我本人也比較喜歡玩斗地主,因為它比較休閑,無聊的時候斗一兩把。有一次無聊躺在沙發(fā)上斗地主,我老婆在廚房做飯,我正好拿了一把好牌,一對鬼,一對2,還有一個炸彈,想著這把可以多贏一點。但是剛搶到地主的時候,我老婆在廚房的叫“大付,你趕快給我買點蔥,等著蔥下鍋”。沒辦法,家里領導有令,就馬上把APP收起來,到樓下超市去買蔥。等回來再把斗地主的APP打開的時候,發(fā)現沒有贏8倍,反而輸了8倍。

在斗地主里面,有一個托管AI,為了不讓周邊的人等,自動AI會接管。當時心里很不爽。后來跟做斗地主的項目的同學一起聊,能不能把AI的水平提高一點。項目組的同事跟我們說,現在基于規(guī)則的方法已經很難對它進行提高了。反過來跟我說,你不是做機器學習的嗎?能不能幫我們做一個AI,這個AI滿足以下三個條件就可以:

第一,智能水平要有一定的高度,比如說要跟人類的高手差不多。當然不需要跟AIpha GO那樣強,可以擊敗人類頂尖高手。因為擊敗人類的頂尖高手,對游戲本身來說也沒有特別大的意義。

第二,行為要特別像人,在托管的時候為了讓其他玩家體驗不出來,必須要把整個行為模式做的特別像人。

第三,AI支撐用戶的運營成本不能太高。大家知道,斗地主是有上千萬的用戶,如果說我們做的太復雜,后臺的運營成本是受不了的。

如果能做出來,我們這里就會有很多應用場景。第一,在做托管的時候;第二,做匹配的時候,因為這是競技類的游戲,會相互之間匹配,有的時候運氣不好會匹配到一些水平比較高的,跟他玩的話輸的概率會比較大。假設這個時候要匹配一些水平比較低的人,水平比較低的人心情也不爽。這個時候如果有一個水平差不多的一起玩,用戶的體驗會更好一些。

當然,還有其他很多應用場景,我們拿到這個項目之后做了一個調研,想看一下這個問題到底有多難。簡單的看一下,所有的棋牌類游戲,包括圍棋、中國象棋、斗地主、麻將升級等棋牌類的游戲,狀態(tài)空間都非常大。以圍棋為例子,有人做過這樣形象的比喻,圍棋盤面的復雜度相當于太陽系的原子個數那么多。斗地主雖然比圍棋要小一些,但是估計也跟整個深圳市所包含的原子數目差不多。依照牌面進行窮舉來做出高智能的AI實際上是不太可能的。

當然了,從這個對比過程中我們可以看到,斗地主的盤面的復雜度是10的30次方,圍棋是10的170次方,AIpha zero基本上所有的棋類困局基本上都已經解決了,我們是不是使用AIpha zero的技術,是不是可以達到項目組想要的目的。實際上問題并沒有那么簡單。對于棋類的游戲,牌面所有的信息都是雙方可以互見的。但是對于斗地主來說,一方是看不到其他兩方牌,這個時候實際上我們就要對其他兩方牌做各種不同的組合。這種組合之后,會使盤面的復雜度再度的進行指數級的爆增,學術界把這個叫非完美信息的博弈問題。

對于這種非完美信息的博弈問題,學術界也有一些研究,最有名的是DeepStack和冷撲大師。DeepStack跟AIpha GO的整體思想很像,提出了基于把所有組合進行可能性的擴展之后,尋找博弈上的納什均衡點的方式來解決。冷撲大師相對來說會聰明一些,會把整個盤面分為開局、中局、殘局,分別用不同的方法解決這里面的問題。去年冷撲大師的作者過來騰訊跟我們進行交流,他給我們透露一個信息,2017年年初的時候,冷撲大師跟國際德州撲克進行大師賽的時候,第一次機器人在非完美信息博弈上勝過人類的大師,后臺接的是CMU的超級計算機,進行在線的推導。如果說用這種方式來做,要面對騰訊上千萬級別的用戶,實際是不太可能的。

有沒有其他的方法呢?對于工業(yè)界來說,因為斗地主在線上運營的時間比較長,我們有海量的用戶數據。第二,我們后臺有比較多的CPU和GPU可以處理留下的海量數據。我們所做的第一個方法,看能不能通過監(jiān)督學習,現在學術界換了一個名字,因為是模仿人類的動作,取了一個名字叫模仿學習,用模仿學習的方法解決斗地主牌類的問題。

下面這部分給大家大致的介紹一下我們是如何一步步構建斗地主的基本AI過程。最原始的想法,從人類的數據中直接學人的行為,人在牌面的時候該怎么動,機器人就跟著去學。

對于牌類的問題,實際上一個比較好的模型,通過CNN進行分類。為什么要通過CNN來做呢?因為CNN有一個特性,這個特性最開始主要是針對圖片的處理,對空間特征進行提取的能力和效率會比較高一些。

對于牌類游戲來說,我們可以把CNN的通道排成15個橫牌,豎牌4個的矩陣,橫排分別表現3456789,一直到小鬼和大鬼,豎牌表示不同的花色。這樣CNN就可以通過卷積編碼出斗地主規(guī)則的順子、對或3帶2的空間特征。這個模型的輸出,直接就是進行什么樣的動作。斗地主的動作空間會很大,大概有13350多種,圍棋的盤面,每一步下子的可能性是361種,斗地主會有一萬多,因為斗地主有不同的組合。

有了這個基礎的模型,我們可以做第一步的初步訓練,初步訓練的效果不是特別理想,包括分類的準確度和AUC都不是特別理想,因此我們對整個模型做了一下三個優(yōu)化。下面主要給大家介紹一下三個優(yōu)化。

第一種優(yōu)化,對模型的輸出做了比較大的梳理和優(yōu)化,(PPT)從左表可以看出斗地主出牌的可能動作空間,可以看到13551種動作當中,大部分集中在4帶2或是飛機帶,因為可以帶兩張,各種組合數據特別多。我們就把原始單一的模型拆成一個層次化的模型。有什么好處呢?在第一層把4帶2或飛機帶拆到第二層的模型去做。第一層只是識別可不可能存在這種情況,如果存在放在第二層模型再做預測和分類。這樣的話,整個模型跟飛機帶和4帶2比較像,像翅膀一樣,所以我們把這個模型叫層次化的翅膀模型。在第二層模型的時候,整個組合數就會變得比較小。只有百的級別。這就象人進行分類的時候一樣,假設100多個種類的東西放在你面前,你可以比較清楚的識別出來,但是1萬多個東西放在你面前,你可能就會認錯。

第二種優(yōu)化,我們人工的做了一些關鍵特征。在機器學習領域,深度學習出來的時候,很多做機器學習的人都說以后解放了,不要再做人工的特征提取。從我們自己實戰(zhàn)的結果來看,人工做一些抽象的特征總結和提取,對模型整體的精度還是有比較大的好處。這里舉了一個例子,左邊的排是3個3,一對5,一個7,一對J。從這個牌里面提取特征,提取出來的特征意義是,這副牌有沒有三個的,如果有三個的在CNN的通道加一層賦予全1,如果沒有就是全0。

左邊后面的排序是沒有加特征抽象之前的排序結果,會先出一對5,再出一個7,概率最大的是先出一對5。加了有通道的結果,3個3帶一對5,分類排序的時候可以得到更大的概率值。

第三種優(yōu)化,是在做CNN分類通常都會做的,二值化的處理。假設有一個特征值,取值范圍是1234。這個時候取了3,實際上在整個CNN通道有兩種表示方法,第一種表示方法是只用一個通道,上面附一個值是3;第二種表示方法是4個通道,在第三個通道上賦全1表示這個值的取值是3,對做卷積操作來說,二值化的處理通常會取得比較好的結果。

經過了三種方法的優(yōu)化,整體模型的精度有了較大的提升。由于第一層優(yōu)化做層次化之后,直接提升了大約10%左右。第二個和第三個優(yōu)化也給整個模型的精度大概提升了5%左右。模型的精度達到86%左右的時候做了第一次大規(guī)模的訓練。高倍場的玩家水平通常更高,我們隨機從高倍場的比賽中抽了400萬局的對局出來。如果是一個人去玩斗地主的話,不吃不喝不睡估計要打8-10年才能達到400萬局的規(guī)模。我們用了兩塊GPU的卡聯合一起訓練,對400萬局的數據用這個模型來訓練。大概用了8個小時左右的時間,模型收斂到比較好的狀況,我們用一個例子看一下模型到底到什么樣的水平。

這個例子中,地主的牌非常好,有兩個大鬼,一對2,還有一個7炸。第一手牌出了6,因為有7炸,假設拆了的話就會有3456789 10的順子全部變成單牌。出6的話有傾向把7炸拆掉,而不是說把7炸留著單張打。從這點來看,這個AI實際上已經學到了人類在打牌的時候,有從整體盤面的局勢進行規(guī)劃和長遠考慮的趨勢。

從農民二出的一對4,以及地主的一對7,農民二用2拿到了發(fā)牌權,這個時候為什么出了一對4呢?人在打牌的時候經常也會這樣,地主首先出單牌,農民二認為地主的對或三個的會比較弱,農民二學會了人在打牌的時候攻擊對手弱點的策略。當地主看到一對4的時候,毫不猶豫把7炸拆了,貫徹之前規(guī)劃的打法。

農民一通過一對9接到這手牌,因為他在地主的下家,需要給地主壓力,盡可能的跑,人打牌的時候也會這樣,壓迫感的打法,使地主發(fā)慌,才可以從中謀取勝機。拿到牌之后,先出了3個J帶,接著把3個K的飛機直接打出去,迫使地主要用一對鬼來炸。后面通過快進的方式看這一局,最后的結果,這兩個農民通過一些精巧的配合,最終打勝了地主一副很好的牌。

我們對監(jiān)督學習的整體效果做一個總結,當然中間還有很多其他類似的經典案例。從這里面來看,我們有了一個非常令人驚喜的結果,直觀上看整個對戰(zhàn),AI智能體的打法跟人幾乎區(qū)別不出來。我們自己在看的時候,每一步出牌的過程好像是經過了思考一樣。從實際線上測試的數據來看,跟人進行隨機匹配的時候,對戰(zhàn)的勝率超過人類選手的平均水平。

事情是不是就這么結束了呢?通過一個模仿學習的方法,通過三個階段的優(yōu)化就能夠很好的完成AI,實際上并沒有這么簡單。它也有表現不好的一面,我們通過大量的觀察發(fā)現一些問題,這些問題尤其是在局末的時候表現的特別突出,兩個農民的配合偶爾會出現失誤。下面的部分,主要給大家講一下都是些什么失誤,為什么會產生這些失誤?以及我們如何解決這些失誤。

舉個例子,到局末的時候,地主只剩下一對A,這個時候對于農民二來說,分類器排名第一的是出一對6,排名第二是正確的打法,排名第一的打法是錯誤的。因為這個概率排出來是一對6最大,農民二毫不猶豫把一對6出去了,導致可以把地主打敗的牌失敗。為什么會出現這種現象呢?我們經過仔細分析發(fā)現,前面400萬局是從人類選手實際打牌的過程中提取出來的出牌過程。因為人都會犯錯,就會引入很多人類所犯過的錯誤。通過前面的模仿學習或監(jiān)督學習的原理,實際上機器人并不明白斗地主到底是怎么一回事,只是在模仿人類在不同盤面下怎么出牌的動作,或者說模仿人類在不同盤面下動作的概率分布。

AI不僅學會了人好的一方面,我剛才也給大家講了,人能夠抽象出來的有一些戰(zhàn)略性的思想方面的東西,而且學會了人類犯錯誤的東西。有時候這些低級的錯誤,比如說農民二,假設AI在線上在這種情況下出了一對6,另外一個農民是人的話,他就會覺得很不爽,覺得太傻了。

我們如何解決呢?因為這個問題的本質是來自于數據的樣本,當然我們做機器學習的同學可能會說,可以通過人工的方法把400萬局過濾一遍,把錯誤的樣本剔出去。正所謂人工智能全靠“人工”,傳統(tǒng)的方法確實這么做。對于我們來說,我們感覺代價有點大,第一次大規(guī)模的訓練只用了400萬局,未來的訓練想用2000萬或上億級的數量來訓練AI,人不可能把樣本過一遍。

我們用什么方法來處理呢?大家想一下人怎么玩斗地主這個游戲。高手在打斗地主的時候,通常都會根據其他的人已經出過的牌來猜對手手上可能還有什么牌,因為記得住每個人打過什么牌,來猜對手手上還有什么牌。通過猜出來其他人剩下的牌,結合自己手上的牌面制定打牌的策略。猜的人準確率越高,記牌的能力越強,這個人打牌的水平就會越高。

基于這點思考,我們就想可不可以做一個猜牌模型。當然,因為我們前面發(fā)現的錯誤案例主要集中在局末。為了使猜牌變得簡單,我們做了一個簡單的假設,當有一個人聽牌的時候(手上牌的數目小于等于2)開始猜牌,原始深度模型的學習輸入跟翅膀模型是一樣的。輸出變了,先猜還有兩張牌那個人手上的牌。總共有134種組合,假設有一張單的時候,有14種,假設有兩張,出現一對有14鐘,兩張單的各種組合105種,然后重新構造樣本來做猜牌模型。

我們做了兩組不同的采樣,第一組跟第二組相比,相對來說第一組在兩張單的時候準確率會更高一些,第二組猜對牌型的準確率更高一些。對于Top3的概率來看,Top3命中的準確率可以達到93.86%,接近94%。兩種模型相比較,第二種模型整體表現會更好一些,可能是因為:斗地主在局末的時候,猜對牌型比猜對牌是什么值會更重要一些。

有了這么準的猜牌模型,接下來就可以把前面所說的非完美信息的問題轉化成完美信息,就跟下棋一樣,已經大概知道別人的牌是什么樣的,然后就可以進行推理。用什么樣的推理方法呢?棋類有各種各樣進行搜索的方法,AIpha GO用的MCTS,我們用Minmax的搜索方法,這種方法實際上是在博弈論里面更古老的算法,有一個經典的案例應用是在1997年的時候“深藍”打敗卡斯帕羅夫,算法原理很簡單,就是暴力的搜索,把所有的可能性搜出來。

因為是暴力完備的搜索,就會導致很慢。即使只剩下兩張牌,盤面的情況,如果不做任何優(yōu)化的Minmax搜索大概要運行幾十分鐘,后面每走一步都要進行一次搜索,這對我們來說基本上是不可行的。必須要對這個東西進行優(yōu)化。怎么優(yōu)化呢?我們做了三種優(yōu)化手段,第一種比較簡單,實際上是一種檢值的算法,當在進行搜索的過程,一旦發(fā)現某一個分支下面有必勝的路徑,這個時候馬上停止搜索進行返回。就好像孫悟空到海里找寶一樣,已經找到最好的寶就不要再找了。這種方法使用上之后,Fast pruning,這個方法對性能提升了1000倍。

第二種方法是Caching,跟人打牌的過程中,到最后只剩下兩張牌的時候有大量的牌型是重合的,把之前搜過的解法直接Caching,就可以不用搜了。這個優(yōu)化又給我們提升了100倍的速度空間。

第三步的優(yōu)化,Minmax搜索的過程是從左到右,進行深度搜索的過程。在每一層進行深度搜索的過程,我們可以把每一層上面的節(jié)點進行排序,其實比較簡單。我們也可以用模型來排序,也可以用一些簡單的規(guī)則,比如說盡量出多的打法,或者是用模型,人類最有可能打的打法排在前面。這樣的話,最有可能找到前面的第一個,一定會勝的那個路徑??偣渤似饋恚阅軆?yōu)化就會優(yōu)化10的6次方,相當于6個量級的地步,意味著前面做推理的時候,拿單CPU的核要經過幾十分鐘進行推理的過程,縮短到毫秒級別,意味著幾百萬的用戶可以用幾十臺機器完全支撐起來。

結合猜牌+搜索,到局末的時候怎么打。舉個例子,這個地主還剩下一對K,農民二首先進行猜牌,通過猜牌模型猜地主手上有什么牌,猜到一對K的概率是0.48%,可能是一對Q的概率是0.42%,可能是K、Q組合的概率是0.074%,這個時候在三個分支上取Top3的分支進行搜索,進行搜索推理,發(fā)現在一對K的分支下應該先出3會贏,在一對Q下面也是先出3。在后面一個Q、K組合的概率下,先出A跟先出3,或者是先出6都可以贏,綜合把三個分支的概率加權累加起來,就得出先出3一定是對的,所以先出一張3,把地主的一對K拆散。

經過在末局猜牌和推理的過程進行優(yōu)化之后,我們來看一下優(yōu)化前后的對比牌局(PPT),如果沒有經過優(yōu)化直接出一對5,地主一對K就走了。經過優(yōu)化的情況,可以看到4的概率是100%,所以先出了4,地主出K,拆散了之后最后把地主打敗了。

到了這個階段之后,AI整個過程在牌的初始開局和中局的時候是模仿人的打法,到終局的時候用猜牌推理,就可以得到一個比較大的強化。到底得到多大的強呢?實際上我們可以看到以前在局末的配合失誤基本上沒有,一個都沒有。為什么呢?從前面的測試數據也可以看到,猜牌模型在Top3的概率下,準確度能到94%。實際上打到最后的時候,AI已經接近于一個上帝視角的水準。

用這樣的模式還有一個好處,初局的時候打法非常像人,如果一開始就用猜牌和搜索的方式,可能會打出不像人的打法,像AIpha GO跟人類選手下棋跟人類不一樣的想法,我們在做產品的時候并不一定需要這個東西。

當然,這種方法相對于業(yè)界或學術界解決非完美信息的解決方法來說,有幾個缺點:第一,理論上實際上并不是特別完備的,大家可以看到,我們只處理了最后兩張牌。當然了,再往上也可以處理3、4張,一直到17張的猜牌都可以做。第二,這對于斗地主一個游戲進行獨立優(yōu)化的一種方法,是我們做產品或者說工業(yè)界的一種做法,相對于那“DeepStack”和“冷撲大師”兩種方法,它有一個非常大的優(yōu)勢,制作過程相對會比較簡單;性能高,高到什么地步呢?我們做過一個評估,大概50臺服務器的成本就可以支撐所有用戶使用AI場景的量,基本上每臺機器每秒可以處理200次以上的請求,這是純CPU的機器。如果用深度學習做處理的時候,很多人都用GPU。

我今天的分享就先到這里,謝謝大家!

提問:你好,我想問一下你剛剛說的模型,有用CNN跟RNN,現在用的是哪一種?還有你們的loss是怎么去算的?

鄧大付:實際上我們用一個翅膀的模型,用了三個CNN的模型,整個loss跟CNN原始的沒有太多的區(qū)別。當然,我們也測過Resnet,跟CNN的輸入比較像,5個block的Resnet,比我們前面加了7層卷積的CNN來說,精度稍微好一點,區(qū)別并不是特別大。我們自己內部也討論過,可能跟整個斗地主的牌面并不是特別復雜有關系。

提問:你剛才說用來訓練的數據都是比較高級的玩家。

鄧大付:我們做機器學習的人通常都說盡量把樣本搞的更加干凈準確。實際上斗地主這個游戲有它自己的獨特性,并沒有像圍棋這樣有分級賽或天梯賽。在最開始的時候除非進行大量的篩選,才能把有真正最好的樣本給挑出來。相對來說有中倍場、低倍場、高倍場,高倍場的玩家水平相對于中倍場、低倍場的高一些,所以我們取高倍場的玩家行為進行輸入。

提問:基于對卡牌類的AI學習和訓練,未來有沒有可能用于競技類的游戲?比如說王者榮耀,我們有大量直接戰(zhàn)隊的模型,方法原理是不是一樣的?

鄧大付:這種叫牌類游戲,卡牌類的游戲策略還不一樣。王者這個游戲相對于斗地主來說要求會更高,比如,做預測的時候,延時要求會更高,每一幀或每幾幀要做一次預測。第二,輸入狀態(tài),實際上王者榮耀的輸入狀態(tài)遠遠超過了圍棋盤面的輸入,王者對游戲進程有影響的有3萬的特征,這個輸入量是很大的。這是一個正在研究的熱點方向,前面也聽說過了,openAI 的 openFive已經在多場打贏了業(yè)余選手中的高手。當然代價也是很大,需要線上服務成千上萬的人,短期之內可能還沒到那一步。但是我覺得技術在不停的發(fā)展,可能未來幾年之內有希望可以看到。除了像王者榮耀這么復雜的游戲之外,大家可以看到外面有一個飛車AI挑戰(zhàn)賽的機器,實際上在一些策略、競技型的策略游戲,除了像王者榮耀、吃雞這么大場景、大地圖的游戲之外,其他的游戲通過強化學習,通過這些方法已經可以做到超越大部分的人類是沒有問題的。

提問:游戲AI可能會有競技跟擬人的方向,剛才聽您的方向,在斗地主上更多的是在擬人的方向來做,倒數第一頁是框著人的三個玩法里面選一個勝率最高的。在競技上有什么想法?斗地主是一個合適的場景,德撲在競技上有沒有探索?

鄧大付:競技上的想法,其實我們現在還沒有特別想清楚,假設我們打造了一個比人還厲害的AI對游戲到底有什么用?我們現在的研究方向是做到擬人化。當然,競技中間模型的輸出,比如說概率模型的輸出,比如說我們可以在一些電競進行比賽的時候,人跟人進行比賽,而不是人跟AI進行比賽的時候,我們做一些預測和解說,這還是非常有用的。假設我們能做的很準,這種會很有說服力,這樣觀眾也可以聽的懂,到這個盤面下,下一步應該采用什么樣的策略和方法能達到最好的結果,這樣是有用的。在其他競技方面,對學術界來說是很有用的,它們需要在復雜的游戲環(huán)境去測試他們的算法,因為那個代價是最小的。假設我們拿到真實的人類其他生活、生產的環(huán)境,比如說拿到無人汽車方面做控制,出了一個事就可以出人命,游戲當中還可以再來一把,這是游戲界跟工業(yè)界做AI目標不一樣的點。

提問:有兩個問題,第一,您的機器學習方案是否已經應用到線上版本?或者計劃什么時候可以應用到線上版本?

鄧大付:斗地主實際上已經在線上進行灰度了,在很多場景下進行灰度,我們自己也希望通過對以前游戲工業(yè)級技術的升級來提升用戶的體驗,這是最重要的。

提問:第二個問題,機器學習這個方式可能比大部分的玩家玩的都會比較好,可能會產生一個結果,一旦托管之后勝率就會比較高了。

鄧大付:這個問題問的很好,這個是我們?yōu)槭裁丛谶M行灰度的原因,這里面還有一個問題,在整個PPT里面沒有提到這個問題,實際上當初策劃斗地主的項目人員還給我們一個條件,所有的AI是可以分級的,分級的前提條件一定要把AI的水平提到一定的階段,然后再來弱化它,當然弱化它的方法有很多種,比如說可以取不同水平人的樣本做訓練,也可以在打牌的過程當中模擬失誤來降低它的水平,整個分級相對會更容易一些。

銳亞教育

銳亞教育,網絡游戲,網游,新游,游戲,新聞,國內,全球,評論,資訊,專題,圖片,焦點,排行,免費,私服,魔獸,傳奇,西游,泡泡堂,冒險島,征途,勁舞團,勁樂團,公會,外掛,17173,玩家,測試,內測,封測,公測,試玩,調查,flash