AI大模型赋能游戏:更智能、更个性化的NPC
参考论文:https://arxiv.org/abs/2403.10249
在传统游戏中,NPC(非玩家角色)的行为往往是预先设定好的,缺乏灵活性和变化性。然而,基于大模型的NPC可以利用其强大的推理和学习能力,实时生成对话和行为,使其看起来更加真实和多样化。
随着大模型技术不断进步,它们在游戏中的应用变得越来越广泛和深远。从简单的角色对话到复杂的游戏策略,这些模型正在逐步改变我们对游戏的理解和体验。本文将从技术层面深入探讨大模型如何应用到游戏中。
人类是如何玩游戏的?
在思考如何让大模型玩游戏之前,让我们先来想一想人类是如何玩游戏的。
在游戏的过程中,人类大脑首先将感官信息转化为对游戏世界的感知表征,接着利用这些表征构建关于游戏环境的知识,并基于这些知识做出推理,最后通过行动来实现游戏中的操作。这一系列步骤可以概括为感知、推理和行动的循环过程。
下面我们以经典的游戏《塞尔达传说:旷野之息》为例,看看这个过程是如何展开的。
感知:解析游戏世界
在《旷野之息》中,玩家首先需要通过视觉、听觉等感官信息来感知周围的游戏环境。例如,玩家注意到敌人的位置、道具的分布,以及环境中的天气变化。这些信息会被大脑处理,转化为对游戏世界的理解。早期的游戏可能只要求玩家理解文本指令,而如今,游戏已经发展到需要玩家同时处理多模态信息,比如理解风向对箭矢轨迹的影响,或是辨别不同敌人的攻击模式。
推理:制定最佳策略
推理的过程涉及多个步骤,包括记忆、学习、推理、反思和决策。例如,玩家需要记住之前遇到的敌人行为模式,学习如何有效地避开攻击或寻找弱点。推理则帮助玩家在面对复杂情况时做出最佳决策,比如在敌人围攻时,玩家可能会评估使用炸弹、剑攻击还是躲避的最佳时机。而这些推理往往不是单线的,而是多跳推理——玩家需要同时考虑敌人的位置、自己的生命值、环境因素等多个变量,才能制定出最佳的战斗策略。
行动:执行与反馈循环
在推理之后,玩家会根据自己的判断采取行动,比如决定用剑击打敌人、在悬崖边使用滑翔伞逃脱,或者在寒冷的山峰穿上御寒衣物。在《旷野之息》中,行动的反馈直接影响玩家的下一步决策,比如敌人的反击、天气变化或是玩家体力的消耗,都需要玩家及时调整策略。
AI大模型如何玩游戏?
在理解了人类如何玩游戏之后,我们来探讨一下AI大模型是如何玩游戏的。AI大模型的游戏过程同样可以抽象为agent智能体的迭代过程:感知、推理和行动。
多模态感知:游戏世界更为沉浸
多模态感知是游戏大模型理解和互动的核心能力之一,它通过整合不同类型的信息(如视觉、语义和音频)来构建更具沉浸感的游戏体验。
- 语义感知
语义感知主要涉及对游戏文本元素的理解,如自然语言指令和对话。玩家通过解读这些文本信息来了解游戏中的环境、角色和事件,从而做出相应的决策。
语义感知可以进一步细分为以下几类:
- 简单文本输入:包括用户的简单描述、游戏状态和角色对话。
- 结构化或角色输入:涉及角色属性、故事背景及技能信息。
- 环境和上下文输入:指详细的游戏描述及任务指令,这些信息帮助玩家理解当前场景。
- 多模态输入:整合视觉、听觉和文本数据来做出更复杂的决策,并实现丰富的互动。
- 视觉感知
视觉感知是大模型处理游戏中图像信息的能力。然而,仅依赖将视觉数据转化为文本可能会导致重要信息的丢失,从而影响大模型NPC在游戏中的表现。
为了提升视觉感知能力,使用多模态大语言模型(MLLMs)是一种有效的方法。MLLMs能够整合视觉与其他感官数据,提升大模型NPC对游戏世界的理解和决策能力。
复杂推理与决策:NPC变得更“聪明”
在AI大模型游戏中,NPC的智能化体现在其复杂的推理与决策能力上。为了实现这一点,大模型模型需要具备知识存储和检索、进行推理和做出决策的综合能力。
- 知识存储和检索
为了正确地表示学习到的知识或过去事件,并在推理中使用这些信息,一个NPC需要有效地操作这些"记忆”。这就要求对游戏大模型设计一种高质量的记忆机制,使NPC能够有效存储和检索记忆。
例如,如果一个模型被用于模拟护士NPC的角色,大模型应了解包含医疗常识、病人交流的指南,以及诊断和治疗的标准流程。这使得模型能够在模拟或实际情境中更加有效和适应性地行动。
然而,这些知识可能不总是与特定的游戏场景等应用情境完全一致。因此,当前的研究旨在通过以下方式增强语言模型的常识性理解:
- 通过指令微调将结构化的知识嵌入。
- 使用SOP将常识集成到特定的角色和任务中。
- 使用RAG(检索增强生成)。
- 将详细的角色资料通过prompt输入大模型中。
- 使用知识图谱用于描述实体之间的关系。
- 进行推理和做出决策
大模型NPC的学习推理过程包括解释和整合各种来源的信息,以适应新的游戏场景。学习可以是显式的,通过特定数据集进行微调;也可以是隐式的,通过利用现有知识适应新情况。结合反馈和强化学习,大模型NPC能够通过环境交互优化行为,从而更好地适应游戏世界。
在复杂的游戏环境中,大模型NPC需要做出多层次的决策,这通常包括多跳推理和长期规划。多跳推理要求大模型NPC在做出决策前考虑多层信息和依赖关系,例如预测对手的动作并评估各种行动的潜在结果。长期规划则涉及设定长期目标,并通过一系列策略行动来实现这些目标。
持续行动与反思:NPC越来越“人类”
在游戏中,大模型NPC不仅需要做出即时的反应,还要能够持续行动和反思,以应对复杂的游戏环境,NPC的行为变得更加智能和人性化。
- 行动
在游戏中,NPC的行动空间可以分为三种类型:
- 基于文本互动:NPC通过文本与玩家或环境进行互动,解释和响应玩家的输入。
- 使用API互动:通过API,NPC能够获取或发送信息,控制游戏中的各种元素。
- 通过IO操作直接控制:例如使用键盘、鼠标等设备,直接影响游戏中的行为和操作。
- 反思
反思是指NPC评估和调整自身行为的能力。通过利用外部反馈和不断优化计划,NPC能够在游戏过程中不断改进。特别是在多智能体系统中,NPC需要与其他角色协作,重新评估和调整其决策,以更好地适应游戏环境。
通过持续行动与反思,NPC变得越来越接近人类,使游戏体验更为真实和动态。
大模型游戏未来展望
随着生成式AI和大模型的快速崛起,我们离NPC与游戏世界深度互动的梦想越来越近。《失控玩家》中,NPC逐渐觉醒,拥有了自主意识和情感的设定,为我们描绘了一个充满可能性的未来。虽然目前的技术还存在许多需要改进的地方,但通过引入能够理解和响应玩家的AI大模型,游戏世界将不再是单纯的虚拟场景,而是一个有感知、有情感的交互空间。
展望未来,AI大模型或许会彻底改变游戏产业的格局。它不仅为游戏创造带来了全新的可能性,还可能重新定义游戏与玩家之间的关系。在不久的将来,我们可能会看到一个更加智能化、更加人性化的游戏世界,在这个世界里,玩家不再是孤独的冒险者,而是与“有灵魂”的NPC共同编织梦境的创作者。
相关文章:
AI大模型赋能游戏:更智能、更个性化的NPC
参考论文:https://arxiv.org/abs/2403.10249 在传统游戏中,NPC(非玩家角色)的行为往往是预先设定好的,缺乏灵活性和变化性。然而,基于大模型的NPC可以利用其强大的推理和学习能力,实时生成对话…...
pymysql的上下文管理器:简化数据库操作
pymysql的上下文管理器:简化数据库操作 当我们使用 pymysql 操作数据库时,管理数据库连接和游标的生命周期是一项重要的任务。Python 的上下文管理器提供了一种优雅的方式来处理资源的获取和释放。在本文中,我们将探索如何创建一个简单的 py…...
AI秘境-墨小黑奇遇记 - 修炼成神经(二)
在解开了感知机和门电路的谜题后,墨小黑对人工智能的世界渐渐产生了浓厚的兴趣。他开始意识到,自己不仅是在学习一门复杂的技术,更是在探索一个充满未知与挑战的神秘领域。 入夜,墨小黑一脸无奈地盯着电脑屏幕,思考着自…...
计算机网络之分组交换时延的计算
一.类型 分组交换的时延包括一下几种: 1.1发送时延 发送时延,也叫传输时延,结点将分组的所有比特推向链路所需要的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完为止。 发送时延 分组长度 / 发…...
虚幻5|入门AI行为树,建立敌人
本章分成两块部分一块是第一点的制作一个简单的AI,后面第二点之后是第二部分建立ai行为树。这两个部分是一个衔接,最好不要跳看 一,制作一个简单的AI 1.首先,我们创建一个敌人的角色蓝图,添加一个场景组件widget用于…...
ARM处理架构中的PMU(Performance Monitoring Unit)和 AMU(Activity Monitors Unit)简介
在 ARM 架构中,PMU(Performance Monitoring Unit)和 AMU(Activity Monitors Unit)是用于性能分析和监控的硬件单元,但它们的功能和应用场景有所不同。以下是它们的主要区别: 1. PMU (Performance Monitoring Unit) 功能:PMU 是一种用于监控处理器性能的硬件单元。它可…...
Service服务在Android中的使用
目录 一,Service简介 二,Service的两种启动方式 1,非绑定式启动Service 2,绑定式启动Service 三,Service的生命周期 1,非绑定式Service的生命周期 2,绑定式Service的生命周期 四…...
浅谈C语言位段
1、位段的定义 百度百科中是这样解释位段的: 位段,C语言允许在一个结构体中以位为单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段”或称“位域”( bit field) 。利用位段能够用较少的位数存储数据。 以下,我们均在VS2022的…...
arcgisserver登陆信息不正确
密码明明对,但是登录提示登录信息不正确 Arcgis server 9.3.1 无法登录ArcGIS Manager 提示Incorrect Login Information 操作系统windows 2008 x64server 解决办法: 关闭window防火墙解决。 如果防火墙已经关闭: 通过修改用户口令后就可以重…...
KOLA: CAREFULLY BENCHMARKING WORLD KNOWLEDGE OF LARGE LANGUAGE MODELS
文章目录 题目摘要简介KOLA 基准实验评估结论和未来工作道德声明 题目 KOLA:仔细对大型语言模型的世界知识进行基准测试 论文地址:https://arxiv.org/abs/2306.09296 项目地址:https://github.com/ranahaani/GNews 摘要 大型语言模型 (LLM) 的卓越性能要求评估方法…...
Robot Operating System——机器人关节的角度、速度和力矩
大纲 应用场景定义字段解释 案例 sensor_msgs::msg::JointState 是 ROS (Robot Operating System) 中的一个消息类型,用于表示机器人关节的状态信息。它通常用于传输和处理机器人关节的角度、速度和力矩等信息。 应用场景 机器人控制 关节控制:在机器人…...
一分钟掌握java9新特性
try-with-resources语句 /** * 在处理必须关闭的资源时,使用try-with-resources语句替代try-finally语句。 生成的代码更简洁,更清晰,并且生成的异常更有用 * java9 之前写法 */ public static String readFile1(String fileName){ tr…...
89. UE5 RPG 实现伤害 冷却 消耗技能描述
在上一篇文章里,我们能够通过富文本显示多种格式的文字,并显示技能描述。在这一篇文章里,我们继续优化技能描述,将技能说需要显示的内容显示出来。 实现火球术的基础描述 首先,我们现实现火球术的基础描述࿰…...
el-tree树状控件,定位到选中的节点的位置
效果图 在el-tree 控件加 :render-content"renderContent" 在掉接口的方法中 实际有用的是setTimeout 方法和this.$refs.xxxxxx.setCheckedKeys([industrycodeList]) if(res.data.swindustrylist.length>0){res.data.swindustrylist.forEach(item > {industry…...
YOLO目标检测的单目(多目标测距),使用相机光学模型,支持目标检测模型训练,可输出目标位置和距离信息并可视化
本项目旨在开发一个基于YOLO的目标检测系统,该系统不仅能检测图像中的多个目标,还能利用单目摄像头的图像估计每个目标与摄像头之间的相对距离。系统的核心组成部分包括目标检测、距离估计、模型训练以及结果可视化。 主要功能 目标检测:使用…...
unity简易lua文件迁移工具
一. 了解商业游戏的Lua热更新开发方式 市面上的3种结合Lua热更新的开发方式 1.纯Lua开发(所有的游戏主要逻辑都用Lua实现) 好处:机动性强;坏处:代码效率略差 2.半C#,半Lua开发(核心逻辑C#开发…...
Elasticsearch中的自动补全功能详解与实践
简介 自动补全是现代搜索引擎中的一项重要功能,它能够根据用户的输入提供实时的建议,提高用户体验。Elasticsearch提供了Completion Suggester查询来实现这一功能。本文将详细介绍Elasticsearch中的自动补全功能,并提供详细的配置和查询示例…...
前端如何使用Nginx代理dist网页,代理websocket,代理后端
本文将指导您如何配置Nginx以代理前后端分离的项目,并特别说明了对WebSocket的代理设置。通过本教程,您将能够实现一次性配置,进而使项目能够在任意局域网服务器上部署,并可通过IP地址或域名访问服务。 笔者建议 先速览本文了解大…...
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. 问题解决
问题描述 原来我的服务器docker服务运行正常,但在某次尝试用时, 根据系统的错误提示执行了snap install docker指令之后, 再执行docker ps命令则提示Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running…...
零基础学习Redis(2) -- Redis安装与配置
Redis官方是并不支持Windows系统的,并且现在绝大部分公司都是使用的Linux,所以我们在Linux上进行安装,这里我使用的是Ubuntu 1. 安装步骤 1. 首先使用工具连接到我们的云服务器,然后输入apt指令搜索redis相关的软件包࿱…...
UniApp第一天
一、官网介绍 1.1、 SDK SDK是"Software Development Kit"的缩写,中文意思是“软件开发工具包”。SDK通常是由软件开发者为其他开发者提供的一个软件工具集合,用于帮助开发者快速开发、测试和部署软件应用。SDK通常包含了一系列的开发工具、库…...
TLE4966-3G带方向检测功能的高灵敏度汽车霍尔开关
TLE4966-3G是一款集成电路双霍尔效应传感器,专为使用旋转极轮的高精度应用而设计。通过片上有源补偿电路和斩波器技术实现精确的磁切换点和高温稳定性。 该传感器在Q2提供速度输出,其状态(高或低)与磁场值相对应。对于超过阈值BO…...
Github 2024-08-14 C开源项目日报Top10
根据Github Trendings的统计,今日(2024-08-14统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目10Objective-C项目1PHP项目1Python项目1PHP:流行的Web开发脚本语言 创建周期:4710 天开发语言:C, PHP协议类型:OtherStar数量:37340 …...
飞桨Paddle API index_add 详解
index_add paddle.index_add(x, index, axis, value, nameNone)[源代码] 沿着指定轴 axis 将 index 中指定位置的 x 与 value 相加,并写入到结果 Tensor 中的对应位置。这里 index 是一个 1-D Tensor。除 axis 轴外,返回的 Tensor 其余维度大小和输入 …...
后端代码练习1——加法计算器
1. 需求 输入两个整数,点击 “点击相加” 按钮,显示计算结果。 2.准备工作 创建Spring Boot项目,引入Spring Web依赖,把前端代码放入static目录下。 2.1 前端代码 <!DOCTYPE html> <html lang"en"> <h…...
观察者模式和MQ是什么关系
观察者模式(Observer Pattern)和MQ(Message Queue,消息队列)之间的关系主要体现在它们所实现的功能和机制上的相似性,尽管它们在技术实现和应用场景上有所不同。 观察者模式 观察者模式是一种行为型设计模…...
JDK动态代理和CGLIB动态代理案例分析
JDK动态代理和CGLIB动态代理案例分析 JDK动态代理和CGLIB动态代理的实现原理如下: JDK动态代理的实现原理: JDK动态代理是基于Java的反射机制实现的实现一个继承InvocationHandler接口的对象,重写invoke方法,invoke方法中可以在目…...
【数据结构-前缀哈希】力扣1124. 表现良好的最长时间段
给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大…...
电商平台产品ID|CDN与预渲染|前端边缘计算
技术实现 都是通过ID拿到属性,进行预渲染html,通过 oss 分发出去 详情页这种基本都是通过 ssr 渲染出来,然后上缓存 CDN 分发到边缘节点来处理,具体逻辑可以参考 淘宝——EdgeRoutine边缘计算(CDNServerless 边缘计算…...
LATTICE进阶篇DDR2--(4)DDR2 IP核总结
一、IP核的时钟框架 1片DDR2的接口是16位,且DDR2是双边沿读取的, 故当DDR2芯片的时钟为200M时,右侧DDR2芯片上的数据吞吐率为200M*2*16b,左侧数据吞吐率为200M*32b,左右两侧数据吞吐量相等。 根据上规律可知…...
杭州微网站建设/百度seo排名优化公司
Java开发中的23种设计模式详解(转) 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让…...
做综合医院网站/免费的个人网站html代码
Document.get获取记录数据,或获取根据查询条件筛选后的记录数据函数签名如下:function get(options?: object): Promise参数说明options 为可选参数,是一个如下格式的对象,如传入 success、fail、complete 三者之一,则…...
龙岗做商城网站建设/谷歌网页版登录入口
1.杭州 阿里,网易,京东网银,百度钱包,蘑菇街,丁香园 2 北京 360,美团转载于:https://www.cnblogs.com/dan-cnblogs/p/4700996.html...
想接外包做网站/百度网站统计
在使用Spring框架时 报错 :java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource 原因:为引入spring-aop-4.2.1.RELEASE.jar 包 解决方法:引入spring-aop-4.2.1.RELEASE.jar 包 即可解决转载于:https://www.cnblogs.com/…...
专做日淘的网站/最近三天的新闻大事摘抄
※ 写在前面Hi 各位,是我旅客君,又和大家见面了,大家还记得之前 MacBook 的体验评测吗?非常感谢大家对我的支持,这次就继续为大家带来这台 MacBook Pro 搭配显卡扩展坞的体验评测。如果还没有看过的可以先点击一下这个…...
南宁手机建站公司/淘宝关键词优化技巧教程
点击上方蓝字关注我们1前言曾几何时,”云”还是指天上飘的那一朵朵白色的雾团,现在互联网上家家都说自己是”xx云”。“云”这个词,已经被赋上了新的含义。其实真正在做”云”的企业没几家。这篇文章会告诉大家,究竟什么是”云”&…...