游戏中角色行为的生成方法和装置与流程

文档序号:11117187阅读:368来源:国知局
游戏中角色行为的生成方法和装置与制造工艺

本发明涉及计算机领域,具体而言,涉及一种游戏中角色行为的生成方法和装置。



背景技术:

目前,在电脑游戏当中,游戏玩家可以与电脑人工智能(Artificial Intelligence,简称为AI)进行交互或者对战来体验游戏,因此电脑AI能力的强弱对于游戏玩家来说至关重要。一个好的AI能够尽可能地模拟出人的动作,机器学习是做出这样的AI的目前最主要的一类方法。

一般来说,AI的实现有两个阶段:离线训练阶段和在线实施阶段。离线训练阶段需要大量的有价值的训练数据,而游戏的真实日志数据通常远远达不到数据量上的要求,目前通过仿真的方法进行游戏模拟来产生日志数据是一种常用的做法。在线实施阶段,为了快速准确地预测下一步的策略或者动作,基于当前的游戏信息进行仿真来模拟游戏进程从而进行评估也是一种常用的做法。游戏的仿真方法当前主要有蒙特卡洛树搜索(Monte Carlo Tree Search,简称为MCTS)、行为树等,例如,在棋类游戏中,利用MCTS来预测每一步的走子,在实时战略游戏中,利用行为树来控制NPC的下一步动作。但是这些仿真方法或者仅仅考虑了两个角色进行对战,因而按照游戏的回合顺序分别进行模拟,或者假设非玩家角色(Non-Player Character,简称为NPC)之间相互无关,或者存在一些简单的单依赖关系,无论哪一种情况,对所有NPC同时进行模拟都无法有效地处理实时多人对战游戏中角色两两之间均可能都有依赖关系的情况。

图1是根据相关技术中的一种游戏中角色行为的生成方法的流程图。如图1所示,该游戏中角色行为的生成方法包括以下步骤:步骤S101′,仿真模拟A方的策略或动作,可以用MCTS等方法仿真;步骤S102′,判断游戏是否结束,如果是,则结束,如果否,则转至步骤S103′;步骤S103′,仿真模拟B方的策略或动作,可以用MCTS等方法仿真,步骤S104′,判断游戏是否结束,如果是,则结束,如果否,则转至步骤S101′,可以实现棋类游戏的仿真,但是无法有效地处理实时多人对战游戏中角色两两之间存在相互依赖的复杂情况,游戏中角色行为生成的准确度较低。

图2是根据相关技术中的另一种游戏中角色行为的生成方法的流程图。如图2所示,该游戏中角色行为的生成方法包括以下步骤:步骤S201′,同时仿真模拟所有NPC的策略或动作,可以用MCTS等方法仿真;步骤S202′,判断游戏是否结束,如果是,则结束,如果否,则转至步骤S201′,可以实现实时战略类游戏的仿真,但是无法有效地处理实时多人对战游戏中角色两两之间存在相互依赖的复杂情况,游戏中角色行为生成的准确度较低。

针对上述的游戏中角色行为生成的准确度较低的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种游戏中角色行为的生成方法和装置,以解决游戏中角色行为生成的准确度较低的技术问题。

根据本发明实施例的一个方面,提供了一种游戏中角色行为的生成方法。该游戏中角色行为的生成方法包括:接收游戏客户端发送的当前游戏的状态数据,其中,状态数据用于指示当前游戏中多个角色的当前状态;从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,其中,行为顺序序列中记录了多个角色的行为执行顺序;按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,其中,更新后的行为预测模型是根据模拟结果进行更新得到的;使用更新后的行为预测模型生成行为信息,其中,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为;将行为信息发送给游戏客户端。

根据本发明实施例的另一方面,还提供了一种游戏中角色行为的生成装置。该游戏中角色行为的生成装置接收单元,用于接收游戏客户端发送的当前游戏的状态数据,其中,状态数据用于指示当前游戏中多个角色的当前状态;获取单元,用于从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,其中,行为顺序序列中记录了多个角色的行为执行顺序;模拟单元,用于按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,其中,更新后的行为预测模型是根据模拟结果进行更新得到的;生成单元,用于使用更新后的行为预测模型生成行为信息,其中,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为;发送单元,用于将行为信息发送给游戏客户端。

在本发明实施例中,接收游戏客户端发送的当前游戏的状态数据,状态数据用于指示当前游戏中多个角色的当前状态;从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,行为顺序序列中记录了多个角色的行为执行顺序;按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,更新后的行为预测模型是根据模拟结果进行更新得到的;使用更新后的行为预测模型生成行为信息,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为;将行为信息发送给游戏客户端,达到了对游戏中的角色行为进行生成的目的,及使模拟更加合理,从而提高了游戏中角色行为生成的准确度以及生成的效率,进而解决了游戏中角色行为生成的准确度较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据相关技术中的一种游戏中角色行为的生成方法的流程图;

图2是根据相关技术中的另一种游戏中角色行为的生成方法的流程图;

图3是根据本发明实施例的游戏中角色行为的生成方法的硬件环境的示意图;

图4是根据本发明实施例的一种游戏中角色行为的生成方法的流程图;

图5是根据本发明实施例的一种按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟的方法的流程图;

图6是根据本发明实施例的另一种按照行为执行顺序依次使用行为预测模型对所述多个角色进行仿真模拟的方法的流程图;

图7是根据本发明实施例的一种通过对历史游戏日志进行统计操作,得到行为顺序库中的行为顺序序列的方法的流程图;

图8是根据本发明实施例的另一种游戏中角色行为的生成方法的流程图;

图9是根据本发明实施例的一种得到行为序列库的基于统计的方法的流程图;

图10是根据本发明实施例的一种通过MCTS进行模拟的方法的流程图;

图11是根据本发明实施例的一种游戏中的交互方法的流程示意图;

图12是根据本发明实施例的一种游戏中角色行为的生成装置的示意图;

图13是根据本发明实施例的另一种游戏中角色行为的生成装置的示意图;

图14是根据本发明实施例的另一种游戏中角色行为的生成装置的示意图;

图15是根据本发明实施例的另一种游戏中角色行为的生成装置的示意图;以及

图16是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种游戏中角色行为的生成方法的实施例。

可选地,在本实施例中,上述游戏中角色行为的生成方法可以应用于如图3所示的由服务器302和终端304所构成的硬件环境中。图3是根据本发明实施例的游戏中角色行为的生成方法的硬件环境的示意图。如图3所示,服务器302通过网络与终端304进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端304并不限定于PC、手机、平板电脑等。本发明实施例的游戏中角色行为的生成方法可以由服务器302来执行,也可以由终端304来执行,还可以是由服务器302和终端304共同执行。其中,终端304执行本发明实施例的游戏中角色行为的生成方法也可以是由安装在其上的客户端来执行。

图4是根据本发明实施例的一种游戏中角色行为的生成方法的流程图。如图4所示,该游戏中角色行为的生成方法可以包括以下步骤:

步骤S402,接收游戏客户端发送的当前游戏的状态数据。

在本申请上述步骤S402提供的技术方案中,接收游戏客户端发送的当前游戏的状态数据,其中,状态数据用于指示当前游戏中多个角色的当前状态。

