游戏关卡设计方法、装置、存储介质及电子设备与流程

文档序号:21844169发布日期:2020-08-14 16:51阅读:160来源:国知局
游戏关卡设计方法、装置、存储介质及电子设备与流程

本发明涉及游戏开发技术领域,具体而言,涉及一种游戏关卡设计方法、装置、存储介质及电子设备。



背景技术:

一款优秀的游戏,玩家在通关的过程中会体验到关卡难易程度的变化,并由此产生情绪波动,给玩家带来难忘的体验。可以用玩家在游戏过程中的情绪体验曲线来描述玩家的情绪波动。优秀(指玩家体验良好)的情绪体验曲线可以由心理学分析给出,开发游戏的难点在于如何设计出符合该情绪体验曲线的游戏关卡。

传统的方法是设计好一个游戏关卡后,找玩家试玩游戏,并通过问卷调查等方式统计玩家在不同时间点的情绪,判断是否满足预设的玩家情绪体验曲线,若不满足,则调整游戏关卡的参数并重复上述测试过程,直至确定合适的关卡参数才算完成游戏关卡的设计。

按照上述方法设计游戏关卡需要投入大量的人力和时间成本进行关卡测试,导致游戏开发成本显著上升,开发进度也受到影响。并且,由于很多游戏具有一定的随机性,若要充分测试游戏关卡,必须找到大量玩家进行足够多次数的试玩,在人力和时间成本受限的情况下,通常难以满足这一要求,从而导致对游戏关卡的测试结果不够准确,也就是说设计出来的游戏关卡无法满足玩家的情绪体验曲线,造成玩家的实际游戏体验不佳。



技术实现要素:

本申请实施例的目的在于提供一种游戏关卡设计方法、装置、存储介质及电子设备,以改善上述技术问题。

为实现上述目的,本申请提供如下技术方案:

第一方面,本申请实施例提供一种游戏关卡设计方法,包括:利用玩家针对游戏关卡的情绪体验曲线转换得到所述游戏关卡的目标函数,所述目标函数为玩家的通关进度和期望玩家对关卡目标的完成情况之间的函数;根据配置信息配置所述游戏关卡;训练针对所述游戏关卡的智能体,并利用训练好的智能体试玩所述游戏关卡;记录所述智能体在试玩过程中产生的游戏数据,并根据所述游戏数据确定所述游戏关卡的实际函数,所述实际函数为所述智能体的通关进度和所述智能体对关卡目标的完成情况之间的函数;计算所述实际函数与所述目标函数的差异;根据所述实际函数与所述目标函数的差异确定所述游戏关卡的最终配置信息。

在上述方法中,利用训练好的智能体代替人类玩家对游戏关卡进行试玩,根据试玩过程中收集到的游戏数据确定游戏关卡的实际函数,并根据游戏关卡的实际函数与目标函数的差异确定游戏关卡的最终配置信息(即完成游戏关卡的设计)。由于智能体是人工智能程序,所以其试玩游戏的效率远高于人类玩家,从而可以快速、自动地完成对游戏关卡的测试,大幅节约设计游戏关卡所需的人力和时间成本,加快游戏开发进度。

进一步的,得益于较高的执行效率,智能体可以对游戏关卡进行更加充分的试玩,从而对游戏关卡进行更加精准、全面的测试,有利于设计出的游戏关卡精准匹配于预设的玩家情绪体验曲线,使得玩家在实际游戏过程中能够获得良好的游戏体验。

在第一方面的一种实现方式中,所述根据所述实际函数与所述目标函数的差异确定所述游戏关卡的最终配置信息,包括:若所述实际函数与所述目标函数的差异小于预设阈值,则将所述游戏关卡的当前配置信息确定为所述游戏关卡的最终配置信息;若所述实际函数与所述目标函数的差异不小于预设阈值,则采用新的配置信息并重复执行所述根据配置信息配置所述游戏关卡至所述计算所述实际函数与所述目标函数的差异的步骤,直至在所述实际函数与所述目标函数的差异小于预设阈值时,将所述游戏关卡的当前配置信息确定为所述游戏关卡的最终配置信息。

在第一方面的一种实现方式中,所述根据所述实际函数与所述目标函数的差异确定所述游戏关卡的最终配置信息,包括:采用新的配置信息并重复执行所述根据配置信息配置所述游戏关卡至所述计算所述实际函数与所述目标函数的差异的步骤,直至遍历完所述游戏关卡全部的候选配置信息;确定遍历过程中得到的所述实际函数与所述目标函数的差异最小值;若所述差异最小值小于预设阈值,则将得到所述差异最小值时采用的配置信息确定为所述游戏关卡的最终配置信息。

游戏关卡的实际函数与目标函数的差异可以表征设计出来的游戏关卡与玩家的情绪体验曲线的匹配程度,差异越小二者越匹配,玩家的游戏体验也越好(从理论意义上讲),反之则越不匹配,玩家的游戏体验也越差。根据游戏关卡的实际函数与目标函数的差异确定游戏关卡的最终配置信息有多种实现方式:

