一种可扩展的游戏关卡机关处理方法及装置

申请号 CN201510942890.2 申请日 2015-12-16 公开(公告)号 CN105536250A 公开(公告)日 2016-05-04
申请人 珠海金山网络游戏科技有限公司; 成都西山居互动娱乐科技有限公司; 发明人 李茂; 陈汉辉; 吴海权;
摘要 本 发明 涉及一种可扩展的游戏关卡机关处理方法及装置,其中方法包括:获取给定范围内的机关条件内容和机关响应动作;对机关条件内容、机关响应动作和逻辑运算操作流程配置参数标志,并分别封装为各自的元件,供用户操作进行组合和扩展连接;根据标志参数对组合和扩展连接的多个机关条件元件、机关动作元件和逻辑运算元件的机关群组进行检验,将通过检验的群组转译为机关定义数据,用于创建或更新机关定义。其中装置包括获取机关条件内容和机关响应动作的第一模 块 ;提供用户操作机关条件元件、机关动作元件和逻辑运算元件的第二模块;转换元件群组以创建或更新机关定义的第三模块。本发明可以缩短游戏关卡机关和系统的开发周期,增强游戏体验。
权利要求

1.一种游戏关卡机关处理方法,其特征在于包括以下步骤:
A、接入游戏关卡编辑软件工具,获取给定范围内的机关条件内容和机关响应动作;
B、对机关条件内容、机关响应动作和逻辑运算操作流程配置参数标志,并分别封装为各自的机关条件元件、机关动作元件和逻辑运算元件,供用户操作进行组合和扩展连接;
C、根据标志参数对组合和扩展连接的多个机关条件元件、机关动作元件和逻辑运算元件的机关群组进行检验,如果通过检验,则将所述群组转译为机关定义数据且传输到游戏关卡编辑软件工具中以创建或更新机关定义。
2.根据权利要求1所述的游戏关卡机关处理方法,其中机关条件的参数标志包括:一次性触发标志、重置时间标志、触发计数器标志、设置状态标志和多条件关联性标志。
3.根据权利要求1所述的游戏关卡机关处理方法,其特征在于,在步骤A中,获取的给定范围内的机关响应动作包括通过测试后的运行错误率低于预设阈值的机关响应动作。
4.根据权利要求1所述的游戏关卡机关处理方法,其特征在于,所述步骤B包括:
提供人机交互界面,该人机交互界面包括工具栏和工作区,其中所述工具栏包含图形化的机关条件元件、机关动作元件和逻辑运算元件,所述工作区用于按照机关条件间的逻辑运算触发机关动作的方式,利用树形结构来排布和组织图形化的机关条件元件、机关动作元件或逻辑运算元件,以生成机关群组。
5.根据权利要求4所述的游戏关卡机关处理方法,其特征在于,所述步骤B还包括:
对所述工作区中排布和组织的机关条件元件、机关动作元件或逻辑运算元件自动配置相应的机关条件的参数标志,提供编辑和修改
6.根据权利要求4所述的游戏关卡机关处理方法,其特征在于,所述步骤B还包括:
对所述工作区中待排布和组织的机关条件元件、机关动作元件或逻辑运算元件自动配置链接接口和链接引导图元,用于引导用户按照逻辑运算触发机关动作的方式分层地排布和组织机关条件元件、机关动作元件或逻辑运算元件。
7.根据权利要求4所述的游戏关卡机关处理方法,其特征在于,所述步骤C包括:
在检验机关群组时,按照机关条件间的逻辑运算触发机关动作的方式,从树形结构的末端元件到树形结构顶端的顺序,遍布地检验机关条件元件和机关动作元件之间的逻辑冲突,以便定位所述机关群组中链接出错的机关条件元件、机关动作元件或逻辑运算元件。
8.根据权利要求1所述的游戏关卡机关处理方法,其特征在于,在创建或更新机关定义后还包括:
根据机关条件内容的种类,设置事件消息模式驱动对应的机关条件的触发和/或设置轮询模式驱动对应的机关条件的触发。
9.根据权利要求8所述的游戏关卡机关处理方法,其特征在于:
当设置轮询模式驱动对应的机关条件的触发时,配置游戏关卡编辑软件工具的更新函数接口以便独立更新每个轮询的机关条件。
10.一种游戏关卡机关处理装置,其特征在于包括:
第一模,用于接入游戏关卡编辑软件工具,获取给定范围内的机关条件内容和机关响应动作;
第二模块,用于对机关条件内容、机关响应动作和逻辑运算操作流程配置参数标志,并分别封装为各自的机关条件元件、机关动作元件和逻辑运算元件,供用户操作进行组合和扩展连接;
第三模块,用于根据标志参数对组合和扩展连接的多个机关条件元件、机关动作元件和逻辑运算元件的机关群组进行检验,如果通过检验,则将所述群组转译为机关定义数据且传输到游戏关卡编辑软件工具中以创建或更新机关定义。

