當我寫了個BUG卻變成核心玩法

第58章 誰讓你一定要用fake-AI的?

不知不覺間,顧凡再次發動大甩鍋之術。

雖然表面上看起來他主動承攬了一點責任,但這點責任根本微乎其微,這黑鍋的主體部分還是結結實實地扣在了莉莉絲的身上。

然而,莉莉絲的表情突然變得犀利起來。

“等等,好像哪里不對吧?”

莉莉絲好像發現了盲點,她站起身來,像是名偵探附體一樣快速地走了幾步。

“咱們先不說錦囊或者什么臥龍策和其他常規策略的區分問題。

“先說觀星!

“顧凡,如果我沒記錯的話,觀星本來就只是給玩家設計的,它的功能只包括在界面上給玩家展示NPC的屬性面板而已。

“如果你沒有特意寫代碼,這個功能是如何對NPC生效的?AI根本沒有眼睛,又看不到屬性面板,它們的決策又是怎么被觀星給影響到的?”

莉莉絲充滿懷疑地盯住顧凡。

“玩家在使用錦囊的時候,你沒有把其他的臥龍策置灰,也沒有加遮罩阻止玩家點擊,這我都忍了,畢竟我的設計方案上沒寫,說起來是設計漏洞,我也不好太苛責你。

“但觀星憑什么對AI生效?除了你是故意的之外,難道還有其他的合理解釋嗎!”

顯然,此時莉莉絲對顧凡的懷疑瞬間來到了頂峰。

即便是她這樣不太懂編程的人,也開始懷疑這個BUG有些過于離譜了,甚至可以說是非常的不合情理!

是啊,一個本來針對玩家的設計憑什么對NPC生效?

如果一個BUG本身在游戲機制范圍內,那還可以說是因為偶然。

但如果一個BUG突然有了游戲機制之外的特殊功能?

那就肯定是程序員偷偷地在代碼里夾帶私貨了!

莉莉絲咄咄逼人,信心十足,甚至心中已經在盤算著要如何跟顧凡算總賬。

然而,顧凡卻比她更加理直氣壯。

“為什么觀星不會對其他AI生效?你有這種想法才奇怪吧!

“這明顯跟你設計的底層機制直接關聯啊!”

莉莉絲瞬間瞳孔地震,之前囂張的氣焰被當頭一棒打壓了下去。

她有點不敢相信自己的耳朵:“你在說什么東西?”

顧凡嘆了口氣,似乎被莉莉絲這完全不懂代碼的狗策劃給氣到了。

“我問你,游戲中所有的人物都用fake-AI來控制行動,這是你要求的,沒錯吧?”

莉莉絲點頭:“沒錯。”

顧凡:“你想要讓每次開局都有一定的隨機性,這些AI不僅要在框架上讓游戲對局的發展跟原本的歷史走向相符,還要在細節上有很多種可能性,這是為了讓玩家沒辦法用特定的攻略抄答案通關,也沒錯吧?”

莉莉絲:“嗯,也沒錯,但這些和觀星這個功能又有什么關系!”

顧凡果斷搖頭:“關系很大啊!

“你覺得把fake-AI的模板直接套上就能實現這個功能嗎?難道不需要后續開發和調整嗎?”

莉莉絲愣住了:“不能嗎?”

顧凡很無語:“想什么呢,當然不能了!

“很簡單,假設我跟fake-AI說,你現在扮演曹操,此時青梅煮酒論英雄,伱應該做出什么樣的決定?然后fake-AI大概率會直接把劉備給干掉。

“因為原版的fake-AI吃了大量的歷史資料,它完全可以判斷出劉備是他此生的一個強敵,所以必然會干掉劉備。

“可這樣一來,就不符合你提出的要求了!

“顯然,我們在游戲中需要的并不是一個簡單的由fake-AI扮演的曹操,而是一個由fake-AI扮演并且只知道當前歷史信息的曹操!

“如此一來,他才會將袁紹、袁術、陶謙、劉表、呂布等人判定為自己的主要敵人,而不是一上來就把劉備給噶了。”

