当前位置: 首页 > news >正文

AI大模型赋能游戏:更智能、更个性化的NPC

参考论文:https://arxiv.org/abs/2403.10249

在传统游戏中,NPC(非玩家角色)的行为往往是预先设定好的,缺乏灵活性和变化性。然而,基于大模型的NPC可以利用其强大的推理和学习能力,实时生成对话和行为,使其看起来更加真实和多样化。

随着大模型技术不断进步,它们在游戏中的应用变得越来越广泛和深远。从简单的角色对话到复杂的游戏策略,这些模型正在逐步改变我们对游戏的理解和体验。本文将从技术层面深入探讨大模型如何应用到游戏中。

人类是如何玩游戏的?

在思考如何让大模型玩游戏之前,让我们先来想一想人类是如何玩游戏的。

在游戏的过程中,人类大脑首先将感官信息转化为对游戏世界的感知表征,接着利用这些表征构建关于游戏环境的知识,并基于这些知识做出推理,最后通过行动来实现游戏中的操作。这一系列步骤可以概括为感知、推理和行动的循环过程。

下面我们以经典的游戏《塞尔达传说:旷野之息》为例,看看这个过程是如何展开的。

感知:解析游戏世界

在《旷野之息》中,玩家首先需要通过视觉、听觉等感官信息来感知周围的游戏环境。例如,玩家注意到敌人的位置、道具的分布,以及环境中的天气变化。这些信息会被大脑处理,转化为对游戏世界的理解。早期的游戏可能只要求玩家理解文本指令,而如今,游戏已经发展到需要玩家同时处理多模态信息,比如理解风向对箭矢轨迹的影响,或是辨别不同敌人的攻击模式。

推理:制定最佳策略

推理的过程涉及多个步骤,包括记忆、学习、推理、反思和决策。例如,玩家需要记住之前遇到的敌人行为模式,学习如何有效地避开攻击或寻找弱点。推理则帮助玩家在面对复杂情况时做出最佳决策,比如在敌人围攻时,玩家可能会评估使用炸弹、剑攻击还是躲避的最佳时机。而这些推理往往不是单线的,而是多跳推理——玩家需要同时考虑敌人的位置、自己的生命值、环境因素等多个变量,才能制定出最佳的战斗策略。

行动:执行与反馈循环

在推理之后,玩家会根据自己的判断采取行动,比如决定用剑击打敌人、在悬崖边使用滑翔伞逃脱,或者在寒冷的山峰穿上御寒衣物。在《旷野之息》中,行动的反馈直接影响玩家的下一步决策,比如敌人的反击、天气变化或是玩家体力的消耗,都需要玩家及时调整策略。

AI大模型如何玩游戏?

在理解了人类如何玩游戏之后,我们来探讨一下AI大模型是如何玩游戏的。AI大模型的游戏过程同样可以抽象为agent智能体的迭代过程:感知、推理和行动

多模态感知:游戏世界更为沉浸

多模态感知是游戏大模型理解和互动的核心能力之一,它通过整合不同类型的信息(如视觉、语义和音频)来构建更具沉浸感的游戏体验。

  1. 语义感知

语义感知主要涉及对游戏文本元素的理解,如自然语言指令和对话。玩家通过解读这些文本信息来了解游戏中的环境、角色和事件,从而做出相应的决策。

语义感知可以进一步细分为以下几类:

  • 简单文本输入:包括用户的简单描述、游戏状态和角色对话。
  • 结构化或角色输入:涉及角色属性、故事背景及技能信息。
  • 环境和上下文输入:指详细的游戏描述及任务指令,这些信息帮助玩家理解当前场景。
  • 多模态输入:整合视觉、听觉和文本数据来做出更复杂的决策,并实现丰富的互动。
  1. 视觉感知

视觉感知是大模型处理游戏中图像信息的能力。然而,仅依赖将视觉数据转化为文本可能会导致重要信息的丢失,从而影响大模型NPC在游戏中的表现。

为了提升视觉感知能力,使用多模态大语言模型(MLLMs)是一种有效的方法。MLLMs能够整合视觉与其他感官数据,提升大模型NPC对游戏世界的理解和决策能力。

复杂推理与决策:NPC变得更“聪明”

在AI大模型游戏中,NPC的智能化体现在其复杂的推理与决策能力上。为了实现这一点,大模型模型需要具备知识存储和检索、进行推理和做出决策的综合能力。

  1. 知识存储和检索

为了正确地表示学习到的知识或过去事件,并在推理中使用这些信息,一个NPC需要有效地操作这些"记忆”。这就要求对游戏大模型设计一种高质量的记忆机制,使NPC能够有效存储和检索记忆。

例如,如果一个模型被用于模拟护士NPC的角色,大模型应了解包含医疗常识、病人交流的指南,以及诊断和治疗的标准流程。这使得模型能够在模拟或实际情境中更加有效和适应性地行动。

然而,这些知识可能不总是与特定的游戏场景等应用情境完全一致。因此,当前的研究旨在通过以下方式增强语言模型的常识性理解:

  • 通过指令微调将结构化的知识嵌入。
  • 使用SOP将常识集成到特定的角色和任务中。
  • 使用RAG(检索增强生成)。
  • 将详细的角色资料通过prompt输入大模型中。
  • 使用知识图谱用于描述实体之间的关系。
  1. 进行推理和做出决策

大模型NPC的学习推理过程包括解释和整合各种来源的信息,以适应新的游戏场景。学习可以是显式的,通过特定数据集进行微调;也可以是隐式的,通过利用现有知识适应新情况。结合反馈和强化学习,大模型NPC能够通过环境交互优化行为,从而更好地适应游戏世界。

在复杂的游戏环境中,大模型NPC需要做出多层次的决策,这通常包括多跳推理和长期规划。多跳推理要求大模型NPC在做出决策前考虑多层信息和依赖关系,例如预测对手的动作并评估各种行动的潜在结果。长期规划则涉及设定长期目标,并通过一系列策略行动来实现这些目标。

持续行动与反思:NPC越来越“人类”

在游戏中,大模型NPC不仅需要做出即时的反应,还要能够持续行动和反思,以应对复杂的游戏环境,NPC的行为变得更加智能和人性化。

  1. 行动

在游戏中,NPC的行动空间可以分为三种类型:

  • 基于文本互动:NPC通过文本与玩家或环境进行互动,解释和响应玩家的输入。
  • 使用API互动:通过API,NPC能够获取或发送信息,控制游戏中的各种元素。
  • 通过IO操作直接控制:例如使用键盘、鼠标等设备,直接影响游戏中的行为和操作。
  1. 反思

反思是指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的生命周期 四&#xf…...

浅谈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 实现伤害 冷却 消耗技能描述

在上一篇文章里,我们能够通过富文本显示多种格式的文字,并显示技能描述。在这一篇文章里,我们继续优化技能描述,将技能说需要显示的内容显示出来。 实现火球术的基础描述 首先,我们现实现火球术的基础描述&#xff0…...

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相关的软件包&#xff1…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

C++ 基础特性深度解析

目录 引言 一、命名空间(namespace) C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用(reference)​ C 中的引用​ 与 C 语言的对比​ 四、inline(内联函数…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

【Veristand】Veristand环境安装教程-Linux RT / Windows

首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...