游戏客户端将当前游戏的状态数据通过网络发送到游戏模拟服务器上,游戏模拟服务器接收客户端发送的当前游戏的状态数据。在当前游戏中,存在多个角色,可以将多个角色的当前操作状态的状态数据、当前动作状态的状态数据等当前游戏的状态数据发送到游戏模拟服务器上,游戏模拟服务器进而接收游戏客户端发送的当前操作状态的状态数据、当前动作状态的状态数据等当前游戏的状态数据。

可选地,在当前游戏中存在A角色、B角色、C角色、D角色,A角色的当前状态为等待状态,B角色的当前状态为攻打状态,C角色的当前状态为逃跑状态,D角色的当前状态为处于具体位置的位置状态,接收A角色、B角色、C角色、D角色的当前状态的状态数据。

步骤S404,从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列。

在本申请上述步骤S404提供的技术方案中,从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,其中,行为顺序序列中记录了多个角色的行为执行顺序。

游戏的状态数据用于指示游戏中多个角色的状态,包括了每一个角色行动的时间,游戏中多个角色的状态随着时间的持续在游戏环境中会有不同的状态,比如,A角色在最近一次行动的时间的状态为逃跑状态,B角色在最近一次行动的时间的状态为攻打状态,A角色在之后行动的时间的状态可能为攻打状态,B角色在下一时刻的状态可能为逃跑状态。当前游戏的状态数据用于指示当前游戏中多个角色的当前状态,包括了每一个角色最近一次行动的时间。在接收游戏客户端发送的当前游戏的状态数据之后,便可以确定当前游戏中多个角色的当前状态,进而可以确定每一个角色最近一次行动的时间。

从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列。其中,从当前状态开始,也即,从每一个角色最近一次行动的时间开始,而不考虑当前游戏中多个角色在历史行动的时间的状态,当前游戏相关的行为顺序序列为本局游戏相关的行为顺序序列。

从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,也即,从每一个角色最近一次行动的时间开始,从行为顺序库中获取与本局游戏相关的行为顺序序列,服务器在从行为顺序库中获取与本局游戏相关的行为顺序序列的时间是从当前状态对应的最近一次行动的时间开始的。该实施例的行为顺序库为预先获取到的存放行为顺序序列的数据库。其中,行为顺序序列,是指各个角色依次行动的一种顺序,记录了多个角色的行为执行顺序,比如,在当前游戏中某一方存在A角色、B角色、C角色和D角色,A角色、B角色、C角色和D角色为一个角色组合{A,B,C,D},角色组合是指该序列中所包含的角色ID的不可重复的集合。A角色、B角色、C角色和D角色依次行动。如果从极小的时间粒度上去看,游戏中不同角色的行为其实是存在先后顺序关系的。

可选地,在多人对战游戏中,角色的组合是多样化的,历史积累大量的游戏日志数据,一般是按照某个帧率(例如每秒60帧)来记录的,通常在每一帧中最多只有一个角色在行动,这样根据帧与帧之间的顺序关系,以及每一帧对应的有行为的角色,就可以得到不同角色的行为顺序序列。在得到不同角色的行为顺序序列之后,对大量的角色组合和与角色组合相对应的行为顺序序列进行统计,对相同的角色组合,保留出现次数最多的行为顺序序列,从而得到行为顺序库。除了得到行为顺序序列之外,每一个角色的行为频率、行为失误率等参数也可以一并统计得到。

从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列。现对当前游戏相关的行为顺序序列介绍如下:

第一步,在步骤S402中获取状态数据,该状态数据包括每一个角色(无论是否AI控制)最近一次行动的时间(这个状态数据至少要传过来);

第二步,获取与每一方的角色组合相同的行为顺序序列;

第三步,结合行为顺序序列中的每个角色的“行为频率”参数(这个参数需要在统计阶段记录下来)和第一步中的“最近一次行动的时间”,将多方对应的行为顺序序列拼接在一起,形成包含游戏中所有角色在内的完整行为顺序序列。例如游戏有两方:A、B和C、D,对应的行为顺序序列可以为AB和DC,拼接后形成的完整行为顺序序列可以为ADCB;

第四步,基于上述的完整行为顺序序列再开始后续的仿真模拟以及更新、预测等操作。

在从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列之后,对行为顺序序列以队列等形式存储,存储行为顺序序列中的每一个角色,可选地,至少存储相关的角色的ID,存储的参数还可以包括最后一次行为的时间、行为频率、行为失误率等。

步骤S406,按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型。

在本申请上述步骤S406提供的技术方案中,按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,其中,更新后的行为预测模型是根据模拟结果进行更新得到的。

在从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列之后,依次对每一个角色进行仿真模拟,也即,对整个游戏进程的仿真模拟,该仿真模拟可以采用MCTS、行为树等方法。

可选地,以MCTS方法为例,从当前状态开始,使用行为预测模型,该预测模型可以为随机预测模型,按照已经确定的行为执行顺序对多个角色进行仿真模拟,依次预测每一个角色的行为并计算行为对当前游戏的影响;在仿真模拟结束之后,更新行为预测模型,如果仿真模拟没有结束,则继续对需要仿真模拟的对象进行仿真模拟,直至仿真模拟完成。

在按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟之后,根据模拟结果来对行为预测模型进行更新,比如,当模拟结果判定为胜,则增大预测模型中对应的预测结果出现的概率,当模拟结果判定为负,则减小预测模型中对应的预测结果出现的概率,从而实现对行为预测模型的更新,重复执行上述过程多次,直至达到在MCTS方法中设定的执行次数,实现了对游戏进程进行仿真模拟的目的。

可选地,完整的模拟过程为依次模拟角色行为,在判断是否需要进行下一个角色的模拟以及刚模拟完的角色是否要插入队列的时候,需要先判断当前模拟是否终止,例如判断游戏是否结束,或者是否达到某个分值等。当整个模拟的过程终止之后,才会得到当前的模拟结果,当前的模拟结果可以为胜利,失败等游戏结果,并根据这个游戏结果来更新行为预测模型。但在得到当前的模拟结果之前,在依次对角色进行模拟的每一次,都要判断是否达到用于判断模拟是否终止的条件。

步骤S408,使用更新后的行为预测模型生成行为信息。

在本申请上述步骤S408提供的技术方案中,使用更新后的行为预测模型生成行为信息,其中,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为。

可选地,判断按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟的次数是否达到预定的模拟次数,如果按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟的次数达到预定的模拟次数,使用最新的行为预测模型预测当前角色中的一个或多个在当前状态之后的下一个行为,也即,以行为预测模型中的最大概率的行为来模拟当前角色中的一个或多个在当前状态之后的下一个行为,该行为包括客户端执行的策略或动作。

可选地,该实施例中的预定的模拟次数为使用MCTS方法来完成仿真模拟的次数,与MCTS方法中设定的执行次数不一样。

步骤S410,将行为信息发送给游戏客户端。

在本申请上述步骤S410提供的技术方案中,将行为信息发送给游戏客户端。

