第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,都是為了嚴格完成這條設計要求,而連鎖引發的?」
顧凡點頭,理直氣壯地說道:「是的。」
(本章完)