说明书全文

一种可扩展的游戏关卡机关处理方法及装置

技术领域

[0001] 本发明涉及一种可扩展的游戏关卡机关处理方法及装置,属于游戏开发软件领域。

背景技术

[0002] 丰富的关卡与任务是一个设计良好的游戏所拥有的显著特点,而且有了它们之后,游戏的生命也会更强。不管游戏是RTS游戏、 RPG游戏还是动作游戏,开发过程中都需要给策划提供某种方便的手段以让其对关卡进行定制。还需要能让策划对人工智能引擎进行修改和扩展,然而如果想要开发人员中每个策划都能改造游戏,那么简洁性是一个关键的因素,传统的游戏设计,策划扩展关卡与任务一般采用脚本语言的形式。有如下的缺点:1)脚本语言极少能够提供简单和健壮的编辑特性,而且策划也要担心语法错误的问题;
2)策划并非开发人员,而且也不应该让他们去学习一种编程语言,甚至对其结果进行调试;
3)脚本编写不正确有可能会导致游戏的崩溃;
4)嵌入一脚本语言需要较多的开发时间才能实现。

发明内容

[0003] 针对现有技术缺陷,本发明通过提供一种可扩展的游戏关卡机关处理方法及装置,缩短游戏关卡机关和系统的开发周期,增强游戏的体验和表现。
[0004] 本发明采用的技术方案一方面为一种可扩展的游戏关卡机关处理方法,包括以下步骤:A、接入游戏关卡编辑软件工具,获取给定范围内的机关条件内容和机关响应动作;
B、对机关条件内容、机关响应动作和逻辑运算操作流程配置参数标志,并分别封装为各自的机关条件元件、机关动作元件和逻辑运算元件,供用户操作进行组合和扩展连接;
C、根据标志参数对组合和扩展连接的多个机关条件元件、机关动作元件和逻辑运算元件的机关群组进行检验,如果通过检验,则将所述群组转译为机关定义数据且传输到游戏关卡编辑软件工具中以创建或更新机关定义。
[0005] 进一步,其中机关条件的参数标志包括:一次性触发标志、重置时间标志、触发计数器标志、设置状态标志和多条件关联性标志。
[0006] 进一步,在步骤A中,获取的给定范围内的机关响应动作包括通过测试后的运行错误率低于预设阈值的机关响应动作。
[0007] 进一步,所述步骤B包括:提供人机交互界面,该人机交互界面包括工具栏和工作区,其中所述工具栏包含图形化的机关条件元件、机关动作元件和逻辑运算元件,所述工作区用于按照机关条件间的逻辑运算触发机关动作的方式,利用树形结构来排布和组织图形化的机关条件元件、机关动作元件或逻辑运算元件,以生成机关群组。
[0008] 进一步,所述步骤B还包括:对所述工作区中排布和组织的机关条件元件、机关动作元件或逻辑运算元件自动配置相应的机关条件的参数标志,提供编辑和修改。
[0009] 进一步,所述步骤B还包括:对所述工作区中待排布和组织的机关条件元件、机关动作元件或逻辑运算元件自动配置链接接口和链接引导图元,用于引导用户按照逻辑运算触发机关动作的方式分层地排布和组织机关条件元件、机关动作元件或逻辑运算元件。
[0010] 进一步,所述步骤C包括:在检验机关群组时,按照机关条件间的逻辑运算触发机关动作的方式,从树形结构的末端元件到树形结构顶端的顺序,遍布地检验机关条件元件和机关动作元件之间的逻辑冲突,以便定位所述机关群组中链接出错的机关条件元件、机关动作元件或逻辑运算元件。
[0011] 作为对所述方法的进一步改进,在创建或更新机关定义后还包括:根据机关条件内容的种类,设置事件消息模式驱动对应的机关条件的触发和/或设置轮询模式驱动对应的机关条件的触发。
[0012] 优选地,当设置轮询模式驱动对应的机关条件的触发时,配置游戏关卡编辑软件工具的更新函数接口以便独立更新每个轮询的机关条件。
[0013] 本发明的方案另一方面提供一种游戏关卡机关处理装置,包括:第一模,用于接入游戏关卡编辑软件工具,获取给定范围内的机关条件内容和机关响应动作;第二模块,用于对机关条件内容、机关响应动作和逻辑运算操作流程配置参数标志,并分别封装为各自的机关条件元件、机关动作元件和逻辑运算元件,供用户操作进行组合和扩展连接;第三模块,用于根据标志参数对组合和扩展连接的多个机关条件元件、机关动作元件和逻辑运算元件的机关群组进行检验,如果通过检验,则将所述群组转译为机关定义数据且传输到游戏关卡编辑软件工具中以创建或更新机关定义。
[0014] 本发明的有益效果为:通过将关卡机关条件和关卡机关动作封装成易操作的元件,简化了游戏关卡设计过程中的繁琐操作,显著缩短游戏关卡机关系统开发周期和减少了开发人员的出错率,还能提供灵活多样的、可扩展的机关设计方法,增强游戏的体验和表现。附图说明
[0015] 图1所示为根据本发明的可扩展的游戏关卡机关处理方法的流程框图;图2所示为根据本发明一实施例的图形化示意图;
图3所示为根据本发明一实施例的机关处理示意图。
[0016]