在使用更新后的行为预测模型生成行为信息之后,将行为信息发送给游戏客户端,客户端执行行为信息中的策略或动作。可选地,判断游戏是否结束,如果判断出游戏结束,则结束游戏,如果判断出游戏没有结束,则执行步骤S402,接收游戏客户端发送的当前游戏的状态数据。其中,判断游戏是否结束,是指根据游戏本身程序的设定来进行判断,比如,当击败所有对手,或者占领对手领地,或者比分率先达到某一个分值时,确定游戏结束。

通过上述步骤S402至步骤S410,通过接收游戏客户端发送的当前游戏的状态数据,其中,状态数据用于指示当前游戏中多个角色的当前状态;从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,其中,行为顺序序列中记录了多个角色的行为执行顺序;按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,其中,更新后的行为预测模型是根据模拟结果进行更新得到的;使用更新后的行为预测模型生成行为信息,其中,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为;将行为信息发送给游戏客户端,可以解决游戏中角色行为生成的准确度较低的技术问题,进而达到提高游戏中角色行为生成的准确度和生产的效率的技术效果。

作为一种可选的实施例,步骤S406,按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型包括:重复执行以下步骤,直到达到预定的模拟次数:在本次模拟中按照行为执行顺序依次从多个角色中获取当前待模拟的角色,重复执行图5所示的步骤。

图5是根据本发明实施例的一种按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟的方法的流程图。如图5所示,该步骤包括:

步骤S501,使用上次模拟后更新得到的行为预测模型对当前待模拟的角色进行模拟。

在本申请上述步骤S501提供的技术方案中,使用上次模拟后更新得到的行为预测模型对当前待模拟的角色进行模拟,对当前待模拟的角色进行模拟不是针对一个角色的,而是针对所有角色的,游戏是一步步按照预测模拟进行下去,最终会产生一个游戏结果,比如,胜利、失败等结果。

步骤S502,判断对当前待模拟的角色进行模拟之后是否得到用于指示当前游戏结束的当前的模拟结果。

在本申请上述步骤S502提供的技术方案中,用于指示当前游戏结束的当前的模拟结果可以为游戏结束,或者是到某个分值的情况。

步骤S503,若得到当前的模拟结果,则结束本次模拟,并根据当前的模拟结果对上次模拟后更新得到的行为预测模型进行更新。

在本申请上述步骤S503提供的技术方案中,在判断对当前待模拟的角色进行模拟之后是否得到用于指示当前游戏结束的当前的模拟结果之后,若得到当前的模拟结果,则结束本次模拟,并根据当前的模拟结果对上次模拟后更新得到的行为预测模型进行更新,其中,模拟结果包括每次模拟得到的当前的模拟结果,更新后的行为预测模型是使用最后一次模拟得到的当前的模拟结果对倒数第二次模拟后更新得到的行为预测模型进行更新得到的。

可选地,从当前状态开始,模拟游戏的进程,使用行为预测模型按照选定的行为顺序序列,依次预测每一个角色的行为并计算行为对当前游戏的影响,该行为预测模型可以为随机预测模型。计算行为对当前游戏的影响是根据游戏本身的设计来进行的。判断该次模拟是否达到模拟结束条件,如果该次模拟达到模拟结束条件,根据当前的模拟结果对上次模拟后更新得到的行为预测模型进行更新,比如,当模拟结果判定为胜,则增大上次模拟后更新得到的行为预测模型中对应的预测结果出现的概率,当模拟结果判定为负则减小上次模拟后更新得到的行为预测模型中对应的预测结果出现的概率。如果该次模拟没有达到模拟结束条件,则继续使用行为预测模型按照选定的行为顺序序列,依次预测每一个角色的行为并计算行为对当前游戏的影响。可选地,模拟结束条件可以是模拟直至游戏结束,或者是模拟达成事先指定的模拟完成条件,比如,达到一定的模拟步数则确定模拟完成。如果模拟未完成则继续模拟,直至完成模拟。

在根据当前的模拟结果对上次模拟后更新得到的行为预测模型进行更新之后,判断按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟的次数是否达到预定的模拟次数,如果按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟的次数达到预定的模拟次数,则使用最新的行为预测模型预测当前角色的行为,也即,以行为预测模型中的最大概率的行为来模拟当前角色的行为。其中,预定的模拟次数是事先人工指定的一个参数。如果按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟的次数未达到预定的模拟次数,那么需要继续按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟。

该实施例通过重复执行以下步骤,直到达到预定的模拟次数:在本次模拟中按照行为执行顺序依次从多个角色中获取当前待模拟的角色,重复执行以下步骤:使用上次模拟后更新得到的行为预测模型对当前待模拟的角色进行模拟;判断对当前待模拟的角色进行模拟之后是否得到用于指示当前游戏结束的当前的模拟结果;若得到当前的模拟结果,则结束本次模拟,并根据当前的模拟结果对上次模拟后更新得到的行为预测模型进行更新,达到了按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,进而达到提高游戏中角色行为生成的准确度和生成的效率的技术效果。

作为一种可选的实施例,按照行为执行顺序从多个角色中获取当前待模拟的角色包括:从执行队列中取出位于队首的当前待模拟的角色,其中,多个角色按照行为执行顺序存入执行队列。

行为顺序序列中的多个角色以执行队列的形式存储,行为顺序序列中记录了多个角色的行为执行顺序。从执行队列中取出位于队首的当前待模拟的角色,也即,从执行队列中获取第一个需要仿真模拟的对象进行仿真模拟。仿真模拟可以采用MCTS、行为树等方法。MCTS仿真是指对游戏进行事先指定的多次模拟并对行为预测模型进行更新,利用最新的行为预测模型来决定角色当前应当采取的策略,一次来模拟当前角色的行为,利用行为树进行仿真可以按照行为树提供的复杂的规则来决定角色当前应当采取的策略,以此来模拟当前角色的行为,其中,复杂的规则一般是人工定义的,比如,当血量低于某一个阈值时,角色应当朝哪一个方向逃离危险区域多少距离。采用MCTS、行为树等方法进行仿真模拟的计算耗时低,仿真模拟效果好。

作为一种可选的实施例,在使用上次模拟后更新得到的行为预测模型对当前待模拟的角色进行模拟,得到当前的模拟结果之前,判断模拟是否结束,如果模拟没有结束,将已执行完模拟的当前待模拟的角色重新插入到执行队列中,也即,插入队列操作是在得到最终模拟结果之前完成的,在所有角色都经过多次模拟之后才能得到游戏的结果。

图6是根据本发明实施例的另一种按照行为执行顺序依次使用行为预测模型对所述多个角色进行仿真模拟的方法的流程图。如图6所示,该按照行为执行顺序依次使用行为预测模型对所述多个角色进行仿真模拟的方法还包括以下步骤:

步骤S601,在未得到用于指示当前游戏结束的当前的模拟结果的情况下,将已执行完模拟的当前待模拟的角色存入执行队列的队尾;或者,获取当前待模拟的角色在当前状态下的最后一次行为的执行时间T1,以及预先记录的行为频率所对应的间隔时间T2。