在上面第一种的实现方式中,游戏关卡的最终配置信息并不一定是最优的配置信息(这里的最优是指设计出来的游戏关卡最符合玩家的情绪体验曲线),只要找到符合预设条件的配置信息就可以了。这里所说的预设条件就是指游戏关卡的实际函数与目标函数的差异小于预设阈值,该条件表达的意义是按照当前的配置信息配置好的游戏关卡已经足够符合玩家的情绪体验曲线,出于时间、成本等因素考虑,无需再继续搜索是否有更优的配置信息。

在上面第二种的实现方式中,对配置信息空间(例如,若配置信息是游戏参数,则配置信息空间就是参数的取值空间)进行遍历,从中搜索出最优的配置信息,从而利用该最优的配置信息配置好的游戏关卡就是最符合玩家的情绪体验曲线的游戏关卡,这种实现方式将对游戏关卡的配置优化放在首位,而将时间、成本等因素放在次要位置。

不难看出,确定游戏关卡的最终配置信息的过程是一个迭代测试、直至找到符合要求的配置信息的过程,但和现有技术不同,借助于智能体,这一对配置信息的搜索过程可自动完成,执行效率较高,可以在合理的时间范围内设计出玩家体验良好的游戏关卡。作为对比的,若配备专门的工作人员来调整游戏关卡的配置信息,不仅浪费人力资源,而且受限于工作人员的专业技能、精神状况等因素,难以在合理的时间范围内调整出较好的配置信息,使得设计出的游戏关卡体验不佳。

在第一方面的一种实现方式中,所述利用玩家针对游戏关卡的情绪体验曲线转换得到所述游戏关卡的目标函数之前,所述方法还包括:获取玩家在多种情绪下执行的操作在游戏中导致的操作反馈;对所述操作反馈进行评分,并确定与评分结果对应的游戏目标;基于所述多种情绪与所述游戏目标之间的对应关系确定所述情绪体验曲线与所述目标函数之间的转换关系。

玩家的情绪会驱动玩家做出游戏操作,而做出的操作必然在游戏中产生反馈,该反馈又会反作用于玩家,使之产生新的情绪。可以通过评分的方式量化玩家的操作反馈,而游戏目标也与评分对应,从而可以建立起玩家情绪与游戏目标之间的关联。通过大量分析这样的关联关系就可以确定出从任意情绪到游戏目标之间映射关系,从而基于这种映射就能够将情绪体验曲线转换为目标函数。

在第一方面的一种实现方式中,所述训练针对所述游戏关卡的智能体,并利用训练好的智能体试玩所述游戏关卡,包括:训练针对所述游戏关卡的不同水平智能体,并利用训练好的不同水平的智能体分别试玩所述游戏关卡。

水平不同的智能体可以模拟不同水平的玩家,针对不同水平的玩家游戏关卡可以采用不同难度的配置,以使得各类玩家都能获得较好的游戏体验。此外,针对不同水平的玩家也可以分别设置不同的情绪体验曲线。

在第一方面的一种实现方式中,所述训练针对所述游戏关卡的不同水平智能体,包括:在训练智能体的过程中记录已训练的时长,并将所述时长达到不同的预设时长时得到的智能体作为不同水平的智能体。

训练时长越长,则智能体的游戏水平越高,因此在上述实现方式中,采用训练的时长来区分不同水平的智能体。

在第一方面的一种实现方式中,所述训练针对所述游戏关卡的不同水平智能体,包括:在训练智能体的过程中计算智能体针对所述游戏关卡的通关率,并将所述通关率达到不同的预设通关率时得到的智能体作为不同水平的智能体。

训练时长越长,则智能体的游戏水平越高,智能体的游戏水平的高低可以通过对游戏关卡的通关率进行衡量,因此在上述实现方式中,采用对游戏关卡的通关率来区分不同水平的智能体。相较于采用训练时长来区别不同水平的智能体的实现方式,采用对游戏关卡的通关率来区分不同水平的智能体更加精确,当然在实现上也会复杂一些。

在第一方面的一种实现方式中,所述训练针对所述游戏关卡的智能体,包括:利用强化学习算法训练针对所述游戏关卡的智能体。

强化学习算法是机器学习的一个领域,该算法通过在特定的环境中进行尝试,学习选择哪种行动可以得到最大的收益。对于本申请的方案,简单而言,强化学习算法就是利用智能体在游戏关卡中进行不断尝试各种操作,学习采用哪种游戏操作可以尽可能多和/或尽可能快地完成关卡目标。

在第一方面的一种实现方式中,在所述目标函数中,玩家的通关进度是指在所述游戏关卡中玩家已执行的操作步数或已玩时间,期望玩家对关卡目标的完成情况是指在所述游戏关卡中期望玩家完成的关卡目标的数量或比例。

在第一方面的一种实现方式中,所述配置信息包括游戏规则和/或游戏参数。

