GptNPC

自然语言模型在游戏中的应用原型 - 以Minecraft为例

GptNPC是我最近设计和开发的一个自然语言模型应用原型。我在Minecraft中搭建了一个岛村场景,玩家可以自由地与所有岛民交谈、买卖物品、接受任务、查询信息。所有内容和动作均由 AI 动态生成,并受环境信息、NPC 和玩家状态的影响。

01 \ 关于项目

OpenAI已经开放了最新版本的模型gpt-3.5-turbo的API,模型拥有了标准化文本和上下文内容的能力。这意味着模型已经完全可以完成游戏中NPC的聊天交互。从这里开始,我制作了一个Minecraft服务器插件,希望能带来游戏中自然语言模型应用原型的快速预览。

1

之所以使用Minecraft作为制作平台,是因为我认为Minecraft与Roblox类似,是一个很合适的原型平台,有大量的预置物品和模型,创建模型,动作和对话也很容易。此外,作为一个多年的我的世界玩家和开发者,我对Minecraft相关的mod和插件开发非常熟悉,这也能带来快速的开发。在Minecraft中实现的内容,也可以被简单地移植到其他平台,比如Unity或Unreal。

1

让我们开始吧!

02 \ GptNPC: Minecraft 的 NPC 更加生动
村庄的地图,散布了拥有不同功能的岛民

游戏的场景被设置在一个岛屿上的村庄中,村庄里有许多村民,各自有不同的职业。每个村民也有不同的功能,玩家可以和他们沟通,向他们出售和购买物品,查询信息,并完成他们的请求。

该项目中的所有内容和行动都是由人工智能动态生成的,并受到环境信息、NPC和玩家状态的影响。根据设定,每个村民都有自己的故事背景、性格和爱好。在交流时,村民会通过上次见面的记忆和对环境的感知,结合他们现在所在的位置、天气、季节和其他信息与你聊天。

根据聊天的信息,村民会做出对应的动作,比如打招呼,点头和摇头。村民也会根据心情在对话中使用不同的表情符号。

购买商店中生成的商品

基于预先配置的物品清单,村民可以通过在对话中提及物品的买卖来设置商店物品清单,并打开商店的GUI,与玩家提供贸易。
与其相似,村民也有一个预先配置好的任务列表,包括对请求的物品数量,简短的描述和奖励。当玩家与村民在聊天中触发任务时,村民会向玩家布置这些请求。

NPC Kendrick的配置,作为一个变体,其配置很简单

整个原型使用一个简短的提示词列表作为背景设定。除此之外,原型还共享一个大的知识库,其中包含了游戏物品与知识的信息。当玩家向村民提出问题,或查询某件物品的用途时,村民可以根据知识库的内容向玩家提供答案。

03 \ 整体结构和处理流程

(点击查看完整流程图)

在这个原型中,不同的部分由许多不同的模型来实现,以达到效率和功能的最大化。

比如,需要上下文聊天功能的部分由gpt-turbo-3.5执行,而简单的对内容行为理解,对话内容总结的地方,则使用text-davinci-003,以获得更快的响应速度和更加节省开销。此外,知识库的查询和输出由langchain完成,langchain可以将内容按块储存,并根据需要输出。这可以进一步节省token资源,同时通过知识库信息作为背景,npc聊天的内容可以变得更加准确。

04 \ 关于未来: 与模型进行更深入的交流

这个项目是我在前往游戏开发者大会 2023前的两周时制作的,那个时候openai刚开放了gpt-turbo-3.5的API,这也激起了网络上大量对语言模型应用的各种讨论。ai无疑是本届GDC最火热的内容,所有人都在无可避免地接触和讨论这个话题,而我制作的这个项目作为一个简单和早期的应用,很好地展示了AI已经可以达到这样的程度。

尽管如此,这仍然只是对自然语言模型的一个浅显的使用。我们都已经看到了模型对我们语言的“理解”能力,同时模型也已经拥有很强大的信息处理能力。这些能力还没有完全地被我们使用,大部分人仍然在对AI的应用进行初步的探索。我能够想到的,就已经有很多有趣的功能可以被实现:与NPC讨价还价购买物品,通过说服NPC完成任务,将模型作为一个核心的决策状态机,输出更加丰富的情感和行为。在未来AI一定会为游戏行业产生巨大的改变,而这也是我现在不断努力进行探索的方向。

<< 返回首页