在本申请上述步骤S601提供的技术方案中,在使用上次模拟后更新得到的行为预测模型对当前待模拟的角色进行模拟之后,在未得到用于指示当前游戏结束的当前的模拟结果的情况下,将已经仿真模拟完毕的当前待模拟的角色重新插入该执行队列,可以将已经仿真模拟完毕的对象根据行为顺序序列中的行为执行顺序依次插入执行队列的队尾,或者获取根据每个角色最后一次行为的时间T1以及根据行为频率得到的行为间隔时间T2,其中,行为频率与最后一次行为相对应。

步骤S602,将已执行完模拟的当前待模拟的角色存入执行队列中与(T1+T2)对应的位置上。

在本申请上述步骤S602提供的技术方案中,在将已执行完模拟的当前待模拟的角色存入执行队列的队尾;或者,获取当前待模拟的角色在当前状态下的最后一次行为的执行时间T1,以及预先记录的行为频率所对应的间隔时间T2之后,计算其下一次行为所发生的时间T1+T2,然后按照时间T1+T2插入到执行队列中相应的位置。

该实施例通过在未得到用于指示当前游戏结束的当前的模拟结果的情况下,将已执行完模拟的当前待模拟的角色存入执行队列的队尾;或者,获取当前待模拟的角色在当前状态下的最后一次行为的执行时间T1,以及预先记录的行为频率所对应的间隔时间T2,将已执行完模拟的当前待模拟的角色存入执行队列中与(T1+T2)对应的位置上,达到了提高游戏中角色行为生成的准确度和生成的效率的技术效果。

作为一种可选的实施例,在从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列之前,通过对历史游戏日志进行统计操作,得到行为顺序库中的行为顺序序列,其中,历史游戏日志中的每条游戏日志记录是按照预定帧率记录的,预定帧率下的每一帧中最多只有一个角色在执行行为。

从游戏日志数据库中依次读取一条历史游戏日志;每一条历史游戏日志均按照预定帧率来记录的,其中每一帧中至多只有一个角色在行动。依次从该条历史游戏日志的每一帧中抽取出有行为记录的角色及其相关数据,并按时间顺序排列成一个游戏日志完整序列,可以从第一帧开始,把每一帧中有行为记录的角色和相关数据抽取出来,相关数据包括角色属于哪一方、角色的行为频率、角色的行为失误率等数据,然后按照时间顺序排列,得到游戏日志完整序列。将上述游戏日志完整序列按照各方进行分解,产生各方的序列;从上述各方序列的第一个角色开始,依次找出排列中各方的最小全序列;每一方的全序列是指该方的某一包含该方所有的角色的连续子序列,连续子序列是指该子序列对应的角色序列字符串要能被该方序列对应的角色序列字符串所包含。其中,序列有包含关系,如果一条序列对应的角色序列字符串被另一条序列对应的角色序列字符串所包含,则称前者被后者包含,或者称前者小于后者。

每一条历史游戏日志会产生一个游戏日志完整序列,每一个游戏日志完整序列会产生多个各方序列,每一个各方序列会产生多个最小全序列,从而对产生的所有的最小全序列进行计数。对包含角色组合相同的最小全序列,将次数最多的最小全序列加入行为顺序库,从而获取行为顺序库,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列。

作为一种可选的实施例,通过对历史游戏日志进行统计操作,得到行为顺序库中的行为顺序序列包括:从每条游戏日志记录中获取每帧有行为记录的角色,得到游戏日志完整序列;从游戏日志完整序列中获取每个角色集合的子序列;从每个角色集合的子序列中得到角色集合的最小全序列;在历史游戏日志的所有游戏日志记录的最小全序列中,对于角色组合相同的最小全序列,将出现次数最多的最小全序列记录为行为顺序库中的行为顺序序列。

图7是根据本发明实施例的一种通过对历史游戏日志进行统计操作,得到行为顺序库中的行为顺序序列的方法的流程图。如图7所示,该通过对历史游戏日志进行统计操作,得到行为顺序库中的行为顺序序列的方法以下步骤:

步骤S701,从每条游戏日志记录中获取每帧有行为记录的角色,得到游戏日志完整序列。

在本申请上述步骤S701提供的技术方案中,从每条游戏日志记录中获取每帧有行为记录的角色,得到游戏日志完整序列,其中,游戏日志完整序列是按照时间顺序对每条游戏日志记录中的所有帧中的有行为记录的角色进行排列得到的。

依次从每条游戏日志记录中的每一帧中抽取出有行为记录的角色及其相关数据,并按时间顺序排列成一个游戏日志完整序列。

步骤S702,从游戏日志完整序列中获取每个角色集合的子序列。

在本申请上述步骤S702提供的技术方案中,从游戏日志完整序列中获取每个角色集合的子序列,其中,多个角色被划分为至少两个角色集合,每个角色集合的子序列是按照时间顺序对所有帧中属于该角色集合的、有行为记录的角色进行排列得到的。

从游戏日志完整序列的第一帧开始,把每一帧中有行为记录的角色和相关数据抽取出来,相关数据包括角色属于哪一方,比如,有的游戏中,角色会被划分为多个不同的阵营,每一个阵营称为一方,为角色集合的子序列。相关数据还包括角色的行为频率、角色的行为失误率等数据,然后按照时间顺序排列对所有帧中属于该角色集合的、有行为记录的角色进行排列。

举例而言,假设该条行为记录中一共包含6个角色,记为A、B、C、D、E、F,那么,每一帧中可以至多抽取到其中一个角色的相关数据,可以用多维数组的方式记录下来,仍以A、B、C、D、E、F来代表相应的数组。假设该条日志数据中有20帧记录了角色的行为,那么按照时间顺序排列得到的游戏日志完整序列类似于ACBBDEFABCDFEABCDFEC形式。

将上述游戏日志完整序列按照各个就是集合进行分解,产生每个角色集合的子序列。假设上述例子中角色A、C、E为一方,角色B、D、F为另一方,那么序列ACBBDEFABCDFEABCDFEC就被分解成两个子序列:ACEACEACEC和BBDFBDFBDF。

步骤S703,从每个角色集合的子序列中得到角色集合的最小全序列。

在本申请上述步骤S703提供的技术方案中,从每个角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的连续字符串,其中,连续字符串仅包括角色集合中的每个角色的标识;在历史游戏日志的所有游戏日志记录的最小全序列中,对于角色组合相同的最小全序列,将出现次数最多的最小全序列记录为行为顺序库中的行为顺序序列。从上述每个角色集合的子序列的第一个角色开始,依次找出排列中各方的最小全序列;在每个角色集合的子序列中,把每个角色集合的最小全序列都找出来。每个角色集合的全序列是指该角色集合的某一包含该角色集合中所有的角色的连续子序列,比如,对于角色集合的ACEACEACEC序列而言,子序列中的连续字符串ACE是全序列,而AEC、AC均不是。序列有包含关系,如果一条序列对应的角色序列字符串被另一条序列对应的角色序列字符串所包含,则称前者被后者包含,或者称前者小于后者。比如,AEC被CAECE包含,或者AEC小于CAECE。最小全序列是指该全序列在包含关系中是最小的全序列。依次是指从角色集合的序列的第一个角色开始遍历直至该角色集合的序列的最后一个角色。比如,以角色集合的ACEACEACEC为例,最小全序列为:ACE、CEA、EAC。

