第275章 什么屎山代碼!
第275章 什么屎山代碼!
顧凡繼續(xù)解釋道:“在進入游戲、選擇職業(yè)的第一時間,系統(tǒng)不僅會硬塞給玩家一個本職業(yè)的基礎(chǔ)攻擊技能,還會再后臺給玩家打上一個『職業(yè)標簽』。這個職業(yè)標簽與底層代碼沒有太多關(guān)聯(lián),但在一些特殊情況下,相關(guān)功能會對這個標簽進行檢測。
“比如,玩家找訓練師學技能的時候。
“可現(xiàn)在的問題在于……因為涅法洛爾這個boss的獨特機制,也同樣賦予了玩家職業(yè)標簽!這就導致原本游戲中的雙重限制,都被攻破了!”
莉莉絲的大腦有些過載:“等一下!涅法洛爾為什么會賦予玩家職業(yè)標簽?你說清楚!”
顧凡輕輕嘆了口氣:“這就要從涅法洛爾第三階段的這個點名機制說起了。
“看得出來,『點名』這個機制,是制作人在設(shè)計涅法洛爾這個boss時就想到的一個獨特機制,甚至可以說,就是為了這碟醋才包的餃子。
“但涅法洛爾作為第一個團本中的最終boss,它的設(shè)計本就比職業(yè)大改要更早。
“所以在最開始的時候,涅法洛爾并不能直接點名職業(yè)。因為那時候,玩家還沒有職業(yè)。
“為了完成點名的效果,制作人將機制設(shè)計成『涅法洛爾會根據(jù)玩家上一次對他釋放的技能來進行點名』。
“比如,上一個對他釋放過盾擊類技能的玩家,將會放棄使用盾牌;上一個用圖騰對他造成過傷害的玩家,將會插下各種圖騰反過來給他加buff。
“這種機制能夠給玩家造成一定的困難,但其實也給玩家提供了足夠的反制手段:只要玩家在點名前,預先學習一個特定的、無關(guān)緊要的技能摸boss一下,就可以騙過boss,破解這一機制。
“而這本來就是原制作人允許甚至鼓勵的玩法。
“但后來改了職業(yè)設(shè)定,那么涅法洛爾的機制,肯定也要進行一定的修改。原制作人一番小修小補之后,發(fā)現(xiàn)了一個令人有些蛋疼的問題,那就是點名職業(yè)時,經(jīng)常會出現(xiàn)一些離奇的BUG,導致游戲崩潰。
“比如,原本的設(shè)計是上一個對boss釋放過盾擊技能的玩家,會放棄使用盾牌;可現(xiàn)在盾擊變成了戰(zhàn)士和騎士都有的技能,而圣騎士又對應(yīng)著其他的點名效果,必須摘出來。
“又比如,原本的設(shè)計是在團本中用變羊術(shù)控制過小怪的玩家,被點名后會對隨機隊友釋放變羊術(shù)。
“這個設(shè)計也有獨特設(shè)計意圖,它鼓勵玩家在之前的開荒過程中不要使用變羊術(shù),雖然在打小怪時會大幅增加難度,但打最終boss時就會少一個滅團技能。
“這對于玩家來說,就多了一種戰(zhàn)術(shù)與取舍。
“但現(xiàn)在按職業(yè)劃分了,只能改成『點名法師玩家對隊友使用變羊術(shù)』,可問題是,很多法師玩家壓根沒用過變羊術(shù)。甚至有可能沒學變羊術(shù),這就會導致系統(tǒng)在通過變羊術(shù)技能來判斷法師玩家時,出現(xiàn)漏判。
“此外還可能出現(xiàn)一些極端的特殊情況,比如boss讀到了技能,但讀到了錯誤的玩家標簽,這種情況雖然概率極低,但程序bug這種東西,也不能說就是0。只要玩家多,概率再低的問題也終究會出現(xiàn)。
“為了解決這些問題,尤其是為了解決漏判的情況,原制作人就又打了一個補丁,那就是當涅法洛爾點名時,優(yōu)先判定玩家上一個對他的攻擊技能。
“而且為了避免游戲后續(xù)可能出現(xiàn)的bug,在點名時,如果技能與職業(yè)標簽沖突,那么以技能為準,并且還會在系統(tǒng)后臺默認再給玩家一次對應(yīng)的職業(yè)標簽,防止因為讀到錯誤的玩家標簽而自相矛盾、導致bug。
“這樣一來,至少玩家在打涅法洛爾這個boss的時候,不會因為點名和職業(yè)問題而發(fā)生報錯、造成游戲崩潰。
“而后等玩家下線之后,系統(tǒng)會重新清理玩家身上的職業(yè)標簽,下次上線就會回到原點。
“只是沒想到……有玩家恰好沒下線,而且去找其他職業(yè)的訓練師對話了?!?br />
莉莉絲都快聽傻了。
這是什么屎山疊屎山的終極稀碎代碼!
原本的設(shè)計是一種情況,修改的設(shè)計是另一種情況,而為了讓修改后的設(shè)計能夠正常運行,程序員又在上面糊了一層代碼,雖然表面上也勉強完成了原本設(shè)計好的功能,但鬼知道這個功能具體是怎么實現(xiàn)的!
就拿這個涅法洛爾來說,原本的設(shè)計本來挺好的,可就是因為『職業(yè)設(shè)定』這個修改,讓原本的設(shè)計必須調(diào)整,而這一調(diào)整就會出bug,為了修bug,又引發(fā)了更多的bug……
顯然,玩家在挑戰(zhàn)涅法洛爾的過程中,不僅是騙過了涅法洛爾,也把系統(tǒng)給搞混亂了。
通過玩家技能來釋放點名效果,這是最初的設(shè)計,關(guān)聯(lián)到太多的底層代碼,所以不能改,一改就有可能出大問題。
表面上是點名職業(yè),但實際上還是在點名技能。
而點名技能有可能與后面加入的職業(yè)代碼沖突,既然如此,那就只能以點名技能為準,強行給玩家賦予一個額外的職業(yè)代碼,讓功能跑通。
至少讓玩家在團本過程中不至于游戲報錯、崩潰或者產(chǎn)生類似的嚴重后果。
等玩家下線之后,再清理掉這些額外加上去的亂七八糟的東西。
可沒想到,層層修改之后,代碼雖然勉強運行了起來,但卻產(chǎn)生了更大的漏洞。
這才導致玩家陰差陽錯地繞開了『技能』和『職業(yè)標簽』這兩重限制,解鎖了其他職業(yè)的技能和天賦!
而這一解鎖,可就再也攔不住了。
&