第二方面,本申请实施例提供一种游戏关卡设计装置,包括:函数转换模块,用于利用玩家针对游戏关卡的情绪体验曲线转换得到所述游戏关卡的目标函数,所述目标函数为玩家的通关进度和期望玩家对关卡目标的完成情况之间的函数;关卡配置模块,用于根据配置信息配置所述游戏关卡;关卡试玩模块,用于训练针对所述游戏关卡的智能体,并利用训练好的智能体试玩所述游戏关卡;数据收集模块,用于记录所述智能体在试玩过程中产生的游戏数据,并根据所述游戏数据确定所述游戏关卡的实际函数,所述实际函数为所述智能体的通关进度和所述智能体对关卡目标的完成情况之间的函数;差异计算模块,用于计算所述实际函数与所述目标函数的差异;配置决定模块,用于根据所述实际函数与所述目标函数的差异确定所述游戏关卡的最终配置信息。

第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。

第四方面,本申请实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例提供的一种游戏关卡设计方法的流程图;

图2示出了本申请实施例提供的一种情绪体验曲线的示意图;

图3示出了本申请实施例提供的一种目标函数的示意图;

图4示出了本申请实施例提供的一种玩家情绪与游戏目标的关联方法的流程图;

图5示出了本申请实施例提供的一种游戏关卡设计装置的功能模块图;

图6示出了本申请实施例提供的一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本申请实施例首先提供的一种游戏关卡设计方法,通过执行该方法可以设计出在某种程度上匹配于玩家的情绪体验曲线的游戏关卡,图1示出了游戏关卡设计方法的一种可能的流程。图1中的方法可以由一电子设备执行,图6示出了该电子设备的一种可能的结构,具体可以参考后文关于图6的阐述。参照图1,该方法包括:

步骤s100:利用玩家针对游戏关卡的情绪体验曲线转换得到游戏关卡的目标函数。

玩家的情绪体验曲线用于描述玩家在游戏过程中情绪随游戏进度波动的情况。以图2为例,图2的横轴为游戏进度,具体可以指游戏时间、游戏步数等;图2的纵轴为玩家的情绪,纵轴的正方向表示正面情绪,如爽快、兴奋等,纵轴的负方向表示负面情绪,如后悔、焦虑等(这里的正面情绪、负面情绪应理解为是针对玩游戏而言的)。从而,曲线上的任意一点都可以代表玩家在游戏进行至某个节点时的情绪体验。

例如,在曲线上的a点处玩家发现了游戏目标,情绪就会上升;在曲线上的b点处,障碍物的出现给玩家通关游戏带来了困难,情绪就会下降;在曲线上的c点处,消除障碍物的成就感使得玩家情绪上升;在曲线上的d点处,玩家达成了某一通关条件,通关希望的增加使得玩家情绪位于高点;在曲线上的e点处,剩余步数不足(例如,游戏关卡有步数限制)使得玩家感到焦虑,情绪陷入低谷;在曲线上的f点处,玩家顺利通关,正面情绪达到顶点。

玩家的情绪体验曲线可以由游戏策划给出,在此基础上尽可能设计出符合该情绪体验曲线的游戏关卡。这里所谓的“符合”是指玩家在通关该游戏关卡的过程中,情绪随通关进度的变化情况在应与事先设定好的情绪体验曲线一致(一致并不一定是完全相同,可以容忍一定程度的差异)。从而,若情绪体验曲线设置得当,玩家将获得良好的游戏体验,在后面的例子,均默认游戏策划给出的情绪体验曲线是得当的。

从游戏层面来说,在一个游戏中,每个游戏关卡可以有自己独立的情绪体验曲线,也可以多个游戏关卡共用一条情绪体验曲线;每个游戏可以有自己独立的情绪体验曲线,也可以多个游戏共用情绪体验曲线。从玩家层面来说,可以为所有玩家设定相同的情绪体验曲线,也可以为不同的玩家群体分别设定不同的情绪体验曲线。

需要指出,玩家的情绪体验曲线描述的是存在于玩家情绪和游戏进度之间的客观关系,无论是否将该曲线在图中绘制出来(例如,像图2中那样绘制出来),该曲线都是客观存在的,因此是否实际绘制出该曲线不应对本申请方案的保护范围造成限制。

虽然玩家的情绪体验曲线对游戏关卡的设计可以起到指导作用,但玩家的情绪毕竟不是直接与游戏内容建立联系,使用起来并不方便,所以在本申请的方案中,会首先将玩家针对某一游戏关卡的情绪体验曲线转换为该游戏关卡的目标函数。

其中,游戏关卡的目标函数为玩家的通关进度和期望玩家对关卡目标的完成情况之间的函数,若用x表示玩家的通关进度,y表示期望玩家对关卡目标的完成情况,则目标函数的数学表达式为y=f(x)。

在目标函数的定义中,玩家的通关进度可以指在游戏关卡中玩家已执行的操作步数或已玩时间,期望玩家对关卡目标的完成情况可以指在游戏关卡中期望玩家完成的关卡目标的数量或比例,关卡目标的具体内容和游戏有关,例如有可能是得分、获得物品的数量、消除障碍的数量、完成某个任务的进度等等。以图3为例,其横轴为玩家已执行的操作步数,纵轴为期望玩家完成的关卡目标的百分比,图3中的曲线则表示目标函数,比如,在玩家执行第2步操作后,期望其能够完成关卡目标的20%。

