本发明属于电子信息领域,具体涉及一种游戏胜率预测方法。
背景技术:
游戏新手玩家在接触pvp和pve对战玩法的过程中,由于游戏经验不足,有一段比较长的时间内都会容易陷入失败的不良体验,尤其是在老玩家群体占多数的pvp游戏玩法中。造成这种情况的一个重要的原因就是,新手玩家缺乏对游戏局势做出正确的判断。为了解决这个问题,很多游戏都设计了新手关卡,得分反馈,比赛评分等功能来帮助新手玩家熟悉游戏,增强局势判断能力。这些方法都有一定的效果,但是也存在设计维护成本高,规则有局限的问题。
技术实现要素:
本发明提出一种游戏胜率预测方法,用于对战游戏中提供更准确的胜率预测服务,帮助新手玩家更容易地判断局势,提升用户体验。
本发明的技术方案是这样实现的:
一种游戏胜率预测方法,具体包括以下步骤:
步骤1,通过游戏接口从游戏数据中获取游戏状态数据;
步骤2,对游戏状态数据进行预处理,并根据游戏状态数据生成价值标签;
步骤3,采用游戏状态数据对胜率预测模型进行训练;
步骤4,根据胜率预测模型的价值估计输出胜负预测结果。
作为本发明的一个优选实施例,步骤1中游戏接口为游戏状态数据的解析和提取器,用于从运行的游戏或游戏录像中提取游戏状态数据;所述游戏状态数据为每个决策时刻游戏的状态向量,包括类别状态和数值状态。
作为本发明的一个优选实施例,对游戏状态数据进行预处理具体包括以下步骤:
步骤211,对所有角色所属的数值状态进行归一化处理;
步骤212,对所有角色所属的数值状态进行排序,将每个角色对应的顺序百分比数值作为新的数值状态加入状态向量;
步骤213,获取所有类别状态的类别最大值,根据类别最大值生成嵌入矩阵;
游戏状态数据生成价值标签具体包含以下步骤:
步骤221,计算每个状态距离游戏结束的时间步ted;
步骤222,通过比赛结果r与ted计算价值标签v,计算公式为:
作为本发明的一个优选实施例,所述衰减参数为0.99。
作为本发明的一个优选实施例,步骤3具体包括以下步骤:
步骤301,胜率预测模型分为状态处理模块和特征推理模块,其中状态处理模块输入状态数据输出特征向量,特征推理模块输入特征向量输出推理结果;状态处理模块分为类别处理模块和数值处理模块,对不同状态输入采用不同的处理层,对于类别状态采用嵌入层进行处理,对于数值状态采用全连接层进行处理;
步骤302,胜率预测模型采用梯度下降进行优化,输出通过双曲正切激活函数,并以均方误差作为损失函数。
作为本发明的一个优选实施例,所述类别处理模块包含若干个嵌入层和一个全连接层,嵌入层对每个不同的类别分别进行编码,再通过多层的全连接层生成特征;数值处理模块包含一个多层的全连接层,直接对数值状态处理生成特征;特征推理模块包含一个transformer编码层和一个全连接层,transformer编码层将不同角色的特征结合进行推理,全连接层包含一个隐藏层输出结果为最终的推理结果。
作为本发明的一个优选实施例,步骤4中还对胜负预测结果进行平滑处理。
本发明的有益效果在于:根据游戏状态数据生成价值标签,通过预测模型对胜负结果进行预测,用于对战游戏中提供更准确的胜率预测服务,帮助新手玩家更容易地判断局势,提升用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种游戏胜率预测方法一个实施例的流程图;
图2为胜率预测模型推理流程图;
图3为胜率预测模型一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前常见的游戏胜率预测模型大都采用最终胜负为标签的分类模型,这容易造成游戏前期局势不明朗情况下的数据对模型影响过大。本发明通过对游戏每个决策时刻状态的价值进行估计,避免了分类标签过大的噪声,提升胜负的预测准确度,可以在对抗游戏场景中实现胜率预测。
如图1-图3所示,本发明提出了一种游戏胜率预测方法,具体包括以下步骤:
步骤1,通过游戏接口从游戏数据中获取游戏状态数据;
步骤1中游戏接口为游戏状态数据的解析和提取器,用于从运行的游戏或游戏录像中提取游戏状态数据;所述游戏状态数据为每个决策时刻游戏的状态向量,包括类别状态和数值状态。其中类别状态为包括角色职业、技能类别及buff类型等,数值状态包括血量、蓝量及击杀数等。
步骤2,对游戏状态数据进行预处理,对不同类别的状态数据分别进行规范化处理,保证模型稳定,并根据游戏状态数据生成价值标签;
对游戏状态数据进行预处理具体包括以下步骤:
步骤211,对所有角色所属的数值状态进行归一化处理;归一化的一种可选方式为min-max,公式为:x*=(x-min(x))/(max(x)-min(x)),其中x*为归一化后的数值,x是指输入的游戏状态向量中的每个向量值的原始数值。
步骤212,对所有角色所属的数值状态进行排序,将每个角色对应的顺序百分比数值作为新的数值状态加入状态向量;
步骤213,获取所有类别状态的类别最大值,根据类别最大值生成嵌入矩阵;
游戏状态数据生成价值标签具体包含以下步骤:
步骤221,计算每个状态距离游戏结束的时间步ted,公式为:ted=tfinal-t,其中,t为当前时间步,tfinal为游戏结束的时间步;
步骤222,通过比赛结果r与ted计算价值标签v,计算公式为:
步骤3,采用游戏状态数据对胜率预测模型进行训练;
步骤3具体包括以下步骤:
步骤301,胜率预测模型分为状态处理模块和特征推理模块,其中状态处理模块输入状态数据输出特征向量,特征推理模块输入特征向量输出推理结果y;状态处理模块分为类别处理模块和数值处理模块,对不同状态输入采用不同的处理层,对于类别状态采用嵌入层进行处理,对于数值状态采用全连接层进行处理;
步骤302,胜率预测模型采用梯度下降进行优化,输出通过双曲正切激活函数,并以均方误差作为损失函数。损失函数的公式为mse=(v′-v)2,v′=tanh(y)。
所述类别处理模块包含若干个嵌入层和一个全连接层,嵌入层对每个不同的类别分别进行编码,再通过多层的全连接层生成特征;数值处理模块包含一个多层的全连接层,直接对数值状态处理生成特征;特征推理模块包含一个transformer编码层和一个全连接层,transformer编码层将不同角色的特征结合进行推理,全连接层包含一个隐藏层输出结果为最终的推理结果。
步骤4,根据胜率预测模型的价值估计输出胜负预测结果。
进一步地,为提升输出结果的稳定性,对输出的结果进行平滑,平滑方式如下vst+1=αvst+(1-α)v′t+1,其中α为定义平滑幅度的参数,t为时间参数,vs为平滑处理后的价值标签。
进一步地,模型通过对价值预测的符号判断进行胜负的预测,当vst+1>=0时,则预测为胜。当vst<0时,则预测为负,并将平滑后的价值vs和胜负预测返回给业务方。
本发明的有益效果在于:用于对战游戏中提供更准确的胜率预测服务,帮助新手玩家更容易地判断局势,提升用户体验。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。