精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

實現了個ChatGPT趨動的游戲,玩得樂此不疲 精華

發布于 2024-11-14 15:34
瀏覽
0收藏

今天給大家帶來一篇《簡單實現一個ChatGPT驅動的游戲》文章,來自知乎@九號(已授權)。

今年四月份讀了斯坦福Generative Agent的論文,覺得特別好玩,花幾天時間實現了這個demo。后來拿著這個demo去參加hackathon,竟然拿了二等獎還幫我贏了1300多刀。

最近提到這個demo,同事表示很有興趣,于是仔細整理了一下,分享給大家。

知乎:https://zhuanlan.zhihu.com/p/664009161
Github:https://github.com/liyucheng09/ChatGPT_Agent

0.讓LLM驅動游戲能夠解決什么問題?

游戲界有一種說法:過去20年的游戲在核心玩法上的創新是緩慢的,絕大多數的創新發生在技術上。

開發者在游戲內提供更大的地圖,更精致的畫面,龐大的細節。其中的主要目的之一是為玩家提供「沉浸感」。當玩家在游戲世界里得到自己所期望的反饋時,會獲得龐大的滿足感。

然而,由于技術的限制,過去的創新并沒有涉足游戲的一個核心方面:世界與NPC的運行邏輯。

當玩家與世界和NPC的互動超出了規則設定的范疇時,玩家將無法獲得反饋,從而產生巨大的落差。游戲界成這種體驗為Breaking Immersion。

過去的開發者使出了千方百計來避免玩家產生違和感。

以荒野大鏢客2為例,由于R星將immersive作為其開發的首要原則,導致其花費了8年時間,為游戲世界添加了無數的邏輯與細節,整個開發花費近5.4億刀,可見其難度與成本。

「大模型的普及可能改變這一現狀」

大模型可以為游戲世界的運行與NPC的行為提供邏輯,幫助游戲理解玩家的行為,讓游戲世界在可信的狀態下穩定運行。由此從根本上提升玩家的沉浸感。

1.具體點,將LLM用在游戲里需要幾步?

我們把LLM在游戲中的應用分為兩部分:

  • World:與游戲環境的交互
  • Agent:與NPC的交互 具體來說:

World中包含:

  • 游戲的世界觀
  • 地圖上具體的地點

Agent則包括:

  • Persona:人物性格
  • Memory:NPC記憶
  • Planning:決定NPC將要采取哪些動作(Action)

2. 讓LLM理解游戲世界與環境

為了讓ChatGPT理解我們游戲的世界觀,我們引入一段Prompt:

export const worldHistory =
  `你所在的大陸名為“大唐王朝”。這是一個神話與現實交織的世界。
  主島上有五個重要的地點。最大的是“長安城”,是國家的政治、經濟和文化中心,城墻之內有各種店鋪和廟宇。
  接著是“五指山”,孫悟空曾被壓在此山下。
  此外還有“草廟村”,“高老莊”和“女兒村”,這些地方都是唐僧和他的徒弟們在旅程中遇到的挑戰和冒險。
  東邊的小島上則是一個隱秘的佛教圣地,稱為“靈山”,這是四人取經的終點。
  兩個島嶼間有一座長長的橋梁,名為“通天河”,是由沙僧的金箍棒變化而成。
  `;
export const worldKnowledge = "";

為了讓NPC和玩家得以與地圖上的地點/物品互動,我們需要提供所有物品與地點的描述:

222: {
    description: `位于主島的西北邊緣。西面是汪洋大海,東面則是高原的懸崖。周圍有幾棵樹和一片怪物出沒的長草地。往南則是長安城的方向。`,
    mapId: 222,
  },
  254: {
    description: `位于主島的東北邊緣。東面是海洋,西面是高原的懸崖。附近有幾棵樹和常有妖怪出沒的長草地。長安城就在南邊。`,
    mapId: 254,
  },
  188: {
    description: `是高原上的森林區。森林里樹木茂密,有幾片怪物常出沒的長草地。長安城就在南邊。`,
    mapId: 188,
  },
  190: {
    description: `位于高原的一片森林中。你正站在一個維護得相當好的小木屋前。四周是茂密的樹木和怪物常出沒的草地。長安城就在南邊。`,
    mapId: 190,
  },
  220: {
    description: `長安城,主島上的城鎮。`,
    mapId: 220,
  },