在目标函数的定义中,所谓的“期望”应理解为游戏策划者对玩家的一种期望,若玩家按照该期望完成游戏,即玩家在目标函数所指定的各个进度节点处能够完成目标函数所指定的目标,则玩家在这些进度节点处体验到的情绪应与情绪体验曲线在这些进度节点处的情绪吻合。换句话说,若玩家在通关该游戏关卡时恰好按照目标函数所指定的方式完成关卡目标,则玩家的情绪也会按照事先制定好的情绪体验曲线发展,从而玩家可以获得良好的游戏体验。因此,目标函数也可视为情绪体验曲线的另一种表达形式,在这种表达形式中,用关卡目标的完成情况代替了玩家情绪。由于玩家在执行游戏操作后,关卡目标的完成情况可以实时统计(玩家情绪则不容易准确、快速测定),所以用目标函数来指导游戏关卡的设计比直接使用情绪体验曲线更为方便。

要将情绪体验曲线转换为目标函数,首先需要确定二者之间的转换关系。发明人经长期研究发现,在游戏过程中,玩家的操作很大程度上受到情绪的驱动,而做出的操作必然在游戏中产生反馈,比如使游戏的局面发生某种变化等,操作反馈又会反作用于玩家,使之产生新的情绪,如此往复。基于这一发现,可以采取图4中的做法关联起玩家情绪与玩家所达成的游戏目标:

首先,获取玩家在某种情绪下执行的操作在游戏中导致的操作反馈;然后,按照一定的规则对获得的操作反馈进行评分,以便将其量化表示为一个分数;之后,按照一定的规则确定与该分数对应的游戏目标,这样就可以获得玩家的某种情绪与玩家达成的某个游戏目标之间的对应关系(如图4中虚线所示)。大量重复上面三个步骤,就可以收集到玩家的多种情绪与游戏目标之间的对应关系。最后,可以对收集到的大量数据进行分析(例如,回归分析等)就可以确定出从玩家的任意情绪到玩家达成的游戏目标之间映射关系,由于情绪体验曲线上的每一点都对应一种具体的情绪,所以基于这种映射关系就能够将情绪体验曲线转换为目标函数。换句话说,这种映射关系中也包含了情绪体验曲线与目标函数之间的转换关系。

可以理解的,步骤s100的执行顺序并不限于在步骤s110之前,只要在目标函数被首次使用(如步骤s140中)之前执行就可以了。

步骤s110:根据配置信息配置游戏关卡。

步骤s110中的配置信息可以包括游戏规则和/或游戏参数。其中,游戏规则例如:是否允许使用某种游戏道具、是否允许玩家在游戏中存档等,游戏参数例如:游戏中物品掉落的概率、游戏中怪物的数量等。游戏规则和游戏参数既可以是针对某个特定游戏关卡的,也可以是针对所有游戏关卡的。

在本申请的方案中,游戏关卡是可配置的,并且可用的配置信息不只一项,将可用的配置信息简称为候选配置信息,步骤s110中的配置信息可以理解为任意一项候选配置信息。某个游戏关卡全部的候选配置信息可以形成该游戏关卡的配置信息空间,例如,若配置信息是游戏参数,则配置信息空间可以理解为游戏参数的取值空间。采用不同的候选配置信息对游戏关卡进行配置,配置好后的游戏关卡将具有不同的难易程度,从而玩家在通关不同配置的游戏关卡时对关卡目标的完成状况也会不同,情绪体验也会不同。所谓设计游戏关卡,其实质就是在配置信息空间中为游戏关卡搜索一项合适的候选配置信息(在步骤s150中称为最终配置信息),使得用该候选配置信息配置游戏关卡后,玩家在通关时对关卡目标的完成情况在某种程度上符合该游戏关卡的目标函数,而玩家在通关时的情绪波动在某种程度上符合玩家针对该游戏关卡的情绪体验曲线。

配置好一个游戏关卡是指游戏环境已经搭建好,配置信息中的游戏规则已经实现和/或游戏参数已经设定好,该游戏关卡处于可运行的状态。根据不同的游戏实现方式,步骤s110中的配置操作可能只需修改游戏关卡的配置文件,也可能需要对游戏关卡和/或整个游戏环境进行一定程度的开发。

步骤s120:训练针对游戏关卡的智能体,并利用训练好的智能体试玩游戏关卡。

智能体是一种人工智能程序,该人工智能程序可以根据当前的游戏状态自主选择要执行的游戏操作,从而能够模拟并代替人类玩家对游戏关卡进行试玩。由于智能体试玩游戏的效率远高于人类玩家,所以便于对游戏关卡进行大量的试玩,例如,数千次、数万次试玩等。特别是目前的很多游戏都具有一定的随机性,比如掉落的物品是随机的,即使多次试玩同一游戏关卡获得的物品也不同,所以大量试玩有利于对游戏关卡进行全面、充分的测试,而人类玩家显然难以达到这样的试玩效果。

在一些实现方式中,可以利用强化学习算法训练针对游戏关卡的智能体。强化学习是机器学习的一个重要领域,强化学习算法通过在特定的环境中进行尝试,学习选择哪种行动可以得到最大的收益。对于本申请的方案,简单而言,强化学习算法就是利用智能体在游戏关卡中进行不断尝试各种操作,学习采用哪种游戏操作可以尽可能多和/或尽可能快地完成关卡目标。一种可能的训练过程如下:

