
2016年9月30日,全球總決賽的第一天,嚴(yán)重的玩法bug導(dǎo)致了奧瑞利安·索爾被禁用。10月3日,2016全球總決賽的第四天,鑄星龍王重回峽谷。這是一個(gè)關(guān)于錯(cuò)誤的時(shí)間出現(xiàn)錯(cuò)誤的bug以及幕后人員全力進(jìn)行挽救的故事。
舊金山 - 1:30PM(北京時(shí)間),9月30日
北美的TSM和中國(guó)的皇族(RNG)進(jìn)行了2016總決賽第一天的最后一場(chǎng)比賽。開局僅2分鐘,TSM中單Bjergsen就因RNG中單Xiaohu所選擇的奧瑞利安·索爾畫面表現(xiàn)的異常請(qǐng)求了暫停。龍王的被動(dòng)星源之準(zhǔn)完全消失了。
LUKE RINARD, 奧瑞利安·索爾的設(shè)計(jì)師:作為奧瑞利安·索爾的設(shè)計(jì)師,看到他出現(xiàn)在這種級(jí)別的職業(yè)賽場(chǎng)上讓我欣喜若狂。雖說以前也有人選過他,但是拜托…這是總決賽啊!而且第一天就有人選了!接著游戲暫停了,我當(dāng)時(shí)的反應(yīng)就是“額…賭五毛是奧瑞利安出問題了。”游戲里有巴德和奧瑞利安的時(shí)候我經(jīng)常這么干,通常我這么說的時(shí)候問題都不在他身上??墒沁@一次狼來了。
BRIAN BOSSE, 工程建筑師:我當(dāng)時(shí)在家看直播,看到現(xiàn)場(chǎng)暫停了,每次看到比賽暫停我的心就會(huì)噗通一下。我向上天祈禱“音頻問題,音頻問題,老天保佑是音頻問題”,因?yàn)榻?jīng)常就是它們的問題(通常修復(fù)也很快速)。這一次卻不是。
AMELIA VON HADEN, 玩法程序員:我們當(dāng)時(shí)正看比賽呢,通過重放看到問題時(shí)我們都瘋了…“啊!!!別啊!”
RAVEN KEENE, 裁判長(zhǎng):遇到bug出現(xiàn)的反應(yīng)永遠(yuǎn)都是一樣的:想辦法收集足夠多的信息。當(dāng)時(shí)的情況是,有裁判提出Bjergsen報(bào)告他看不到環(huán)繞奧瑞利安·索爾的行星。我們有臺(tái)上的錄音,視角能提供玩家提出有爭(zhēng)議的地方。因?yàn)閺奈业挠^戰(zhàn)客戶端看上去一切正常,但是調(diào)出Bjergsen的視頻文件能夠清楚地看到他遇到的問題。
我們重啟了客戶端,剛開始沒出問題。我們覺得“恩,大概是資源未能正確加載引起的吧,不用重賽了?!比欢坏揭环昼姷臅r(shí)間,同樣的問題再次出現(xiàn),這就說明重啟已經(jīng)不能解決這個(gè)問題了。我們不得不轉(zhuǎn)向下一個(gè)解決方案,重賽。
NICK TROOP, 電子競(jìng)技現(xiàn)場(chǎng)制片人:看到我們事先并不知情的某個(gè)英雄可能在接下來的賽事中都被禁用,會(huì)讓我們產(chǎn)生某種程度上的挫敗感,哪怕這是個(gè)非常獨(dú)特和意外的bug,就像奧瑞利安·索爾。
洛杉磯 – 2PM,9月30日
隨著奧瑞利安·索爾被禁用,一場(chǎng)找到造成bug出現(xiàn)原因和確定可能修復(fù)方案的比賽開始了。一隊(duì)Rioters火速趕往洛杉磯辦公室進(jìn)行深入研究。
BRIAN BOSSE:我一直都在內(nèi)部聊天群組里,突然群組就炸鍋了“龍王的彈體出問題了?!蔽以鴧⑴c了那個(gè)系統(tǒng)的部分制作,所以我告訴自己“好吧,該拿點(diǎn)真本事出來了?!蓖ㄟ^第二次暫停確定這個(gè)問題不會(huì)消失之后,我全副武裝趕往辦公室開始尋找問題根源。
AMELIA VON HADEN:我立即打開群組查看那個(gè)bug到底是怎么回事。作為一名玩法程序,我很清楚游戲代碼,所以如果是游戲相關(guān)的地方出了問題,我覺得我能幫上忙。而且我之前也在索爾的研發(fā)團(tuán)隊(duì)呆過一段時(shí)間,所以我更加了解他的被動(dòng)技能。我在總決賽的分流頻道看到有人在討論這個(gè)bug。因?yàn)槲矣袡C(jī)會(huì)能夠做點(diǎn)什么,我告訴自己“這搞毛啊,趕緊去公司。”
BRIAN BOSSE:我在驅(qū)車前往辦公室的路上一直在想“比賽現(xiàn)場(chǎng)到底出什么事了,這個(gè)問題會(huì)影響全部事情嗎?”當(dāng)時(shí)已經(jīng)沒有后手了。大家都下班了,常規(guī)的反饋架構(gòu)不能用,任何能幫忙的都得去救火,我正好有時(shí)間,所以我也去了。
舊金山 – 3PM,9月30 日
伴隨本日賽事結(jié)束,舊金山的電子競(jìng)技團(tuán)隊(duì)立即著手重現(xiàn)這個(gè)bug。這是鑒別問題尋找解決方案的關(guān)鍵步驟。此時(shí)全國(guó)范圍內(nèi)有3個(gè)團(tuán)隊(duì)一起解決這個(gè)問題:舊金山的電子競(jìng)技團(tuán)隊(duì),洛杉磯的研發(fā)團(tuán)隊(duì),以及位于蒙特利爾專門致力于質(zhì)量保證的團(tuán)隊(duì)。
RAVEN KEENE:我們花費(fèi)了數(shù)小時(shí)排除一切我們能復(fù)制的步驟。我們竭盡全力模仿當(dāng)時(shí)在臺(tái)上出現(xiàn)的場(chǎng)景,然后提取各種變量。我不記得最后做了多少次測(cè)試,但是起碼重啟了20+次游戲,不停的重復(fù)想要找到造成這樣的原因。
NICK TROOP:最早是一名工程師使用單人模式工具復(fù)制了這個(gè)情況。他通過讓游戲里同時(shí)出現(xiàn)差不多9個(gè)奧瑞利安·索爾,雖然在正常游戲里不可能,但是從工程師的立場(chǎng)出發(fā)能夠看到一些端倪,我們也能對(duì)結(jié)果進(jìn)行測(cè)試。了解問題前禁用某個(gè)英雄一天時(shí)間是一回事,可要讓Raven決定是否整個(gè)系列賽都禁用這個(gè)英雄就完全是另外一回事了。我們不想讓那種局面出現(xiàn)——這對(duì)觀眾不公平,對(duì)選手也不公平。
RAVEN KEENE:這個(gè)案子如此有趣的地方就在于形勢(shì)非常的不清晰。我們開始用職業(yè)選手的賬號(hào)查看,因?yàn)槲覀兊臏y(cè)試賬號(hào)無法重現(xiàn)這個(gè)問題。這不禁讓我們思考,問題是不是出在賬號(hào)上呢?因?yàn)槌善泛妥兞慷际呛愣ǖ?,而我們唯一?huì)改動(dòng)的東西只有賬號(hào)。
洛杉磯 – 5PM,9月30日
南加州團(tuán)隊(duì)第一次成功復(fù)制再現(xiàn)當(dāng)時(shí)的場(chǎng)景并開始逆反向工程以尋找問題的根源。
BRIAN BOSSE::遇到這種問題要做的第一件事是明白事實(shí)——你知道了什么,不知道什么。當(dāng)時(shí)我們除了Bjergsen的屏幕錄像之外什么都沒有。我們嘗試過在本地機(jī)器上讀取客戶端,完全模仿奧瑞利安·索爾的走位,但就是不能重現(xiàn)。擦。這應(yīng)該是個(gè)很簡(jiǎn)單的事情才對(duì)。
AMELIA VON HADEN:我們坐在那,分析了幾個(gè)小時(shí)的代碼,我修改了單人模式工具,這樣就能加入20個(gè)零延遲的觀戰(zhàn)者,而非原本的1個(gè)。我想測(cè)試多人觀戰(zhàn)是否會(huì)有影響。掛著20個(gè)觀戰(zhàn)者,我的電腦就快爆炸了,其他人都在盡力重現(xiàn)當(dāng)時(shí)的畫面。
BRIAN BOSSE: 快到下午5點(diǎn)時(shí),我們復(fù)制出了一次當(dāng)時(shí)的場(chǎng)景,但是造成的原因不一樣。一位研發(fā)人員在機(jī)器上同時(shí)運(yùn)行了服務(wù)器和10個(gè)客戶端才勉強(qiáng)重現(xiàn)了那個(gè)場(chǎng)景。測(cè)試50次或者100次才出現(xiàn)1次,我們只能坐等,而龍王身上還有一條彈道出現(xiàn)。
AMELIA VON HADEN:我們終于還是成功重現(xiàn)了那個(gè)場(chǎng)景,大家的反應(yīng)都是“我X,終于有了。接下來要怎么辦?”這是在我們沒法連接除錯(cuò)器的版本中重現(xiàn)的,所以大家立即找到自己的編程機(jī)重現(xiàn)場(chǎng)景。試了大概20次后,我也獲得了這個(gè)畫面!雖然還有一條彈道,但好歹有東西了。就像拆彈一樣,連接上除錯(cuò)器后,我們得打電話給Brain,因?yàn)榇a是他寫的,他最清楚。要是有誰能夠解決這個(gè)問題,那非他莫屬。
BRIAN BOSSE:雖然這和臺(tái)上出現(xiàn)的問題并不完全一致。但我們有了一個(gè)實(shí)例,能用除錯(cuò)器研究,看看到底彈道出了什么問題導(dǎo)致這種情況發(fā)生。利用觀戰(zhàn)模式回溯當(dāng)時(shí)賽場(chǎng)的情況,這足夠我們?cè)诮酉聛淼?個(gè)小時(shí)里忙翻天了。但結(jié)果…我們從頭到尾花了足足12個(gè)小時(shí),包括中間小憩了一會(huì)。最后一名隊(duì)員于晚上7:30離開,到凌晨12點(diǎn)時(shí),第一名隊(duì)員就又回到公司了。
洛杉磯 – 0:30 AM,10月1日
根本原因已經(jīng)找到,Rioters紛紛回到公司為第二天的工作做準(zhǔn)備。
LUKE RINARD:等我第二天回到公司時(shí)才發(fā)現(xiàn),奧瑞利安應(yīng)該會(huì)被禁用個(gè)一到兩天,但是我們已經(jīng)有修復(fù)方案了。我挺吃驚的,因?yàn)檫€不到中午…你怎么就有修復(fù)方案了?Brain熬了一個(gè)通宵,他桌上全是汽水罐。他看著略憔悴但仍在堅(jiān)持工作,而且等不急要修復(fù)這個(gè)問題了。
AMELIA VON HADEN:Brian汽水罐擺得還行。
RAVEN KEENE:一張滿桌汽水罐的照片瘋傳。起碼有幾十罐啊!
LUKE RINARD:我路過Brain的桌子,他正在給某人解釋問題的原因——他用手勢(shì)解釋著工程上的東西。我們正打算問他到底怎么回事,他隔壁的一位工程師收到“噓,別說話,他好像發(fā)現(xiàn)了什么不得了的事情?!?/p>
BRIAN BOSSE:我們一直懷疑是觀戰(zhàn)模式的問題,因?yàn)檫@是賽場(chǎng)和直播唯一的區(qū)別,因?yàn)楸荣愑玫氖橇硗庖惶子^戰(zhàn)系統(tǒng)。他們一直在臺(tái)上用Bjergsen的賬號(hào)復(fù)制當(dāng)時(shí)的情景,想要縮小問題范圍,“這問題什么時(shí)候出現(xiàn)?”“什么時(shí)候不出現(xiàn)?”有了這些信息,再加上先前通過除錯(cuò)器解析的單彈道的怪問題,我們終于能為這次事件畫上因果線了。
舊金山 – 1:00 AM,10月1日
隨著問題根源被找到,修復(fù)補(bǔ)丁出爐,電子競(jìng)技團(tuán)隊(duì)在總決賽第四天宣布,奧瑞利安·索爾將重登賽場(chǎng)。
RAVEN KEENE:我們的第一反應(yīng)是“老天保佑”,然后感激Bosse大神做出的努力。接下來就要尋找修復(fù)的辦法了。這個(gè)問題好修復(fù)嗎?對(duì)本次事件來說,是的,因?yàn)槲覀兡苷{(diào)整賬號(hào)。隨即就要想辦法通知拳頭全體可能會(huì)受到這個(gè)bug影響的人。在這個(gè)案例中,由于是和賬戶有關(guān),這就包含了全體觀戰(zhàn)者以及國(guó)際觀戰(zhàn)者,所以現(xiàn)場(chǎng)制作團(tuán)隊(duì)耗費(fèi)了一番大工夫才聯(lián)系上所有的人。我們必須得讓參賽隊(duì)伍第一時(shí)間知道,包括關(guān)注訓(xùn)練賽的時(shí)間,因?yàn)槲覀儽仨毜迷谟?xùn)練賽開始前修復(fù)這個(gè)問題。
BRIAN BOSSE:續(xù)了一口大命。我們從束手無策到此刻稍微能喘一口氣,一切都會(huì)好起來的。事情能進(jìn)行到這一步簡(jiǎn)直不可思議。
LUKE RINARD:我向所有我有印象參與了補(bǔ)救的伙伴們進(jìn)行了鼓勵(lì),告訴他們這件事情對(duì)我意義非凡。來幫忙的都是恩人。他們的反應(yīng)卻是…“那啥,必須的。”感覺他們就像在說“你謝我干嘛?我周四大半夜跑來加班不是很正常的事嗎?”
BRIAN BOSSE:我想強(qiáng)調(diào)沒有任何人是被強(qiáng)制召喚來的——有幾個(gè)工程師,幾個(gè)負(fù)責(zé)質(zhì)保的人,還有產(chǎn)品團(tuán)隊(duì)的幾個(gè)家伙自愿來幫忙。沒有人強(qiáng)迫任何人。看到大家愿意花費(fèi)這么長(zhǎng)的時(shí)間修復(fù)這個(gè)問題真的很奇妙。
AMELIA VON HADEN:我覺得應(yīng)該是使命感吧。當(dāng)時(shí)時(shí)間挺晚的,大多數(shù)人都回家了,而且第二天還有新比賽。我了解出現(xiàn)的問題,他們也需要我的幫助。我只是直覺上覺得…該這么做。讓全球觀眾享受最好的體驗(yàn),這是最棒的事情了。我知道很多團(tuán)隊(duì)在這個(gè)英雄上下了苦功,而且觀眾也非常想看到這個(gè)英雄登場(chǎng),我只是覺得…靠,不能讓他被禁啊。
舊金山 – 11:30 AM,10月3日
奧瑞利安·索爾于總決賽第四天正式重返賽場(chǎng),被CLG中單Huhi選中對(duì)陣ROX Tigers。Huhi用他最喜歡的英雄碾壓了韓國(guó)冠軍,幫助CLG拿下一勝。
AMELIA VON HADEN:感覺我們就像制作英雄的;每當(dāng)他們看到別人使用這個(gè)英雄時(shí),總會(huì)擔(dān)心他們表現(xiàn)不夠好,或者這個(gè)英雄要出問題…通過這次的索爾事件,我們看到別人選用時(shí)也會(huì)感同身受,祈禱這次不要再出幺蛾子。
RAVEN KEENE:當(dāng)看到他再次被選用時(shí),整個(gè)人都“緊繃”了。比賽前幾分鐘我們大氣都不敢出。直到你再度看到他的精彩操作時(shí),整個(gè)氣氛才有所改觀;團(tuán)隊(duì)內(nèi)部的,外部的,選手的,觀眾的,一切都不一樣了。故事的主角從奧瑞利安·索爾——被禁用者,進(jìn)化為了奧瑞利安·索爾——?dú)缯摺?/p>
LUKE RINARD:CLG用他蹂躪了對(duì)手…我的想法是“這個(gè)角色太強(qiáng)了,可能過于強(qiáng)力了?!笨吹剿谑澜缳惿虾麸L(fēng)喚雨,我滿足極了。周一的比賽結(jié)束后我再次對(duì)所有提供過幫助的人表示了感謝!我告訴他們他的表現(xiàn)讓我整個(gè)月都會(huì)有好心情。而決賽第三場(chǎng)比賽看到他再度被選用,如此重要的比賽——這讓我那個(gè)月余下的時(shí)間都滿是好心情。
全球總決賽是英雄聯(lián)盟舉辦的國(guó)際賽事中最為重要的,而在總決賽上損失一名重要如奧瑞利安·索爾的英雄,無論對(duì)玩家還是觀眾來說都是絕望的。Rioters爭(zhēng)分奪秒攜手修復(fù)了這個(gè)問題,確保全世界最好的職業(yè)選手齊聚一堂爭(zhēng)奪召喚師獎(jiǎng)杯的同時(shí)能使用任意英雄。如果你還有興趣深入了解這個(gè)bug的技術(shù)細(xì)節(jié),點(diǎn)擊查看Brain Bosse的原因分析。
請(qǐng)登錄以參與評(píng)論
現(xiàn)在登錄