LLM Gaming
LLM 設計與內容生成引擎
MarioGPT (NeurIPS 2023)
MarioGPT: Open-Ended Text2Level Generation through Large Language Models

- 目標
- 你打一句話描述你想要的瑪利歐關卡風格(例如「很多水管、不要敵人、要很多磚塊、地形高低起伏」),它就能自動生成一張看起來像真的瑪利歐關卡的地圖。
- 它也可以一直「不斷生成不同風格」的關卡,像是在做內容探索:越生成越多樣、越意想不到。
- 任務介紹
- Text -> Level
- 目標達到
- 可控:聽得懂你說的
- 多樣:每次生出來都不一樣
- 可完:不要生成一堆根本玩不了的圖
- LLM使用
- 你可以把它想成:用一個「GPT 類型的文字接龍模型」在接龍「關卡」
因為關卡其實也能寫成一串符號:比如某個符號代表地面、某個符號代表磚塊、某個符號代表水管…模型就是一直猜「下一格應該是什麼」 - 用一個「負責讀懂你文字」的模組( BART ),把你那句話變成一種控制訊號,讓 GPT 在生成時更偏向你要的風格(例如真的多放水管/少放敵人)
- 你可以把它想成:用一個「GPT 類型的文字接龍模型」在接龍「關卡」
GAVEL (NeurIPS 2024)
GAVEL: Generating Games Via Evolution and Language Models
- 目標
- 自動發明桌遊規則的引擎
它會自己產生全新的棋盤/桌遊(不是只做關卡,而是整個遊戲規則),而且會偏向產生「可玩、看起來有策略、而且種類很多」的遊戲
- 自動發明桌遊規則的引擎
- 任務介紹
- 解決三大難點
- 遊戲規則要用電腦能處理的方式表示
- 規則空間超級大,很難搜尋
- 你要能自動判斷「這遊戲到底好不好玩、夠不夠新」
- 解決三大難點
- LLM使用
- A模型:一個會改規則的「程式碼 LLM」
用的是 CodeLlama-13b(一個擅長產生/修改程式碼的語言模型),而且特別把它訓練成: 給你一段規則的前後文,請你把中間那段規則『補出來』(也就是用來做「局部修改」,不需要整份規則重寫) - B模型:一個「進化搜尋」框架,負責一直試、一直挑
他們用 MAP-Elites 這類「多樣性導向的進化演算法」:不是只找一個最強的遊戲,而是要在很多不同風格區域都找到好玩的
- A模型:一個會改規則的「程式碼 LLM」
- 遊戲生成流程
- 先有一堆既有桌遊規則當資料集
他們用 Ludii 的規則語言(L-GDL),裡面本來就收錄了上千種桌遊規則,作為訓練來源 - 訓練 LLM 學會「在規則中間補一段」
他們把每個遊戲規則拆成很多「括號結構的小片段」(像程式碼裡的小區塊),讓模型學會: prefix(前面) + suffix(後面)-> 填出 target(中間那塊) - 進化搜尋開始:反覆挑一個遊戲 → 隨機挑一段規則 → 叫 LLM 改它 → 自動評分 → 好的留下
- 先有一堆既有桌遊規則當資料集
LLM 與玩家情緒相關的研究
Player2Vec
player2vec: A Language Modeling Approach to Understand Player Behavior in Games
- 目標
- 把每個玩家的遊玩行為變成一個向量(embedding),可以把它想成「玩家的行為指紋」
- 這個「玩家指紋」可以拿去做後續應用:像是理解玩家類型(分群)、找出行為模式等
- 任務介紹
- 在沒有人工標籤的情況下,光靠遊戲後台的行為紀錄,去學出能代表玩家的向量表示
- LLM使用
- 採用 Longformer,因為玩家事件會超長、一般 BERT 那種模型吃不下
- 訓練方式是 Masked Language Modeling(遮住一些 token 讓模型猜回來)
- 做了三種大小的模型版本:small / medium / large(參數量約 2M、20M、121M)