关卡开局后,智能体调用游戏提供的接口reset()获取当前的游戏状态state以及当前合法的操作集合legalactions,例如对于三消类游戏(具体例子见后文),游戏状态可以包括游戏画面中物体的位置及类型、当前剩余步数、当前完成的目标数、当前获得的分数等;

初始时,智能体按照初始的操作选择策略(例如,初始时可以是随机选择,当然也不排除会基于state进行选择)从legalactions中选择一个操作action,并调用游戏提供的接口step(state,action)以执行该操作;

操作执行后,游戏会进入一个新的状态newstate并会有新的合法操作集合newlegalactions,而且执行操作后还可能完成了一定数量的关卡目标reward;

游戏将newstate、newlegalactions以及reward返回给智能体,智能体根据本次接收到的数据以及之前接收到的数据(初始时智能体尚未接收过游戏返回的数据,但训练一段时间后自然会有数据)更新操作选择策略,例如,若智能体根据一个神经网络进行决策,则可以更新该神经网络的参数;

智能体根据更新后的操作选择策略从newlegalactions选择新的操作并执行,如此循环往复不断更新操作选择策略,直至完成训练。

应当理解,上述训练过程中涉及的变量、接口名称仅为示例,并不构成对本申请保护范围的限制。

其中,训练的目标可以设置为使智能体在通关过程中完成的关卡目标的总数量最多,根据上面的训练过程可知,由于reward被纳入更新操作选择策略时考虑的因素,所以在上述训练目标下,智能体必然会倾向于选择获得的reward较多的策略。

停止训练的条件可以灵活设置,例如,训练时长达到了预设时长就停止训练,训练轮次达到了预设轮次就停止训练,智能体达到了预设水平就停止训练等,其中智能体的水平可以通过通关率等指标进行测试。

训练智能体可以使用步骤s110中配置好的游戏关卡,也不排除在某些实现方式中,训练智能体使用的游戏关卡并不是当前要设计的游戏关卡,但这要求训练好的智能体必须具有良好的泛化能力。

由于玩家存在不同的游戏水平,因此即使对于同一游戏关卡,不同水平的玩家玩起来可能会产生完全不同的体验,对于不同水平的玩家,可以训练不同水平的智能体进行模拟,游戏策划也可以为其设置不同的情绪体验曲线,并且,最终得到的关卡设计结果也可能不同(即选择的最终配置信息不同)。这样的处理方式是合理的,比如对于同一游戏关卡,在游戏中也可以提供难度选项供不同水平的玩家选择,让不同水平的玩家都能获得较好的游戏体验。下面列举两种训练不同水平的玩家的方法:

(1)在训练智能体的过程中记录已训练的时长,并将时长达到不同的预设时长时得到的智能体作为不同水平的智能体。例如,训练2小时得到的智能体为初级水平,训练5小时得到的智能体为中级水平,训练10小时得到的智能体为高级水平。

设计该训练方法的出发点是:训练时长越长,则基本上智能体的游戏水平也越高,因此可以采用训练的时长来区分不同水平的智能体。

(2)在训练智能体的过程中计算智能体针对游戏关卡的通关率,并将通关率达到不同的预设通关率时得到的智能体作为不同水平的智能体。例如,通关率达到50%时得到的智能体为初级水平,通关率达到70%时得到的智能体为中级水平,通关率达到90%时得到的智能体为高级水平。对于通关率的计算,例如,试玩游戏关卡100次,有30次在指定步数内达到了通关要求完成的关卡目标,则通关率为30%。

设计该训练方法的出发点是:训练时长越长,则基本上智能体的游戏水平越高,智能体的游戏水平的高低可以通过对游戏关卡的通关率进行衡量,因此可以采用对游戏关卡的通关率来区分不同水平的智能体。相较于训练方式(1),训练方式(2)对于智能体的水平区分更加精确,当然在实现上也会复杂一些。

计算通关率可以在每训练一段时间或轮次后就用智能体试玩游戏关卡若干次并进行统计,或者,一些训练方法的训练过程本身也可以视为智能体的试玩过程(参考前面的强化学习算法的步骤),所以也可以在训练过程中实时进行通关率统计。

步骤s130:记录智能体在试玩过程中产生的游戏数据,并根据游戏数据确定游戏关卡的实际函数。

其中,实际函数为智能体的通关进度和智能体对关卡目标的完成情况之间的函数,若用x表示智能体的通关进度,z表示智能体对关卡目标的完成情况,则实际函数的数学表达式为z=g(x)。x和z两项数据都包含在游戏数据中,从而基于游戏数据可以确定实际函数的表达式g(x)。

实际函数和目标函数的定义比较类似,智能体的通关进度可以指在游戏关卡中智能体已执行的操作步数或已玩时间,智能体对关卡目标的完成情况可以指智能体在游戏关卡中实际完成的关卡目标的数量或比例。

由于智能体会进行多次试玩,所以每试玩一次后都可以得到一个关于智能体的通关进度和智能体对关卡目标的完成情况的表达式,步骤s130中的实际函数可以基于这些表达式产生,例如取这些表达式的均值。

