在這AI滿天飛的年代,沒有個AI同事好像就遜掉了,這就是本篇的主題寫個AI來當同事,幫忙處理一些我比較不擅長的部分。
本次專案打算作一台打磚塊掌機,因為會有關卡編輯需求,這部分就交給AI同事幫忙,花了點時間把原型機與變形後的打磚塊遊戲搞了出來:

後續會使用python呼叫ollama API請AI工作,編輯器AI介面部分如果判斷電腦沒安裝ollama右上角會出現"AI企劃人員-面試中"並無法開啟AI設定介面:

如果正確安裝了ollama介面會顯示”AI企劃人員-下班了”,呼叫出AI介面,在模型區選擇要使用的語言模型(可複選):

然後就可以按下"上班"按鈕讓AI同事開始上班,這時我們可以一邊編輯、測試關卡,一邊等AI製作的關卡,因為是多工執行所以可以同時運行,這感覺就像是真的有位遊戲企劃陪著你一起工作一樣,稍等片刻後會在右上角看到”AI企劃人員-上班中-1”的訊息後面的數字1表示AI已經產生出多少關卡了,只要選載入檔案,選AI目錄就可以看到AI製作的關卡檔案:

隨便選一個檔案載入,就可以在編輯器內開始測試或修整:

來說一下請AI製作關卡的原理,主要是請AI生成我們需要的JSON檔案,以下是針對這個專案設計的關卡JSON規格:

簡單說明,LEVEL,是存放磚塊編號,總共是16x16大小,LEVEL_PROPS,是存放磚塊道具編號一樣是16x16大小,MODEL是紀錄使用哪個AI模型產生的,下面是送給AI的Prompt:

這邊為了讓大家閱讀方便使用中文,實際使用時強烈建議翻譯成英文,因為不是所有語言模型都支援中文Prompt,這樣AI就會回傳我們需要的JSON規格給我們,當然AI也不是每次都會回傳正確的規格,所以在接收到AI回傳字串時,首先要先抓出字串內的JSON區塊文字(其他部分不需要),取得JSON區塊文字後還要判斷LEVEL、LEVEL_PROPS大小是否正確與裡面的數字是否有不正確的磚塊或道具編號, 以上判斷都正確加上MODEL(紀錄輸出的語言模型),就可以存成JSON檔案,只要以上任何一個步驟不正確表示這次AI產生的內容是無效的,直接放棄然後繼續下一輪的生成。
在來討論一下AI產生出的關卡檔案,老實說有八成都是無法使用的,因為現在的語言模型不是針對打磚塊遊戲關卡訓練的,所以產生出來的檔案大部分會偏無聊,好在AI不會喊累(是不是要考慮一下制定AI勞基法(笑)),跑個一天可以產出好幾百個檔案供我們參考並加強,其中不乏有讓人驚豔的設計,只要稍作修改就會是非常有趣的關卡,所以一球入魂遊戲的大部分關卡都是架構在AI生成的關卡上加以修改的。
如果要提升AI產生關卡的品質可以透過模型微調來達成,不過前提是須要先有足夠多合格的關卡,然後在餵給大語言模型作微調整,這樣就可以讓調整後的模型生出更趨近於我們期望的關卡。
開發中影片:
專案還在製作中,會陸續分享製作過程與心得,敬請期待。
- 無限升級紛絲團