.......

上述Prompts為地圖的每個塊都提供了文字描述,從而得以讓ChatGPT理解地圖上的每個地點:

實現了個ChatGPT趨動的游戲,玩得樂此不疲-AI.x社區

完整地圖

具體的實現里,我們實際上需要為「所有的游戲貼圖」都提供一段文字描述!

3. 讓LLM驅動NPC

首先,我們要讓LLM知道他現在正在扮演一個NPC:

export const npcSharedPrompt = `你正在扮演“西游記”中的一個角色。
這是一個2D的神話世界,玩家和你都可以在這片大陸上進行探索。
你可以與其他的角色交流,如唐僧、孫悟空、豬八戒和沙僧,
并與妖怪發起戰斗、參觀村莊或神廟、購買法寶或草藥。
在這個世界里,與妖怪的戰斗是旅程的一部分,但目標是取得真經,使世界充滿和平。
妖怪雖然兇惡,但并不是絕對的惡,與他們戰斗既是為了保護自己,也是希望能夠教化他們。
你的角色不知道現實世界的存在,只知道他在這神話的旅程中的使命。`;

接下來,我們設計一系列NPC:

{
    id: 1,
    name: "唐僧",
    description: "唐僧,本名唐三藏,是中國古典小說《西游記》中的主要人物之一。他是一個決心強烈、智慧和信念的僧人,出發去西天取經。",
    age: 40,
    starSign: "pisces",
    money: 100,
    items: ["jingwulian"],
    personalHistory: `你是唐僧,一個被派來從印度取經的僧人。你的任務是獲取佛教經文,將它們帶回中國。`,
    personalKnowledge: "你知道你的三個徒弟:孫悟空、豬八戒和沙和尚。他們各自都有獨特的能力和歷史。",
    conversation: new ConversationModel(),
    startingPos: new Vec2(32, 38),
    upSprites: TypedAssets.spriteSheets.momup,
    downSprites: TypedAssets.spriteSheets.momdown,
    leftSprites: TypedAssets.spriteSheets.momleft,
    rightSprites: TypedAssets.spriteSheets.momright,
  }
{
    id: 2,
    name: "女兒國國王",
    description: "女兒國國王是《西游記》中的一個角色。她是女兒國的統治者,對唐僧產生了濃厚的興趣。",
    age: 35,
    starSign: "virgo",
    money: 500,
    items: ["elixir of life"],
    personalHistory: `你是女兒國的國王,你的國家只有女性。當你聽說了唐僧的到來,你決定要與他結婚。`,
    personalKnowledge: "你知道唐僧是一個高貴的和尚,他正在進行取經之旅。",
    conversation: new ConversationModel(),
    startingPos: new Vec2(23, 47),
    upSprites: TypedAssets.spriteSheets.carolup,
    downSprites: TypedAssets.spriteSheets.caroldown,
    leftSprites: TypedAssets.spriteSheets.carolleft,
    rightSprites: TypedAssets.spriteSheets.carolright,
  },
  {
    id: 3,
    name: "牛魔王",
....

每個NPC的核心在于:

  • 其獨特的人格 - 我們引入了一系列屬性來定制其人格:description,personal history,personal knowledge,年齡,星座等等。
  • 一系列可以與玩家交互的屬性/道具:錢,道具(items)。
  • 記憶:我們在這就用每個NPC的對話記錄作為其所有的記憶。當然還可以把NPC之前的所有action也加入記憶。

實現了個ChatGPT趨動的游戲,玩得樂此不疲-AI.x社區

人格驅使角色提供定制的對話

實現了個ChatGPT趨動的游戲,玩得樂此不疲-AI.x社區

有時候的對話甚至會自帶旁白

實現NPC與玩家的互動 - 對話:

為了讓ChatGPT給出定制的對話,我們需要提供的包括:

const fullPrompt = generalContent + personalContent + currentState;

也就是:general - 世界觀,personal - NPC的人格和記憶,current - 當前的游戲進度。

  1. generalContent:

const generalContent = npcSharedPrompt + worldHistory + worldKnowledge;`

告知ChatGPT本次調用的任務,世界觀背景等。

  1. personalContent

const personalContent = ` Your name is ${npc.name}, ${npc.age} years old, you have the personality of a ${npc.starSign}. 
   You have ${npc.money} fictional dollars. ${npc.personalHistory} ${npc.personalKnowledge} 
   ${storySoFar}
   `;

提供了NPC的個人信息和人格(例如年齡,歷史,知識),與NPC的記憶(storySoFar)

  1. currentState

const prompt = ` ${timeMsg} at ${envDescription}, What would ${npc.name} say to 悟空? (Keep the response short and just the words your character says)`

當前的游戲時間,角色所在的位置等。

實現NPC與玩家的互動 - 動作:

content: `悟空 replies "${replyText}". What would you like to do?
         1: 讓悟空跟著你,
         2: 你向他告別,
         3: 繼續當前對話,
   Pick an action from the list above. respond with just the number for the action`,
}];

我們為NPC提供一系列可選擇的工作,ChatGPT將決定NPC的下一步行動。這里的prompt同樣包含了位置,時間,對話歷史等信息,但為了簡潔暫略去。

實現了個ChatGPT趨動的游戲,玩得樂此不疲-AI.x社區

這里ChatGPT讓牛魔王帶領孫悟空前往下一地點

實現NPC的記憶 - 讓NPC記住和玩家的所有互動對話:

  1. 每次NPC與玩家對話后,ChatGPT將生成本次對話的重點(也就是摘要):

// summarize conversation
const summary = await this.summarizeConversation(conversation, endConversationText);
  1. 把本次對話重點加入歷史對話:

const updatedConversation: IConversationModel = {
      isActive: false,
      history: [...conversation.history, { msg: `Conversation summary: ${summary}` }],
      messages: [],
    };

實現了個ChatGPT趨動的游戲,玩得樂此不疲-AI.x社區

在之前發生劇情之后,牛魔王根據記憶選擇用「真經」來發起對話

與NPC的道具互動

實現了個ChatGPT趨動的游戲,玩得樂此不疲-AI.x社區

問八戒要點餅子吃

避免NPC/玩家搞花活導致產生風險內容

這里我們讓ChatGPT來判斷玩家/NPC的回復是否特別離譜,如果特別離譜則應拒絕正經回答!

private async validateReply(replyText: string, conversation: IConversationModel): Promise<ChatNumberResponse> {
    const promptMsgs: GptMessage[] = [...this.mapToGptMessages(conversation), {
      role: "user",
      content: `悟空 replies "${replyText}". Does his response make sense. On this scale of 1 to 5, 
                1: Response is non-sensical,
                2: Response is immersion breaking or meta and acknowledging this is a game,
                3. Reponse is bad, unnecessarily vulgar for no reason based on the past conversation
                4: Response is all right, and something someone might say but unlikely,
                5: Response is good and mostly in context of the game world,
        how would you rate the response, give a one sentence reason why`,
    }];

實現了個ChatGPT趨動的游戲,玩得樂此不疲-AI.x社區

想打聽私人信息,門都沒有!

其他還有很多細節,很難在這里展示所有的feature,歡迎查看代碼。

總結

本人對LLM在游戲中的使用十分樂觀,這么簡單的demo我樂此不疲的玩了很久。從技術上來說,這個demo整體的框架還算比較完整,很適合在此基礎上刪刪改改,實驗各種agent的方法和prompt等。此外由于demo是用react實現,這里推薦大家觀看2小時的react入門視頻,從而無縫上手。

本文轉載自 ??NLP工作站??,作者: 李雨承

收藏
回復
舉報
回復
相關推薦
日韩毛片一区二区三区| 在线精品一区二区三区| 蜜臀av国内免费精品久久久夜夜| 成人免费毛片aaaaa**| 98精品国产自产在线观看| 中文字幕成人动漫| 国产精品欧美一区二区三区不卡| 亚洲成国产人片在线观看| 欧美色欧美亚洲另类七区| 中文字幕在线日亚洲9| 好吊日精品视频| 中文精品99久久国产香蕉| 亚洲av无码专区在线播放中文| 综合在线影院| 亚洲国产一区二区三区青草影视| 日本一区二区精品| 日本激情一区二区| 国产一区欧美一区| 欧美一区二区三区免费视频| 国产91在线亚洲| 青青草超碰在线| 国产mv日韩mv欧美| 国产欧美在线视频| 国产婷婷色一区二区在线观看| 午夜天堂精品久久久久| 中文字幕日韩专区| 三级网站在线免费观看| 精品丝袜久久| 精品国产免费人成电影在线观看四季| 五月天亚洲视频| 在线观看特色大片免费视频| 亚洲永久免费视频| 一区二区视频在线播放| 美州a亚洲一视本频v色道| 成人黄色在线网站| 99在线看视频| 99久久久国产精品无码网爆| 全国精品久久少妇| 国产成人精品久久久| 欧美三级一区二区三区| 国产一区二区三区自拍| 久久婷婷国产麻豆91天堂| 欧美自拍偷拍网| 欧美在线电影| 国产一区二区三区日韩欧美| 日本一级免费视频| 免费成人网www| 国产午夜精品麻豆| 亚洲精品理论片| 露出调教综合另类| 亚洲精品理论电影| 国产熟妇搡bbbb搡bbbb| 久久99免费视频| 亚洲小视频在线观看| 蜜桃无码一区二区三区| 精品freesex老太交| 亚洲丝袜在线视频| 欧美激情 一区| 99久久久久| 久久久久www| 五月婷婷一区二区| 影音先锋一区| 欧美中文字幕第一页| 日产精品久久久| 快she精品国产999| 国产精品丝袜一区二区三区| 中文字幕一二三四| 狠狠色丁香九九婷婷综合五月| 成人网页在线免费观看| www.午夜激情| 成人h动漫精品一区二| 精品视频第一区| 国产午夜在线观看| 亚洲欧美在线aaa| 免费网站永久免费观看| av资源在线看片| 色琪琪一区二区三区亚洲区| 一区二区三区网址| 欧美大片91| 亚洲剧情一区二区| 五月天免费网站| 很黄很黄激情成人| 日本久久中文字幕| 国产人妻精品一区二区三| 岛国一区二区在线观看| 欧美在线视频二区| 2024最新电影在线免费观看| 欧美日韩亚洲一区二区| 色播五月激情五月| 欧美理论电影在线精品| 精品国产欧美一区二区三区成人| 免费无码毛片一区二区app| 国产日本精品| 91深夜福利视频| 色综合久久网女同蕾丝边| 国产精品高潮久久久久无| 成年丰满熟妇午夜免费视频| 都市激情综合| 日韩欧美高清一区| 国产一二三四区在线| 综合久久久久| 国产精品ⅴa在线观看h| 性一交一乱一乱一视频| 欧美激情资源网| 免费视频爱爱太爽了| 精品肉辣文txt下载| 日韩欧美中文一区| a资源在线观看| 宅男噜噜噜66一区二区| 91亚洲精品在线| 国产视频精选在线| 婷婷亚洲久悠悠色悠在线播放| 亚洲欧美国产中文| 亚洲精品白浆高清| 欧美国产欧美亚洲国产日韩mv天天看完整| 无码人妻丰满熟妇区五十路| 成人国产精品免费观看视频| 亚洲午夜高清视频| 日韩欧美一区二区三区免费观看 | 久久久综合网站| 激情图片qvod| 欧美久久久网站| 亚洲人成亚洲人成在线观看| 日韩精品国产一区二区| 国产成人日日夜夜| 超碰97免费观看| 色婷婷成人网| 色先锋资源久久综合5566| 欧美特黄aaaaaa| 99re亚洲国产精品| 青草青青在线视频| 2021年精品国产福利在线| 久热精品在线视频| 国产精品久久久久久久免费| 国产欧美精品一区aⅴ影院| 免费av网址在线| 日韩福利视频一区| 性欧美视频videos6一9| 黄色av网站免费在线观看| 一区二区三区四区在线播放 | 国产伦理久久久久久妇女| 欧美久久久精品| 999免费视频| 一区二区三区.www| 99国产精品免费视频| 欧美一区二区三区免费看| 91丨九色丨国产| 青春草在线免费视频| 日韩欧美国产一二三区| 劲爆欧美第一页| 国产91精品入口| 国产美女主播在线播放 | 狠狠色丁香婷综合久久| 黄频视频在线观看| 国产精品久久久久久久久久久久久久久 | av在线电影免费观看| 欧美在线免费观看视频| 韩国三级hd中文字幕| 免费成人在线视频观看| 亚洲精品在线免费| 国产成年精品| 欧美黑人极品猛少妇色xxxxx | 亚洲免费伊人电影在线观看av| 国产污污视频在线观看| 久久久亚洲高清| 污色网站在线观看| 亚洲欧美文学| 免费久久久一本精品久久区| 日韩久久一区二区三区| 日韩综合视频在线观看| 成 人 免费 黄 色| 欧美日韩国产专区| 青青操在线播放| 国产成人超碰人人澡人人澡| 9久久9毛片又大又硬又粗| 精品久久久久中文字幕小说| 国产男人精品视频| 国产区美女在线| 亚洲一区二区久久| 精品人妻av一区二区三区| 午夜电影网一区| 中文字幕第24页| 国产精品综合一区二区三区| 成人免费aaa| 日韩毛片视频| 高清国产在线一区| 欧美私密网站| 久久久国产在线视频| 天天操天天射天天| 欧美日韩亚洲综合一区二区三区| 激情小说中文字幕| 亚洲国产精品国自产拍av| 中文字幕第10页| 老牛嫩草一区二区三区日本| 成人毛片100部免费看| 亚洲男人都懂第一日本| 51国产成人精品午夜福中文下载| 亚洲国产福利| 欧美交受高潮1| 免费av不卡| 亚洲视频在线播放| 日本免费一区视频| 3d动漫精品啪啪1区2区免费 | 夜夜嗨av一区二区三区网站四季av| 五月天丁香综合久久国产| 66精品视频在线观看| 国产在线观看91精品一区| 大菠萝精品导航| 久久资源免费视频| 国产三级视频在线看| 亚洲第一精品电影| www.久久伊人| 3atv一区二区三区| 中文字幕一区二区三区人妻四季| 婷婷一区二区三区| 久草网视频在线观看| 中文字幕一区在线| 公侵犯人妻一区二区三区| 成人免费看视频| 中文字幕人妻熟女人妻a片| 美女免费视频一区| 日韩中文字幕免费在线| 国产亚洲高清视频| 黄页网站大全在线观看| 国内精品久久久久久久影视麻豆| 一区二区三区在线视频看| 国产精品羞羞答答在线观看| 精品午夜一区二区三区| aaa国产精品视频| dy888夜精品国产专区| 国产一区2区在线观看| 国产剧情日韩欧美| 巨胸喷奶水www久久久| 欧美最顶级丰满的aⅴ艳星| av剧情在线观看| 性欧美暴力猛交69hd| 98色花堂精品视频在线观看| 久久露脸国产精品| 51漫画成人app入口| 久久久人成影片一区二区三区| 羞羞的视频在线看| 久久99精品视频一区97| 在线中文字幕-区二区三区四区| 精品国产一区二区三区四区在线观看 | av网站中文字幕| 欧美日韩中文在线| 伊人中文字幕在线观看| 91激情五月电影| 国产精品露脸视频| 777xxx欧美| 亚洲av无码国产综合专区| 日韩欧美一区二区久久婷婷| www.天天干.com| 亚洲精品电影久久久| 欧美高清成人| 亚洲欧洲在线观看| 永久免费av在线| 色综合久久88| 高清毛片在线观看| 日韩免费av片在线观看| 国产精品麻豆成人av电影艾秋| 91日韩在线播放| 久久久久97| 日韩欧美视频一区二区三区四区| 日韩国产一区| 国产激情在线看| 亚洲精品综合| 欧美男女交配视频| 国产成人精品在线看| 丰满大乳奶做爰ⅹxx视频| 国产人成一区二区三区影院| www深夜成人a√在线| 亚洲一二三四在线| 波多野结衣日韩| 91精品国产全国免费观看| 色婷婷综合视频| 中文字幕亚洲一区二区三区| av网站在线免费看推荐| 8090成年在线看片午夜| 粉嫩av一区二区三区四区五区 | 亚洲精品成人无限看| www.日本在线播放| 日本不卡视频在线观看| 免费黄视频在线观看| 久久免费美女视频| 欧美黄色aaa| 欧美三级xxx| 国产免费一区二区三区免费视频| 亚洲国产精品va在线| 69久久夜色| 午夜精品一区二区三区在线视| 懂色aⅴ精品一区二区三区| 国产乱码精品一区二区三区中文 | 日韩专区在线观看| 九九精品调教| 国产精品久久久久一区二区| 三级欧美日韩| 亚洲国产欧美日韩| 亚洲天堂激情| 在线播放免费视频| 国产亚洲一二三区| 久久久全国免费视频| 欧美色视频一区| 免费在线一级视频| 97精品一区二区三区| 91精品亚洲一区在线观看| 欧美大香线蕉线伊人久久| 欧美日本中文| 夜夜夜夜夜夜操| 久久久久国产精品人| 国产在线观看免费视频今夜| 欧美色图片你懂的| 黄色小视频在线免费观看| 97香蕉超级碰碰久久免费软件| 国产精品亚洲欧美日韩一区在线| 日韩欧美三级电影| 蜜桃久久av| 免费的av网站| 亚洲午夜电影在线| av中文字幕免费在线观看| 在线视频欧美日韩| 欧美色999| 欧美二区在线看| 性欧美长视频| 国产ts丝袜人妖系列视频| 亚洲国产综合91精品麻豆| 国产91视频在线| 久久视频免费观看| 四虎国产精品免费久久5151| 亚洲国产精品一区二区第一页| 爽好多水快深点欧美视频| av无码av天天av天天爽| 欧美日韩国产精品专区 | 亚洲一级大片| 成人在线观看毛片| 国产高清无密码一区二区三区| 久久久久久久久久97| 欧美日韩国产综合久久 | 欧美丝袜激情| 天天操天天摸天天爽| 国产日本欧美一区二区| 欧美高清69hd| 日韩中文字幕欧美| 成人国产精品久久| 无码毛片aaa在线| 粉嫩久久99精品久久久久久夜| 午夜爱爱毛片xxxx视频免费看| 777午夜精品免费视频| 动漫一区在线| av资源一区二区| 亚洲一区二区三区四区五区午夜| 好吊一区二区三区视频| 色婷婷精品大在线视频| 草碰在线视频| 亚洲精品免费一区二区三区| 午夜精品婷婷| 成人免费无码大片a毛片| 一本大道久久a久久综合婷婷| 麻豆国产在线播放| 国产女精品视频网站免费| 欧美日韩网址| 在线观看国产免费视频| 色8久久精品久久久久久蜜| 91在线视频| 91精品国产一区二区三区动漫| 亚洲人人精品| 国产三级在线观看完整版| 777欧美精品| 涩涩视频在线| 中文字幕成人一区| 国产成人免费视频精品含羞草妖精 | 国产在线中文字幕| 成人国产精品av| 亚洲欧洲一区| 强制高潮抽搐sm调教高h| 亚洲成人久久电影| 国产精品久久久久av电视剧| 一级黄色录像免费看| av资源网一区| 国产在成人精品线拍偷自揄拍| 国精产品一区一区三区有限在线| 免费一区二区| 久久精品一二三四| 色婷婷激情综合| mm1313亚洲国产精品美女| 久久人人九九| 国产精品一级黄| 国产日韩久久久| 久久免费国产精品1| 欧美肉体xxxx裸体137大胆| 亚洲欧美日韩中文字幕在线观看| 欧美性xxxxx| 美女网站视频在线| 亚洲蜜桃av| 2020国产精品| 亚洲国产剧情在线观看| 国产精品白丝jk喷水视频一区| 欧美日韩hd| 992在线观看| 亚洲区中文字幕|