步骤s140:计算游戏关卡的实际函数与目标函数的差异。

将游戏关卡的实际函数与目标函数的差异记为diff(x),则有diff(x)=f(x)-g(x),其中符号“-”并不一定代表减法,只表示一种差异计算方式。例如,某个游戏关卡限定的最大通关步数为n,此时f(x)和g(x)都是离散函数,可以这样计算实际函数与目标函数的差异:当然也可以采取其他计算方式,比如,

步骤s150:根据实际函数与目标函数的差异确定游戏关卡的最终配置信息。

之前已经提到,游戏关卡的目标函数可以视为玩家针对该游戏关卡的情绪体验曲线的另一种表达形式,类似的,游戏关卡的实际函数则可以视为玩家(由智能体模拟)在实际试玩游戏关卡时的情绪体验。从而,如果游戏关卡的实际函数与目标函数的差异越小,表明若试玩该游戏关卡,则玩家情绪随通关进度的波动情况与预先设定好的情绪体验曲线越接近,玩家游戏体验越好;如果游戏关卡的实际函数与目标函数的差异越大,表明若试玩该游戏关卡,则玩家情绪随通关进度的波动情况与预先设定好的情绪体验曲线越不接近,玩家游戏体验越差。换言之,游戏关卡的实际函数与目标函数的差异可以表征设计出来的游戏关卡与玩家的情绪体验曲线的匹配程度,差异越小二者越匹配,反之则越不匹配。

游戏关卡的最终配置信息即游戏关卡的最终设计结果,根据游戏关卡的实际函数与目标函数的差异确定游戏关卡的最终配置信息有多种实现方式,下面仅列举其中两种:

(1)在执行完步骤s140后,若游戏关卡的实际函数与目标函数的差异小于预设阈值,则将游戏关卡的当前配置信息(指步骤s110中使用的配置信息)确定为游戏关卡的最终配置信息;若实际函数与目标函数的差异不小于预设阈值,则采用新的配置信息并重复执行步骤s110至步骤s140,直至在采用某一项配置信息时游戏关卡的实际函数与目标函数的差异小于预设阈值,将游戏关卡的此时的配置信息确定为游戏关卡的最终配置信息。若遍历完了配置信息空间中全部的候选配置信息,仍然没有一项配置信息使得游戏关卡的实际函数与目标函数的差异小于预设阈值,则表明按照目前的方式设计游戏关卡无法与玩家的情绪体验曲线进行很好的匹配,此时可以考虑对之前未纳入搜索范围的游戏参数和/或游戏规则进行调整(相当于扩大配置信息空间重新进行搜索)。

(2)在执行完步骤s140后,直接采用新的配置信息并重复执行步骤s110至步骤s140,直至遍历完游戏关卡全部的候选配置信息;确定遍历过程中得到的实际函数与目标函数的差异最小值;若该差异最小值小于预设阈值,则将得到该差异最小值时采用的配置信息确定为游戏关卡的最终配置信息。若该差异最小值不小于预设阈值,则表明按照目前的方式设计游戏关卡无法与玩家的情绪体验曲线进行很好的匹配,此时可以考虑对之前未纳入搜索范围的游戏参数和/或游戏规则进行调整。

在方式(1)中,游戏关卡的最终配置信息并不一定是最优的配置信息(这里的最优是指设计出来的游戏关卡最符合玩家的情绪体验曲线),只要找到符合预设条件的配置信息就可以了。这里所说的预设条件就是指游戏关卡的实际函数与目标函数的差异小于预设阈值,该条件表达的意义是按照当前的配置信息配置好的游戏关卡已经足够符合玩家的情绪体验曲线,出于时间、成本等因素考虑,无需再继续搜索是否有更优的配置信息。

在方式(2)中,对配置信息空间进行遍历,从中搜索出最优的配置信息(当然该最优的配置信息也要满足上述预设条件),从而利用该最优的配置信息配置好的游戏关卡就是最符合玩家的情绪体验曲线的游戏关卡,这种实现方式将对游戏关卡的配置优化放在首位(或者说首要考虑玩家体验),而将时间、成本等因素放在次要位置。

综上所述,在本申请实施例提供的游戏关卡设计方法中,配置好游戏关卡后,利用训练好的智能体代替人类玩家对游戏关卡进行试玩,根据试玩过程中收集到的游戏数据确定游戏关卡的实际函数,并根据游戏关卡的实际函数与目标函数的差异确定游戏关卡的最终配置信息。由于智能体的试玩效率远高于人类玩家,从而可以快速、自动地完成对游戏关卡的测试,大幅节约设计游戏关卡所需的人力和时间成本,加快游戏开发进度。

另一方面,得益于较高的执行效率,智能体可以对游戏关卡进行更加充分的试玩,从而对游戏关卡进行更加精准、全面的测试,有利于设计出的游戏关卡精准匹配于预设的玩家情绪体验曲线,使得玩家在实际游戏过程中能够获得良好的游戏体验。

