當前位置:
首頁 > 動漫 > 《陰陽師》業原火BUG是怎樣產生的?

《陰陽師》業原火BUG是怎樣產生的?


點擊上方藍色字體關注!



《陰陽師》在2017年的元旦活動一波未平一波又起,在沸沸揚揚的姑獲鳥特典皮膚金鸞鶴羽逐漸走向平息的同時,業原火副本bug再次將這款遊戲推上了風口浪尖。






在2017年元旦的活動中,《陰陽師》增加了一個新副本,玩家在挑戰普通御魂副本時,有機會獲得挑戰憑證道具「貪念之卷」、「嗔念之卷」、「痴念之卷」。通過消耗該類型道具即可召喚「業原火」進行挑戰,將獲得非常豐厚的御魂獎勵,其中包括三個全新御魂。



御魂是《陰陽師》遊戲後期的重要組成部分,很大程度上決定了不同玩家在最重要的PVP活動「鬥技」的實力,一般而言玩家在遊戲中獲得一個好的六星御魂需要付出大量的金錢,而想要獲得業原火副本的御魂也並非易事,三種挑戰憑證道具的掉落率很低,而要挑戰的BOSS業原火也是很大的挑戰。但是一些玩家發現了一個Bug,只要玩家有足夠的體力,不需要挑戰憑證道具就可以通過御魂1層的難度值獲得業原火的御魂獎勵。這個Bug逐漸流傳,於是很多玩家利用這個漏洞獲得了大量豐厚的御魂獎勵。







在2天之後,《陰陽師》運營團隊才發現這個Bug並迅速修復,但是已在大量玩家之中引起巨大的波瀾,而運營團隊對使用Bug的玩家的處理方式也讓玩家的不滿繼續醞釀,網易最終是否能將這個危機消弭於無形還不得而知。不過在這裡,我們邀請到了一名資深遊戲QA(Quality Assurance),和大家一起了解這個Bug可能的成因,以及常見的應對與解決辦法。



以下部分為受邀者的分析,根據其要求匿名發布。


註:因為遊戲開發所使用的引擎和具體的實現技術不同,Bug產生的原因和具體解決辦法可能有差別,也許未必具有指導意義。本文僅從程序邏輯的角度進行分析,歡迎各位開發者一起探討。



業原火Bu:級別定義為A -A類當日需修復



該Bug可以在很短時間內產生大量的御魂,嚴重影響了專註PVP的後期玩家的體驗,損害了付出了大量金錢和精力玩家的利益。目前問題已經被網易修復。



修復建議:當日停機修復解決,一般會做回檔處理和獎勵活動拉升數據。本次問題從出現到解決歷時2天多,應通過下文所說的輿情和用戶反饋提早解決問題,此類問題的級別估計之前被估低了。


業原火Bug的成因



先說結論,這個Bug產生的原因是程序設計時的邏輯出現問題而產生,接下來的部分會做重點闡述,而原本應該在QA測試階段發現的問題沒有被發現的原因可能是QA遺漏了更新的協議消息拆分驗證或是沒有仔細測試,導致出現了這麼嚴重的運營事故。



那麼我們來說Bug產生的原因,不過要理解這個問題需要一些基本的計算機知識,這裡只能做簡單介紹。為方便闡述,下文中的 C(client)代表客戶端,S(sever)代表服務端,A副本代表目標副本業原火;B副本代表實際副本御魂1層



網路遊戲內邏輯行為是需要通過端對端通信來實現,C->S C->C S->C 幾種傳遞消息的方式。大體是由客戶端C創建命令發送到服務端S,服務端S響應這些命令並按照約定的順序,應答客戶端C的通信。有些邏輯是純客戶端的,有些邏輯由客戶端開始,任意一端結尾的,根據不同類型的協議組合成聯合體來實現。



上面提到的約定的順序可以理解成約定順序由事件觸發,正常而言順序是這樣的:



[場景1 請求副本]->[場景2 響應副本請求] 同時並行會載入進度條和[消息請求列表]