具体实施方式

[0017] 下面结合附图对本发明的多个实施例进行描述。
[0018] 图1所示为根据本发明的可扩展的游戏关卡机关处理方法的流程框图。在本实施例中,游戏关卡机关处理方法,包括以下步骤:A、接入游戏关卡编辑软件工具,获取给定范围内的机关条件内容和机关响应动作;B、对机关条件内容、机关响应动作和逻辑运算操作流程配置参数标志,并分别封装为各自的机关条件元件、机关动作元件和逻辑运算元件,供用户操作进行组合和扩展连接;C、根据标志参数对组合和扩展连接的多个机关条件元件、机关动作元件和逻辑运算元件的机关群组进行检验,如果通过检验,则将所述群组转译为机关定义数据且传输到游戏关卡编辑软件工具中以创建或更新机关定义。
[0019] 在本实施例中,机关条件的参数标志包括:一次性触发标志、重置时间标志、触发计数器标志、设置状态标志和多条件关联性标志。在本实施例的步骤A中,获取的给定范围内的机关响应动作包括通过测试后的运行错误率低于预设阈值的机关响应动作。
[0020] 在本实施例的步骤B包括:提供人机交互界面,该人机交互界面包括工具栏和工作区,其中所述工具栏包含图形化的机关条件元件、机关动作元件和逻辑运算元件,所述工作区用于按照机关条件间的逻辑运算触发机关动作的方式,利用树形结构来排布和组织图形化的机关条件元件、机关动作元件或逻辑运算元件,以生成机关群组。在本实施例中,所述步骤B还包括:对所述工作区中排布和组织的机关条件元件、机关动作元件或逻辑运算元件自动配置相应的机关条件的参数标志,提供编辑和修改。在本实施例中,所述步骤B还包括:对所述工作区中待排布和组织的机关条件元件、机关动作元件或逻辑运算元件自动配置链接接口和链接引导图元,用于引导用户按照逻辑运算触发机关动作的方式分层地排布和组织机关条件元件、机关动作元件或逻辑运算元件。在本实施例中,所述步骤C包括:在检验机关群组时,按照机关条件间的逻辑运算触发机关动作的方式,从树形结构的末端元件到树形结构顶端的顺序,遍布地检验机关条件元件和机关动作元件之间的逻辑冲突,以便定位所述机关群组中链接出错的机关条件元件、机关动作元件或逻辑运算元件。
[0021] 在一个优选的实施例中,在创建或更新机关定义后还包括:根据机关条件内容的种类,设置事件消息模式驱动对应的机关条件的触发和/或设置轮询模式驱动对应的机关条件的触发。优选地,当设置轮询模式驱动对应的机关条件的触发时,配置游戏关卡编辑软件工具的更新函数接口以便独立更新每个轮询的机关条件。
[0022] 在一些实施例中,根据本发明的游戏关卡机关处理装置包括用于储存应用程序存储器和处理器,其中所述处理器包括:第一模块,用于接入游戏关卡编辑软件工具,获取给定范围内的机关条件内容和机关响应动作;第二模块,用于对机关条件内容、机关响应动作和逻辑运算操作流程配置参数标志,并分别封装为各自的机关条件元件、机关动作元件和逻辑运算元件,供用户操作进行组合和扩展连接;第三模块,用于根据标志参数对组合和扩展连接的多个机关条件元件、机关动作元件和逻辑运算元件的机关群组进行检验,如果通过检验,则将所述群组转译为机关定义数据且传输到游戏关卡编辑软件工具中以创建或更新机关定义。
[0023] 图2所示为根据本发明一优选实施例的图形化示意图。其中根据本发明的游戏关卡机关处理装置包括显示设备,用于提供人机交互界面。具体地,该显示设备可以是任意公知的台式显示器、移动设备触摸屏等。人机交互界面提供图形化工具栏和工作区。如图2所示,图形化工具栏中提供游戏机关条件类、动作类和逻辑运算元件。用户可以利用输入设备(鼠标键盘、操控笔等)操控光标元件或直接拖动所需的元件到工作区,然后根据游戏机关开发流程以及条件之间的触发条件可实施的逻辑运算,连线各个元件并且指定输出的动作元件,形成元件树结构的群集。用户还可以在工作区中双击各个元件,定义参数标志,比如条件元件或动作元件可被定义一次性触发标志、重置时间标志、触发计数器标志、设置状态标志和多条件关联性标志。用户在工作区完成游戏机关的元件群集设计后,由本发明的方法所实现的程序或后台进程会对所述群集进行“编译”,即是根据树结构,从底层向上层(或从外围到内部)检验机关条件之间的逻辑运算是否存在冲突、动作元件是否能被正常触发等。如果发现“编译”不通过,则沿着树结构寻找问题元件,并且把问题链路标示。所述元件群组通过“编译”后,将会转译为机关定义数据,然后将这些数据传输到游戏关卡编辑软件工具中以创建或更新机关定义,这样就可以在后台自动完成游戏开发中的关卡机关设计。程序开发人员,甚至游戏策划、美术人员等不懂编程的人员,都可以利用这个图形化工具去设计机关。
[0024] 可选地,在一些实施例中,还可以在图形界面中提供数据工作区和数据接口,直接面向熟练的游戏开发程序员利用表格定义游戏机关中的逻辑设计和配置,甚至可以通过代码进行深入修改。
[0025] 在一些更具体的实施例,本发明可以实施为可扩展机关处理系统。专门做某件事情的一段集中的代码:它将对各个条件进行检验,继而执行相应的事件响应。如果有一组条件满足了,那么对应的一组反应就会被执行。这个简单的系统结构优秀、易于实现,而且很容易对之使用数据驱动的方法。它可以用来解决各种不同的问题,尤其适合让策划和玩家进行修改。最好的一点是,有了它以后,就可以更容易地创建一个好玩的、崭新的、交互式的环境让玩家来探险了。假设一个游戏情境,在其中玩家与一群勇士正在探险,在地下城中进行探索。在玩家走到地下墓穴的时候,一个柱子倒了下来,几乎把领队砸成了肉泥。当玩家走到一个恢宏的石门前面的时候,一股寒流突然扑灭了玩家的火把。在点燃了最后一个火把之后,玩家可以看到其上的篆文。经过一番考虑,玩家让队员们站到心形的地板上面,于是随着一阵响声,石门缓慢地打开了。上述的每一个事件都可以使用机关处理系统中的条件——响应模型进行描述。当队员走到一个特定的柱子对象旁边1米之内的时候,此对象对此事件的响应就是倒下。当队伍走到了门前2米以内的时候,相应的响应就是播放一阵刮的音效,然后扑火周围的火把。当每块心形地板上而都站上了一个玩家的队友之后,其响应就为打开石门,播放一阵石头摩擦的音效。
[0026] 可扩展机关处理系统的架构是为每个对象或任务加上一个其自有的机关处理系统类。对象就可以把自己的数据封装在内部,这样就可以使得系统更加灵活,更加面向对象了。现在来讨论一下那个当有人走近时就倒下的柱子。可以在关卡编辑器里面定义这么一个柱子,然后为之添加上一个机关的定义,此机关的行为就是使物体倒下。然后策划就可以在游戏里面放置很多这样的柱子了,它们的行为都出奇地相似, 因为此对象给直接加上了一个机关行为。通过使用这种方法,每个对象或是任务都可以加上一个机关处理系统,而此系统则可以完全为此实体所拥有。
[0027] 在本实施例中,机关条件可以是任何一个玩家在游戏中进行量化的事件或是状态。条件在可执行文件里面是固定的,但是可以对之使用参数或是关卡编辑器进行高度自由的配置。下面列出了一些可能的条件,例如:玩家离点(x,y,z)的距离在R之内;玩家在一个闭合区域(x,y,z)的范围之内;一个敌人逼近了玩家;玩家的生命值低于X%;玩家的背包里有对象X;玩家装备了对象X等。
[0028] 在本实施例中,逻辑运算元件使用布尔逻辑组合。为了得到更加灵活的条件限制,优选使用布尔操作符,例如AND、OR、NOT,或是XOR,将条件关联起来。举个例子,如果只有当玩家装备了剑、冰盾,以及寒冰盔甲的时候门才能开启的话,这些条件就需要用AND符连接起来。如果当玩家拿着钥匙或者头像钥匙的时候门可以打开,那么这些条件必须用OR符连接起来。如果条件是要求玩家装备了冰剑、冰盾以及寒冰盔甲的同时还需要银钥匙或者头像钥匙的话,对应的元件群组如图3所示。
[0029] 图3所示的群组还可以为以后的代码编写提供一个结构。例如,如果每个条件元件或动作元件都是一个类,那一共就有两种类:行为类和条件类。可以对行为类进行设置让其在表现上和任何布尔操作符一模一样,它里面还有一个列表,其中包含的是指向行为实例的指针或是条件实例的指针,后者是一元布尔操作符的对象。条件类可以用来对任何需要检查的条件进行求值,且包含一些参数,以用来对其进行定制。
[0030] 在一些实施例中,还可以定义响应。响应可以是游戏中的任何一个玩家想改变的状态或是动作。和前述一样,这些也是在执行文件中设置好了的,但是它们也可以使用参数或者是关卡编辑器对之进行定制。下面列出了响应的例子:关卡/任务结束;对玩家造成X点的伤害或是治愈X点的生命值;给玩家X个经验值;关门、开门、门以及打开门锁;产生X个X类型的生物;从一个列表中随机挑选音效进行播放;有X%的几率播放音效;把玩家或是敌人X移动到位置(x,y,z)处;在某地或是对玩家/敌人施加特殊效果等。如果某组特定的条件得到了满足,相应的响应就会被执行了。不过,可以对之进行扩展,以让其响应包含一组响应,而不仅仅是一个响应。使用了这种方法之后,当条件被触发了以后,它就可以同时对多个事件造成影响,或是随机选择其中一个进行响应了。
[0031] 优选地,当利用可扩展机关处理系统通过条件定义了一个机关以后,还需要一个框架取得其值以得知何时应该触发这个机关。第一个需要考虑的地方就是要决定一个特定条件应该是事件驱动的(机关处理系统将等待得到一个事件的通知),还是应该对世界进行轮询(每隔几个游戏时钟周期就对条件的真值进行检查)。在实际环境中,会希望能有比较大的灵活性,可以随意选择创建事件驱动或是轮询模式的条件。所以需要把这两个模式都加入进来。
[0032] 对于事件驱动的条件来说,需要一个接口以让事件能进入此机关处理系统。最简单的方法就是使用事件消息。事件消息只是一个简单的通知以通报某个事件发生了,另外此消息还携带了相关的数据。对于轮询类型的条件,可以在机关处理系统内部调用一个更新函数以便让每个轮询条件自己去完成相应的工作。而事件驱动的条件则会忽略这个函数调用。不管在机关处理系统中进入了一条事件消息或是进行了一个轮询更新函数的调用,都需要采用一个方法将其与整个条件判断关联上。当事件消息或是轮询更新进入机关处理系统的时候,它将被传递到每个机关的根行为实例中去。此行为将把它传递给其子节点,期望得到一个真或假的返回值。每个子节点还将把它传递给自己的子节点。当其达到了一个实例的时候,子节点就会根据条件的新状态返回真或是假。接下来每个实例都将对返回值进行求值运算,然后将结果返回给父节点。行为类在给子节点传值的时候应该使用快速求值法。如果根据操作符有任何一个条件没有被满足的话,此机关的检查就会被立即放弃掉。这将对减少处理量有所帮助。在使用事件驱动的条件时还有另一个重要的事情,那就是一定要注意它们必须得记住其事件,一直到被重置为止。在某一个点上,为此特定机关设置的条件将都返回适当的值,使得机关被触发。当一个机关被触发的时候,它就会记住这一点,以后不会再被重复触发。
[0033] 根据本发明实施的机关处理系统与一个全方位的脚本语言相比较,在设计游戏机关时,具有下列优点:1.机关处理系统能在图形用户界面里面完全定制。而且也不必担心什么语法错误,因为机关己经定好了针对条件与响应的结构;
2.机关处理系统对策划而言更方便,机关的概念很容易理解,而且会有更多的人去使用它;
3.机关处理系统是有边界限制的。由于机关处理系统已经做了很好的限制,因此用户操作一般不会导致游戏的崩溃(这是因为机关处理系统只会执行一组在很小范围内的、经过良好测试的、仅限于有限几种的动作(响应));
4.机关处理系统在实现和修改方面都很快,实现机关处理系统相比使用完整的脚本语言的实现来说只需要很短的一部分时间;
5.机关处理系统在编写文档和例子方面比较容易;
6.机关处理系统能帮助保护自己的游戏以防止随机的,或是恶意的改造行为。
[0034] 以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
QQ群二维码
意见反馈