莉莉絲已經有點迷糊了:“然后呢?”

顧凡嘆了口氣,似乎為莉莉絲漏洞百出的設計操碎了心:“所以我為了填補你的設計漏洞,也為了更好地完成這項功能,費了好大的勁去屏蔽掉fake-AI中關于預知未來的這部分信息,盡可能讓這些AI使用當前的局勢做出判斷。

“要做到這一點,我們三個程序員可是加班加點,電腦差點都寫冒煙了!”

莉莉絲更迷糊了:“行行行,我知道你們很辛苦了,但還是那句話,這跟臥龍策有什么關系?”

顧凡繼續解釋:“關鍵就在于這個AI的具體運作方式上啊!

“就像我之前說的,我們屏蔽掉了fake-AI預知未來的部分信息,這才能讓它們根據當前局勢做出大致符合歷史走向的判斷。

“但是你的設計稿中又寫了,武將必須要有七維數字以及生平等內容。

“假如fake-AI在游戲程序中就能讀到游戲中的武將數據和生平等信息,那它還是會預知未來啊?

“所以,我就特意將這些信息在程序內部加密隱藏了起來,這樣一來,fake-AI就不可能讀取到這些信息了。

“而觀星這個功能,實際上并不是顯示后臺數據,而是傳遞后臺數據!

“因為這些數據在程序內部是加密狀態,所以觀星這個功能,實際上是對程序內部的加密數據進行解密,并傳遞給特定武將。”

莉莉絲疑惑地打斷:“等等,為什么是傳遞給特定武將,而不是傳遞給玩家?”

顧凡解釋道:“還是最開始的那個原因啊!因為每個武將都是由不同的fake-AI控制的,玩家和AI的行動模式并無本質區別,所以就把玩家和AI控制的武將統一編碼了。

“玩家控制的諸葛亮是001,而fake-AI控制的劉備、曹操等武將則分別是002、003,在武將代碼庫里面,并沒有一個專門代表玩家的編號。

“觀星這個功能,說白了就是將這些信息解密并打包發送給代碼001的諸葛亮,或者也可以說,系統程序會允許代碼001的武將查看隱藏起來的全部武將數據。

“于是在四個回合之內,玩家獲得了對應權限,點擊其他武將就可以看到具體信息了。

“但因為設計漏洞的原因,設計稿中并沒有寫觀星無法對除001之外的武將生效,所以我們在寫代碼時,也就沒有特意做出限制。

“比如代碼002是劉備,如果玩家用了錦囊,劉備獲得了觀星效果,那么系統就會向代碼002的武將發送全部武將數據。

“而代碼002的武將實際上是fake-AI,它一直在處理各種信息、進行下一步的決策。

“就在這個緊要關頭,系統給他發來了海量數據,包括其他武將的忠誠度、屬性值還有武將生平。

“那么AI必然會根據這些數據來調整自己的決策……”

莉莉絲不由得瞠目結舌,此時她已經大致明白了這個BUG的成因,但還是不愿意這么簡單地承認就是自己的問題,還想再辯解一下。

“可是你為什么把這個功能搞得這么復雜?就不能做一個純粹的顯示效果嗎?”

顧凡搖頭:“不能啊!

“還是之前說的原因,fake-AI一直都在收集信息進行思考,如果不是加密再定向傳輸數據而是直接把這些信息扔在程序里不加密,就相當于fake-AI隨時都可能讀取這些信息。

“那樣的話,等于是所有NPC都永久自帶一個觀星效果了!

“那不是比現在這種情況還要糟糕一百倍嗎?”

莉莉絲徹底困惑了,她完全蔫了下來,雙馬尾耷拉著,默默地縮在角落的懶人沙發:“所以……這一切的根源,還是在于使用fake-AI?后續的一系列BUG,都是為了嚴格完成這條設計要求,而連鎖引發的?”

顧凡點頭,理直氣壯地說道:“是的。”