[場景1 通關 戰鬥數據C –>S] 驗證通過-> [場景2服務端判斷]->勝負判斷 [場景3 S等待接收消息]-> 結算(獎勵和次數)



消息分段處理,場景3需要C->S告訴服務端可以進行結算,然後玩家可以得到相應的獎勵。



Bug具體分析



《陰陽師》的玩家拿到了1張門票,前往目標A副本



點擊進入A副本時, 正常消息請求過程,請求副本入口有了延遲,快速切換進入另外1個副本B,B副本是一個比較容易刷的副本,副本c->s時會請求副本id(而《陰陽師》這裡也沒有標記),B副本進入掉落了一開始請求的A副本掉落,沒有扣除體力。



這個bug可能引發了幾層的問題邏輯問題,結果就是大家看到的:通過打其他副本獲取了目標副本的產出。



客戶端層面:

操作延遲只是誘因,關鍵還是這個邏輯如何處理






根據問題描述,發現GUI是一張圖,1個按鈕是不會單獨寫初始化判斷,如果不是1個GUI,可以通過enterScene的方式去判斷。




打了B副本掉落繼承A副本。按場景來分,到了前面說的場景2,切換點擊B副本,前端已經收到了Atitle等信息和獎勵協議,這個已經顯示出來了。隨後進度條進入了B副本,客戶端又發了當前副本的ID,B副本不要門票,伺服器沒扣門票



建議檢查方式是弱網鏈接+插樁print列印日誌,確保進入哪個和最後結尾是哪個,復現問題也可以截取點擊B副本按鈕數據包減低發包間隔進行發包處理。




修復建議是客戶端在請求副本載入loading時鎖鍵處理來降低風險。



數據結構層面:

配置表檢查,程序會讀取副本ID那列取對應副本編號,副本掉落配置和副本信息同表或者以活動表形式拆出來。實際評估對本次bug影響很小。



如果《陰陽師》活動副本處理方式是C->S發起請求副本後,S申請1個活動副本形式,假設活動副本邏輯被打斷了,這部分可能性很小。



服務端層面:

服務端會根據配置讀對應的副本ID,服務端可以判斷是否有這個副本 ,沒有的話給出!map找不到副本 和副本類型錯誤,這次《陰陽師》出現的的問題都是1個副本類型,這裡需要依賴客戶端告訴服務端信息的,手游這樣處理也沒有錯。



用戶點了A副本後,再點B副本,服務端開啟了兩個線程同時處理,等輪到A去驗證進入條件的時候,發現條件滿足了,沒有消耗。等到通關場景,A和B線程都收到C->S通關了,然後A副本去執行發獎勵,並標記獎勵發了,由於客戶端層進入時讀取了另外的場景,消耗走的是副本B。




修復建議是客戶端主動發來的消息欄位,無論是遇到C->S副本ID在消息結構體內中斷時,還是C以第一次發給S的為準,並且伺服器在副本結算時做校效。



當出現異常時,是否應該考慮清除副本狀態,通過1條消息去通知客戶端扣除相應消耗道具。



整合以上的判斷:



點了副本A和再點副本B,服務端開啟了兩個線程同時處理,等輪到A去驗證進入條件的時候,發現條件滿足了,沒有消耗,等到通關場景,A和B都會收到通知伺服器通關了,然後副本A去執行發獎勵,並標記獎勵發了,剛才場景進入時讀取了另外的場景,客戶端自己演了一組相聲



C->S 我要打高級副本(標記)


S->C 來吧


C->C 請求數據等


C->S 我要打低級副本 -->無法標記了


S->C 來吧 --->修改為 S->C ...(不理會)多次後跳出


進入副本(這裡有很多層)


C->C 我們自己打,等會叫S你


C->C 繼續自己玩自己


副本結算-勝利


C->S 打完了,S在嗎?


S->C 在在


C->S 獎勵拿來


C->C 界面點點點


C->S 就是剛才說的高級副本


C->S 就是剛才說的低級副本 -->已經拒絕了