对于角色组合相同的最小全序列,将出现次数最多的最小全序列记录为行为顺序库中的行为顺序序列,将次数最多的最小全序列加入行为序列库。其中,角色组合是指该序列中所包含的角色ID的不可重复的集合,比如,CAECE的角色组合是集合{C,A,E}。

该实施例通过从每条游戏日志记录中获取每帧有行为记录的角色,得到游戏日志完整序列,其中,游戏日志完整序列是按照时间顺序对每条游戏日志记录中的所有帧中的有行为记录的角色进行排列得到的;从游戏日志完整序列中获取每个角色集合的子序列,其中,多个角色被划分为至少两个角色集合,每个角色集合的子序列是按照时间顺序对所有帧中属于该角色集合的、有行为记录的角色进行排列得到的;从每个角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的连续字符串,其中,连续字符串仅包括角色集合中的每个角色的标识;在历史游戏日志的所有游戏日志记录的最小全序列中,对于角色组合相同的最小全序列,将出现次数最多的最小全序列记录为行为顺序库中的行为顺序序列,实现了通过对历史游戏日志进行统计操作,得到行为顺序库中的行为顺序序列的目的,进而达到了提高游戏中角色行为生成的准确度和生成的效率的技术效果。

作为一种可选的实施例,当前游戏包括实时战略类游戏,多个角色被划分为至少两个角色集合,其中,至少两个角色集合在实时战略类游戏中是对立的。

本发明实施例通过行为顺序序列,使得对实时多人对战游戏中多个角色的仿真模拟变得可行,这样的方式与实时多人对战游戏的特点更为贴近,相对更加合理,而且计算耗时也非常低,再结合MCTS、行为树等模拟仿真方法,不仅可以使得AI更为接近甚至超越人类选手的水平,提升AI的能力,而且整个模拟过程可以很好的满足实时多人对战游戏严格的实时性的要求,达到了提高游戏中角色行为生成的准确度和生成的效率的技术效果,更好地提高游戏玩家的体验。

实施例2

下面结合优选的实施例对本发明的技术方案进行说明。

本发明实施例提出了一种实时多人对战游戏中基于顺序的仿真方法,能够针对实时多人对战游戏这种复杂情况做出更合理的模拟,更好地提升AI的能力,并且能满足实时多人对战游戏严格的实时性的要求。

图8是根据本发明实施例的另一种游戏中角色行为的生成方法的流程图。如图8所示,该游戏中角色行为的生成方法包括以下步骤:

步骤S801,从行为顺序库中取出本局游戏相关的行为顺序序列。

从行为顺序库中取出本局游戏相关的行为顺序序列,行为顺序序列数据库中的行为顺序序列可以通过对历史的游戏日志进行统计等方法得到。

行为序列库是存放行为顺序数据的数据库。其中,行为顺序,是指各个角色依次行动的一种顺序,如果从极小的时间粒度上去看,游戏中不同角色的行为其实是存在先后顺序关系的。在多人对战游戏里,角色的组合是多样化的,可以通过基于统计的办法得到不同角色组合中各个角色的行为顺序。

可选地,历史积累的大量游戏日志数据,一般是按照某个帧率(例如每秒60帧)来记录的,通常在每一帧中最多只有一个角色在行动,这样一来,根据帧与帧之间的顺序关系,以及每一帧对应的有行为的角色,就可以得到不同角色的行为顺序序列,再对大量的角色组合和对应的行为顺序序列进行统计,对相同的角色组合,保留出现次数最多的行为顺序序列,就可得到行为序列库。不仅如此,除了得到行为顺序序列外,每一个角色的行为频率、行为失误率等参数也可以一并统计得到,从而实现从行为顺序库中取出本局游戏相关的行为顺序序列。

本局游戏相关的行为顺序序列的实现过程如下:

第一步,在中获取状态数据,该状态数据包括每一个角色(无论是否AI控制)最近一次行动的时间(这个状态数据至少要传过来);

第二步,获取与每一方的角色组合相同的行为顺序序列;

第三步,结合行为顺序序列中的每个角色的“行为频率”参数(这个参数需要在统计阶段记录下来)和第一步中的“最近一次行动的时间”,将多方对应的行为顺序序列拼接在一起,形成包含游戏中所有角色在内的完整行为顺序序列。例如游戏有两方:A、B和C、D,对应的行为顺序序列可以为AB和DC,拼接后形成的完整行为顺序序列可以为ADCB;

第四步,基于上述的完整行为顺序序列再开始后续的仿真模拟以及更新、预测等操作。

步骤S802,将该行为顺序序列以队列等形式存储。

将该行为顺序序列以队列等形式存储,该队列也即执行队列。对于行为顺序序列中的每一个对象(即角色),至少需要存储相关的角色的ID,除此之外,存储的参数还可以包含:最后一次行为的时间、行为频率、行为失误率等。

步骤S803,从该队列中取出第一个需要仿真模拟的对象进行仿真模拟。

从该队列中取出第一个需要仿真模拟的对象进行仿真模拟,仿真模拟可以采用MCTS、行为树等方法。

步骤S804,判断模拟是否结束。

判断模拟是否结束,如果判断出模拟结束,则结束模拟,如果判断出模拟没有结束,则执行步骤S805。其中,判断模拟是否结束,是指根据游戏本身程序的设定来进行判断,比如,击败所有对手,或者占领对手领地,或者比分率先达到某一个分值等。

步骤S805,将已经仿真模拟完毕的对象重新插入该队列。

将已经仿真模拟完毕的对象重新插入该队列,执行步骤S803。

已经模拟完毕的对象重新插入该队列比如,可以根据行为顺序序列中的顺序依次插入队列尾部,或者根据每个角色最后一次行为的时间T1以及根据行为频率得到的行为间隔时间T2,计算其下一次行为所发生的时间T1+T2,然后按照时间插入到队列中相应的位置。

该实施例从行为顺序库中取出本局游戏相关的行为顺序序列,将该行为顺序序列以队列等形式存储,从该队列中取出第一个需要仿真模拟的对象进行仿真模拟,判断游戏是否结束,如果判断出游戏结束,则结束游戏,如果判断出游戏没有结束,将已经仿真模拟完毕的对象重新插入该队列,从而实现了通过顺序序列的方式进行仿真模拟的目的。这样的方式与实时多人对战游戏的特点更为贴近,相对更加合理,而且计算耗时也非常低,再结合上述提及的业界主流的仿真模拟方法,不仅可以使得AI更为接近甚至超越人类选手的水平,提升AI的能力,而且整个模拟过程可以很好的满足实时多人对战游戏严格的实时性的要求。

图9是根据本发明实施例的一种得到行为序列库的基于统计的方法的流程图。如图9所示,该得到行为序列库的基于统计的方法包括以下步骤:

步骤S901,从游戏日志数据库中依次读取一条游戏日志数据。

每一条游戏日志数据均按照某个给定的帧率来记录的,其中每一帧中至多只有一个角色在行动。

