CN111841016A - 游戏ai系统、游戏ai的信息处理方法、装置和存储介质 - Google Patents
游戏ai系统、游戏ai的信息处理方法、装置和存储介质 Download PDFInfo
- Publication number
- CN111841016A CN111841016A CN201910347792.2A CN201910347792A CN111841016A CN 111841016 A CN111841016 A CN 111841016A CN 201910347792 A CN201910347792 A CN 201910347792A CN 111841016 A CN111841016 A CN 111841016A
- Authority
- CN
- China
- Prior art keywords
- game
- layer module
- neural network
- network model
- game state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/69—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
Abstract
本申请关于游戏AI系统、游戏AI的信息处理方法、装置和计算机可读存储介质。该信息处理方法包括:获取游戏的当前游戏状态;根据与游戏对应的游戏规则和当前游戏状态得到多个模拟游戏状态;根据多个模拟游戏状态生成搜索请求,并调用神经网络模型以获得与多个搜索请求对应的搜索结果;根据搜索结果选出多个模拟游戏状态中的目标游戏状态,并据此生成操作指令;以及根据操作指令更新游戏的当前游戏状态。该信息处理方法的游戏规则的部分(人工编码)和神经网络模型(调用训练好的神经网络模型)的部分分开实施,能够增强系统灵活性,并且,通过调用神经网络模型进行决策能够提高决策效率。
Description
技术领域
本申请属于信息技术领域,尤其是一种游戏AI系统、游戏AI的信息处理方法、装置和计算机可读存储介质。
背景技术
游戏AI(Artificial Intelligence,人工智能)在电子游戏项目中非常重要。游戏AI可以增加游戏的趣味性和可玩性,给用户更好的游戏体验,还可以在游戏发行初期缓解用户量少导致的难以匹配问题。
然而,目前大部分的游戏AI还是采用人工编码方式构建智能决策系统,而对于很多游戏,需要很多场景和游戏难度的支持,相关技术中,一般针对每种场景都构建一个智能决策系统,不同难度的游戏出现不同玩法时,也需要重新构建决策系统。当前技术中的游戏AI系统通用性差,应对不同场景的扩展性也差。
发明内容
有鉴于此,本申请公开了一种通用性的游戏AI系统、游戏AI的信息处理方法、装置和计算机可读存储介质。
第一方面,本公开实施例提供了一种游戏AI系统,包括:
业务层模块,用于将获取到的游戏的当前游戏状态反馈给逻辑层模块,并接收所述逻辑层模块反馈的操作指令以更新所述游戏的当前游戏状态;
所述逻辑层模块,包括操作确定模块和模拟器,
所述模拟器内封装有至少一个游戏规则,所述模拟器用于根据与所述游戏对应的游戏规则和所述当前游戏状态得到多个模拟游戏状态;
所述操作确定模块用于根据各个所述模拟游戏状态生成搜索请求,并调用神经网络模型以获得与各搜索请求对应的搜索结果,以及根据所述搜索结果选出所述多个模拟游戏状态中的目标游戏状态,并据此生成所述操作指令反馈给所述业务层模块;
计算层模块,包括神经网络模型,用于采用神经网络模型响应各所述搜索请求执行搜索操作,得到所述模拟游戏状态各自的搜索结果并将所述搜索结果反馈给所述逻辑层模块。
在一些实施例中,所述计算层模块还包括:第一监听结点,所述第一监听结点用于当监听到有新的神经网络模型产生的情况下,加载所述新的神经网络模型。
在一些实施例中,所述第一监听结点通过定期扫描存储记录有神经网络模型信息的共享目录,以确定是否有新的神经网络模型产生。
在一些实施例中,所述计算层模块还包括:第二监听结点,所述第二监听结点用于将在预定时间段内接收到的搜索请求和/或预定数量的搜索请求处理成批量请求,调用所述神经网络模型响应所述批量请求。
在一些实施例中,所述神经网络模型为蒙特卡洛树搜索模型。
在一些实施例中,所述游戏AI系统还包括:
部署模块,所述部署模块用于获取生成所述当前游戏状态的当前终端的硬件配置,并基于所述硬件配置,将所述业务层模块、所述逻辑层模块和所述计算层模块的部分或者全部部署在所述当前终端上。
在一些实施例中,所述部署模块用于在所述硬件配置满足所述业务层模块、所述逻辑层模块和所述计算层模块所需的预定处理资源的情况下,将所述业务层模块、所述逻辑层模块和所述计算层模块部署在所述当前终端上;
所述部署模块还用于在所述硬件配置不满足所述所需的处理资源的情况下,将所述业务层模块和/或所述逻辑层模块部署在服务器上,将所述计算层模块部署在计算集群上,其中,所述服务器和所述计算集群部署在同一局域网中。
第二方面,本公开实施例提供一种游戏AI的信息处理方法,包括:
获取游戏的当前游戏状态;
根据与所述游戏对应的游戏规则和所述当前游戏状态得到多个模拟游戏状态;
根据多个所述模拟游戏状态生成搜索请求,并调用神经网络模型以获得与所述多个搜索请求对应的搜索结果;
根据所述搜索结果选出所述多个模拟游戏状态中的目标游戏状态,并据此生成所述操作指令;以及
根据所述操作指令更新所述游戏的当前游戏状态。
在一些实施例中,还包括:当监听到有新的神经网络模型产生的情况下,加载所述新的神经网络模型。
在一些实施例中,定期扫描存储记录有神经网络模型信息的共享目录,以确定是否有新的神经网络模型产生。
在一些实施例中,还包括:将在预定时间段内接收到的搜索请求和/或预定数量的搜索请求处理成批量请求,调用所述神经网络模型响应所述批量请求。
在一些实施例中,所述神经网络模型为蒙特卡洛树搜索模型。
在一些实施例中,还包括:获取生成所述当前游戏状态的当前终端的硬件配置,并基于所述硬件配置,将所述游戏包含的部分或全部模块部署在所述当前终端上。
第三方面,本公开实施例提供一种装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任意一项所述的游戏AI的信息处理方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述任一项所述的游戏AI的信息处理方法。
第五方面,本公开实施例提供计算机程序产品,包括计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,执行上述任意一项的部署方法。
本申请的实施例提供的方案,在逻辑层模块中封装至少一个游戏规则,并通过业务层模块、逻辑层模块和计算层模块配合实现基于当前游戏状态搜索得到搜索结果的信息处理过程。具体地,先基于游戏规则得到多个模拟游戏状态,然后采用神经网络模型基于多个模拟游戏状态得到搜索结果,其中,将游戏规则的部分(人工编码)和神经网络模型(调用训练好的神经网络模型)的部分分开实施,能够增强系统灵活性,并且,在逻辑层中封装游戏规则,若有新的游戏规则产生,仅对逻辑层进行修改,系统即可应对新的场景或难度,整个系统的通用性强,扩展性好;以及通过调用神经网络模型进行决策能够提高决策效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1所示为本公开实施例提供的游戏AI系统的结构图;
图2a-2c所示分别为根据本公开实施例对AI游戏系统进行部署的结构示意图;
图3所示为本公开一实施例提供的AI游戏的信息处理方法的流程图;
图4所示为本公开一实施例提供的部署AI游戏的方法的流程图;
图5所示为本公开一示例性的实施例提供的用于实现游戏AI的信息处理方法的装置的结构框图;
图6所示为本公开一示例性的实施例提供的另一种用于游戏AI的信息处理方法的装置的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
参考图1所示,将游戏AI架构划分为业务层、逻辑层和计算层。业务层包括多个业务层模块101,逻辑层包括多个逻辑层模块102,计算层包括多个计算层模块103。这三个层次的模块可以部署在计算机集群上,每层的模块之间通过网络(包括本机网络)进行交互,每层的模块之间没有其他耦合。每层的模块可能形成多个实例(节点),然而对其他层的模块是透明的。
业务层模块101用于和用户进行交互,获取游戏的当前游戏状态并将当前游戏状态发送给逻辑层模块102,接收逻辑层模块102反馈的操作指令,并根据操作指令更新游戏的当前游戏状态。针对不同的AI需求,需要开发特定的业务层模块。例如棋类游戏AI和扑克类游戏AI,需要为其分别定制业务层模块。业务层模块101对逻辑层模块102和计算层模块屏蔽了具体的业务逻辑,对于用户或者其他模块则屏蔽了具体的AI算法逻辑。这样做的好处在于,一方面使逻辑层模块和计算层模块用于游戏AI中的逻辑处理,另一方面通过接口调用,使得在游戏规则变化和替换时业务模块不受影响。本公开的游戏为两个游戏对象(如两个游戏用户)交替执行游戏操作以生成新的游戏状态的游戏,或者,多个游戏对象循环执行游戏操作以生成新的游戏状态的游戏(如多个游戏对象),这里的交替执行的操作或循环执行的操作包括跳过操作(即轮到某个游戏对象执行操作时,可不执行操作)。
可选地,业务层模块通过调用策略层模块以服务不同的业务,如AI陪玩业务、AI训练业务等。在AI陪玩业务中,业务层模块可以从策略层模块调用与游戏输赢有关的策略外,还可以调用游戏AI与用户交互的其他诸如反应时间等逻辑;在训练业务中,业务层模块可以调用策略层模块自我对弈产生训练数据供模型训练。对应不同的业务可以在业务层模块对应部署不同的接口,如,在没有输赢外的其他逻辑的AI服务场景下,可以在业务层模块中提供选择动作的接口;在AI训练业务中,在业务层模块中可以提供产生AI自我对战数据的接口。
逻辑层模块102包括操作确定模块和模拟器,模拟器内封装有至少一个游戏规则,模拟器用于根据与游戏对应的游戏规则和当前游戏状态得到多个模拟游戏状态;操作确定模块用于根据各个模拟游戏状态生成搜索请求,并调用神经网络模型以获得与各搜索请求对应的搜索结果,以及根据搜索结果选出多个模拟游戏状态中的目标游戏状态,并据此生成操作指令反馈给业务层模块。
一个游戏不同的游戏难度可以对应不同的游戏规则,不同游戏可以对应不同的游戏规则。在逻辑层模块中可以封装一个游戏不同的游戏难度对应的不同的游戏规则,也可以封装不同游戏对应的不同的游戏规则。
在可选地实施例中,逻辑层模块主要用于对业务层模块提供游戏策略,其包含的操作确定模块(也可称之为蒙特卡洛树MCTS模块)主要用于蒙特卡洛树MCTS的逻辑进行处理。MCTS模块对不同的游戏是通用的。从业务层模块接收到搜索请求后,MCTS模块可调用模拟器和计算层模块进行搜索,模拟器是游戏逻辑的封装、和游戏状态与计算层模块的神经网络之间的接口。不同的游戏可以使用同样的模拟器接口,以保证MCTS模块的通用性。
逻辑层模块对业务层模块发来的游戏状态,逻辑层模块可以多次调用模拟器进行模拟,模拟器产生的新状态会调用计算层模块计算出启发值,以指导进一步搜索。逻辑层模块的MCTS和模拟器消耗的是CPU资源,通过搜索间的并行化,可以有效利用多核CPU加速。
计算层模块103包括神经网络模型,用于采用神经网络模型响应各搜索请求执行搜索操作,得到模拟游戏状态各自的搜索结果并将搜索结果反馈给所述逻辑层模块。
当游戏AI运行时,业务层模块101将游戏的当前游戏状态反馈给逻辑层模块102,逻辑层模块102每接收到一个当前游戏状态时,会调用模拟器,模拟器根据内部封装的游戏规则和当前游戏状态进行模拟操作,得到多个和当前游戏状态对应的模拟游戏状态,并将模拟游戏状态转发给操作确定模块,操作确定模块根据多个模拟游戏状态生成多个搜索请求,并将多个搜索请求发送给计算层模块103的神经网络模型,神经网络模型接收到搜索请求,执行搜索操作,得到和搜索请求对应的搜索结果并将搜索结果反馈给操作确定模块,操作确定模块根据搜索结果选出多个模拟游戏状态中的目标游戏状态,并据此生成操作指令反馈给业务层模块101,业务层模块101根据操作指令更新游戏的当前游戏状态。
综上,本实施例通过业务层模块、逻辑层模块和计算层模块之间的交互逻辑完成游戏AI的智能决策流程。其中,将游戏规则的部分(人工编码)和神经网络模型(调用训练好的神经网络模型)的部分分开实施,能够增强系统灵活性,并且,通过调用神经网络模型进行决策能够提高决策效率。
可选的,在逻辑层模块中封装至少一个游戏规则,并通过业务层模块、逻辑层模块和计算层模块配合实现基于当前游戏状态搜索得到搜索结果的信息处理过程。具体地,先基于游戏规则得到多个模拟游戏状态,然后采用神经网络模型基于多个模拟游戏状态得到搜索结果,其中,将游戏规则的部分(人工编码)和神经网络模型(调用训练好的神经网络模型)的部分分开实施,能够增强系统灵活性,并且,在逻辑层中封装游戏规则,若有新的游戏规则产生,仅对逻辑层进行修改,系统即可应对新的场景或难度,整个系统的通用性强,扩展性好;以及通过调用神经网络模型进行决策能够提高决策效率。
在一个可选的实施例中,计算层模块103还包括第一监听结点,第一监听结点用于当监听到有新的神经网络模型产生的情况下,加载新的神经网络模型。在一个可选的实施方式中,第一监听结点定期扫描记录有存储神经网络模型信息的共享目录,以确定是否有新的神经网络模型。每当发现扫描的共享目录中有新的神经模型产生或者已有模型已经更新时,第一监听结点将最新的神经网络模型加载至内存,并在后续服务中采用最新的神经网络模型。另外,业务层模块101还可以包括一数据收集模块,用于收集游戏AI的游戏状态数据,计算层模块还包括:训练模块,用于经由训练游戏状态数据,得到神经网络模型,每次训练模块得到一个最新的神经网络模型,即会将其存储到共享目录下,而相应地,第一监听结点当发现新的神经网络模型产生后,即加载最新的神经网络模型。通过第一监听结点和训练模块组合实现神经网络模型的迭代优化。
在一个实施例中,计算层模块103还包括:第二监听结点,用于将在预定时间段内接收到的搜索请求和/或预定数量的搜索请求处理成批量请求,调用神经网络模型响应批量请求。当神经网络模型针对批量请求执行搜索操作时,能够充分利用硬件资源并提高吞吐率,从而提高计算效率。
在一个可选实施例中,计算层的神经网络批量执行搜索请求可以有效提高硬件的利用率并吞吐率。为此,第二监听结点可以在接到搜索请求后等待一小段时间,把此时间内的请求处理成批量,统一进行计算。如果该时间内的请求超过一定量,则将超过的部分留待下次计算。
在又一个可选的实施例中,计算层模块包括一系列(一到多个)结点,该一系列结点用于提供对外的无状态的神经网络推断服务。每一个单独的结点均可以实现第一监听结点和第二监听结点的功能:
1.监控模型更新:计算层模块的结点通过定期扫描监控的模型目录得知模型的更新情况。每当发现监控的目录中有新的模型产生,立刻将最新的模型加载至内存,并做好使用最新模型提供服务的准备。
2.服务模型推断请求:计算层模块的结点监听一个网络端口,从该网络端口接收到搜索请求后,从搜索请求中解析出表示游戏状态的张量,调用神经网络模型推断出结果,最后将推断结果返回给逻辑层模块。
另外,需要指出的是,计算层模块103中的神经网络模型和实际AI业务相匹配,即需要根据实际AI业务选定适当的神经网络模型。例如,对于各种棋类游戏,其实现的是一种双人胜负博弈策略,因此适合采用蒙特卡洛树搜索模型。
进一步地,上述游戏AI系统还包括一个部署模块,该部署模块用于获取生成当前游戏状态的当前终端的硬件配置,并基于硬件配置,将业务层模块101、逻辑层模块102和计算层模块103的部分或者全部部署在当前终端上。也即,该部署模块能够根据当前终端的硬件配置进行自适用的游戏AI的部署。可选地,该部署模块在硬件配置满足业务层模块101、逻辑层模块102和计算层模块103所需的预定处理资源的情况下,将业务层模块101、逻辑层模块102和计算层模块103都部署在当前终端上;在硬件配置不满足所需的处理资源的情况下,将业务层模块101和/或逻辑层模块102部署在服务器上,将计算层模块103部署在计算集群上,其中,服务器和计算集群部署在同一局域网中。
此外,还应该指出,上述游戏AI系统的业务层模块101直接对接不同的业务,因此变化比较多样。业务层模块101到逻辑层模块102的调用比较简单。逻辑层模块102由于牵涉到游戏模拟,逻辑运算比较多,主要消耗CPU资源。计算层模块103采用涉及神经网络模型,涉及到大量矩阵运算,消耗高性能计算硬件资源如GPU、FPGA、ASIC芯片或者多核CPU。因此逻辑层模块102需要多次传输表示游戏状态的张量到计算层模块103,如果是跨机调用,还会消耗网络资源。对不同的业务场景,采用不同层模块进行多种部署,以应对实际的限制。
图2a-2c所示分别为根据本公开实施例对AI游戏系统进行部署的结构示意图。下面以图2a-2c所示的部署方式进行示例性的描述。
如图2a所示,高性能终端200例如一些专用的游戏终端和高端手机,其具有高性能计算资源,如多核CPU和GPU,因此,游戏AI的业务层模块101、逻辑层模块102和计算层模块103都可以直接部署在高性能终端200上。各个层模块之间通过本机网络(loopback)进行调用。在这种部署下,不需要服务器提供计算资源,所有的计算都发生在终端200上,因此具有最好的可扩展性,游戏的用户量增长不会给服务器带来游戏AI的计算压力。
如图2b所示,由于普通性能终端300在没有高性能计算硬件的情况下,难以支持高水平的游戏AI所需要的计算量。在这种场景下,将业务层模块101和逻辑层模块102部署在AI服务器303上,计算层模块103部署在具有专用高性能计算硬件的计算集群302上。在此部署下,对游戏服务器301而言,普通性能终端300和AI服务器303都是同质的客户端结点,游戏服务器303的简单性可以得到保证。AI服务器303和计算集群302部署在同一个高性能局域网中,可以减少逻辑层模块102调用计算层模块103的网络延迟。在计算集群302中,内部每个节点有自己单独的URL,但是通过代理可以向逻辑层模块102提供统一的URL,由代理负责负载均衡和服务发现。这样,计算集群302中的节点变动对逻辑层模块102和业务层模块101完全透明,进行节点数目的扩展和收缩时不会对逻辑层模块102产生严重影响。而计算层模块103从共享存储上加载神经网络模型,当有新的模型产生时,直接推送至共享存储,可以实现模型的热更新。
如图2c所示,训练服务器400上部署有训练业务层模块104和逻辑层模块102,计算机集群302部署有计算层模块102。训练业务层模块104可以理解为业务层模块101的简化版本,并且训练业务层模块104采用计算机模拟人工操作。通过训练业务层模块104不断调用逻辑层模块102产生自我对战(selfplay)数据,并将对战数据发送给训练集群401进行模型训练。训练集群401每隔一段时间,就将最新的神经网络模型推送到共享存储403上,计算层模块103自动读取最新的神经网络模型并提供服务,从而产生水平更高的训练数据,最终实现对游戏AI的迭代优化。
在上述各种部署中,不同层模块之间仅通过网络连接,下一层只暴露给上一层一个提供服务的URL。一方面,下一层的服务可以任意替换,只需要保证提供的服务接口相同;另一方面,上一层可通过更换URL访问不同能力的下一层服务。在一些需要不同水平的游戏AI的场景下,游戏AI的水平控制可用通过计算集群不同的计算节点控制。计算集群中的不同节点可以使用不同水平的神经网络模型,逻辑层模块只需要通过访问不同的URL就可以在不同水平的游戏AI之间进行切换。
除此之外,各种部署间也可以在线上按照需求热切换。在一些低水平的AI需求下,游戏终端可以使用本地的硬件作为计算层模块的资源,如果用户需要更高水平的游戏AI,而游戏终端却不足以提供足够的计算能力时,策略层模块可以简单地将URL切换到部署在计算集群中的其他计算节点。这种混合的部署,仅仅通过URL的简单切换就可以实现。
在上文中以模块形式对游戏AI进行整体描述,而在下文中,将以步骤形式描述游戏AI的决策流程,具体参见图3所示的游戏AI的信息处理方法。需要指出,对于游戏AI而言,在游戏运行的过程中一般会生成一个或者多个非玩家角色(NPC,Non-player character),该游戏角色不由普通玩家操纵,而是由游戏AI操纵。而图3所示的信息处理方法描述了非玩家角色的决策流程,具体包括以下步骤。
图3所示的游戏AI的信息处理方法具体包括以下步骤。
在步骤S301中,获取游戏的当前游戏状态。
本步骤实质上是一个数据采集步骤,一般由系统定期执行或者由用户动作触发执行。例如,对于棋类游戏,当普通用户(玩家角色)移动一次棋子时,采集一次当前游戏状态,这时采集到的当前游戏状态即为相应棋子的移动信息。而对于战斗类游戏,采集到的当前游戏状态包括当前游戏内玩家角色的战斗状态和游戏进程情况,战斗状态例如包括每个游戏角色的血量值、法力值、能量值等数值。
在步骤S302中,根据与游戏对应的游戏规则和当前游戏状态得到多个模拟游戏状态。
同样以棋类游戏和战斗类游戏为例。当采集到普通用户对于相应棋子的移动信息后,系统根据游戏规则确定当前棋盘上下一步可以移动那些棋子以及如何移动,并将这些信息作为模拟游戏状态。而对于战斗类游戏,系统根据游戏规则确定下一步可以选择如何动作,并将其作为模拟游戏状态。
在步骤S303中,根据多个模拟游戏状态生成搜索请求,并调用神经网络模型以获得与搜索请求对应的搜索结果。
在本步骤中,可以根据多个模拟游戏状态生成一个搜索请求,也可以根据多个模拟游戏状态分别生成多个搜索请求,并将搜索请求作为输入值调用神经网络模型,以获得和搜索请求对应的搜索结果。对于棋类游戏,搜索结果里可以包含每个模拟游戏状态对应的游戏获胜概率,而对于战斗类游戏,搜索结果可以包含每个模拟游戏状态对游戏进程的影响程度。此外,应该指出,本步骤中采用的神经网络模型应是一个已经训练好的、与所述游戏相匹配的AI模型。
在步骤S304中,根据搜索结果选出多个模拟游戏状态中的目标游戏状态,并据此生成操作指令。
目标游戏状态为系统根据搜索结果和相应的策略从多个模拟游戏状态中优选出来的游戏状态。该游戏状态例如对于棋类游戏而言,可能是游戏AI获胜概率最高的游戏状态,而对于战斗类游戏而言,可能是有助于延长普通玩家在所述游戏上的停留时间的游戏状态。进而,系统可以根据目标游戏状态生成操作指令。在下文中,将目标游戏状态表述为预期回报率高的游戏状态。
在步骤S305中,根据操作指令更新游戏的当前游戏状态。例如,对于棋类游戏,系统根据游戏指令移动一个棋子。而对于战斗类游戏,非玩家类角色根据游戏指令执行相应的动作。也即,通过游戏指令更新了游戏的当前游戏状态。
本实施例提供的AI游戏的信息处理方法,实现了游戏AI的智能决策流程。在该智能决策流程中,根据当前游戏状态和游戏规则得到多个模拟游戏状态,然后调用神经网络模型得到与多个模拟游戏状态对应的搜索结果,并根据搜索结果得到其中之一的模拟游戏状态作为目标游戏状态,确保了最终得到的目标游戏状态为能够执行且预期回报高的游戏状态,从而不仅提高了游戏AI的智能化程度,而且能够提高玩家体验。
在一些实施例中,上述信息处理方法还包括:当监听到有新的神经网络模型产生的情况下,加载新的神经网络模型。可选地,定期扫描存储记录有神经网络模型信息的共享目录,以确定是否有新的神经网络模型产生。通过监听过程确保能够及时加载最新的神经网络模型,从而实现游戏AI的自我进化。
在一些实施例中,上述信息处理方法还包括:将在预定时间段内接收到的搜索请求和/或预定数量的搜索请求处理成批量请求,调用神经网络模型响应所述批量请求。当神经网络模型针对批量请求执行搜索操作时,能够充分利用硬件资源并提高吞吐率,从而提高计算效率。
图4所示为本公开一实施例提供的部署游戏AI的方法的流程图。该方法包含在上述AI游戏的信息处理方法中。该方法包括以下步骤。
在步骤S401中,获取生成当前游戏状态的当前终端的硬件配置。
该步骤是一个数据采集步骤。当开始部署AI游戏时,自动采集当前终端中包括CPU、GPU、内存、硬盘、主板、显示屏等部件的硬件配置信息,例如对于CPU,获取CPU的频率和型号,对于内存,获取内存的型号和内存使用总量,等等。
在步骤S402中,判断硬件配置。
判断步骤S401获取到的当前终端的硬件配置,在当前终端的硬件配置仅能满足部分模块所需的资源时,执行步骤S403,在当前终端的硬件配置能满足全部模块所需的资源时,执行步骤S404。
在步骤S403中,将游戏AI的部分模块部署在当前终端上。
在步骤S404中,将游戏AI的全部模块部署在当前终端上。
首先,判断硬件配置信息是否能够满足全部模块所需的处理资源,如果能够满足,则将AI游戏的全部模块部署在当前终端上,其次,再判断硬件配置是否能够满足一部分模块所需的处理资源(需确定能够满足哪部分模块所需的处理需求),则将AI游戏的相应部分的模块部署在当前终端上。可选地,可以将游戏AI的全部模块归类为前文中划分的业务层模块、逻辑层模块和计算层模块,然后根据硬件配置决定将业务层模块、逻辑层模块和计算层模块中的至少一个部署在当前终端上。当然,如果当前终端的硬件配置不满足任何一个模块所需的处理资源时,在终端不部署游戏AI的任何模块,由此,当任何模块均没有部署到当前终端时,用户可以通过IE访问游戏AI,也即游戏AI成为一个网页游戏。当仅有一部分模块部署在当前终端时,为了保证游戏AI的正常运行,则将当前终端上已经部署的模块关联到服务器上的其他模块。该方法能够根据当前终端的硬件配置对游戏AI进行选择性的部署,确保最终部署到当前终端上的游戏AI的模块数量和当前终端是匹配的,从而提高用户体验。
应该理解,上述游戏AI系统和游戏AI的信息处理方法对应,对于其中的一些重复内容并没有进行详述。
综上,本公开实施例提供的游戏AI系统和游戏AI的信息处理方法具有以下优点:
1、在通用的神经网络模型的基础上,提供了通用的工程实现,不同游戏只需要修改模拟器和业务层即可,其他部分无须改动;
2.、通过游戏AI划分为业务层模块、策略层模块和计算层模块,各层模块之间通过网络连接,耦合性低。各个层模块可以部署在相同或者不同的机器上,只需要通过网络配置就可以实现各种部署和服务的热切换;
3.各层模块对硬件资源有不同的要求,通过将计算层模块与策略层模块的解耦,策略层模块和计算层模块可以同时在不同硬件资源上计算,加快了计算速度。
图5所示为本公开一示例性的实施例提供的执行游戏AI的信息处理方法的装置的结构框图。该装置包括处理器和用于存储处理器可执行指令的存储器。其中,处理器被配置为执行上述游戏AI的部署方法。装置500例如,可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置500可以包括以下一个或多个组件:处理组件502,存储器504,电力组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在设备500的操作。这些数据的示例包括用于在装置500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为装置500的各种组件提供电力。电源组件506可以包括电源部署系统,一个或多个电源,及其他与为装置500生成、管理和分配电力相关联的组件。
多媒体组件508包括在装置500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当装置500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启用按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为装置500提供各个方面的状态评估。例如,传感器组件514可以检测到设备500的打开/关闭状态,组件的相对定位,例如组件为装置500的显示器和小键盘,传感器组件514还可以检测装置500或装置500一个组件的位置改变,用户与装置500接触的存在或不存在,装置500方位或加速/减速和装置500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于装置500和其他设备之间有线或无线方式的通信。装置500可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播部署系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的存储介质,可选地,存储介质可以是非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由装置500的处理器520执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图6所示为本公开一示例性的实施例提供的另一种用于执行游戏AI的信息处理方法的装置的结构框图。例如,装置600可以被提供为一服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述游戏AI的信息处理方法。
装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(I/O)接口658。装置600可以操作基于存储在存储器632的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了计算机程序产品,包括计算机程序,计算机程序包括程序指令,当程序指令被装置执行时,使装置执行上述方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种游戏AI系统,其特征在于,包括:
业务层模块,用于将获取到的游戏的当前游戏状态反馈给逻辑层模块,并接收所述逻辑层模块反馈的操作指令以更新所述游戏的当前游戏状态;
所述逻辑层模块,包括操作确定模块和模拟器,
所述模拟器内封装有至少一个游戏规则,所述模拟器用于根据与所述游戏对应的游戏规则和所述当前游戏状态得到多个模拟游戏状态;
所述操作确定模块用于根据各个所述模拟游戏状态生成搜索请求,并调用神经网络模型以获得与各搜索请求对应的搜索结果,以及根据所述搜索结果选出所述多个模拟游戏状态中的目标游戏状态,并据此生成所述操作指令反馈给所述业务层模块;
计算层模块,包括神经网络模型,用于采用神经网络模型响应各所述搜索请求执行搜索操作,得到所述模拟游戏状态各自的搜索结果并将所述搜索结果反馈给所述逻辑层模块。
2.根据权利要求1所述的游戏AI系统,其特征在于,所述计算层模块还包括:第一监听结点,所述第一监听结点用于当监听到有新的神经网络模型产生的情况下,加载所述新的神经网络模型。
3.根据权利要求2所述的游戏AI系统,其特征在于,所述第一监听结点通过定期扫描存储记录有神经网络模型信息的共享目录,以确定是否有新的神经网络模型产生。
4.根据权利要求1或2所述的游戏AI系统,其特征在于,所述计算层模块还包括:第二监听结点,所述第二监听结点用于将在预定时间段内接收到的搜索请求和/或预定数量的搜索请求处理成批量请求,调用所述神经网络模型响应所述批量请求。
5.根据权利要求1至4中任意一项所述的游戏AI系统,其特征在于,所述神经网络模型为蒙特卡洛树搜索模型。
6.根据权利要求1所述的游戏AI系统,其特征在于,所述游戏AI系统还包括:
部署模块,所述部署模块用于获取生成所述当前游戏状态的当前终端的硬件配置,并基于所述硬件配置,将所述业务层模块、所述逻辑层模块和所述计算层模块的部分或者全部部署在所述当前终端上。
7.根据权利要求6所述的游戏AI系统,其特征在于,所述部署模块用于在所述硬件配置满足所述业务层模块、所述逻辑层模块和所述计算层模块所需的预定处理资源的情况下,将所述业务层模块、所述逻辑层模块和所述计算层模块部署在所述当前终端上;
所述部署模块还用于在所述硬件配置不满足所述所需的信息处理资源的情况下,将所述业务层模块和/或所述逻辑层模块部署在服务器上,将所述计算层模块部署在计算集群上,其中,所述服务器和所述计算集群部署在同一局域网中。
8.一种游戏AI的信息处理方法,其特征在于,包括:
获取游戏的当前游戏状态;
根据与所述游戏对应的游戏规则和所述当前游戏状态得到多个模拟游戏状态;
根据多个所述模拟游戏状态生成搜索请求,并调用神经网络模型以获得与所述多个搜索请求对应的搜索结果;
根据所述搜索结果选出所述多个模拟游戏状态中的目标游戏状态,并据此生成所述操作指令;以及
根据所述操作指令更新所述游戏的当前游戏状态。
9.一种装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述权利要求8所述的游戏AI的信息处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如权利要求8所述的游戏AI的信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910347792.2A CN111841016B (zh) | 2019-04-28 | 2019-04-28 | 游戏ai系统、游戏ai的信息处理方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910347792.2A CN111841016B (zh) | 2019-04-28 | 2019-04-28 | 游戏ai系统、游戏ai的信息处理方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111841016A true CN111841016A (zh) | 2020-10-30 |
CN111841016B CN111841016B (zh) | 2022-03-25 |
Family
ID=72964934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910347792.2A Active CN111841016B (zh) | 2019-04-28 | 2019-04-28 | 游戏ai系统、游戏ai的信息处理方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111841016B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112704882A (zh) * | 2021-01-14 | 2021-04-27 | 广州云从鼎望科技有限公司 | 基于模型的棋牌游戏策略更新的方法、系统、介质及装置 |
CN112843726A (zh) * | 2021-03-15 | 2021-05-28 | 网易(杭州)网络有限公司 | 智能体处理方法及装置 |
CN113599798A (zh) * | 2021-08-25 | 2021-11-05 | 上海交通大学 | 基于深度强化学习方法的中国象棋博弈学习方法及系统 |
CN113778635A (zh) * | 2021-01-04 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 处理用户请求的方法、装置、设备和计算机可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133666A (zh) * | 2013-11-29 | 2014-11-05 | 腾讯科技(成都)有限公司 | 确定人工智能行为的方法、装置及人工智能服务器 |
US20150154495A1 (en) * | 2013-11-29 | 2015-06-04 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus, and artificial intelligence editor for implementing artificial intelligence behavior |
CN107875632A (zh) * | 2017-12-06 | 2018-04-06 | 广州多益网络股份有限公司 | 实现人工智能行为的方法、系统及人工智能行为编辑器 |
CN108388945A (zh) * | 2018-02-24 | 2018-08-10 | 网易(杭州)网络有限公司 | Ai决策的配置方法及装置 |
CN108671546A (zh) * | 2018-05-23 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 目标操作的确定方法和装置、存储介质及电子装置 |
CN108920221A (zh) * | 2018-06-29 | 2018-11-30 | 网易(杭州)网络有限公司 | 游戏难度调整的方法及装置、电子设备、存储介质 |
-
2019
- 2019-04-28 CN CN201910347792.2A patent/CN111841016B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133666A (zh) * | 2013-11-29 | 2014-11-05 | 腾讯科技(成都)有限公司 | 确定人工智能行为的方法、装置及人工智能服务器 |
US20150154495A1 (en) * | 2013-11-29 | 2015-06-04 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus, and artificial intelligence editor for implementing artificial intelligence behavior |
CN107875632A (zh) * | 2017-12-06 | 2018-04-06 | 广州多益网络股份有限公司 | 实现人工智能行为的方法、系统及人工智能行为编辑器 |
CN108388945A (zh) * | 2018-02-24 | 2018-08-10 | 网易(杭州)网络有限公司 | Ai决策的配置方法及装置 |
CN108671546A (zh) * | 2018-05-23 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 目标操作的确定方法和装置、存储介质及电子装置 |
CN108920221A (zh) * | 2018-06-29 | 2018-11-30 | 网易(杭州)网络有限公司 | 游戏难度调整的方法及装置、电子设备、存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778635A (zh) * | 2021-01-04 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 处理用户请求的方法、装置、设备和计算机可读介质 |
CN112704882A (zh) * | 2021-01-14 | 2021-04-27 | 广州云从鼎望科技有限公司 | 基于模型的棋牌游戏策略更新的方法、系统、介质及装置 |
CN112704882B (zh) * | 2021-01-14 | 2021-09-14 | 广州云从鼎望科技有限公司 | 基于模型的棋牌游戏策略更新的方法、系统、介质及装置 |
CN112843726A (zh) * | 2021-03-15 | 2021-05-28 | 网易(杭州)网络有限公司 | 智能体处理方法及装置 |
CN113599798A (zh) * | 2021-08-25 | 2021-11-05 | 上海交通大学 | 基于深度强化学习方法的中国象棋博弈学习方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111841016B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111841016B (zh) | 游戏ai系统、游戏ai的信息处理方法、装置和存储介质 | |
CN111773696B (zh) | 一种虚拟对象的展示方法、相关装置及存储介质 | |
CN109582463A (zh) | 资源配置方法、装置、终端及存储介质 | |
JP2021516395A (ja) | リソース構成方法、装置、端末、および記憶媒体 | |
WO2018126956A1 (zh) | 一种信息处理方法、装置及服务器 | |
CN112245904B (zh) | 支持跨服游戏的方法、系统、存储介质及计算机设备 | |
CN111214828A (zh) | 游戏运行方法、装置、设备、介质及云端游戏平台 | |
CN109908587B (zh) | 可繁殖的虚拟角色的形象参数生成方法、装置及存储介质 | |
CN113521755A (zh) | 组队方法、装置、计算机设备及存储介质 | |
CN111589116B (zh) | 显示功能选项的方法、装置、终端及存储介质 | |
CN113332721B (zh) | 一种游戏控制方法、装置、计算机设备及存储介质 | |
CN111078325A (zh) | 应用程序运行方法、装置、电子设备及存储介质 | |
CN114404977A (zh) | 行为模型的训练方法、结构扩容模型的训练方法 | |
CN111589117B (zh) | 显示功能选项的方法、装置、终端及存储介质 | |
US20230088206A1 (en) | Method and apparatus for controlling virtual object, device, storage medium, and program product | |
CN111589168A (zh) | 即时通讯方法、装置、设备及介质 | |
KR20140066267A (ko) | 모바일 게임에서의 컨텐츠 데이터 캐싱 방법 및 캐싱 시스템을 포함한 게임 서버, 및 모바일 단말 | |
CN115193035A (zh) | 一种游戏显示控制方法、装置、计算机设备及存储介质 | |
CN114225412A (zh) | 信息处理方法、装置、计算机设备及存储介质 | |
CN114917589A (zh) | 回合制游戏的数据处理方法、装置、电子设备及存储介质 | |
CN111104183A (zh) | 应用程序运行方法、装置、电子设备及存储介质 | |
CN110837817A (zh) | 目标对象识别方法、装置、设备及存储介质 | |
CN113426121B (zh) | 游戏操控方法、装置、存储介质及计算机设备 | |
CN112891933B (zh) | 一种游戏服务启动方法和相关装置 | |
WO2024060924A1 (zh) | 虚拟场景的互动处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |