一個關於遊戲AI不太野的野望
遊戲一直以來被稱為第九藝術,而前八大繪畫、雕刻、建築、音樂、詩歌(文學)、舞蹈、戲劇、電影實際上或多或少的都在遊戲中可以體現出來。對於一個有美學表達需求的人而言,在遊戲中幾乎能夠實現他所有的幻想和抱負。這在我看來是遊戲真正的魅力所在。
誠然,由於經濟利益的驅使,絕大部分的遊戲都難以和藝術沾上邊的。但是不可否認遊戲給人們的生活帶來了很多改變,它不僅成為了很多人最主要的消遣方式,甚至逐漸形成了自己特有的文化圈子(比如艾澤拉斯國家地理這樣的論壇)。
那麼我們在玩遊戲的時候究竟在玩什麼呢?這裡我想要從遊戲的獨特性來說。遊戲比較顯而易見的特性,也是遊戲區別於其他藝術形式的關鍵之處就在於互動性。
互動有兩面,一個是與誰互動,另一個是自己的互動水平。我們在進行遊戲的過程中,與我們互動的角色會隨著劇情的不同、競技場合的不同而改變,而我們在玩遊戲的過程中,我們自己的互動水平也在不斷的改變。
我認為所謂玩遊戲的快感,很大程度上來源於這兩個維度的提升。角色的改變可以說主要取決於遊戲策劃的設計,比如打到了更厲害的BOSS,玩到了更新穎的角色。而這些部分的獲取又很大程度上取決於互動水平的提升,我們在遊戲的過程中不斷超越自我,不斷戰勝對手來獲得最終的成就感。所以說我們玩遊戲實際上是在玩一個自我養成的大遊戲。
遊戲與心流
因此如何在遊戲中有效地引導玩家提升自己的互動水平實際上才是遊戲設計中一個核心問題,然而每個人學習能力和學習偏好是各不相同的,這造就了不同的玩家有不同的體驗曲線。一個對於某些玩家友好的設計對於其他玩家未必友好。所以遊戲太簡單會使得遊戲毫無挑戰而缺乏趣味,遊戲太難會導致玩家難以獲得成就感勸退玩家(當然也有一些玩家喜歡被虐的感覺,比如黑魂系列、只狼等遊戲就以高難度操作聞名,不少玩家樂於在其中被反覆折磨)。
[ 遊戲《只狼》玩家死亡畫面(惡搞) ]
從這裡我們可以看出,一個恰當的遊戲設計才能夠真正的讓玩家在其中獲得樂趣。這其實就是心理學上常說的心流,當使用者在完成互動行為時需要高技能水平,並且通過感知到高挑戰,且兩者達到某種平衡時就會有心流的體驗產生。為玩家打造出心流體驗實際上正是前面所說為玩家提供一個優秀的養成環境的關鍵。
[ 心流理論 ]
如何在遊戲中打造心流?一種機器學習視角
但是怎麼去量化的描述心流,從而指導遊戲的開發,優化玩家的體驗是一件非常難辦的事情。為什麼難?因為
- 我們不知道對使用者設定多高的挑戰是合適的?
- 我們不知道使用者需要付出多少努力才能達到所需的高技能?
通常我們可以為玩家適配不同的AI(在劇情類遊戲中是BOSS的難度、在競技類是陪玩AI的強度)來調整玩家的遊戲體驗。至於如何產生這些AI,可以使用傳統編寫規則模型的方式(行為樹、有限狀態機等),也可以考慮藉助機器學習(比如OpenAI Dota 5、AlphaGo等)來產生。
但是怎麼調整呢?最傳統最簡單的方式一般交由玩家自行選擇
[ 遊戲《瘟疫工廠》難度選擇介面 ]
而在線上遊戲中,一般通過玩家過往的遊戲表現,為玩家的能力定級以匹配能力相仿的玩家或者AI。
[ 遊戲《王者榮耀》玩家匹配介面 ]
但是這樣其實還遠遠不夠, 因為以固定的分級或者玩家過往表現產生的定級,在一段時間視窗內都是靜態的,並且粗糙的。玩家的體驗直接來源於一個關卡或者一場比賽,而在這一片段中
- 同水平的玩家,所掌握技巧的維度各不相同,例如有的玩家擅長進攻、有的玩家防守做得更佳
- 同水平的玩家,在遊戲過程中對於遊戲過程的偏好會各有差異,例如有的玩家偏好碾壓局、有的偏好激戰局等
由於這些原因,一個對玩家在一個視窗內的平均的衡量很難對玩家的心流體驗做更好的優化。
如果想要在玩家遊戲的過程中打造更為精細化體驗控制,使得玩家能夠按照一些特定的模式贏取或者輸掉比賽,從而為玩家打造心流。我們必須藉助大量玩家的資料,來對玩家的體驗做更細緻的分析。
我們以控制遊戲內AI為例,可以設想如下圖所示的一個框架
基於玩家的社交關係、過往的遊戲資料等等我們可以建立模型刻畫玩家的畫像;基於大量的玩家對戰資料或者用不依賴人類資料的強化學習進行預估得到一個對遊戲局勢的判斷或者說當前遊戲對於玩家的挑戰的度量。
我們利用一個局內控制模型來綜合使用玩家畫像和局勢預測的資訊,通過控制模型來產生對遊戲中AI的調整。
這裡帶來了第一個問題,控制模型可以怎麼來調整AI呢?
我們可以考慮從AI的輸入部分和輸出部分對AI的決策進行擾動,具體而言
輸入部分:
- 控制模型感知狀態準確性
- 對當前感知到的狀態進行擾動(例如錯誤估計自己的技能時間、忽略隊友狀態等)
- 可見性(對敵人狀態的可見程度,例如作弊)
- 控制AI的風格偏好(偏好激進、偏好保守)
輸出部分:
- 限制動作的輸出(不允許AI進行某些操作等)
- 對輸出進行擾動(錯誤的決策等)
以上部分需要結合局勢預測來相應地進行決策,但是其中存在若干超引數(例如擾動的內容、幅度、方向、期望的風格偏好等等)是一個複雜地決策過程。
這裡我們可以考慮將控制模型的決策進行大類的劃分,在每一類決策中,可以生成不同的擾動方案,雖然具體的擾動幅度比較難以界定,但是擾動的方向通常是比較直觀的,比如讓AI的預判變差,只需要將給他的資訊變少即可。這些類別和具體擾動的範圍可以通過專家知識總結出來,接下來要做的即是在這些擾動值和對玩家的影響效果之間建立關聯。
這個關聯的建立可以考慮基於玩家的資料利用機器學習的方法來達成。具體而言,局內控制模型會不斷輸出不同的控制方案,這些控制方案會依據預先設定好的配置來對AI模型進行擾動,從而改變遊戲中的AI狀態(能力、風格等等),玩家在整個過程中會有不同的反饋(比如比賽中的髒話數、比賽後的點贊行為、舉報行為等等)。依據這些反饋,我們可以組織起來玩家對於局內控制模型的體驗資料,對我們的控制模型進行訓練更新。隨著資料的積累,我們的控制模型能夠更好的把握不同的使用者畫像對於不同局勢下游戲的偏好,從而自動的調整遊戲中AI的狀態,為玩家打造精細化的優質遊戲體驗。
說了一大堆,我們再回過頭來看看,我們會發現問題的本質實際上並不複雜,為玩家打造精細化遊戲體驗的過程,實際上和我們在刷購物網站、在刷抖音的過程是類似的。購物網站為我們挑選不同的商品來讓我們獲得更好的購物體驗,視訊流為我們挑選不同的視訊來讓我們產生更多的興趣。
在遊戲中,想為玩家打造心流,我們實際上也可以利用手頭上的遊戲元素在為玩家提供不同的推薦服務。這樣整個問題實際上就很清晰的分解為兩個部分:
- 如何設計各種可供推薦的遊戲元素?
- 如何提高推薦系統的能力?
從這個角度去看遊戲的心流設計或許就沒有那麼難了。當然這個方向還有很長的路要走,雖然推薦系統已經被研究應用了很多年,依然還有很多問題需要去解決(比如在遊戲場景中如何解決冷啟動?)而更為棘手的是,玩家的反饋並不像常見的推薦場景中那麼容易獲取。在遊戲中的即時反饋往往會非常稀疏,比賽終局的反饋在對控制模型的決策進行分配的時候,就會變得不那麼準確。
另外一個重要的問題是如何快速設計各種可供推薦的遊戲元素?使用機器學習的方式生成AI可能是一條路,前面都是以AI作為例子來表述,但可能還有其他更多的角度。這裡有一個嚴肅的問題需要廣大遊戲人去面對,是否只有將AI作為一個欺騙玩家的存在放在遊戲中才能優化玩家的體驗?就像酒託、醫托一樣,這個”玩託“究竟是好是壞?我回答不了。
之前大家可能沒有考慮過從推薦的角度去思考遊戲設計,但是我相信這個視角能夠給遊戲設計帶來一些改變,能夠改變玩家體驗的元素應該還有很多,不會僅限於AI部分。而這些元素的設計很大程度上決定了整套框架是否能夠真正發揮作用,只有這些元素越來越豐富,越來越高質,我們對玩家體驗的打造才能更極致。
在未來對於玩家體驗的優化,我想一定是這樣基於資料驅動的視角,新型的遊戲形態也應該是在這樣的驅動下誕生的。我不知道這個未來還有多久,但是它一定正在到來!
來源:騰訊遊戲學院
原文:https://mp.weixin.qq.com/s/g0puxOfLpJn1AsCl5WZpmg
相關文章
- 關於年會搶紅包遊戲的一個思考遊戲
- 一款關於AI與數字生命的遊戲《資料戰爭》AI遊戲
- 一篇不太一樣的RxJava介紹(二):關於操作符背後的故事RxJava
- 開特斯拉打遊戲?白日夢想家馬斯克的遊戲野望遊戲馬斯克
- 一個關於pynoi遊戲的C語言程式設計遊戲C語言程式設計
- 一個做資料產品的不太前的前端前端
- 一個關於recyclerView的bugView
- 關於UIInterfaceOrientation的一個bugUI
- 關於Sqlite的一個demoSQLite
- 帶領火必走向Web3,孫宇晨的下一個野望Web
- C#中Finally的一個不太常見的用法C#
- 關於搭建遊戲平臺的四個思考遊戲
- 關於遊戲付費的一點想法遊戲
- 有意思!一個關於 Spring 歷史的線上小遊戲Spring遊戲
- 關於AI、關於chatGPT的幾十種用法AIChatGPT
- Oracle關於nvl的一個BugOracle
- 關於教程的一個問題
- 關於Green AIAI
- 【轉】 C#中Finally的一個不太常見的用法C#
- 新發布丨一個關於遊戲開發的加速計劃遊戲開發
- Roguelike遊戲的視野演算法遊戲演算法
- 德勤:用於工作關係的AI是一個尚未開發的巨大機會AI
- 中國的PC遊戲:關於這個全球最大遊戲市場您需要了解的一切遊戲
- 關於Integer面試的一個問題面試
- 關於range的一個知識點
- 關於一個公益專案的探究
- 聽同事關於一個ASM的故事ASM
- 一個關於Java Excel的問題JavaExcel
- 一個關於SessionBean呼叫的問題。SessionBean
- 一個關於prototype模式的問題?模式
- 一個關於支付的SQL-ProcedureSQL
- 第 1 天|基於 AI 進行遊戲開發:5 天建立一個農場遊戲!AI遊戲開發
- Java的一個關於“星球”的列舉Java
- 致遠慧圖孫宇輝:出走英特爾的AI眼科野望AI
- 一篇不太一樣的RxJava介紹RxJava
- 關於web遊戲的搭建Web遊戲
- 關於 JavaScript 字串的一個小知識JavaScript字串
- 一個關於JAVA GC的小實驗JavaGC