步骤S902,依次从该条日志数据的每一帧中抽取出有行为记录的角色及其相关数据,并按时间顺序排列成一个游戏日志完整序列。

从第一帧开始,把每一帧中有行为记录的角色和相关数据抽取出来,相关数据包括角色属于哪一方(有的游戏中,角色会被划分为多个不同的阵营,每一个阵营称为一方)、角色的行为频率、角色的行为失误率等数据,然后按照时间顺序排列。假设该条游戏记录中一共包含6个角色,记为A、B、C、D、E、F,那么,每一帧中可以至多抽取到其中一个角色的相关数据,可以用多维数组的方式记录下来,以A、B、C、D、E、F来代表相应的数组。假设该条日志数据中有20帧记录了角色的行为,那么按照时间顺序排列得到的游戏日志完整序列类似于ACBBDEFABCDFEABCDFEC这样的形式。

步骤S903,将上述游戏日志完整序列按照各方进行分解,产生各方的序列。

假设上述例子中角色A、C、E为一方,角色B、D、F为另一方,那么序列ACBBDEFABCDFEABCDFEC就被分解成两个序列:ACEACEACEC和BBDFBDFBDF。

步骤S904,从上述各方序列的第一个角色开始,依次找出排列中各方的最小全序列。

每一方的全序列是指该方的某一包含该方所有的角色的连续子序列,连续子序列是指该子序列对应的角色序列(序列中只保留角色ID)字符串要能被该方序列对应的角色序列字符串所包含,比如,对于ACEACEACEC这个序列而言,ACE是全序列,而AEC、AC均不是。序列有包含关系:如果一条序列对应的角色序列字符串被另一条序列对应的角色序列字符串所包含,则称前者被后者包含,或者称前者小于后者。比如,AEC被CAECE包含,或者AEC小于CAECE。最小是指该全序列在包含关系中是最小的。依次是指从各方序列的第一个角色开始遍历直至该方序列的最后一个角色。以ACEACEACEC为例,找到的最小全序列为:ACE、CEA、EAC。

步骤S905,统计游戏日志数据库中产生的所有的最小全序列的次数。

每一条游戏日志会产生一个游戏日志完整序列,每一个游戏日志完整序列会产生多个各方序列,每一个各方序列会产生多个最小全序列。

步骤S906,对包含角色组合相同的最小全序列,将次数最多的最小全序列加入行为序列库。

对包含角色组合相同的最小全序列,将次数最多的最小全序列加入行为序列库,角色组合是指该序列中所包含的角色ID的不可重复的集合,比如,CAECE的角色组合是集合{C,A,E}。

该实施例的本局游戏相关的行为顺序序列,是指行为顺序序列数据库中角色组合与本局游戏中AI控制的每一方的角色组合(控制多方即多个角色组合)相同的行为顺序序列。

在游戏进行的同时,还可以实时分析对手的行为顺序序列与行为频率、行为失误率等,对AI的行为顺序序列和其它参数进行调整,使得AI的能力与对手更为接近,不会比对手太强或太弱。

图10是根据本发明实施例的一种通过MCTS进行模拟的方法的流程图。如图10所示,该通过MCTS进行模拟的方法包括以下步骤:

步骤S1001,从当前状态开始,使用行为预测模型依照选定的行为顺序序列,依次预测每一个角色的行为并计算行为对当前游戏的影响。

从当前状态开始,使用行为预测模型按照选定的行为顺序序列,依次预测每一个角色的行为并计算行为对当前游戏的影响。行为预测模型可以为随机预测模型。

利用MCTS仿真是指进行多次(事先指定的游戏的模拟次数)的模拟。计算行为对当前游戏的影响是根据游戏本身的设计来进行的。计算行为对当前游戏的影响是根据游戏本身的设计来进行的。

步骤S1002,判断该次模拟是否结束。

判断该次模拟是否结束,如果判断出该次模拟结束,执行步骤S1003,如果判断出该次模拟没有结束,执行步骤S1001。

模拟结束条件可以是模拟直至游戏结束,或者是模拟达成事先指定的模拟完成条件,比如,达到一定的模拟步数等。如果模拟未完成则继续模拟,直至完成模拟。

步骤S1003,更新行为预测模型。

在每次模拟结束之后,根据模拟结果来对行为预测模型进行更新。比如,当模拟结果判定为胜时,则增大预测模型中对应的预测结果出现的概率,当模拟结果判定为负时,则减小预测模型中对应的预测结果出现的概率,从而实现了对预测行为模型的更新。

步骤S1004,判断是否达到模拟次数。

在更新行为预测模型之后,判断是否达到模拟次数,如果判断出达到模拟次数,执行步骤S1005,如果判断出未达到模拟次数,执行步骤S1001。

模拟次数是事先人工指定的一个参数。如果没有达到模拟次数的要求,那么需要继续模拟。

步骤S1005,使用最新的行为预测模型预测当前角色的行为。

即以行为预测模型中的最大概率的行为来模拟当前角色的行为。

本发明实施例的游戏中角色行为的生成方法,能够针对实时多人对战游戏做出更合理的模拟,使得AI更接近甚至超越人类选手的水平,更好的提升AI的能力,并且能满足实时多人对战游戏严格的实时性的要求,提高了游戏中角色行为的生成的准确度和生成的效率,进而提高了游戏玩家的用户体验。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例3

本发明实施例的应用环境可以但不限于参照上述实施例中的应用环境,本实施例中对此不再赘述。本发明实施例提供了用于实施上述游戏中角色行为的生成方法的一种可选的具体应用。

发明提出的基于顺序的仿真方法能够针对实时多人对战游戏这种复杂情况做出更合理的模拟,更好的提升AI的能力,并且能满足实时多人对战游戏严格的实时性的要求。

本发明提出一种实时多人对战游戏中基于顺序的仿真方法,能够针对实时多人对战游戏这种复杂情况做出更合理的模拟,更好的提升AI的能力,并且能满足实时多人对战游戏严格的实时性的要求。

本技术主要应用在实时多人对战游戏的人机对战模式,提升游戏AI的能力,优化玩家的用户体验。

图11是根据本发明实施例的一种游戏中的交互方法的流程示意图。如图11所示,该游戏过程中的交互方法包括以下步骤:

步骤S1101,游戏客户端将当前游戏的状态数据通过网络发送到游戏模拟服务器上。

步骤S1102,游戏模拟服务器通过仿真方法选择最佳的策略或动作并返回给游戏客户端。

步骤S1103,客户端执行返回的策略或动作。

在该实施例中,游戏客户端实时上传状态数据至游戏模拟服务器,该状态数据包括当前的操作状态的状态数据,或者当前的动作的动作状态数据等。游戏模拟服务器根据当前状态数据按照预测行为模型在行为顺序库中获取角色组合与本局游戏中的每一方的角色组合相同的行为顺序序列,按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,该模拟结果可以为输、或者赢的模拟结果,使用更新后的行为预测模型生成行为信息,该行为信息为使用行为预测模型对一个或多个角色进行预测得到的最佳策略或者动作,也即,游戏客户端执行的策略或者动作的概率最高。将该行为信息发送给游戏客户端,客户端执行游戏模拟服务器返回的策略或者动作。