进一步的,通过对上面步骤s150的阐述不难看出,确定游戏关卡的最终配置信息的过程可能是一个迭代测试的过程:需要反复配置并试玩游戏关卡,直至找到符合游戏关卡设计要求的配置信息。但和现有技术不同,借助于智能体,这一对配置信息的搜索过程可自动完成,执行效率较高,从而可以在合理的时间范围内设计出玩家体验良好的游戏关卡。作为对比的,若配备专门的工作人员来调整游戏关卡的配置信息,不仅浪费人力资源,而且受限于工作人员的专业技能、精神状况等因素,难以在合理的时间范围内调整出较好的配置信息,使得设计出的游戏关卡体验不佳。

下面再举一个三消游戏的例子,具体说明一下该游戏关卡设计方法。常见的三消游戏其游戏模式大体是这样的:游戏区域(例如一个矩形区域)中堆积着不同类型的物体(例如,不同种类的动植物),玩家可以交换相邻物体之间的位置,若交换后有三个(或三个以上)相同类型的物体连成一条直线,则这三个相同类型的物体会被消除,物体消除后,将引发一系列连锁反应,比如上方的物体会落下来,并且还会有新的物体从游戏区域的上方落入游戏区域内。一种设计三消游戏的游戏关卡的方法步骤如下:

步骤a:游戏策划通过心理学调研分析,制定出玩家针对某一游戏关卡的情绪体验曲线。

步骤b:将情绪体验曲线转换为目标函数f。假设f的形式为f(1)=1、f(2)=3、f(3)=6,即该游戏关卡限定为最多3步需要通关,且关卡目标是消除总共10个物体,其中第一步消除1个,第二步消除3个,第三步消除6个。

步骤c:配置游戏关卡的参数。假设该游戏关卡有两个参数a和b可供配置,a和b分别表示一种类型的物体的掉落概率,a的取值范围为[0.3,1.0],b的取值范围为[0,0.4],初始时可以设置a=0.3且b=0。

步骤d:训练针对步骤c中配置好的游戏关卡的智能体,并利用训练好的智能体试玩该游戏关卡,试玩10000局,在每局试玩中都记录智能体每操作一步后消除物体的数量(即完成关卡目标的数量)。若有必要,还可以训练不同水平的智能体,训练方法前文已述。

步骤e:根据步骤d中记录的游戏数据得到游戏关卡的实际函数g。假设g的形式为g(1)=3、g(2)=7、g(3)=0,其中第一步消除3个,第二步消除7个,由于第二步已经过关(消除10个物体即可过关),所以第三步消除0个。注意,g由智能体试玩10000局产生的游戏数据平均后得到。

步骤f:计算f和g的差异,计算方法为:

diff1=f(1)-g(1)=-2

diff2=f(2)-g(2)=-4

diff3=f(3)-g(3)=6

diff=diff12+diff22+diff32=4+16+36=56

若衡量f和g的差异程度的预设阈值t=10,则由于56>t,当前的游戏参数设置不满足要求,或者说若玩家试玩此时的游戏关卡,其情绪波动与设定好的情绪体验曲线将具有较大差别,表明这一组游戏参数不合适,必须调整。

步骤g:继续遍历参数空间,分别令a=0.3,0.31,...,1.0、b=0,0.01,...,0.4(a和b任意组合,a=0.3且b=0的情况之前已经计算过就不用再计算了)重复步骤c至步骤f,假设最后发现在a=0.45且b=0.27时,g(1)=1、g(2)=4、g(3)=5,f和g的差异为:

diff1=f(1)-g(1)=0

diff2=f(2)-g(2)=-1

diff3=f(3)-g(3)=1

diff=diff12+diff22+diff32=0+1+1=2

此时差异值最小,且2<t,因此参数a=0.45,b=0.27就是游戏关卡最终要选用的参数。

在上面的步骤中,需要注意的是,由于只需找diff的最小值,所以步骤f中的判断56和t的大小关系是不必要的操作,在步骤f中写出此判断操作的目的只是为了说明预设阈值t的含义。

另外,还需要指出,可调整的游戏参数其实有很多,比如在一些实现方式中,关卡目标的数量(上面为10)、通关的总步数(上面为3)都属于可调整的游戏参数。

图5示出了本申请实施例提供的游戏关卡设计装置200的功能模块图。参照图5,游戏关卡设计装置200包括:

函数转换模块210,用于利用玩家针对游戏关卡的情绪体验曲线转换得到所述游戏关卡的目标函数,所述目标函数为玩家的通关进度和期望玩家对关卡目标的完成情况之间的函数;

关卡配置模块220,用于根据配置信息配置所述游戏关卡;

关卡试玩模块230,用于训练针对所述游戏关卡的智能体,并利用训练好的智能体试玩所述游戏关卡;

数据收集模块240,用于记录所述智能体在试玩过程中产生的游戏数据,并根据所述游戏数据确定所述游戏关卡的实际函数;其中,所述实际函数为所述智能体的通关进度和所述智能体对关卡目标的完成情况之间的函数;

差异计算模块250,用于计算所述实际函数与所述游戏关卡的目标函数的差异;其中,所述目标函数为玩家的通关进度和期望玩家对关卡目标的完成情况之间的函数,所述目标函数根据玩家针对所述游戏关卡的情绪体验曲线转换得到;

