在游戏中分配非玩家控制角色的方法及装置的制作方法

文档序号:6564585阅读:305来源:国知局
专利名称:在游戏中分配非玩家控制角色的方法及装置的制作方法
技术领域
本发明涉及游戏中的数据分配技术,尤其涉及一种在游戏中分配非玩家控制角色的方法及装置。
背景技术
非玩家控制角色(Non Player Character,NPC)的概念最早起源于单机版游戏,逐渐延伸到整个游戏领域,这些角色由服务器或电脑控制,而不受玩家控制,例如,游戏世界中,玩家往往需要通过打怪进行练级,为了满足大量玩家的打怪需求,游戏通常会提供大量各种类型的怪物,这些怪物就是NPC,玩家在游戏中与NPC的交互,大大增加了游戏的趣味性。然而,服务器上NPC总数,通常受到计算机硬件的限制,如计算机的内存和CPU,但随着一个游戏内容的发展,地图面积的逐渐增加,怎样在有限资源的情况下增加NPC的利用率成为迫切需要解决的问题。
现有技术中,通常是在游戏地图中预定的位置事先摆放NPC,NPC的数量是随游戏世界的面积增加而增加的。
但实际上,游戏在运营到不同阶段,游戏地图上玩家分布是不同的,在开设新的游戏服务器时,新手区玩家最多,高级地区几乎玩家很少,但随着时间的推移,高级地区人越来越多,新手区反而没什么人了,而NPC只有和玩家交互才有存在的价值,而上述设置NPC的方法,按地图固定分配NPC,使NPC的数量只能随游戏世界的面积增加而变化,造成NPC资源不必要的浪费,降低了游戏的趣味性。

发明内容
本发明要解决的技术问题是提供一种在游戏中分配非玩家控制角色的方法及装置,实现根据玩家的数量动态分配NPC,提高有限资源的利用率。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的本发明提供一种在游戏中分配非玩家控制角色的方法,包括
对预置的刷新范围内的玩家进行计数;当满足非玩家控制角色NPC数量刷新条件时,根据获得的玩家数量计算所述刷新范围内的NPC实际需求量;分配当前刷新范围内的NPC数量至计算得到的实际需求的NPC数量。
其中,所述的根据玩家数量计算所述的刷新范围内的NPC实际需求量,具体包括将进入刷新区域的玩家数除以预置的平衡参数后的值取整,将取整后的结果与该范围允许的NPC最小值相加,所获得的结果与该范围所允许的NPC最大值比较,并在两者之间取最小值,获取的该最小值为该范围内实际需求NPC数量。
其中,所述的分配当前刷新范围内的NPC数量至计算得到的实际需求的NPC数量,具体包括将当前的刷新范围内的NPC释放,按实际需求的NPC数量在该范围内创建NPC。
其中,该方法进一步包括在预置的范围内对实际NPC数量进行计数;比较计算得到的实际需求NPC数量是否大于所述的实际NPC数量;所述的分配当前刷新范围内的NPC数量至计算得到的实际需求的NPC数量,具体包括如果计算得到的该实际需求NPC数量大于所述的实际NPC数量,则在当前刷新范围内创建NPC直至到达实际需求NPC的数量,如果小于,则在当前刷新范围内随机选取NPC释放空间,直至达到实际需求NPC的数量。
其中,所述的刷新范围为玩家所在的预置地图块为中心的至少包含一个预置地图块的区域。
其中,所述的刷新条件为达到预置的刷新时间。
本发明还提供了一种在游戏中分配非玩家控制角色的装置,包括计数单元,计算单元,分配单元;计数单元,用于在预置的刷新范围内对玩家进行计数;计算单元,用于读取计数单元中玩家数,计算当前范围内实际需求NPC数量,并将所得的计算结果发送至分配单元;分配单元,用于根据实际需求NPC数量,在所述的刷新范围内重新分配NPC数量。
其中,所述的分配单元,其功能具体包括用于将当前的刷新范围内的NPC释放,按实际需求的NPC数量在该范围内创建NPC。
其中,该装置进一步包括数据获取单元,用于对所述的刷新范围内实际NPC进行计数;比较单元,用于读取当前的实际NPC数量及计算得到的实际需求NPC数量,并比较该实际需求NPC数量是否大于该实际NPC数量,将比较结果发送至分配单元;所述的分配单元,其功能具体包括如果计算得到的该实际需求NPC数量大于所述的实际NPC数量,则在当前刷新范围内创建NPC直至到达实际需求NPC的数量,如果小于,则在当前刷新范围内随机选取NPC释放空间,直至达到实际需求NPC的数量。
其中,所述的刷新范围为玩家所在的预置地图块为中心的至少包含一个预置地图块的区域。
以上技术方案可以看出,由于本发明采用在游戏世界的一定范围内,对所进入该范围的玩家进行计数,当满足NPC更新条件时,根据玩家的数量更新所述范围内的NPC数量,与现有技术中不考虑玩家数量的变化,而按地图固定分配NPC,使NPC的数量只能随游戏世界的面积增加而变化的技术方案相比,本发明提高了游戏中作为有限资源的NPC的利用率,增强游戏的趣味性。