本发明实施例提出一种实时多人对战游戏中基于顺序的仿真方法,能够针对实时多人对战游戏做出更合理的模拟,使得AI更接近甚至超越人类选手的水平,更好的提升AI的能力,并且能满足实时多人对战游戏严格的实时性的要求,提高玩家的用户体验。

实施例4

根据本发明实施例,还提供了一种用于实施上述游戏中角色行为的生成方法的游戏中角色行为的生成装置。图12是根据本发明实施例的一种游戏中角色行为的生成装置的示意图。如图12所示,该游戏中角色行为的生成方法包括:接收单元10,获取单元20,模拟单元30,生成单元40和发送单元50。

接收单元10,用于接收游戏客户端发送的当前游戏的状态数据,其中,状态数据用于指示当前游戏中多个角色的当前状态。

获取单元20,用于从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,其中,行为顺序序列中记录了多个角色的行为执行顺序。

模拟单元30,用于按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,其中,更新后的行为预测模型是根据模拟结果进行更新得到的。

生成单元40,用于使用更新后的行为预测模型生成行为信息,其中,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为。

发送单元50,用于将行为信息发送给游戏客户端。

图13是根据本发明实施例的另一种游戏中角色行为的生成装置的示意图。如图13所示,该游戏中角色行为的生成装置包括:接收单元10,获取单元20,模拟单元30,生成单元40和发送单元50。其中,模拟单元30包括:执行模块31。

需要说明的是,该实施例的接收单元10,获取单元20,模拟单元30,生成单元40和发送单元50与图12所示实施例的游戏中角色行为的生成装置中的作用相同,此处不再赘述。

执行模块31,用于重复执行以下步骤,直到达到预定的模拟次数:在本次模拟中按照行为执行顺序依次从多个角色中获取当前待模拟的角色,重复执行以下步骤:使用上次模拟后更新得到的行为预测模型对当前待模拟的角色进行模拟;判断对当前待模拟的角色进行模拟之后是否得到用于指示当前游戏结束的当前的模拟结果;若得到当前的模拟结果,则结束本次模拟,并根据当前的模拟结果对上次模拟后更新得到的行为预测模型进行更新。

可选地,模拟结果包括每次模拟得到的当前的模拟结果,更新后的行为预测模型是使用最后一次模拟得到的当前的模拟结果对倒数第二次模拟后更新得到的行为预测模型进行更新得到的。

可选地,模拟单元30用于从执行队列中取出位于队首的当前待模拟的角色,其中,多个角色按照行为执行顺序存入在执行队列。

可选地,执行模块31还用于在未得到用于指示当前游戏结束的当前的模拟结果的情况下,将已执行完模拟的当前待模拟的角色存入执行队列的队尾;或者,获取当前待模拟的角色在当前状态下的最后一次行为的执行时间T1,以及预先记录的行为频率所对应的间隔时间T2,并将已执行完模拟的当前待模拟的角色存入执行队列中与(T1+T2)对应的位置上,其中,行为频率与最后一次行为相对应。

图14是根据本发明实施例的另一种游戏中角色行为的生成装置的示意图。如图14所示,该游戏中角色行为的生成装置包括:接收单元10,获取单元20,模拟单元30,生成单元40和发送单元50。该游戏中角色行为的生成装置还包括:统计单元60。

需要说明的是,该实施例的接收单元10,获取单元20,模拟单元30,生成单元40和发送单元50与图12所示实施例的游戏中角色行为的生成装置中的作用相同,此处不再赘述。

统计单元60,用于在从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列之前,通过对历史游戏日志进行统计操作,得到行为顺序库中的行为顺序序列,其中,历史游戏日志中的每条游戏日志记录是按照预定帧率记录的,预定帧率下的每一帧中最多只有一个角色在执行行为。

图15是根据本发明实施例的另一种游戏中角色行为的生成装置的示意图。如图15所示,该游戏中角色行为的生成装置包括:接收单元10,获取单元20,模拟单元30,生成单元40,发送单元50和统计单元60。其中,统计单元60包括:第一获取模块61,第二获取模块62,第三获取模块63和记录模块64。

需要说明的是,该实施例的接收单元10,获取单元20,模拟单元30,生成单元40,发送单元50和统计单元60与图14所示实施例的游戏中角色行为的生成装置中的作用相同,此处不再赘述。

第一获取模块61,用于从每条游戏日志记录中获取每帧有行为记录的角色,得到游戏日志完整序列,其中,游戏日志完整序列是按照时间顺序对每条游戏日志记录中的所有帧中的有行为记录的角色进行排列得到的。

第二获取模块62,用于从游戏日志完整序列中获取每个角色集合的子序列,其中,多个角色被划分为至少两个角色集合,每个角色集合的子序列是按照时间顺序对所有帧中属于该角色集合的、有行为记录的角色进行排列得到的。

第三获取模块63,用于从每个角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的连续字符串,其中,连续字符串仅包括角色集合中的每个角色的标识。

记录模块64,用于在历史游戏日志的所有游戏日志记录的最小全序列中,对于角色组合相同的最小全序列,将出现次数最多的最小全序列记录为行为顺序库中的行为顺序序列。

可选地,在本发明实施例中的游戏中角色行为的生成装置中,当前游戏包括实时战略类游戏,多个角色被划分为至少两个角色集合,其中,至少两个角色集合在实时战略类游戏中是对立的。

需要说明的是,该实施例中的接收单元10可以用于执行本申请实施例1中的步骤S402,该实施例中的获取单元20可以用于执行本申请实施例1中的步骤S404,该实施例中的模拟单元30可以用于执行本申请实施例1中的步骤S406,该实施例中的生成单元40可以用于执行本申请实施例1中的步骤S408,该实施例中的发送单元50可以用于执行本申请实施例1中的步骤S410。

该实施例通过接收单元10接收游戏客户端发送的当前游戏的状态数据,其中,状态数据用于指示当前游戏中多个角色的当前状态,通过获取单元20从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,其中,行为顺序序列中记录了多个角色的行为执行顺序,通过模拟单元30按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,其中,更新后的行为预测模型是根据模拟结果进行更新得到的,通过生成单元40使用更新后的行为预测模型生成行为信息,其中,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为,通过发送单元50将行为信息发送给游戏客户端,可以解决游戏中角色行为生成的准确度较低的技术问题,达到了提高游戏中角色行为生成的准确度和生成的效率的技术效果。

此处需要说明的是,上述单元和模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述单元和模块作为装置的一部分可以运行在如图3所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。其中,硬件环境包括网络环境。

实施例5

根据本发明实施例,还提供了一种用于实施上述游戏中角色行为的生成方法的服务器或终端。

图16是根据本发明实施例的一种终端的结构框图。如图16所示,该终端可以包括:一个或多个(图中仅示出一个)处理器161、存储器163、以及传输装置165(如上述实施例中的发送装置)。如图16所示,该终端还可以包括输入输出设备167。

其中,存储器163可用于存储软件程序以及模块,如本发明实施例中的游戏中角色行为的生成方法和装置对应的程序指令/模块,处理器161通过运行存储在存储器163内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的游戏中角色行为的生成方法。存储器163可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器163可进一步包括相对于处理器161远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置165用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置165包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置165为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器163用于存储应用程序。

