本发明涉及一种策略游戏的资源分配系统和方法,属于计算机游戏领域。
背景技术:
策略游戏是一种模拟游戏的衍生游戏类型。当模拟游戏的模拟对象不单单是一种物体(如载具)时,玩家就需要在进行游戏时保证自己模拟对象达成游戏规定的目标。而模拟游戏一般都较为自由和开放,所以玩家就需要在游戏认可的限度内想尽办法完成目标。因为模拟游戏一般都较为自由和开放,所以玩家 就需要在游戏认可的限度活动智慧来进行游戏。策略游戏可分为回合制和即时制两种。
根据上述的策略游戏的特点,策略所包括的大量重复的单位、游戏规则、模型需要占用大量的系统资源。
一般的策略游戏,资源分配系统通常是采用硬编码的算法实现。即每种资源分配算法都用一段代码或一个类来实现,程序开放其中某些参数来给策划进行一些数值的调整,达到一定的可改变性,但是不能改变其中的程序逻辑。但游戏项目系统的特点在于易变性,相似性与重复性。即需要大量大体相似但具体逻辑又不尽相同的算法,且策划的需求在不断变化与调整之中,这是由游戏这种娱乐软件注重用户体验的特点决定的。
故这种硬编码的传统系统实现方法缺点有:(1)程序实现算法的工作量非常大,大量相似程序功能要重复开发且反复调整,往往在实际工作中会因为工作量太大而舍弃掉大量策划有益的设计,这样反过来让游戏整体的品质受到影响。(2)项目没有小粒度的可重用算法功能,整体开发成本太大,往往迫于项目进度的压力只能做出一个比较粗糙的资源分配系统来,严重影响了游戏体验。
技术实现要素:
针对现有技术不足,本发明的技术方案总结了一种基于树的策略游戏资源分配算法,以达到大大缩短策略游戏开发周期,增强代码可维护性与可重用性,增强游戏的体验和表现,方便各种职位的人员良好分工合作的目的。
本发明的技术方案包括一种策略游戏的资源分配系统,其特征在于,该系统包括:资源划分模块,用于对策略游戏中玩家所拥有总资源数据使用树结构进行表示,其中数的最顶端根节点表示玩家所有的资源数据,进一步,将资源数据进行分类并划分至每个树节点;资源设置模块,用于根据游戏世界状态的变化,对根节点及对应的子节点分配比例进行对应的设置,进一步还包括对每个节点之间的逻辑规则进行预先设置;资源判断模块,用于从最底层的节点的资源数据自下而上进行遍历获取,并计算每个节的所有资源数据及总资源数据;资源调整模块,用于根据所述资源判断模块获取的所有节点的资源数据,同时获取每个节点对应的资源类型,进一步调整每个节点下对应的多个子节点所占据的资源数据类型比例及资源数据的优先度级别。
根据所述的策略游戏的资源分配系统,所述的资源划分模块还包括:查询子模块,用于对策略游戏进行遍历,获取所有资源数据;划分子模块,用于根据预设的资源数据的逻辑关系,使用树结构将资源数据划分至对应的节点。
根据所述的策略游戏的资源分配系统,所述的资源设置模块包括:比例子模块,根据所述资源划分子模块划获取一一每个节点下所有子节点的资源数据,进一步,将每个节点对应所有子节点所拥有的资源数据比例进行计算;比例设置子模块,用于根据每个节点对应的资源数据类型的不同,同时动态获取游戏世界的变化,将固定值数据进行固定设置,对动态变化的数据进行默认值设置,该默认值能够通过可交互界面进行自订有设置;逻辑设置子模块,用于对资源数据的比例逻辑进行设置及对节点之间的逻辑规则进行设置。
根据所述的策略游戏的资源分配系统,所述的资源判断模块包括:遍历子模块,用于对最底端的子节点的资源数据进行获取,进一步,依次向上得到对应节点的资源数据,最终得到所有节点的资源数据及总资源数据;计算子模块,根据所述遍历子模块及节点之间的逻辑规则对每个节点下对应的子节点的资源数据进行计算并调整至符合逻辑规则的比例。
根据所述的策略游戏的资源分配系统,所述的资源调整模块还包括:智能调整子模块,基于预先设置的比例逻辑规则及节点之间的逻辑规则,获取游戏运行参数,将子节点所占的资源数据比例调整至最优比例的信息使用可见界面向玩家进行展示;功能调整子模块,获取玩家的操作指令,根据指令对玩家进行不同的提醒,如果玩家选择低优先度的资源数据,将高优先度的信息建议推送给玩家。
本发明的技术方案还包括一种策略游戏的资源分配方法,其特征在于,该方法包括:对策略游戏中玩家所拥有总资源数据使用树结构进行表示,其中数的最顶端根节点表示玩家所有的资源数据,进一步,将资源数据进行分类并划分至每个树节点;根据游戏世界状态的变化,对根节点及对应的子节点分配比例进行对应的设置,进一步还包括对每个节点之间的逻辑规则进行预先设置;从最底层的节点的资源数据自下而上进行遍历获取,并计算每个节的所有资源数据及总资源数据;根据所述资源判断模块获取的所有节点的资源数据,同时获取每个节点对应的资源类型,进一步调整每个节点下对应的多个子节点所占据的资源数据类型比例及资源数据的优先度级别。
进一步,该方法还包括:对策略游戏进行遍历,获取所有资源数据;根据预设的资源数据的逻辑关系,使用树结构将资源数据划分至对应的节点。
进一步,该方法还包括:根据所述资源划分子模块划获取一一每个节点下所有子节点的资源数据,进一步,将每个节点对应所有子节点所拥有的资源数据比例进行计算;根据每个节点对应的资源数据类型的不同,同时动态获取游戏世界的变化,将固定值数据进行固定设置,对动态变化的数据进行默认值设置,该默认值能够通过可交互界面进行自订有设置;对资源数据的比例逻辑进行设置及对节点之间的逻辑规则进行设置。
进一步,该方法还包括:对最底端的子节点的资源数据进行获取,进一步,依次向上得到对应节点的资源数据,最终得到所有节点的资源数据及总资源数据;根据所述遍历子模块及节点之间的逻辑规则对每个节点下对应的子节点的资源数据进行计算并调整至符合逻辑规则的比例。
进一步,该方法还包括:预先设置的比例逻辑规则及节点之间的逻辑规则,获取游戏运行参数,将子节点所占的资源数据比例调整至最优比例的信息使用可见界面向玩家进行展示;获取玩家的操作指令,根据指令对玩家进行不同的提醒,如果玩家选择低优先度的资源数据,将高优先度的信息建议推送给玩家。
本发明的有益效果为:大大缩短策略游戏开发周期;增强代码可维护性与可重用性;增强游戏的体验和表现;方便各种职位的人员分工合作,优化流程。
附图说明
图1所示为根据本发明实施方式的策略一种游戏资源分配树的结构图;
图2所示为根据本发明实施方式的策略游戏的策略分配方案流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的策略游戏资源分配系统和方法适用于单机游戏、手机游戏、网页游戏等游戏的开发。
图1所示为根据本发明实施方式的策略一种游戏资源分配数的结构图。图1资源分配树的一部分。树叶为个体的具体类型。例如,长矛兵的位置为根/军事/进攻/格斗/长矛兵。“长矛兵”节点本身可能包含关于所有长矛兵的统计数据,如总数、攻击力、战斗中牺牲的长矛兵数等,以指出其进攻能力。NPC AI应针对游戏中的每个玩家,维护一个这种数据结构的实例。其他玩家的图形表示当前玩家对每个玩家的策略资产的了解情况和功能划分的估算。长矛兵主要是防御个体,但也可用于攻击或探索。
图2所示为根据本发明实施方式的策略游戏的策略分配方案流程图。根据该图本发明的技术方案给出了这些方案,包括:资源分配树提供了一种优秀的、维护军力平衡的方式。如果在一场战役中失去了所有的20头大象,则“大象”节点及其所有父节点的分配值将小于希望的分配值。
当然这并不意味着一定要用新的大象替代所有的大象。当“大象”节点的父节点获得填充新的子节点所需的资源后,它可能认为最佳的措施是制造一个坦克营,因为现在已获悉了制造这种坦克所需的技术。
资源分配树主要用于判断制造什么样的新设备以及如何给已有的设备指定合适的角色。通常首先需要找出哪些迫切需要增加资源的节点,然后确定为解决这种问题,是对已有个体重新布防合适还是生产新个体合适。
资源分配树还为设计独特的玩家个性提供了很好的途径。无论开发的是扩张主义者、穷兵黩武的“成吉思汗”、关心经济的资本家还是强调研究的技术政论家,都只不过是调整资源分配树中相应部分的系数,以侧重或冷落特定的节点而已。通过稍微调整资源分配树的不同部分,可使NPC(虚拟角色)的AI(人工智能)侧重于某种个体,在经济增长和国防之间取得不同的平衡,喜好特定的战略资产类別,甚至改变NPC的AI的风格。
当关心的是战斗时,这样做常常是个不错的主意,即维护一个预先计算的“战斗平衡表”(其中包含个体的相对强弱),并将其用于资源分配树的“军事”分支中的决策。这是一个2D査找表,能够判断任何个体同其他个体战斗的效果。通过分析对特定敌人的了解情况的功能资产树,可以知道敌人的军力组成情况,并重点生产能够最有效地打击敌人的资产。
资源分配树适合存储其他的各类统计数据。记录树中的哪些节点被证明是有效的以及哪些节点遭到敌人的攻击也是一个不错的主意。前者知道长矛兵在对付另一个玩家时很有效,因此将资源更多地分配给让长矛兵取得胜利的功能角色;后者知道敌人倾向于攻击我的资源采集设备,因此在以后将采取更多的保护措施。
其中最后的步骤既适用于人工智能也能面向游戏开发者。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。