S->C 好的高級副本,接著獎勵,么么噠


輿情日誌




網易應該也有輿情日誌系統,雖然這次的問題主要還是邏輯問題導致,但是通過對數據的監控也可以及時發現異常,將可能發生的問題及時解決,而不會像這次這樣快3天才發現和解決。建議有一些人力條件的公司 遇到一個產量比較高的活動,需要對關鍵數據做輿情日誌,因為單純依賴某個貨幣去控制的風險需要規避。



監控數據類型:


記錄單位時間內 獲得御魂的數據流


記錄活動->產生門票數量


門票消耗記錄 -> 這些都會去影響對目標副本id產生的戰鬥次數



以上就是對《陰陽師》的業原火Bug的分析,實際上「業原火」這個副本名稱也是一個Bug,應該叫做 「叢原火」。叢原火在京都出現的一種鬼火妖怪,據說他生前是在壬生寺偷盜香火錢和燈油的一個名叫宗源的僧侶,在死後受到佛的懲罰,所以化作了鬼火。至於為什麼被《陰陽師》的策劃看成業原火…






鳥山石燕《畫図百鬼夜行》中的叢原火



在業原火Bug之後,《陰陽師》今天又爆出了一個所謂的8級雪女被修改的Bug,實際上能被修改的原因是近年來包括《陰陽師》在內的很多手游很多內容放在客戶端處理,比如戰鬥數據,所以可以通過修改內存加解資源的方式增加技能傷害(修改這2者缺一不可),也可以通過直接發勝利消息讓副本直接通關,這需要服務端那邊對於不是正確按約定順序的消息,全部做拒絕處理。



所以即便你修改了,到結算的邏輯驗證環節也是通不過的,以網易開發的經驗來說,這種很初級的錯誤應該不會犯。所以如果沒有人能給出正常結算的視頻,那麼都無法說這是一個Bug,畢竟現在很多手游現在都是把一些數據放在客戶端運算的,然後把結果發回服務端進行驗證,主要確保這個環節不出問題即可。



最後,感謝大家閱讀上面的枯燥分析,也希望業內質量帶來的問題越來越少。QA測試的工作本身就是盡量規避遊戲可能的風險,希望所有遊戲公司都能夠重視這一環節。







您的贊是小編持續努力的最大動力,動動手指贊一下吧!


本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊下面的「搶先收到最新資訊」瀏覽吧!



請您繼續閱讀更多來自 遊戲研究社 的精彩文章:

東野美紀:曾為《功夫》和《沙羅曼蛇》譜曲的女性音樂人
當這個宅男收藏的1000盤遊戲卡被「熊媳婦」偷偷賣掉後……

TAG:遊戲研究社 |

您可能感興趣

日服《陰陽師》的TVC什麼樣?
COS正片 陰陽師 螢草!
從業原火到未收錄《陰陽師》的BUG傳說你都聽說過嗎!
十二星座 VS 陰陽師,你扮演的是SSR還是R式神?
COS正片 陰陽師 櫻與桃!
COS正片 陰陽師 螢草
陰陽師姑姑鳥新皮膚是BUG還是黑科技?
《陰陽師》首支CG驚艷展卷!我的名字是:陰陽師!
「陰陽師」中的SR、SSR都是些什麼鬼
會說話的牛!新式神《陰陽師》荒和鳳凰火COSPLAY欣賞
陰陽師 般若COS 成為你的小惡魔嘛?
可愛就是任性!《陰陽師》跳跳妹妹的COSPLAY欣賞
陰陽師業原火痴怎麼打 業原火痴掛機陣容推薦
COS正片 陰陽師大天狗
陰陽師大白腿擔當!《陰陽師手游》般若COSPLAY欣賞
陰陽師 你要的ssr!
神還原小姐姐!《陰陽師手游》妖刀姬的COSPLAY欣賞
颯!傘劍!陰陽師COS精選,這些御姐你有嗎?
陰陽師COS神還原:最帥男式神竟是……!