CN110941485B - 游戏任务的运行方法、装置及电子终端 - Google Patents
游戏任务的运行方法、装置及电子终端 Download PDFInfo
- Publication number
- CN110941485B CN110941485B CN201911162249.1A CN201911162249A CN110941485B CN 110941485 B CN110941485 B CN 110941485B CN 201911162249 A CN201911162249 A CN 201911162249A CN 110941485 B CN110941485 B CN 110941485B
- Authority
- CN
- China
- Prior art keywords
- task
- state
- game
- condition
- necessary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种游戏任务的运行方法、装置及电子终端,涉及游戏开发的技术领域,该方法包括:获取游戏任务的任务结构信息。当游戏任务进入当前任务状态,如果发生的游戏事件匹配到当前任务状态对应的必要条件时,判断当前任务状态对应的所有必要条件是否均已达成;如果是,进入下一个任务状态,直至当前任务状态为结束状态。该方法实现了任务状态的分离,并不会限定任务过程中不同状态之间的关系,使得状态关系实现了可定制化,最大限度的减少重复开发,提高了现有游戏任务的扩展性和兼容性。
Description
技术领域
本发明涉及游戏开发技术领域,尤其是涉及一种游戏任务的运行方法、装置及电子终端。
背景技术
任务系统是游戏中的重要组成部分,它承载着向玩家介绍游戏剧情和传达游戏世界观的使命,负责引导玩家循序渐进的执行游戏。传统的游戏任务运行方式是将游戏任务分为几个固定的状态,每个状态绑定固定的游戏操作,根据不同的任务确定不同的状态间的切换条件。当满足切换条件时,则触发下一条状态,然后以同样的方式进行下一个任务,直到任务结束。
现有技术中还可通过行为树来设计任务系统,在行为树框架下,每个任务作为一棵行为树,通过实时遍历整棵树形结构,对其中的节点状态进行判断,进而确定对任务的执行方式。由于行为树每次需要主动的遍历整棵树来决定执行的程度,对于时间跨度大的情况下会有过多的无谓的性能开销。但游戏中的一些任务往往需要较大的时间跨度才能够完成,这个期间需要行为树持续遍历树中的节点来检测任务的完成进度,造成资源的浪费。
发明内容
本发明实施例的目的在于提供一种游戏任务的运行方法、装置及电子终端,以缓解现有游戏任务造成资源浪费的问题。
第一方面,本发明实施例提供了游戏任务的运行方法,该方法包括:
获取游戏任务的任务结构信息;其中,任务结构信息包括至少一个任务状态,每个任务状态对应至少一个必要条件,必要条件表征游戏任务的必要事件;
当游戏任务进入当前任务状态时,均执行:发生的游戏事件匹配到当前任务状态对应的必要条件时,判断当前任务状态对应的所有必要条件是否均已达成;
如果是,进入下一个任务状态,直至当前任务状态为结束状态。
在一些实施方式中,该方法还包括:
响应任务更新操作,基于任务更新操作添加或删除任务状态对应的任意多个必要条件。
在一些实施方式中,上述每个必要条件与至少一个子条件相关联,多个子条件间的逻辑关系为或逻辑关系。
在一些实施方式中,该方法还包括:
响应任务更新操作,基于任务更新操作添加或删除必要条件相关联的任意多个子事件。
在一些实施方式中,上述方法还包括:
响应于游戏事件的发生,检查游戏事件是否达成当前任务状态对应的必要条件,如果是,确定游戏事件匹配到当前任务状态对应的必要条件。
在一些实施方式中,上述获取游戏任务的任务结构信息的步骤之后,还包括:
将当前任务状态置为可接取状态,初始化可接取状态对应的至少一个必要条件。
在一些实施方式中,上述当前任务状态为激活状态时,方法还包括:
初始化激活状态对应的至少一个必要条件,必要条件为游戏任务的分支任务被激活。
在一些实施方式中,上述当前任务状态为系列计数状态时,方法还包括:
初始化系列计数状态对应的至少一个必要条件,必要条件为将游戏任务所在的任务系列的已完成任务数加1。
在一些实施方式中,上述当前任务状态为提交状态时,方法还包括:
初始化提交状态对应的至少一个必要条件,必要条件为达成提交事件。
在一些实施方式中,上述当前任务状态为结束状态时,方法还包括:
结束游戏任务,并回收游戏任务占用的资源。
在一些实施方式中,获取游戏任务的任务结构信息的步骤之前,还包括:
加载游戏任务。
第二方面,本发明实施例提供了一种游戏任务的运行装置,该装置包括:
创建模块,用于获取游戏任务的任务结构信息;其中,任务结构信息包括至少一个任务状态,每个任务状态对应至少一个必要条件,必要条件表征游戏任务的必要事件;
判断模块,用于当游戏任务进入当前任务状态时,均执行:发生的游戏事件匹配到当前任务状态对应的必要条件时,判断当前任务状态对应的所有必要条件是否均已达成;如果是,进入下一个任务状态,直至当前任务状态为结束状态。
第三方面,本发明实施例提供一种电子终端,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述游戏任务的运行方法的步骤。
第四方面,本发明实施例提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述游戏任务的运行方法的步骤。
本发明实施例提供了一种游戏任务的运行方法、装置及电子终端,该方法首先获取游戏任务的任务结构信息,其中的任务结构信息中包括至少一个任务状态,每个任务状态对应至少一个必要条件,该必要条件表征游戏任务的必要事件。当游戏任务进入当前任务状态时,均执行该游戏任务:发生的游戏事件匹配到当前任务状态对应的必要条件时,判断当前任务状态对应的所有必要条件是否均已达成;如果均以达成,则进入下一个任务状态,直至当前任务状态为结束状态。
采用本发明实施例提供的游戏任务的运行方法、装置及电子终端,只是在发生游戏事件时,才会查看所有必要条件是否均已达成,进而判断是否可进入下一个任务状态。因此,本发明实施例中所有的任务条件的触发都是通过事件执行时的被动触发方式,相比于现有技术中的行为树结构,不需要执行主动性的检测,减少了不必要的检测性能开销,缓解了现有游戏任务造成资源浪费的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的游戏任务的运行方法的流程图;
图2为本发明实施例提供的另一种游戏任务的运行方法的流程图;
图3为本发明实施例提供的另一种游戏任务的运行方法示例的流程图;
图4为本发明实施例提供的另一种游戏任务的运行方法示例的流程图;
图5为本发明实施例提供的另一种游戏任务的运行方法示例的流程图;
图6为本发明实施例提供的另一种游戏任务的运行方法示例的流程图;
图7为本发明实施例提供的另一种游戏任务的运行方法示例的流程图;
图8为本发明实施例提供的游戏任务的运行装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的手机和电脑游戏是根据既定的任务来进行游戏的,玩家通过各种操作完成任务,达到游戏的既定目标。通过设定不同的任务,来保证游戏的新鲜感,吸引玩家更加投入的进入到游戏场景中,可见游戏中的任务系统是游戏的重要组成部分。任务系统涉及游戏中的各个方面,几乎游戏内的所有模块都会被涉及,因此一旦游戏中的其它模块或组件发生改变,其对应的任务系统就需要进行调整。
为了解决上述问题,现有技术中的任务系统会设计成几个固定的状态,每个状态绑定固定的操作,然后根据不同的任务编写不同的状态间切换的条件,当条件达成时会触发到下一个状态,然后以相同的方式进行下一个任务操作,直到任务结束。这种方式中,由于状态在设计之初就已经固定下来了,在后期需要添加新的状态和条件时,需要重新对状态进行设计,这个过程需要花费较多的时间和精力。
现有技术中通常使用行为树的方式来设计任务系统,在本实施例中提到的行为树,是一种形式化的图形建模语言,主要用于系统和软件工程。行为树采用明确定义的符号来明确表示数百甚至数千种自然语言需求,这些需求通常用于表达大规模软件集成系统的利益相关者需求。在任务系统中,将每个任务作为一棵行为树,行为树通过实时的遍历整棵树形结构,对其中的节点状态进行判断,进而确定对任务的执行方式。如果执行的节点失败,或者整棵树种所有节点均已经被执行,则停止执行遍历。但这种模式下,行为树每次都需要主动遍历整棵树来决定执行的程度,对于时间跨度较大的游戏场景会消耗过多的资源。但在游戏中,这种任务场景是普遍存在的,例如一些任务复杂的游戏场景中,玩家需要较长的游戏时间才能完成该任务;还有一些任务并不复杂,但玩家会为了获取某些技能或者资源,特意在该任务下花费较多的时间去进行其它操作,以达到获取技能和资源的目的。在上述类型的任务场景中,行为树依然一直遍历整棵行为树来检测任务的完成进度,带来了较多的资源浪费。
对于不同游戏而言,各自的任务系统之间存在较大的差异,但任务的本质却都相同,都是推动游戏剧情,引导玩家参与到游戏情节之中,使得玩家熟悉游戏的操作并提升玩家的参与感和沉浸感。但现有技术中的上述方式,都存在着拓展性和兼容性的问题。当游戏进行重新设计时,对应的任务系统都需要进行重新构建,造成人力资源的浪费。
针对现有的游戏任务框架中扩展性和兼容性较低的问题,本发明实施例针对此提供一种游戏任务的运行方法、装置及电子终端。
本发明实施例提供了一种游戏任务的运行方法,如图1所示:
步骤S101:获取游戏任务的任务结构信息。
游戏任务是玩家执行游戏所要实现的目标,通常情况下游戏任务创建的过程往往会在游戏开始阶段执行,也可以在游戏执行阶段进行创建,例如当上一个游戏任务完成后,玩家会紧接着执行下一个任务,这个过程中保持着游戏的进度,玩家并不需要退出该游戏界面从而直接进行下一个任务。这类场景下的下一个任务通常由上一个任务的执行结果所决定。
在游戏的具体执行过程中,可通过游戏中的任务管理器对游戏任务进行创建、调度以及回收等操作。该任务管理器部署在游戏中,会根据游戏的执行过程对游戏的任务进行调度。
游戏的任务根据任务的从主关系进行区分,例如主线任务、分支任务等。游戏任务类型中还存在一些特殊的类型,例如环状任务、系列任务、协作任务等。
任务结构信息包括至少一个任务状态,每个任务状态对应至少一个必要条件,必要条件表征游戏任务的必要事件。
任务结构信息中包含任务的各种数据,如任务状态、任务条件组合以及行为转化的条件。任务状态根据游戏具体场景来决定,一般根据任务的属性分为:可接、未完成、待提交。分别对应可接任务、未完成任务以及待提交任务。对于传统的任务而言,任务会按照可接-未完成-待提交这三个状态,但状态相互之间也并不是固定不变的,例如对于可接任务而言,接取了任务后不一定就进入到未完成状态,具体的进入状态由具体游戏的执行进度来决定。
每个任务状态对应至少一个必要条件,该必要条件表征游戏任务的必要性,该必要条件中可包含其它条件,这些条件在逻辑上必须全部达成才可认为该任务达成目标,在逻辑关系上相当于与逻辑。
当游戏任务进入当前任务状态时,均执行以下步骤:
步骤S102:发生的游戏事件匹配到当前任务状态对应的必要条件时,判断当前任务状态对应的所有必要条件是否均已达成。
随着游戏过程的执行,游戏任务进入到当前任务状态时会执行以下操作:发生的游戏事件匹配到当前任务状态对应的必要条件时,对当前任务状态对应的所有必要条件的达成情况进行判定,最终判定该对应的所有必要条件是否全部达成。
当有游戏事件发生时,对游戏事件的发生进行响应,检查所述游戏事件是否达成当前任务状态对应的必要条件,如果是,确定游戏事件匹配到所述当前任务状态对应的必要条件。如果否,则在下一个事件节点继续检查游戏事件是否达成当前任务状态对应的必要条件。如果当前任务状态对应的所有必要条件是否均已达成,则执行步骤S103。
条件的设置是根据游戏的场景需求进行的,例如在某款游戏中,玩家操控人物去消灭敌人,同时还可以收集游戏场景中的装备,条件的设置可设置为玩家消灭100个敌人,只有在消灭100个敌人时才可达到该条件的设置。
当前状态中对应的必要状态往往会有多个,例如玩家消灭100个敌人的基础上还需要搜集100个装备,此时需要对玩家对应的消灭敌人数量和手搜集装备数量进行判定,是否消灭100个敌人的同时收集到100个装备。在这个过程中,对二者数据判定过程的先后顺序不做限定。
步骤S103:进入下一个任务状态,直至当前任务状态为结束状态。
当前任务状态对应的所有必要条件均以达成后,进入下一个任务状态继续进行匹配,直到当前任务状态为结束状态。在到达结束状态之前,当前任务还会进入未完成状态以及完成状态,并最终达到结束状态。
当前任务到达结束状态时表明任务结束,对于结束的任务可通过任务管理器进行回收,并释放该任务生命周期中的使用的资源,释放的资源可用于后续其它任务的使用。
采用本发明实施例提供的游戏任务的运行方法,当发生的游戏事件匹配到当前任务状态对应的必要条件时,判断当前任务状态对应的所有必要条件是否均已达成。当完成达成目标后,进入下一个任务状态,直至当前任务状态为结束状态,使得不同任务的状态实现分离,上述过程只是在发生游戏事件时,才会查看所有必要条件是否均已达成,进而判断是否可进入下一个任务状态,相比于现有技术中的行为树结构,不需要执行主动性的检测,减少了不必要的检测性能开销,缓解了现有游戏任务造成资源浪费的问题。
为了更加清楚地说明本发明实施例提供的游戏任务的运行方法,参见图2所示的游戏任务的另一种运行方法。在该方法中,游戏任务首先通过任务管理器进行创建,创建后的游戏任务还包括响应任务更新操作,基于任务更新操作添加或删除任务状态对应的任意多个必要条件。
在一些实施方式中,上述每个必要条件与至少一个子条件相关联,多个子条件间的逻辑关系为或逻辑关系。在图2中所示的任务包括多个状态的任务,每个任务中至少有一个任务状态,每个任务状态中包含有一个任务条件。每个任务条件包括至少一个必要条件,每一个必要条件至少有一个子条件相关联,这些多个子条件之间的逻辑关系为或逻辑关系。
在一些实施方式中,获取游戏任务的任务结构信息的步骤之前,还包括:加载游戏任务。
获取游戏任务的任务结构信息的过程,显然需要有相应的游戏任务才能够实现,而游戏任务的获得是可以在游戏开发时就已经创建完成,也可以根据后续游戏的进展而临时创建游戏任务。
在具体的实施过程中,该游戏任务是事先已创建完成,开发人员在开发游戏的时候就将该游戏任务创建完毕,而不是临时创建的游戏子任务。
在一些实施方式中,获取游戏任务的任务结构信息的步骤之后,还包括:将当前任务状态置为可接取状态,初始化所述可接取状态对应的至少一个必要条件。
任务管理器创建游戏任务后,还包括:响应任务更新操作,基于所述任务更新操作添加或删除任一任务状态相关联的任意多个必要条件。具体的,任务管理器创建任务后,游戏任务进入状态1,并初始化状态1对应的所有的必要条件。初始化过程完成后,对状态为1的任务进行监控,如果所有必要条件都达成,表明状态为1的任务的条件达成,然后进入到下一个状态为2的状态中进行监控。当状态为2的条件达成后,在进入到下一个任务状态,逐步执行,直至没有后续任务的状态时,则结束任务,该任务所占用的资源将会被任务管理器回收。
进一步的,每个必要条件与至少一个子条件相关联,多个子条件间的逻辑关系为或逻辑关系。在任务管理器创建游戏任务的步骤之后,还包括:响应任务更新操作,基于任务更新操作添加或删除必要条件相关联的任意多个子事件。每个必要条件中包含一个或多个子条件,这些子条件之间与必要条件相关联,而且子条件之间存在与或的逻辑关系。
为了更加清楚地描述上述实施例中提到的游戏任务的运行方法,图3提供了另一种游戏任务的运行方法的示例,该实例描述一个通用方式的任务流程,具体的包括以下步骤:
步骤S301,任务开始。
该步骤通过任务管理器创建任务,然后对创建的任务进行初始化。初始化过程包括得到游戏任务的任务结构信息。
步骤S302,进入可接状态。
该步骤中对接取条件进行初始化,此时的玩家可以查看到该任务以及接取的条件。初始化的任务结构信息中包含任务的各种数据,如任务状态、任务条件组合以及行为转化的条件。任务状态根据游戏具体场景来决定,一般根据任务的状态分为:可接状态、未完成状态、待提交状态、结束状态等。本发明实施例中,各个状态相互之间也并不是固定不变的,例如接取了任务后不一定就进入到未完成状态,具体的进入状态由具体游戏的执行进度来决定。
步骤S303,可接状态接取任务的条件。
该步骤中通过与NPC(Non-Player Character,非玩家角色)进行对话后,达成该条件。NPC一般由计算机的人工智能控制,是拥有自身行为模式的角色,通过与NPC进行对话后达到必要条件,条件达成后执行S304步骤。
步骤S304,进入未完成状态。
该步骤中将任务设置为未完成状态,并初始化当前状态的必要条件,为任务的执行做好准备。
步骤S305,完成任务的条件。
例如该游戏场景中设定的当前任务状态(未完成状态)只有一个必要条件,且该必要条件是击杀某种怪物,当玩家在游戏中完成了该怪物的击杀后,即可完成了未完成状态的全部必要条件,并触发S306步骤。
步骤S306,进入已完成状态。
完成任务的条件后,将条件设置为已完成状态,并初始化已完成状态对应的必要条件,该必要条件是发放任务奖励。
步骤S307,给玩家发放任务奖励,奖励发放成功会达成该必要条件,然后进入下一个任务状态。
步骤S308,进入结束状态,任务结束。
任务结束后通知任务管理器回收该任务生命周期中占用的资源。
本示例中提供的游戏任务的运行方法是功能最基础的实现方法,下面对其它各种不同类型的游戏任务的运行方法进行介绍。
图4提供了另一种游戏任务的运行方法的实例,该实例重点描述或条件下实现上述游戏任务的运行方法的过程,具体的,包括以下步骤:
步骤S401,任务开始。
该步骤通过任务管理器创建任务,然后对创建的任务进行初始化。初始化过程包括得到游戏任务的任务结构信息。
步骤S402,进入可接状态。
该步骤中对接取条件进行初始化,此时的玩家可以查看到该任务以及接取的条件。初始化的任务结构信息中包含任务的各种数据,如任务状态、任务条件组合以及行为转化的条件。任务状态根据游戏具体场景来决定,一般根据任务的状态分为:可接状态、未完成状态、待提交状态、结束状态等。本发明实施例中,各个状态相互之间也并不是固定不变的,例如对于可接任务而言,接取了任务后不一定就进入到未完成状态,具体的进入状态由具体游戏的执行进度来决定。
步骤S403,可接状态接取任务的条件。
该步骤中通过与NPC进行对话后,达成该条件。NPC一般由计算机的人工智能控制,是拥有自身行为模式的角色,通过与NPC进行对话后达到必要条件,条件达成后执行S404步骤。
步骤S404,进入未完成状态。
该步骤中将任务设置为未完成状态,并初始化当前状态对应的必要条件,为任务的执行做好准备。
步骤S405,完成任务的条件。
该步骤与图3中的示例不同,该步骤中未完成状态对应的必要条件包含两个子事件且二者是或逻辑的关系,即两个子事件中发生一种就会达成该必要事件。如图4所示,一个子事件是击杀100只怪物后;另一个子事件是花费游戏币。二者之间是‘或’的关系。玩家在完成击杀100只怪物或花费游戏币,即可满足该步骤的任务的条件。二者之间不要求先后执行顺序,只要满足其中任意一种任务的条件即可,条件达成后触发S406步骤。
步骤S406,进入已完成状态。
完成任务的条件后,将条件设置为已完成状态,并初始化已完成状态对应的必要条件,该必要条件是发放任务奖励。
步骤S407,给玩家发放任务奖励,奖励发放成功会达成该必要条件,然后进入下一个任务状态。
步骤S408,进入结束状态,任务结束。
任务结束后通知任务管理器回收该任务生命周期中占用的资源。
本示例中提供的游戏任务的运行方法,在或条件下实现上述游戏任务的运行方法的过程,与之类似的,与条件下实现上述游戏任务的运行方法见图5所示。
图5提供了另一种游戏任务的运行方法的实例,该实例重点描述与条件使用的游戏任务运行流程,具体的,包括以下步骤:
步骤S501,任务开始。
该步骤通过任务管理器创建任务,然后对创建的任务进行初始化。初始化过程包括得到游戏任务的任务结构信息。
步骤S502,进入可接状态。
该步骤中对接取条件进行初始化,此时的玩家可以查看到该任务以及接取的条件。初始化的任务结构信息中包含任务的各种数据,如任务状态、任务条件组合以及行为转化的条件。任务状态根据游戏具体场景来决定,一般根据任务的状态分为:可接状态、未完成状态、待提交状态、结束状态等。本发明实施例中,各个状态相互之间也并不是固定不变的,例如接取了任务后不一定就进入到未完成状态,具体的进入状态由具体游戏的执行进度来决定。
步骤S503,可接状态接取任务的条件。
该步骤中通过与NPC进行对话后,达成该条件。NPC一般由计算机的人工智能控制,是拥有自身行为模式的角色,通过与NPC进行对话后达到必要条件,条件达成后执行S504步骤。
步骤S504,进入未完成状态。
该步骤中将任务设置为未完成状态,并初始化完成条件,为任务的执行做好准备。
步骤S505,完成任务的条件。
该步骤与图4中的示例不同,未完成状态对应两个必要事件,一个是击杀100只怪物;另一个是采集100朵花,二者之间是‘与’的关系。即玩家在完成击杀100只怪物且采集100朵花才可满足该步骤的任务的条件。二者之间同样不要求先后执行顺序,可先满足击杀100只怪物再采集100朵花,也可先满足采集100朵花后再击杀100只怪物。如果其中一个条件满足的基础上,并不限制该条件继续实施,也就是说如果玩家已完成击杀100只怪物,但没有达到采集100朵花,此时玩家依旧可以继续击杀怪物。在特殊游戏场景下也可对该条件进行限制,使得玩家击杀100只怪物后只能进行采集花的步骤,使得玩家尽快达成任务。上述两种不同方式可根据游戏实际场景进行设置。当条件最终达成后,触发S506步骤进行后续操作。
步骤S506,进入完成状态。
完成任务的条件后,将条件设置为已完成状态,并初始化已完成状态对应的必要条件,该必要条件是发放任务奖励。
步骤S507,给玩家发放任务奖励,奖励发放成功会达成该必要条件,然后进入下一个任务状态。
步骤S508,进入结束状态,任务结束。
任务结束后通知任务管理器回收该任务生命周期中占用的资源。
与或关系条件下实现上述游戏任务的运行方法的过程可知,该方法中任务的状态是分离的,并不会限定任务过程中的状态和状态之间的关系,彼此之间的关系只需要在具体实现任务的时候限定就可以了,可定制化程度较高。而且任务状态间的达成条件都是通过与或方式组合在一起,开发新的达成条件,只需要添加当前还未实现的元条件,然后通过组合成的达成条件即可,可最大限度的减少重复性的开发。
图6提供了另一种游戏任务的运行方法的实例,该实例重点描述分支任务条件下的游戏任务运行流程,当前任务状态为激活状态时,所述方法还包括:初始化所述激活状态对应的至少一个必要条件,所述必要条件为所述游戏任务的分支任务被激活。具体的,包括以下步骤:
步骤S601,任务开始。
该步骤通过任务管理器创建任务,然后对创建的任务进行初始化。初始化过程包括得到游戏任务的任务结构信息。
步骤S602,进入可接状态。
该步骤中对接取条件进行初始化,此时的玩家可以查看到该任务以及接取的条件。初始化的任务结构信息中包含任务的各种数据,如任务状态、任务条件组合以及行为转化的条件。任务状态根据游戏具体场景来决定,一般根据任务的状态分为:可接状态、未完成状态、待提交状态、结束状态等。本发明实施例中,各个状态相互之间也并不是固定不变的,例如接取了任务后不一定就进入到未完成状态,具体的进入状态由具体游戏的执行进度来决定。
步骤S603,可接状态接取任务的条件。
该步骤中通过与NPC进行对话后,达成该条件。NPC一般由计算机的人工智能控制,是拥有自身行为模式的角色,通过与NPC进行对话后达到必要条件,条件达成后执行S604步骤。
步骤S604,进入未完成状态。
该步骤中将任务设置为未完成状态,并初始化当前状态的必要条件,为任务的执行做好准备。
步骤S605,完成任务的条件。
该步骤可与上述图5中的步骤S505类似,未完成状态对应两个必要事件,一个是击杀100只怪物;另一个是采集100朵花,二者之间是‘与’的关系。即玩家在完成击杀100只怪物且采集100朵花才可满足该步骤的任务的条件。二者之间同样不要求先后执行顺序,可先满足击杀100只怪物再采集100朵花,也可先满足采集100朵花后再击杀100只怪物。如果其中一个条件满足的基础上,并不限制该条件继续实施,也就是说如果玩家已完成击杀100只怪物,但没有达到采集100朵花,此时玩家依旧可以继续击杀怪物。在特殊游戏场景下也可对该条件进行限制,使得玩家击杀100只怪物后只能进行采集花的步骤,使得玩家尽快达成任务。上述两种不同方式可根据游戏实际场景进行设置。当条件最终达成后,触发S506步骤进行后续操作。
该步骤也可与图4中的步骤S405类似,该步骤中存在两种条件,一种是击杀100只怪物后则达成该条件;另一种是花费游戏币则达成该条件。二者之间是‘或’的关系。玩家在完成击杀100只怪物或花费游戏币,即可满足该步骤的任务的条件。二者之间不要求先后执行顺序,只要满足其中任意一种任务的条件即可。
在达成该条件后,触发S606步骤。
步骤S606,进入已完成状态。
完成任务的条件后,将条件设置为已完成状态,并初始化已完成状态对应的必要条件,该必要条件是发放任务奖励。
步骤S607,给玩家发放任务奖励,奖励发放成功会达成该必要条件,然后进入下一个任务状态。
步骤S608,激活状态。
该步骤初始化激活状态的必要条件,待激活的任务有任务1和任务2,这两个激活任务是两个分支任务。激活这两个分支任务即是激活状态对应的两个必要条件,且这两个必要条件之间是与逻辑的关系。
步骤S609,激活后续的任务1和任务2。
由于激活任务这个条件是与的关系,将任务激活后这两个与的条件就完成了,不需要将两个分支任务完成。激活成功后出发S610步骤。
步骤S610,进入结束状态,任务结束。
任务结束后通知任务管理器回收该任务生命周期中占用的资源。
图7提供了另一种游戏任务的运行方法的实例,该实例重点描述环状任务运行流程,上述环状任务中的当前任务状态为系列计数状态时,方法还包括:初始化系列计数状态对应的至少一个必要条件,必要条件为将游戏任务所在的任务系列的已完成任务数加1。具体的包括以下步骤:
步骤S701,任务开始。
该步骤通过任务管理器创建任务,然后对创建的任务进行初始化。初始化过程包括得到游戏任务的任务结构信息。
步骤S702,进入可接状态。
该步骤中对接取条件进行初始化,此时的玩家可以查看到该任务以及接取的条件。初始化的任务结构信息中包含任务的各种数据,如任务状态、任务条件组合以及行为转化的条件。任务状态根据游戏具体场景来决定,一般根据任务的状态分为:可接状态、未完成状态、待提交状态、结束状态等。本发明实施例中,各个状态相互之间也并不是固定不变的,例如接取了任务后不一定就进入到未完成状态,具体的进入状态由具体游戏的执行进度来决定。
步骤S703,可接状态接取任务的条件。
该步骤中通过与NPC进行对话后,达成该条件。NPC一般由计算机的人工智能控制,是拥有自身行为模式的角色,通过与NPC进行对话后达到必要条件,条件达成后执行S704步骤。
步骤S704,进入未完成状态。
该步骤中将任务设置为未完成状态,并初始化当前状态的必要条件,为任务的执行做好准备。
步骤S705完成任务的条件。该步骤可与上述图5中的步骤S505类似,该步骤中存在两个必要的事件,一个是击杀100只怪物;另一个是采集100朵花。二者之间是‘与’的关系。即玩家在完成击杀100只怪物且采集100朵花才可满足该步骤的任务的条件。二者之间同样不要求先后执行顺序,可先满足击杀100只怪物再采集100朵花,也可先满足采集100朵花后再击杀100只怪物。如果其中一个条件满足的基础上,并不限制该条件继续实施,也就是说如果玩家已完成击杀100只怪物,但没有达到采集100朵花,此时玩家依旧可以继续击杀怪物。在特殊游戏场景下也可对该条件进行限制,使得玩家击杀100只怪物后只能进行采集花的步骤,使得玩家尽快达成任务。上述两种不同方式可根据游戏实际场景进行设置。当条件最终达成后,触发S506步骤进行后续操作。
该步骤也可与图4中的步骤S405类似,该步骤中存在两个必要的事件,一个是击杀100只怪物;另一个是花费游戏币,二者之间是‘或’的关系。玩家在完成击杀100只怪物或花费游戏币,即可满足该步骤的任务的条件。二者之间不要求先后执行顺序,只要满足其中任意一个必要的事件的条件即可。
在达成该条件后,触发S706步骤。
步骤S706,进入已完成状态。
完成任务的条件后,将条件设置为已完成状态,并初始化已完成状态对应的必要条件,该必要条件是发放任务奖励。
步骤S707,给玩家发放任务奖励,奖励发放成功会达成该必要条件,然后进入下一个任务状态。
步骤S708,进入计数状态。
初始化计数状态的必要条件,在游戏中的环状任务是指多个不同的任务组成的一个系列的环状任务链,该系列有多个任务组成,多个任务之间类似环状结构,通过特定顺序循环执行。这个过程中一般环状任务执行一次,并不会执行多次。
步骤S709,给当前任务环数加上1。
通常由于环状任务不会执行多次,该步骤中给当前任务环数加1后会停止对该任务计数,执行成功后触发S710步骤。
步骤S710,进入结束状态,任务结束。
任务结束后通知任务管理器回收该任务生命周期中占用的资源。
通过本发明实施例提供的多个场景下的游戏任务的运行方法可知,在不对任务状态进行传统意义上的有限的状态进行划分,状态之间的关系也不再是固定不变的。比如对于可接受任务而言,接受了任务后不一定就直接进入到未完成状态,具体的进入状态将由游戏实际运行的过程中进行具体分析。
将任务条件实现了拆分,拆分后的结果为二维的与或条件组合,即每个任务条件中包含至少一个必要条件,每个必要条件至少包含一个或条件。只要一个或条件达成,则包含该或条件的必要条件就达成。直到所有的必要条件达成后,则认为任务条件达成。
上述过程中,每个任务条件将会有两种可能的结果,真或假。为了使该任务条件具有意义,两种结果中至少需要实现一种结果处理。上述示例中展示的均是任务条件为真时的处理,而对于任务条件为假时,则不做任何逻辑处理。例如上述示例中关于击杀100只怪物的条件无法满足时,即游戏中只剩下不足100只怪物了,玩家永远也满足不了达到100只的条件时,此时认定该任务条件为假,不能执行任务条件为真时的后续状态。
在游戏任务运行的过程中,实现了任务状态的分离,并不会限定任务执行过程中的不同状态之间的关系,使得状态关系实现了可定制化。任务状态之间的达成条件都是通过与或的方式进行组合,在开发新的达成条件时只需要田间当前还未实现的元条件,然后经过组合得到新的达成条件,最大限度的减少重复开发。所有的任务条件的触发都是通过事件执行时的被动触发方式,不执行主动性的检测,减少了不必要的检测性能开销,而且具有较高的可移植性。
如图8所示,本发明实施例提供了一种游戏任务的运行装置,该装置包括:
创建模块801,用于获取游戏任务的任务结构信息;其中,任务结构信息包括至少一个任务状态,每个任务状态对应至少一个必要条件,必要条件表征游戏任务的必要事件;
判断模块802,用于当游戏任务进入当前任务状态时,均执行:发生的游戏事件匹配到当前任务状态对应的必要条件时,判断当前任务状态对应的所有必要条件是否均已达成;如果是,进入下一个任务状态,直至当前任务状态为结束状态。
在一些实施方式中,上述游戏任务的运行装置,还包括:
必要条件更新模块,用于响应任务更新操作,基于任务更新操作添加或删除任务状态对应的任意多个必要条件。
在一些实施方式中,上述必要条件更新模块中的每个必要条件与至少一个子条件相关联,多个子条件间的逻辑关系为或逻辑关系。
在一些实施方式中,上述创建模块,还包括:
子事件更新模块,用于响应任务更新操作,基于任务更新操作添加或删除必要条件相关联的任意多个子事件。
在一些实施方式中,上述装置还包括:
匹配模块,响应于游戏事件的发生,检查游戏事件是否达成当前任务状态对应的必要条件,如果是,确定游戏事件匹配到当前任务状态对应的必要条件。
在一些实施方式中,上述创建模块,还包括:
可接取状态设置模块,用于将当前任务状态置为可接取状态,初始化可接取状态对应的至少一个必要条件。
在一些实施方式中,上述可接取状态设置模块中还包括:
必要条件激活模块,用于初始化激活状态对应的至少一个必要条件,必要条件为游戏任务的分支任务被激活。
在一些实施方式中,上述判断模块中的当前任务状态为系列计数状态时,该模块还包括:
任务数量统计模块,用于初始化系列计数状态对应的至少一个必要条件,必要条件为将游戏任务所在的任务系列的已完成任务数加1。
在一些实施方式中,上述判断模块中的当前任务状态为提交状态时,该模块还包括:
达成提交事件模块,用于初始化提交状态对应的至少一个必要条件,必要条件为达成提交事件。
在一些实施方式中,上述判断模块中的当前任务状态为结束状态时,该装置还包括:
资源回收模块,用于结束游戏任务,并回收游戏任务占用的资源。
在一些实施方式中,上述创建模块,还包括:
游戏任务加载模块,用于加载游戏任务。
本发明实施例提供的游戏任务的运行装置,与上述实施例提供的游戏任务的运行方法具有相似的技术特征,详细实现方式本实施例中不再赘述。
本发明实施例提供一种电子终端,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的方法的步骤。
本发明实施例提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述实施例提供的方法的步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所公开的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种游戏任务的运行方法,其特征在于,包括:
获取游戏任务的任务结构信息;其中,所述任务结构信息包括至少一个任务状态,每个所述任务状态对应至少一个必要条件,所述必要条件表征所述游戏任务的必要事件;所述任务状态至少包括可接取状态、未完成状态、待提交状态、结束状态;其中,所述可接取状态达到必要条件时通过与非玩家角色NPC进行对话后达成的;
当所述游戏任务进入当前任务状态时,均执行:发生的游戏事件匹配到所述当前任务状态对应的必要条件时,判断所述当前任务状态对应的所有必要条件是否均已达成;每个所述必要条件与至少一个子条件相关联,多个所述子条件间的逻辑关系为或逻辑关系;
如果是,进入下一个任务状态,直至所述当前任务状态为结束状态;
响应任务更新操作,基于所述任务更新操作添加或删除所述任务状态对应的任意多个必要条件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应任务更新操作,基于所述任务更新操作添加或删除所述必要条件相关联的任意多个子事件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述游戏事件的发生,检查所述游戏事件是否达成所述当前任务状态对应的必要条件,如果是,确定所述游戏事件匹配到所述当前任务状态对应的必要条件。
4.根据权利要求1所述的方法,其特征在于,所述获取所述游戏任务的任务结构信息的步骤之后,还包括:
将当前任务状态置为可接取状态,初始化所述可接取状态对应的至少一个必要条件。
5.根据权利要求1所述的方法,其特征在于,所述当前任务状态为激活状态时,所述方法还包括:
初始化所述激活状态对应的至少一个必要条件,所述必要条件为所述游戏任务的分支任务被激活。
6.根据权利要求1所述的方法,其特征在于,所述当前任务状态为系列计数状态时,所述方法还包括:
初始化所述系列计数状态对应的至少一个必要条件,所述必要条件为将所述游戏任务所在的任务系列的已完成任务数加1。
7.根据权利要求1所述的方法,其特征在于,所述当前任务状态为提交状态时,所述方法还包括:
初始化所述提交状态对应的至少一个必要条件,所述必要条件为达成提交事件。
8.根据权利要求1所述的方法,其特征在于,所述当前任务状态为结束状态时,所述方法还包括:
结束所述游戏任务,并回收所述游戏任务占用的资源。
9.根据权利要求1所述的方法,其特征在于,所述获取游戏任务的任务结构信息的步骤之前,还包括:
加载游戏任务。
10.一种游戏任务的运行装置,其特征在于,包括:
创建模块,用于创建游戏任务,得到所述游戏任务的任务结构信息;其中,所述任务结构信息包括至少一个任务状态,每个所述任务状态对应至少一个必要条件,所述必要条件表征所述游戏任务的必要事件;所述任务状态至少包括可接取状态、未完成状态、待提交状态、结束状态;其中,所述可接取状态达到必要条件时通过与非玩家角色NPC进行对话后达成的;
判断模块,用于当所述游戏任务进入当前任务状态时,均执行:发生的游戏事件匹配到所述当前任务状态对应的必要条件时,判断所述当前任务状态对应的所有必要条件是否均已达成;每个所述必要条件与至少一个子条件相关联,多个所述子条件间的逻辑关系为或逻辑关系;如果是,进入下一个任务状态,直至所述当前任务状态为结束状态;
所述游戏任务的运行装置,还包括:
必要条件更新模块,用于响应任务更新操作,基于所述任务更新操作添加或删除所述任务状态对应的任意多个必要条件。
11.一种电子终端,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至9任一项所述的方法的步骤。
12.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至9任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911162249.1A CN110941485B (zh) | 2019-11-21 | 2019-11-21 | 游戏任务的运行方法、装置及电子终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911162249.1A CN110941485B (zh) | 2019-11-21 | 2019-11-21 | 游戏任务的运行方法、装置及电子终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110941485A CN110941485A (zh) | 2020-03-31 |
CN110941485B true CN110941485B (zh) | 2022-11-08 |
Family
ID=69907412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911162249.1A Active CN110941485B (zh) | 2019-11-21 | 2019-11-21 | 游戏任务的运行方法、装置及电子终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110941485B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130821B (zh) * | 2020-09-22 | 2024-04-09 | 北京冰封互娱科技有限公司 | 游戏活动管理方法、设备及存储介质 |
CN112221129A (zh) * | 2020-10-19 | 2021-01-15 | 杭州电魂网络科技股份有限公司 | 一种基于有向图的任务触发方法及系统 |
CN113797542B (zh) * | 2021-09-29 | 2024-04-23 | 上海完美时空软件有限公司 | 任务数据的生成方法及装置、存储介质、电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425024A (zh) * | 2008-10-24 | 2009-05-06 | 中国移动通信集团山东有限公司 | 一种多任务处理方法及装置 |
CN105974891A (zh) * | 2016-01-18 | 2016-09-28 | 广东工业大学 | 一种基于动态看板的模具生产过程自适应控制方法 |
CN108694564A (zh) * | 2018-06-07 | 2018-10-23 | 阿里巴巴集团控股有限公司 | 一种任务状态控制方法及装置 |
CN110347815A (zh) * | 2019-07-11 | 2019-10-18 | 上海蔚来汽车有限公司 | 语音对话系统中的多任务处理方法以及多任务处理系统 |
-
2019
- 2019-11-21 CN CN201911162249.1A patent/CN110941485B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425024A (zh) * | 2008-10-24 | 2009-05-06 | 中国移动通信集团山东有限公司 | 一种多任务处理方法及装置 |
CN105974891A (zh) * | 2016-01-18 | 2016-09-28 | 广东工业大学 | 一种基于动态看板的模具生产过程自适应控制方法 |
CN108694564A (zh) * | 2018-06-07 | 2018-10-23 | 阿里巴巴集团控股有限公司 | 一种任务状态控制方法及装置 |
CN110347815A (zh) * | 2019-07-11 | 2019-10-18 | 上海蔚来汽车有限公司 | 语音对话系统中的多任务处理方法以及多任务处理系统 |
Non-Patent Citations (1)
Title |
---|
"任务驱动式教育游戏设计";陈乐;《宁波职业技术学院学报》;20131230;第17卷(第6期);第二节 * |
Also Published As
Publication number | Publication date |
---|---|
CN110941485A (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110941485B (zh) | 游戏任务的运行方法、装置及电子终端 | |
CN111330279B (zh) | 一种游戏ai的策略决策模型训练方法和装置 | |
CN110134375B (zh) | 游戏角色行为的控制方法、装置及可读存储介质 | |
CN110944048B (zh) | 业务逻辑配置方法及装置 | |
CN110215710B (zh) | 游戏中事件确定方法及装置、电子设备和存储介质 | |
US20200122031A1 (en) | Remote Networked Services for Providing Contextual Information | |
WO2020083941A1 (en) | Method and system for a behavior generator using deep learning and an auto planner | |
CN111701246B (zh) | 一种游戏ai的决策配置方法和装置 | |
CN111111203B (zh) | 一种机器人的训练方法及装置、技能释放方法及装置 | |
CN112494953A (zh) | 游戏匹配方法、电子设备和计算机可读存储介质 | |
CN110097680B (zh) | 抽奖方法、装置、抽奖服务系统、抽奖系统及存储介质 | |
CN109731338B (zh) | 游戏中的人工智能训练方法及装置、存储介质及电子装置 | |
Villadsen et al. | Engineering a multi-agent system in Jason and CArtAgO: Multi-agent programming contest 2017 | |
CN109343913B (zh) | 一种游戏行为树控制方法 | |
US20220184498A1 (en) | Autoplayers for filling and testing online games | |
Kuga et al. | An automatic team evaluation system for RoboCup soccer simulation 2D | |
CN111068329B (zh) | 一种游戏关卡配置方法、装置、电子设备及存储介质 | |
CN112990452B (zh) | 人机对抗知识驱动型决策方法、装置及电子设备 | |
CN113426127A (zh) | 游戏操作指引方法、装置、设备及存储介质 | |
CN117046111B (zh) | 一种游戏技能的处理方法以及相关装置 | |
KR20200029923A (ko) | 컴퓨팅 장치에서 게임에 대한 사용자의 데이터를 처리하는 방법, 및 컴퓨팅 장치 | |
CN112036578B (zh) | 智能体训练方法及装置、存储介质及电子设备 | |
KR102106270B1 (ko) | Vr 콘텐츠에서의 데이터 관리 장치 및 방법 | |
CN113260434B (zh) | 统一数据平台的数据模型 | |
Planning | Check for LFC: Combining Autonomous Agents and Automated Planning in the Multi-Agent Programming Contest Rafael C. Cardoso (), Angelo Ferrando®, and Fabio Papacchini |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |