“靠!還讓不讓人吃飯了?”蘇鳴抽出一張紙,擦了擦肩膀,又擦了擦桌子,“退后退后,戚總不是回去看了嗎?等會估計就有安排?!?p> 戚云偉是公司的技術(shù)總監(jiān),這個項目的程序組由他領(lǐng)頭。因為公司不止這一個在研發(fā)的項目,所以他只能制定計劃、把控進度。
但他的技術(shù)水平還是毋庸置疑的。
現(xiàn)在蘇鳴提出了一種可能性,他發(fā)現(xiàn)這個判斷對不對的速度,應(yīng)該是會比蘇鳴更快的。
陳英山是已經(jīng)吃好了的,站在一旁抱著手皺著眉:“我們這么多人花了這么久,檢查來檢查去沒發(fā)現(xiàn)問題,你這個判斷還真的很有可能。如果真的是和引擎代碼疊加產(chǎn)生的問題……真棘手啊。要從引擎動起嗎?”
“也就是說,如果真的是這個問題,咱們還有可能得造個輪子?”許一非吃著飯,還順便吸了一口涼氣。
程序組的13個漢子齊齊吸氣,瞬間為地球變暖做出了不小的貢獻。
“別啊……這太夸張了?!币粋€聲音說道,“這又不是處理某一類專門的任務(wù),專門寫個中間件有明確需求?!?p> 蘇鳴問了問負(fù)責(zé)客戶端程序的趙小凱:“服務(wù)器端這邊的log日志一直沒有什么不正常,這個問題大概率指向你們那邊。如果真是客戶端代碼和引擎有什么地方?jīng)_突,你覺得可能是什么?”
說完他吃著盒飯,就和其他人一起看著趙小凱以及他的兩個客戶端程序搭檔。
蘇鳴、許一非和陳英山負(fù)責(zé)的服務(wù)器端,他們?nèi)齻€白天已經(jīng)反復(fù)理了很多遍,沒什么毛病。
而這個bug是在各種沒規(guī)律的操作下會出現(xiàn)的。這些操作,都是客戶端程序結(jié)構(gòu)里,可能因為控件模塊的邏輯,可能因為界面邏輯,也可能還會因為和引擎相關(guān)的動作、特效、模塊讀取等等相關(guān)。
總之確實問題出在那邊的可能性更大。
服務(wù)器端,雖然存儲著重要數(shù)據(jù),和這個氪金bug有關(guān)的邏輯判斷也在這邊進行,但并沒有檢查出問題。
趙小凱沉默不語,過了一會說道:“確實有可能是跟動作特效和光效有關(guān)。這個充值操作,調(diào)的引擎里一些光效和音效。如果純粹只是客戶端內(nèi)部的問題,不至于bug出現(xiàn)的邏輯這么混亂沒規(guī)律?!?p> 蘇鳴點了點頭,白天他們當(dāng)然也按照測試組提交的報告,去嘗試重現(xiàn)這個bug。
后來才突然從柳安適應(yīng)環(huán)境適應(yīng)得很快這個念頭里,想起種種bug出現(xiàn)的場景,似乎都伴隨著人物的移動,或者視角的變動。
畫面在變化,光線和模型的渲染就會進行。
他這才想到,有沒有可能是客戶端的代碼邏輯和引擎產(chǎn)生了沖突。
“我覺得要不你們先從這兩個方向嘗試一下,看看會產(chǎn)生什么效果。”
趙小凱深深地看了一眼蘇鳴,點了點頭:“咱們趕緊從這一塊去查一查?!?p> 他招呼的是自己的兩個搭檔,三個人一起默默走了。
如果真的確認(rèn)了,這算是被別人找出了bug原因,還是錯不在他們?
代碼沒錯,是最開始按照戚云偉研判確定的引擎選型來做的,開發(fā)計劃也是戚云偉做的,提交到測試環(huán)境的demo也是他驗收的。
可他是頭,這個bug導(dǎo)致的績效懲罰,他會怎么定?
蘇鳴和剩下的人一起,大眼瞪小眼。
有的人只是干瞪眼,有的人還一邊吃盒飯一邊瞪眼。
蘇鳴嘆了一口氣:“如果這個判斷得到了驗證,我擔(dān)心還會不會有其他類似的問題暫時沒暴露出來?!?p> 小伙伴們一時之間都不好了。
他們不是大廠,已經(jīng)制定了中長期的發(fā)展規(guī)劃,鐵定了心思要基于某個商業(yè)引擎甚至自研引擎去做一個又一個項目。
這次對于公司來說,也是一次非常重要的突破嘗試。
突破嘗試,就意味著研發(fā)預(yù)算有限,所以用的一個開源引擎。
開源引擎有很多好處,比如會有源代碼,會有很多的開發(fā)者分享經(jīng)驗。
但它也會有非常多的麻煩,比如配套的開發(fā)工具不會太全,出問題的概率也很大。
之前說的造輪子,就是基于引擎本身,再開發(fā)一些實現(xiàn)特定游戲功能的子系統(tǒng),專業(yè)一點說叫中間件。
但輪子可不是那么好造的。
優(yōu)秀的中間件,甚至可以賣出不匪的價格。
能研發(fā)中間件的,也一般是團隊里的精英。
如果問題最終真的指向了和引擎有關(guān)的底層邏輯,那就真有點麻煩了。
蘇鳴幾口把飯吃完了,就跑到趙小凱他們那邊。
暫時沒有發(fā)現(xiàn)優(yōu)先級別超過手頭這個的bug,在它被修復(fù)以前,其他工作都可以先放下。
牽涉面會比較廣,這個改好,說不定出現(xiàn)其他bug,現(xiàn)在測出來的也沒太大意義。
趙小凱他們在沿著這個思路調(diào)試、看結(jié)果。
其實思路確定之后,效果看出來得很快。
畢竟在開發(fā)環(huán)境里,迅速改改代碼,再按原操作跑一遍,就能看出異常。
圍在趙小凱他們?nèi)松砗蟮娜嗽絹碓蕉唷?p> 過了一會,蘇鳴和趙小凱互望了一眼,就說道:“走,一起去找頭說說結(jié)果吧?!?p> 趙小凱點了點頭,站了起來,和蘇鳴一起走向戚云偉的辦公室。
聽完趙小凱的話,戚云偉眉頭緊鎖:“這么說,一旦并發(fā)操作多了,還有可能更糟?”
蘇鳴補充道:“我們倆都覺得,現(xiàn)在只是這個功能在數(shù)值上表現(xiàn)得很直觀,所以最先被發(fā)現(xiàn)。但實際上,和寶寶有關(guān)的很多功能都受到這個影響。就算把這個問題暫時繞過去,等到封測的時候人數(shù)多了,其他影響大概就會表現(xiàn)出來。到時候,功能異常、卡頓……問題會很多?!?p> “你們有什么解決思路?”
蘇鳴和趙小凱互望了一眼:“雖然很麻煩,但恐怕針對寶寶這個功能本身的動畫呈現(xiàn),咱們不得不造個輪子?!?p> 戚云偉很煩躁地端起桌上的咖啡,狠狠地喝了一口。
這不僅僅是造個輪子的問題。
后續(xù)與寶寶系統(tǒng)有關(guān)的諸多功能,都要放在這個新中間件的框架里來做,工作量非常大。
而在公司的資金情況下,研發(fā)周期已經(jīng)很緊張了。
蘇鳴說出路上已經(jīng)和趙小凱商量過的一個方案:“暫時分個工,小凱他們先把這個bug繞過去,繼續(xù)測試新的問題。我們服務(wù)器端三個人,目前時間相對寬裕一點,我來負(fù)責(zé)帶頭,盡快把這個中間件試著開發(fā)出來。”
“要多久?”戚云偉凝神看著他。
“一開始只專注于解決這個問題的話,我們專門把寵物的動畫呈現(xiàn)邏輯放到這個中間件里來實現(xiàn)。后續(xù)發(fā)現(xiàn)的相關(guān)bug,都放到這個中間件里來解決,等能上線之后,再想辦法完善這一點。如果僅僅做到這種程度的,給我們半個月的時間開發(fā)、調(diào)試,應(yīng)該有一個階段成果?!?p> 戚云偉沒有先回答,在心里評估著。
這還牽涉到后續(xù)的工作內(nèi)容分配。
但問題也必須解決。
沒想多久他就做了決定:“你,小凱,陳英山,三個人來負(fù)責(zé)做這個事。服務(wù)器端讓許一非先頂一頂,小凱你那邊也安排一下?!?p> 蘇鳴和趙小凱都點了點頭。
戚云偉先看了一眼蘇鳴,然后看向趙小凱:“今天總算找出了問題的原因,把問題先繞過去,晚上提交一個新版本?,F(xiàn)在就不只是你們扣不扣績效的問題,你安排好客戶端那邊的事,配合蘇鳴把這個問題徹底解決。蘇鳴牽頭,你們?nèi)齻€晚上先討論個計劃出來。如果半個月內(nèi)搞定了,另有獎金。”
從戚云偉的辦公室出來,趙小凱長吁一口氣:“鳴哥,謝了……你有把握嗎?”
蘇鳴則眼神發(fā)亮:“是必須搞定!項目最終垮了,我們這一年多的時間里干了什么,將來簡歷上都不好寫!”
趙小凱意味深長地看著他:“群里都說,你最近變化不小。脫單就這么有用?”
蘇鳴呵呵一笑:“跟脫不脫單沒關(guān)系。畢業(yè)兩年多了,積累的感悟爆發(fā)了吧。”
哥們其實還沒有脫單。
但做出更耀眼的成績,變得更強,正是為了脫單!