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