配置决定模块260,用于根据所述实际函数与所述目标函数的差异确定所述游戏关卡的最终配置信息。

在游戏关卡设计装置200的一种实现方式中,配置决定模块260根据所述实际函数与所述目标函数的差异确定所述游戏关卡的最终配置信息,包括:若所述实际函数与所述目标函数的差异小于预设阈值,则将所述游戏关卡的当前配置信息确定为所述游戏关卡的最终配置信息;若所述实际函数与所述目标函数的差异不小于预设阈值,则采用新的配置信息并重复执行所述根据配置信息配置所述游戏关卡至所述计算所述实际函数与所述目标函数的差异的步骤,直至在所述实际函数与所述目标函数的差异小于预设阈值时,将所述游戏关卡的当前配置信息确定为所述游戏关卡的最终配置信息。

在游戏关卡设计装置200的一种实现方式中,配置决定模块260根据所述实际函数与所述目标函数的差异确定所述游戏关卡的最终配置信息,包括:采用新的配置信息并重复执行所述根据配置信息配置所述游戏关卡至所述计算所述实际函数与所述目标函数的差异的步骤,直至遍历完所述游戏关卡全部的候选配置信息;确定遍历过程中得到的所述实际函数与所述目标函数的差异最小值;若所述差异最小值小于预设阈值,则将得到所述差异最小值时采用的配置信息确定为所述游戏关卡的最终配置信息。

在游戏关卡设计装置200的一种实现方式中,函数转换模块210还用于:在利用玩家针对游戏关卡的情绪体验曲线转换得到所述游戏关卡的目标函数之前,获取玩家在多种情绪下执行的操作在游戏中导致的操作反馈;对所述操作反馈进行评分,并确定与评分结果对应的游戏目标;基于所述多种情绪与所述游戏目标之间的对应关系确定所述情绪体验曲线与所述目标函数之间的转换关系。

在游戏关卡设计装置200的一种实现方式中,关卡试玩模块230训练针对所述游戏关卡的智能体,并利用训练好的智能体试玩所述游戏关卡,包括:训练针对所述游戏关卡的不同水平智能体,并利用训练好的不同水平的智能体分别试玩所述游戏关卡。

在游戏关卡设计装置200的一种实现方式中,关卡试玩模块230训练针对所述游戏关卡的不同水平智能体,包括:在训练智能体的过程中记录已训练的时长,并将所述时长达到不同的预设时长时得到的智能体作为不同水平的智能体。

在游戏关卡设计装置200的一种实现方式中,关卡试玩模块230训练针对所述游戏关卡的不同水平智能体,包括:在训练智能体的过程中计算智能体针对所述游戏关卡的通关率,并将所述通关率达到不同的预设通关率时得到的智能体作为不同水平的智能体。

在游戏关卡设计装置200的一种实现方式中,关卡试玩模块230训练针对所述游戏关卡的智能体,包括:利用强化学习算法训练针对所述游戏关卡的智能体。

在游戏关卡设计装置200的一种实现方式中,在所述目标函数中,玩家的通关进度是指在所述游戏关卡中玩家已执行的操作步数或已玩时间,期望玩家对关卡目标的完成情况是指在所述游戏关卡中期望玩家完成的关卡目标的数量或比例。

在游戏关卡设计装置200的一种实现方式中,所述配置信息包括游戏规则和/或游戏参数。

本申请实施例提供的游戏关卡设计装置200,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。

图6示出了本申请实施例提供的电子设备300的一种可能的结构。参照图6,电子设备300包括:处理器310、存储器320以及通信接口330,这些组件通过通信总线340和/或其他形式的连接机构(未示出)互连并相互通讯。

其中,存储器320包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(randomaccessmemory,简称ram),只读存储器(readonlymemory,简称rom),可编程只读存储器(programmableread-onlymemory,简称prom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom)等。处理器310以及其他可能的组件可对存储器320进行访问,读和/或写其中的数据。

处理器310包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器310可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、微控制单元(microcontrollerunit,简称mcu)、网络处理器(networkprocessor,简称np)或者其他常规处理器;还可以是专用处理器,包括数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuits,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

通信接口330包括一个或多个(图中仅示出一个),可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。通信接口330可以包括进行有线和/或无线通信的接口。

在存储器320中可以存储一个或多个计算机程序指令,处理器310可以读取并运行这些计算机程序指令,以实现本申请实施例提供的游戏关卡设计方法或其他期望的功能。

可以理解,图6所示的结构仅为示意,电子设备300还可以包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。图6中所示的各组件可以采用硬件、软件或其组合实现。电子设备300可能是实体设备,例如服务器、pc机、笔记本电脑、平板电脑、手机、可穿戴设备、图像采集设备、车载设备、无人机、机器人等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。并且,电子设备300也不限于单台设备,也可以是多台设备的组合或者大量设备构成的一个或多个集群。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机的处理器读取并运行时,执行本申请实施例提供的游戏关卡设计方法。例如,计算机可读存储介质可以实现为图6中电子设备300中的存储器320。

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

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

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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