处理器161可以通过传输装置165调用存储器163存储的应用程序,以执行下述步骤:

接收游戏客户端发送的当前游戏的状态数据,其中,状态数据用于指示当前游戏中多个角色的当前状态;

从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,其中,行为顺序序列中记录了多个角色的行为执行顺序;

按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,其中,更新后的行为预测模型是根据模拟结果进行更新得到的;

使用更新后的行为预测模型生成行为信息,其中,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为;将行为信息发送给游戏客户端。

处理器161还用于执行下述步骤:按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型包括:重复执行以下步骤,直到达到预定的模拟次数:在本次模拟中按照行为执行顺序依次从多个角色中获取当前待模拟的角色,重复执行以下步骤:使用上次模拟后更新得到的行为预测模型对当前待模拟的角色进行模拟;判断对当前待模拟的角色进行模拟之后是否得到用于指示当前游戏结束的当前的模拟结果;若得到当前的模拟结果,则结束本次模拟,并根据当前的模拟结果对上次模拟后更新得到的行为预测模型进行更新;其中,模拟结果包括每次模拟得到的当前的模拟结果,更新后的行为预测模型是使用最后一次模拟得到的当前的模拟结果对倒数第二次模拟后更新得到的行为预测模型进行更新得到的。

处理器161还用于执行下述步骤:从执行队列中取出位于队首的当前待模拟的角色,其中,多个角色按照行为执行顺序存入执行队列。

处理器161还用于执行下述步骤:在未得到用于指示当前游戏结束的当前的模拟结果的情况下,将已执行完模拟的当前待模拟的角色存入执行队列的队尾;或者,获取当前待模拟的角色在当前状态下的最后一次行为的执行时间T1,以及预先记录的行为频率所对应的间隔时间T2,并将已执行完模拟的当前待模拟的角色存入执行队列中与(T1+T2)对应的位置上,其中,行为频率与最后一次行为相对应。

处理器161还用于执行下述步骤:在从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列之前,通过对历史游戏日志进行统计操作,得到行为顺序库中的行为顺序序列,其中,历史游戏日志中的每条游戏日志记录是按照预定帧率记录的,预定帧率下的每一帧中最多只有一个角色在执行行为。

处理器161还用于执行下述步骤:从每条游戏日志记录中获取每帧有行为记录的角色,得到游戏日志完整序列,其中,游戏日志完整序列是按照时间顺序对每条游戏日志记录中的所有帧中的有行为记录的角色进行排列得到的;从游戏日志完整序列中获取每个角色集合的子序列,其中,多个角色被划分为至少两个角色集合,每个角色集合的子序列是按照时间顺序对所有帧中属于该角色集合的、有行为记录的角色进行排列得到的;从每个角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的连续字符串,其中,连续字符串仅包括角色集合中的每个角色的标识;在历史游戏日志的所有游戏日志记录的最小全序列中,对于角色组合相同的最小全序列,将出现次数最多的最小全序列记录为行为顺序库中的行为顺序序列。

采用本发明实施例,提供了一种游戏中角色行为的生成方法的方案。接收游戏客户端发送的当前游戏的状态数据,状态数据用于指示当前游戏中多个角色的当前状态;从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,行为顺序序列中记录了多个角色的行为执行顺序;按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,更新后的行为预测模型是根据模拟结果进行更新得到的;使用更新后的行为预测模型生成行为信息,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为;将行为信息发送给游戏客户端,达到了对游戏中的角色行为进行生成的目的,从而实现了提高游戏中角色行为生成的准确度和生成的效率的技术效果,进而解决了游戏中角色行为生成的准确度较低的技术问题。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图16所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图16并不对上述电子装置的结构造成限定。例如,终端还可包括比图16中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图16所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

实施例6

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行游戏中角色行为的生成方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

接收游戏客户端发送的当前游戏的状态数据,其中,状态数据用于指示当前游戏中多个角色的当前状态;

从当前状态开始,从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列,其中,行为顺序序列中记录了多个角色的行为执行顺序;

按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型,其中,更新后的行为预测模型是根据模拟结果进行更新得到的;

使用更新后的行为预测模型生成行为信息,其中,行为信息用于指示多个角色中的一个或多个在当前状态之后的下一个行为;将行为信息发送给游戏客户端。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:按照行为执行顺序依次使用行为预测模型对多个角色进行仿真模拟,得到模拟结果和更新后的行为预测模型包括:重复执行以下步骤,直到达到预定的模拟次数:在本次模拟中按照行为执行顺序依次从多个角色中获取当前待模拟的角色,重复执行以下步骤:使用上次模拟后更新得到的行为预测模型对当前待模拟的角色进行模拟;判断对当前待模拟的角色进行模拟之后是否得到用于指示当前游戏结束的当前的模拟结果;若得到当前的模拟结果,则结束本次模拟,并根据当前的模拟结果对上次模拟后更新得到的行为预测模型进行更新;其中,模拟结果包括每次模拟得到的当前的模拟结果,更新后的行为预测模型是使用最后一次模拟得到的当前的模拟结果对倒数第二次模拟后更新得到的行为预测模型进行更新得到的。

存储介质还被设置为存储用于执行以下步骤的程序代码:从执行队列中取出位于队首的当前待模拟的角色,其中,多个角色按照行为执行顺序存入执行队列。

存储介质还被设置为存储用于执行以下步骤的程序代码:在未得到用于指示当前游戏结束的当前的模拟结果的情况下,将已执行完模拟的当前待模拟的角色存入执行队列的队尾;或者,获取当前待模拟的角色在当前状态下的最后一次行为的执行时间T1,以及预先记录的行为频率所对应的间隔时间T2,并将已执行完模拟的当前待模拟的角色存入执行队列中与(T1+T2)对应的位置上,其中,行为频率与最后一次行为相对应。

存储介质还被设置为存储用于执行以下步骤的程序代码:在从预先获取到的行为顺序库中获取当前游戏相关的行为顺序序列之前,通过对历史游戏日志进行统计操作,得到行为顺序库中的行为顺序序列,其中,历史游戏日志中的每条游戏日志记录是按照预定帧率记录的,预定帧率下的每一帧中最多只有一个角色在执行行为。

存储介质还被设置为存储用于执行以下步骤的程序代码:从每条游戏日志记录中获取每帧有行为记录的角色,得到游戏日志完整序列,其中,游戏日志完整序列是按照时间顺序对每条游戏日志记录中的所有帧中的有行为记录的角色进行排列得到的;从游戏日志完整序列中获取每个角色集合的子序列,其中,多个角色被划分为至少两个角色集合,每个角色集合的子序列是按照时间顺序对所有帧中属于该角色集合的、有行为记录的角色进行排列得到的;从每个角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的连续字符串,其中,连续字符串仅包括角色集合中的每个角色的标识;在历史游戏日志的所有游戏日志记录的最小全序列中,对于角色组合相同的最小全序列,将出现次数最多的最小全序列记录为行为顺序库中的行为顺序序列。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1