图1为本发明第一实施例中的方法流程图;
图2为本发明第一实施例中的装置结构图;图3为本发明第二实施例中的方法流程图;图4为本发明第二实施例中的装置结构图。
具体实施例方式
本发明的核心思想是在游戏世界的一定范围内,对所进入该范围的玩家进行计数,当满足NPC更新条件时,根据玩家的数量更新所述范围内的NPC数量。
为使本发明的目的、方案及优点更加清楚,以下结合具体实施例并参照附图对本发明作详细说明。
实施例一,参见附图1,为实现本发明目的,所提供的方法具体包括步骤101对预置的刷新范围中的玩家进行计数;其中,所述的刷新范围可以是游戏地图中玩家所在的预置地图块为中心的至少包含一个预置地图块的区域;其中,所述的地图块为游戏地图中被预先划分的大小相等的区域;地图块的大小可以根据具体情况决定,本实施例中地图块的大小是1024×1024像素;其中,可以为每个预置的刷新范围设置一个计数器,初始值为0,用于记录刷新范围中当前的玩家数量,当玩家离开或进入该刷新范围时,计算方法如下将玩家原来所处刷新范围的计数器的值减1;将玩家进入的刷新范围的计数器的值加1;步骤102当满足NPC数量刷新条件时,在预置的刷新范围内,根据获得的玩家数量计算该范围内的NPC实际需求量;其中,计算所述刷新范围内的NPC实际需求量的具体方法可以是在当前刷新范围里预置允许设置的NPC的最大值与最小值,并预置一个NPC平衡参数,所述的NPC平衡参数表示当几个玩家进入当前刷新范围就需要一个NPC;
当满足刷新条件时,将刷新范围中的玩家数X除以平衡参数Y后取整,将取整后的结果与该范围内允许的NPC最小值相加,所获得的结果与该范围内所允许的NPC最大值比较并取最小值,最终,获取该刷新范围内实际需求NPC数量m;其计算公式为m=MIN(max,(min+trunc(X/Y)))例如,假设当前刷新范围内的玩家数为6,平衡参数为2,该范围内的预置的允许的NPC最小值为1,最大值为10,那么m=MIN(10,(1+trunc(6/2)))=MIN(10,4)=4,得到实际需求NPC数量为4;其中,刷新范围内实际需求NPC数量的计算方法不限于上述方法,只要在计算中考虑玩家人数,可根据游戏实际设计的需求,采用其它方法计算实际需求NPC的数量;其中,所述的刷新条件可以是当达到预置的刷新时间,但不限于此;步骤103将当前刷新范围内的NPC释放,按实际需求的NPC数量在该刷新范围内创建NPC;其中,NPC创建的位置为在该刷新范围中随机选取的位置。
为实现上述方法,本发明还提供了一种在游戏中分配非玩家控制角色的装置,参见图2,该装置包括计数单元,计算单元,数据分配单元;其中,计数单元201,用于在预置的刷新范围内对玩家进行计数;其中,所述的刷新范围为预先将游戏地图预先划分的适当大小的地图块;计算单元202,读取计数单元中玩家的数,计算当前刷新范围内实际需求NPC数量,并将所得的计算结果发送至分配单元;所述的数据分配单元203,用于将当前的刷新范围内的NPC释放,按实际需求的NPC数量在该范围内创建NPC;其中,NPC创建的位置为在该刷新范围中随机选取的位置。
实施例二,本发明还对实施例一中的在游戏中分配NPC的方法提供了优化方案,在计算得到实际需求NPC数量后,进一步将该实际需求NPC数量的结果值,与当前刷新范围内的实际NPC数量的值进行比较,并对当前范围内的NPC数量进行多退少补的方式,重新分配NPC。该方法,具体流程如下步骤301对预置的刷新范围中的玩家进行计数其中,所述的刷新范围可以是游戏地图中玩家所在的预置地图块为中心的至少包含一个预置地图块的区域;其中,所述的地图块为游戏地图中被预先划分的大小相等的区域;地图块的大小可以根据具体情况决定,本实施例中地图块的大小是1024×1024像素;其中,可以为每个刷新范围设置一个计数器,初始值为0,用于记录刷新范围中当前的玩家数量,当玩家离开或进入该刷新范围时,计算方法如下将玩家原来所在的刷新范围内的计数器的值减1;将玩家进入的刷新范围内的计数器的值加1;其中,由于游戏中的NPC数量,是根据游戏的情节,在与玩家进行交互的过程中动态变化,例如玩家进行打怪时,怪物会被玩家打死,因此,所述的实际NPC数量n为,上一次刷新时所分配的NPC数量减去因与玩家交互所减少的NPC数量之后的结果值;步骤302当满足NPC数量刷新条件时,在预置的刷新范围内,根据获得的玩家数量计算所述范围内的NPC实际需求量;其中,计算所述预置刷新范围中NPC实际需求量的具体方法可以是在当前刷新范围里预置允许设置的NPC的最大值与最小值,并预置一个NPC平衡参数,所述的NPC平衡参数表示当几个玩家进入当前刷新范围就需要一个NPC;当满足刷新条件时,将刷新范围中的玩家数X除以平衡参数Y后取整,将取整后的结果与该范围内允许的NPC最小值相加,所获得的结果与该范围内所允许的NPC最大值比较并取最小值,最终,获取该刷新范围内实际需求NPC数量m;其计算公式为m=MIN(max,(min+trunc(X/Y)))
例如,假设当前刷新范围内的玩家数为6,平衡参数为2,该范围内的预置的允许的NPC最小值为1,最大值为10,那么m=MIN(10,(1+trunc(6/2)))=MIN(10,4)=4,得到实际需求NPC数量为4;其中,刷新范围内实际需求NPC数量的计算方法不限于上述方法,只要在计算中考虑玩家人数,可根据游戏实际设计的需求,采用其它方法计算实际需求NPC的数量;其中,所述的刷新条件可以是当达到预置的刷新时间,但不限于此;步骤303比较计算得到的实际需求NPC数量是否大于所述的实际NPC数量,如果大于,则进入步骤304,如果小于,则进入步骤305;步骤304在当前刷新范围内创建NPC直至到达实际需求NPC的数量,并结束程序;其中,NPC创建的位置为在该刷新范围中随机选取的位置;步骤305在当前刷新范围内随机选取NPC释放空间,直至达到实际需求NPC的数量。
为实现上述方法,本发明还提供了一种在游戏中分配非玩家控制角色的装置,参见图4,该装置包括计数单元,数据获取单元,计算单元,分配单元;其中,计数单元401,用于在预置的刷新范围内对玩家进行计数;其中,所述的刷新范围可以是游戏地图中玩家所在的预置地图块为中心的至少包含一个预置地图块的区域;其中,所述的地图块为游戏地图中被预先划分的大小相等的区域;地图块的大小可以根据具体情况决定,本实施例中地图块的大小是1024×1024像素;数据获取单元402,用于对所述的刷新范围内实际NPC进行计数;计算单元403,用于读取计数单元中当前刷新范围内玩家的数量,计算该刷新范围内实际需求NPC数量,并将所得的计算结果发送至分配单元;比较单元404,用于读取当前的实际NPC数量及计算得到的实际需求NPC数量,并比较该实际需求NPC数量是否大于该实际NPC数量,将比较结果发送至分配单元;分配单元405,用于如果实际需求NPC数量大于实际NPC数量,则在当前刷新范围内创建NPC直至到达实际需求NPC的数量,如果小于,则在当前刷新范围内随机选取NPC释放空间,直至达到实际需求NPC的数量。
以上对本发明所提供的一种在游戏中分配非玩家控制角色的方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种在游戏中分配非玩家控制角色的方法,其特征在于,包括对预置的刷新范围内的玩家进行计数;当满足非玩家控制角色NPC数量刷新条件时,根据获得的玩家数量计算所述刷新范围内的NPC实际需求量;分配当前刷新范围内的NPC数量至计算得到的实际需求的NPC数量。
2.根据权利要求1所述的在游戏中分配非玩家控制角色的方法,其特征在于,所述的根据玩家数量计算所述的刷新范围内的NPC实际需求量,具体包括将进入刷新区域的玩家数除以预置的平衡参数后的值取整,将取整后的结果与该范围允许的NPC最小值相加,所获得的结果与该范围所允许的NPC最大值比较,并在两者之间取最小值,获取的该最小值为该范围内实际需求NPC数量。
3.根据权利要求1或2所述的在游戏中分配非玩家控制角色的方法,其特征在于,所述的分配当前刷新范围内的NPC数量至计算得到的实际需求的NPC数量,具体包括将当前的刷新范围内的NPC释放,按实际需求的NPC数量在该范围内创建NPC。
4.根据权利要求1或2所述的在游戏中分配非玩家控制角色的方法,其特征在于该方法进一步包括在预置的范围内对实际NPC数量进行计数;比较计算得到的实际需求NPC数量是否大于所述的实际NPC数量;所述的分配当前刷新范围内的NPC数量至计算得到的实际需求的NPC数量,具体包括如果计算得到的该实际需求NPC数量大于所述的实际NPC数量,则在当前刷新范围内创建NPC直至到达实际需求NPC的数量,如果小于,则在当前刷新范围内随机选取NPC释放空间,直至达到实际需求NPC的数量。
5.根据权利要求1或2所述的在游戏中分配非玩家角色的方法,其特征在于,所述的刷新范围为玩家所在的预置地图块为中心的至少包含一个预置地图块的区域。
6.根据权利要求1或2所述的在游戏中分配非玩家控制角色的方法,其特征在于,所述的刷新条件为达到预置的刷新时间。
7.一种在游戏中分配非玩家控制角色的装置,其特征在于,包括计数单元,计算单元,分配单元;计数单元,用于在预置的刷新范围内对玩家进行计数;计算单元,用于读取计数单元中玩家数,计算当前范围内实际需求NPC数量,并将所得的计算结果发送至分配单元;分配单元,用于根据实际需求NPC数量,在所述的刷新范围内重新分配NPC数量。
8.根据权利要求7所述的在游戏中分配非玩家控制角色的装置,其特征在于,所述的分配单元,其功能具体包括用于将当前的刷新范围内的NPC释放,按实际需求的NPC数量在该范围内创建NPC。
9.根据权利要求7所述的在游戏中分配非玩家控制角色的装置,其特征在于该装置进一步包括数据获取单元,用于对所述的刷新范围内实际NPC进行计数;比较单元,用于读取当前的实际NPC数量及计算得到的实际需求NPC数量,并比较该实际需求NPC数量是否大于该实际NPC数量,将比较结果发送至分配单元;所述的分配单元,其功能具体包括如果计算得到的该实际需求NPC数量大于所述的实际NPC数量,则在当前刷新范围内创建NPC直至到达实际需求NPC的数量,如果小于,则在当前刷新范围内随机选取NPC释放空间,直至达到实际需求NPC的数量。
10.根据权利要求7至9任一所述的在游戏中分配非玩家控制角色的装置,其特征在于所述的刷新范围为玩家所在的预置地图块为中心的至少包含一个预置地图块的区域。
全文摘要
本发明提供了一种在游戏中分配非玩家控制角色发方法及装置,利用该装置,在游戏世界的一定范围内,对所进入该范围的玩家进行计数,当满足NPC更新条件时,根据玩家的数量更新所述范围内的NPC数量。利用本发明,实现根据玩家的数量动态分配NPC,提高有限资源的利用率。
文档编号G06F19/00GK1987881SQ20061016958
公开日2007年6月27日 申请日期2006年12月22日 优先权日2006年12月22日
发明者李学武 申请人:北京金山软件有限公司, 北京金山数字娱乐科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1