CN111581114B - 事件处理方法、装置、存储介质、处理器及电子装置 - Google Patents

事件处理方法、装置、存储介质、处理器及电子装置 Download PDF

Info

Publication number
CN111581114B
CN111581114B CN202010500671.XA CN202010500671A CN111581114B CN 111581114 B CN111581114 B CN 111581114B CN 202010500671 A CN202010500671 A CN 202010500671A CN 111581114 B CN111581114 B CN 111581114B
Authority
CN
China
Prior art keywords
event
custom
custom event
client
logic
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
Application number
CN202010500671.XA
Other languages
English (en)
Other versions
CN111581114A (zh
Inventor
吴伟林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202010500671.XA priority Critical patent/CN111581114B/zh
Publication of CN111581114A publication Critical patent/CN111581114A/zh
Application granted granted Critical
Publication of CN111581114B publication Critical patent/CN111581114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一种事件处理方法、装置、存储介质、处理器及电子装置。该方法包括:获取待执行的预定义事件,其中,预定义事件用于响应外部系统调用,触发图形化工具流程;基于预定义事件发起图形化工具流程,执行与预定义事件对应的逻辑;在执行与预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,其中,第一自定义事件用于与至少一个客户端进行通讯;将第一自定义事件发送至至少一个客户端,以使至少一个客户端执行与第一自定义事件对应的逻辑。本发明解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。

Description

事件处理方法、装置、存储介质、处理器及电子装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种事件处理方法、装置、存储介质、处理器及电子装置。
背景技术
目前,相关技术中所提供的游戏逻辑开发方式大多是依据策划人员提供开发文档,然后程序人员根据自身对开发文档的理解进行实际开发工作。在采用单纯由策划人员提供开发文档和程序人员进行实际开发的情况下,整个开发流程通常会存在如下问题:
(1)游戏逻辑对于策划人员而言属于黑盒,因此,策划人员无法实际参与到游戏开发中。尽管开发文档能够尽量详细地描述功能需求,但是其所设计的游戏功能是否能够达到预期则只能在后期完成过程中进行检验。
(2)对于程序人员而言,在与策划人员进行充分沟通之前,难以完全理解策划人员的设计思路,因此会存在较多的沟通成本。并且对于部分功能而言,一些重复性工作量原本可以交付给非程序人员即可完成,但是由于缺少便捷的方法提供给非程序人员来实现,因此还是会占用程序人员的工作时间。
为了解决上述问题,相关技术中尝试引入可视化工具来实现逻辑流程控制。但是,该可视化工具不仅需要与游戏开发过程中所使用的游戏引擎相适配,而且,还难以满足网络游戏的实际开发需求,例如:过度关注单机情况的处理,而针对客户端与服务端模型则缺乏良好的解决方案。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种事件处理方法、装置、存储介质、处理器及电子装置,以至少解决相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
根据本发明其中一实施例,提供了一种事件处理方法,包括:
获取待执行的预定义事件,其中,预定义事件用于响应外部系统调用,触发图形化工具流程;基于预定义事件发起图形化工具流程,执行与预定义事件对应的逻辑;在执行与预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,其中,第一自定义事件用于与至少一个客户端进行通讯;将第一自定义事件发送至至少一个客户端,以使至少一个客户端执行与第一自定义事件对应的逻辑。
可选地,执行与预定义事件对应的逻辑包括:在游戏内的实体对象下,通过实体组件将预定义事件发送至全局管理器;通过全局管理器查找与预定义事件关联的实体上下文,并向实体上下文转发与预定义事件对应的触发消息;通过向实体上下文向第一实体会话上下文发送触发消息,在第一实体会话上下文中查找与预定义事件关联的事件节点;基于事件节点执行与预定义事件对应的逻辑。
可选地,将第一自定义事件发送至至少一个客户端包括:将第一实体会话上下文的标识信息和第一自定义事件发送至至少一个客户端,其中,标识信息用于在至少一个客户端查找对应的第二实体会话上下文。
可选地,上述方法还包括:接收至少一个客户端反馈的标识信息和第二自定义事件;对第二自定义事件进行校验处理,得到校验结果,其中,校验处理包括:执行顺序校验、数据合法性校验;当根据校验结果确定第二自定义事件通过校验时,基于标识信息查找到第一实体会话上下文;在第一实体会话上下文中执行与第二自定义事件对应的逻辑。
可选地,对第二自定义事件进行校验处理,得到校验结果包括:判断第二自定义事件是否为首次接收的事件并且按照执行顺序判断第二自定义事件是否属于待执行事件;如果第二自定义事件为首次接收的事件并且第二自定义事件属于待执行事件,则对第二自定义事件进行数据合法性校验;确定第二自定义事件通过数据合法性校验,得到校验结果。
可选地,上述方法还包括:判断是否存在待发送的第三自定义事件,其中,第三自定义事件为第二自定义事件的后续事件;如果存在第三自定义事件,则将标识信息和第三自定义事件发送至至少一个客户端;如果不存在第三自定义事件,则结束逻辑处理。
根据本发明其中一实施例,还提供了另一种事件处理方法,包括:
接收来自于服务端的第一自定义事件,其中,第一自定义事件是在服务端执行与预定义事件对应逻辑的过程中触发的事件,预定义事件用于服务端响应外部系统调用触发图形化工具流程;基于第一自定义事件发起图形化工具流程,执行与第一自定义事件对应的逻辑。
可选地,接收来自于服务端的第一自定义事件包括:接收来自于服务端的第一实体会话上下文的标识信息和第一自定义事件,其中,第一实体会话上下文用于执行与预定义事件对应的逻辑。
可选地,执行与第一自定义事件对应的逻辑包括:基于标识信息查找第二实体会话上下文;在第二实体会话上下文中执行与第一自定义事件对应的逻辑。
可选地,上述方法还包括:判断是否存在待发送的第二自定义事件,其中,第二自定义事件为第一自定义事件的后续事件;如果存在第二自定义事件,则将标识信息和第二自定义事件发送至服务端;如果不存在第二自定义事件,则结束逻辑处理。
可选地,上述方法还包括:接收来自于服务端的第三自定义事件,其中,第三自定义事件为第二自定义事件的后续事件;如果确定当前仍在执行与第一自定义事件对应的逻辑,则清除当前正在执行的逻辑,并开始执行与第三自定义事件对应的逻辑;如果确定已提前执行与第三自定义事件的后续事件对应的逻辑,则回退执行与第三自定义事件对应的逻辑。
根据本发明其中一实施例,还提供了一种事件处理装置,包括:
第一获取模块,用于获取待执行的预定义事件,其中,预定义事件用于响应外部系统调用,触发图形化工具流程;处理模块,用于基于预定义事件发起图形化工具流程,执行与预定义事件对应的逻辑;第二获取模块,用于在执行与预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,其中,第一自定义事件用于与至少一个客户端进行通讯;发送模块,用于将第一自定义事件发送至至少一个客户端,以使至少一个客户端执行与第一自定义事件对应的逻辑。
可选地,处理模块,用于在游戏内的实体对象下,通过实体组件将预定义事件发送至全局管理器;通过全局管理器查找与预定义事件关联的实体上下文,并向实体上下文转发与预定义事件对应的触发消息;通过向实体上下文向第一实体会话上下文发送触发消息,在第一实体会话上下文中查找与预定义事件关联的事件节点;基于事件节点执行与预定义事件对应的逻辑。
可选地,发送模块,用于将第一实体会话上下文的标识信息和第一自定义事件发送至至少一个客户端,其中,标识信息用于在至少一个客户端查找对应的第二实体会话上下文。
可选地,该装置还包括:接收模块,用于接收至少一个客户端反馈的标识信息和第二自定义事件;校验模块,用于对第二自定义事件进行校验处理,得到校验结果,其中,校验处理包括:执行顺序校验、数据合法性校验;查找模块,用于当根据校验结果确定第二自定义事件通过校验时,基于标识信息查找到第一实体会话上下文;执行模块,用于在第一实体会话上下文中执行与第二自定义事件对应的逻辑。
可选地,校验模块,用于判断第二自定义事件是否为首次接收的事件并且按照执行顺序判断第二自定义事件是否属于待执行事件;如果第二自定义事件为首次接收的事件并且第二自定义事件属于待执行事件,则对第二自定义事件进行数据合法性校验;确定第二自定义事件通过数据合法性校验,得到校验结果。
可选地,该装置还包括:判断模块,用于判断是否存在待发送的第三自定义事件,其中,第三自定义事件为第二自定义事件的后续事件;如果存在第三自定义事件,则将标识信息和第三自定义事件发送至至少一个客户端;如果不存在第三自定义事件,则结束逻辑处理。
根据本发明其中一实施例,还提供了另一种事件处理装置,包括:
接收模块,用于接收来自于服务端的第一自定义事件,其中,所述第一自定义事件是在所述服务端执行与预定义事件对应逻辑的过程中触发的事件,所述预定义事件用于所述服务端响应外部系统调用触发图形化工具流程;处理模块,用于基于所述第一自定义事件发起所述图形化工具流程,执行与所述第一自定义事件对应的逻辑。
可选地,接收模块,用于接收来自于服务端的第一实体会话上下文的标识信息和第一自定义事件,其中,第一实体会话上下文用于执行与预定义事件对应的逻辑。
可选地,处理模块,用于基于标识信息查找第二实体会话上下文;在第二实体会话上下文中执行与第一自定义事件对应的逻辑。
可选地,该装置还包括:判断模块,用于判断是否存在待发送的第二自定义事件,其中,第二自定义事件为第一自定义事件的后续事件;如果存在第二自定义事件,则将标识信息和第二自定义事件发送至服务端;如果不存在第二自定义事件,则结束逻辑处理。
可选地,该装置还包括:调整模块,用于接收来自于服务端的第三自定义事件,其中,第三自定义事件为第二自定义事件的后续事件;如果确定当前仍在执行与第一自定义事件对应的逻辑,则清除当前正在执行的逻辑,并开始执行与第三自定义事件对应的逻辑;如果确定已提前执行与第三自定义事件的后续事件对应的逻辑,则回退执行与第三自定义事件对应的逻辑。
根据本发明其中一实施例,还提供了一种存储介质,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项中的事件处理方法。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序被设置为运行时执行上述任一项中的事件处理方法。
根据本发明其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项中的事件处理方法。
在本发明至少部分实施例中,采用获取待执行的预定义事件,该预定义事件用于响应外部系统调用触发图形化工具流程,以及基于预定义事件发起图形化工具流程,执行与预定义事件对应的逻辑的方式,通过在执行与预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,以及将第一自定义事件发送至至少一个客户端,以使至少一个客户端执行与第一自定义事件对应的逻辑,达到了利用图形化工具流程在客户端与服务端上进行逻辑流程控制的目的,从而实现了多端协作(异步)的逻辑开发,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷的技术效果,进而解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的文件处理方法的流程图;
图2是根据本发明其中一可选实施例的客户端、服务端以及图形化工具三者之间的关系示意图;
图3是根据本发明其中一可选实施例的图形化工具的界面展示示意图;
图4是根据本发明其中一实施例的实例创建方法的流程图;
图5是根据本发明其中一可选实施例的图形化工具的框架示意图;
图6是根据本发明其中一可选实施例的图形化工具实例的创建逻辑示意图;
图7是根据本发明其中一实施例的事件处理方法的流程图;
图8是根据本发明其中一可选实施例的单客户端与单服务端之间事件触发流程示意图;
图9是根据本发明其中一可选实施例的单服务端与多客户端之间事件触发流程示意图;
图10是根据本发明其中一可选实施例的单服务端对多客户端反馈处理流程示意图;
图11是根据本发明其中一实施例的另一种事件处理方法的流程图;
图12是根据本发明其中一可选实施例的客户端接收服务端反馈的处理流程示意图;
图13是根据本发明其中一实施例的文件更新方法的流程图;
图14是根据本发明其中一可选实施例的图形化工具流程的热更新过程示意图;
图15是根据本发明其中一实施例的另一种文件更新方法的流程图;
图16是根据本发明其中一实施例的文件处理方法的流程图;
图17是根据本发明其中一实施例的另一种文件处理方法的流程图;
图18是根据本发明其中一可选实施例的图形化工具调试过程示意图;
图19是根据本发明其中一实施例的文件处理装置的结构框图;
图20是根据本发明其中一可选实施例的文件处理装置的结构框图;
图21是根据本发明其中一实施例的实例创建装置的结构框图;
图22是根据本发明其中一可选实施例的实例创建装置的结构框图;
图23是根据本发明其中一实施例的事件处理装置的结构框图;
图24是根据本发明其中一可选实施例的事件处理装置的结构框图;
图25是根据本发明其中一实施例的另一种事件处理装置的结构框图;
图26是根据本发明其中一可选实施例的另一种事件处理装置的结构框图;
图27是根据本发明其中一实施例的文件更新装置的结构框图;
图28是根据本发明其中一可选实施例的文件更新装置的结构框图;
图29是根据本发明其中一实施例的另一种文件更新装置的结构框图;
图30是根据本发明其中一可选实施例的另一种文件更新装置的结构框图;
图31是根据本发明其中一实施例的文件处理装置的结构框图;
图32是根据本发明其中一可选实施例的文件处理装置的结构框图;
图33是根据本发明其中一实施例的另一种文件处理装置的结构框图;
图34是根据本发明其中一可选实施例的另一种文件处理装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前,在少量游戏逻辑开发过程中会借助一些图形化工具,以可视化方式进行具体的逻辑开发。使用可视化工具的优势在于:游戏逻辑对于策划人员而言不再是黑盒,可以方便地查看具体的逻辑走向以及对具体的参数进行调整。
相关技术中所提供的可视化工具通常具备以下特点:
(1)采用流程图方式表达程序逻辑,能够在该流程图上通过增加、删除、修改节点,节点属性以及节点间连线的方式修改和增加游戏逻辑;
(2)支持在图形工具上实现全部的基本程序流程控制,包括:循环、选择、顺序结构;
(3)支持基础的程序变量类型和函数等概念;
(4)支持事件驱动逻辑运行。
然而,上述以图形化工具辅助游戏开发的方式却存在着如下技术缺陷:
(1)过度注重单机游戏情形(即单进程),而无法实现对于网络游戏这种依赖于客户端与服务端多次交互完成的逻辑功能。
(2)事件定义十分繁琐,对于非程序人员而言难以使用,必须依赖于专业的程序人员。
(3)对于未使用相关游戏引擎的游戏项目,会导致图形化工具与实际项目的运行相分离,从而降低图形化工具的使用效率。
(4)不支持热更新,无法在游戏上线后实现对特定游戏逻辑的热更新。
根据本发明其中一实施例,提供了一种文件处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端、网络侧设备或者类似的电子装置中执行。电子装置可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器。可选地,上述电子装置还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的文件处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的文件处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示设备可以例如触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与电子装置的用户界面进行交互。在一些实施例中,上述电子装置具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
在本实施例中提供了一种运行于上述电子装置的文件处理方法,图1是根据本发明其中一实施例的文件处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S12,获取在第一显示区域内编辑的目标节点图,其中,目标节点图包括:多个节点以及多个节点之间的连接关系;
步骤S14,基于目标节点图生成图形化工具文件,其中,图形化工具文件是由目标节点图导出的运行在客户端与服务端的可执行文件,图形化工具文件用于在客户端与服务端上进行逻辑流程控制。
通过上述步骤,可以采用获取在第一显示区域内编辑的目标节点图,该目标节点图包括多个节点以及多个节点之间的连接关系的方式,通过目标节点图生成图形化工具文件,该图形化工具文件是由目标节点图导出的运行在客户端与服务端的可执行文件,达到了利用图形化工具文件在客户端与服务端上进行逻辑流程控制的目的,从而实现了多端协作(异步)的逻辑开发,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷的技术效果,进而解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
上述图形化工具文件使用一个通用的可视化框架来实现一个通用插件,其可适用于多种不同类型的游戏引擎,并可支持多端协作的逻辑开发与热更新机制。本发明实施例提供的图形化工具可以包括:工具部分和代码部分,其中,工具部分用于执行编辑和调试操作,代码部分则是实际运行程序中的一部分。图形化工具的工具部分需要依托于客户端。即,如果希望在执行编辑操作的同时还能够实时查看编辑效果,则需要同时运行图形化工具与客户端。需要说明的是,上述图形化工具与客户端既可以位于同一个物理终端上,也可以分别位于不同的物理终端上。
图2是根据本发明其中一可选实施例的客户端、服务端以及图形化工具三者之间的关系示意图,如图2所示,该客户端可以为游戏客户端,该服务端可以为游戏服务端。图形化工具需要与游戏客户端创建通信连接,以保持图形化工具与游戏客户端、游戏服务端之间进行正常通信。当图形化工具需要执行更新或调试等操作时,可以通过远程过程调用(Remote Procedure Call,简称为RPC)协议来通知游戏客户端。客户端也可以通过RPC来通知游戏服务端。由此,实现了多端协作(异步)的逻辑开发、满足热更新需求、独立于游戏引擎,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷。在游戏正式上线之后,由于能够满足热更新需求,因此,可以对逻辑改动进行实时更新而无需执行重启操作,进而提升游戏玩家的游戏体验。
图3是根据本发明其中一可选实施例的图形化工具的界面展示示意图,如图3所示,该图形化工具可以包括但不限于以下功能显示区域:
(1)节点图面板(即第一显示区域),用于开发人员编辑实际的节点图,其对每个节点的功能进行模块化处理,通过右键方式选择一个功能节点,在节点图面板内创建节点,同时还能够进行连线等操作;
(2)工具区(即第二显示区域),可以打开、保存、删除或者复制图形化工具文件,也可以对节点图进行更新、运行以及对游戏客户端或者游戏服务端进行热更新等操作;
(3)资源区(即第三显示区域),可以展示当前编辑完毕的一些图形化工具文件,能够直接点击文件名以打开该文件;
(4)属性窗口(即第四显示区域),用于显示选中节点的属性,由此便于对节点的特定属性进行修改;
(5)调试窗口(即第五显示区域),用于在图形化工具运行节点图的过程中,将调试信息输出至到调试窗口,该调试信息可以包括但不限于:运行图形化工具流程的节点执行顺序,参数信息。
可选地,上述图形用户界面所显示的内容还包括第二显示区域,在步骤S12中,获取在第一显示区域内编辑的目标节点图可以包括以下执行步骤:
步骤S121,响应作用于第二显示区域的控制操作,在第一显示区域生成初始节点图,其中,初始节点图为缺省图;
步骤S122,在初始节点图中获取多个节点中每个节点的位置信息与类型信息,以及多个节点之间的连接关系;
步骤S123,依据位置信息、类型信息和多个节点之间的连接关系,确定目标节点图。
在第二显示区域可以通过点击多种不同类型的控制按钮,打开、保存、删除或者复制图形化工具文件。在一个可选实施例中,可以通过点击第二显示区域的打开控制按钮,在第一显示区域打开一个缺省的初始节点图。然后,在初始节点图中获取开发人员实际编辑的多个节点中每个节点的位置信息与类型信息以及多个节点之间的连接关系,由此,依据位置信息、类型信息和多个节点之间的连接关系,确定目标节点图。
可选地,上述图形用户界面所显示的内容还包括第三显示区域,在步骤S12中,获取在第一显示区域内编辑的目标节点图可以包括以下执行步骤:
步骤S124,响应作用于第三显示区域的控制操作,在第一显示区域生成初始节点图,其中,初始节点图为本地预先存储的节点图;
步骤S125,在初始节点图中获取多个节点中每个节点的位置信息与类型信息,以及多个节点之间的连接关系;
步骤S126,依据位置信息、类型信息和多个节点之间的连接关系,确定目标节点图。
在第三显示区域可以通过点击文件名以打开当前编辑完毕的图形化工具文件。在一个可选实施例中,可以通过点击第三显示区域的文件名,在第一显示区域打开一个先前编辑完毕的初始节点图。然后,在初始节点图中获取开发人员实际编辑的多个节点中每个节点的位置信息与类型信息以及多个节点之间的连接关系,由此,依据位置信息、类型信息和多个节点之间的连接关系,确定目标节点图。
可选地,在步骤S12中,获取多个节点之间的连接关系可以包括以下执行步骤:
步骤S127,按照目标节点图的目标逻辑,从多个节点中确定第一部分节点与第二部分节点,其中,第一部分节点按照目标逻辑确定先后执行顺序,第二部分节点按照目标逻辑确定参数传递方向;
步骤S128,在第一部分节点之间创建逻辑连接关系以及在第二部分节点之间创建参数连接关系,得到多个节点之间的连接关系。
在一个可选示例中,一个图形化工具编辑的标准流程如下:
第一步、点击工具区内的新建按钮或者双击资源区内文件列表的特定文件,即可新建或者打开一个节点图进行编辑。
第二步、在节点图面板选择(例如:通过鼠标右键)待创建的节点类型,即可在鼠标右键点击的位置创建一个节点。
第三步、根据实际需求的目标逻辑,从多个节点中确定第一部分节点与第二部分节点。第一部分节点按照目标逻辑确定先后执行顺序,第二部分节点按照目标逻辑确定参数传递方向。通过连线方式在第一部分节点之间创建逻辑连接关系以及在第二部分节点之间创建参数连接关系。连线可以包括以下两种:
其一是影响流程逻辑的连线,用于指明逻辑的执行流程,将逻辑节点进行连接(例如:当根据实际需求的目标逻辑确定先执行节点A,再执行节点B时,可以将节点B作为节点A的后续节点加以连接);
其二是影响参数传递的连线,用于在逻辑节点需要传递参数时,才能够执行完整的逻辑,即,参数从一个节点传递到另外一个节点。
第四步、在编辑完毕之后,一连串的逻辑节点将会代表多个图形化工具流程,如果需要进行调试,则可以选取其中一个节点,点击运行键,开始运行这一图形化工具流程,或者点击热更新键,通过RPC方式将相应的更新同步到客户端和服务端,那么后续服务端和客户端新运行的逻辑流程便会按照全新的节点图顺序加以运行。
第五步、在确认功能完整之后,点击工具区内的保存按钮并选择一个路径进行保存。在保存完毕之后,导出工具会自动将保存的文件转换成可执行程序,以便于后续运行。
可选地,上述图形用户界面所显示的内容还包括第四显示区域,该方法还可以包括以下执行步骤:
步骤S15,响应作用于第四显示区域的控制操作,对多个节点中至少一个节点的属性进行修改。
在第四显示区域可以显示选中节点的属性信息,由此便于开发人员对节点的特定属性进行修改。
可选地,上述图形用户界面所显示的内容还包括第五显示区域,该方法还可以包括以下执行步骤:
步骤S16,在目标节点图运行过程中,将调试信息输出至第五显示区域。
在图形化工具运行节点图的过程中,可以将调试信息输出至到第五显示区域。该调试信息可以包括但不限于:运行图形化工具流程的节点执行顺序,参数信息。
可选地,多个节点的类型信息包括:逻辑节点、监听节点、值节点、事件节点。
图形化工具的节点通常可以分为逻辑节点、监听节点、值节点以及事件节点。值节点和监听节点是逻辑节点的变种,在具体逻辑分工方面存在一定差异。事件节点通常只需要定义一些简单信息即可,例如:CLASS_NAME、NODE_TEXT、NODE_TIPS、NODE_DOC等。
可选地,事件节点的事件类型包括:预定义事件和自定义事件,其中,预定义事件用于响应外部系统调用,触发图形化工具流程,自定义事件用于与客户端或服务端进行通讯。
事件节点的事件类型可以分为预定义事件和自定义事件。预定义事件用于游戏外的其他系统(例如:属性系统,技能系统)等调用以触发图形化工具流程。自定义事件用于客户端与服务端之间的通讯。
预定义事件的标识(ID)本身通常表示为一个字符串,例如:EventWFEnable=“EventWFEnable”,而且需要指定事件所属哪端、输出信息(即每个节点可以向其他节点传递的数据)、节点名(即节点显示在节点图面板上的名称)等。
自定义事件可以视为一种预定义节点,其可以使得本端与对端进行通讯。例如:如果客户端为本端,则服务端便为对端。反之,如果服务端为本端,则客户端端便为对端。
此外,图形化工具的事件节点的事件类型除了可以分为预定义事件和自定义事件之外,还可以根据事件归属分为客户端事件和服务端事件,客户端事件和服务端事件均可以预先确定。
可选地,逻辑节点用于定义节点属性信息和运行逻辑信息。
逻辑节点的定义可以分为两个部分。第一部分用于图形化工具的节点信息本身的定义,其可以定义一个节点的输入与输出节点信息、参数信息、归属于服务端还是客户端的信息。如果一个节点为客户端节点,那么在节点图中,其只能与客户端节点相连。同理,如果一个节点为服务端节点,那么在节点图中,其也只能与服务端节点相连。第二部分决定该逻辑节点的具体运行逻辑。当节点图运行到这一节点时,会调用这一节点对象的Start函数,执行具体逻辑。
在一个可选示例中,假设需要在一个节点上实现A+B这种相加功能,便需要在上述第一部分定义这个节点输入参数是A和B,内置属性为是否进行取整,输出参数是一个A与B相加的结果,而关于具体A+B的逻辑实现过程则是在上述第二部分来定义。Start函数的作用在于:根据输入参数和内置属性进行具体的逻辑实现。如果当前节点是实现A+B功能的节点,那么Start函数首先会从A+B中分别提取A和B,然后再执行一次相加操作并根据内置属性确定是否进行取整,最后返回一个计算结果,而该计算结果将会被下一个节点作为输入参数来使用。
根据本发明其中一实施例,还提供了一种实例创建方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端、网络侧设备或者类似的电子装置中执行。电子装置可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器。可选地,上述电子装置还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的实例创建方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的实例创建方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示设备可以例如触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与电子装置的用户界面进行交互。在一些实施例中,上述电子装置具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
在本实施例中提供了一种运行于上述电子装置的实例创建方法,在该电子装置上可以搭建游戏服务端。图4是根据本发明其中一实施例的实例创建方法的流程图,如图4所示,该方法包括如下步骤:
步骤S40,获取待运行图形化工具文件的文件标识;
步骤S42,基于文件标识确定与待运行图形化工具文件对应的逻辑对象和数据对象,其中,逻辑对象用于控制图形化工具的执行逻辑,数据对象用于为执行逻辑提供所需数据;
步骤S44,采用逻辑对象和数据对象创建图形化工具实例。
通过上述步骤,可以采用获取待运行图形化工具文件的文件标识,基于文件标识确定与待运行图形化工具文件对应的逻辑对象和数据对象,该逻辑对象用于控制图形化工具的执行逻辑,数据对象用于为执行逻辑提供所需数据的方式,通过逻辑对象和数据对象创建图形化工具实例,达到了利用图形化工具实例在客户端与服务端上进行逻辑流程控制的目的,从而实现了多端协作(异步)的逻辑开发,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷的技术效果,进而解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
在一个可选实施例中,图5是根据本发明其中一可选实施例的图形化工具的框架示意图,如图5所示,服务端与客户端共用同一套框架,即多端运行的图形化工具框架相同。该图形化工具的框架可以包括如下组成部分:
(1)实体对象(Entity),即游戏内的一个Entity,图形化工具依托于该Entity。
(2)实体组件(WFComponent),即Entity的一个WFComponent,用于承载实体上图形化工具的相关内容,其可以包括但不限于:管理图形化工具的ID,提供创建和访问图形化工具的入口,在实体销毁的同时将图形化工具一并销毁。
(3)实体上下文(WFContext),一个Entity中的一个图形化工具文件只有一个相应的WFContext,用于管理该图形化工具文件对应的全部运行逻辑。
该Entity可以同时存在多个图形化工具文件。例如:一个图形化工具文件对应技能A,另一个图形化工具文件对应技能B,此时该Entity将会存在两个不同的图形化工具文件。但是多次重复释放技能A并不会创建多个WFContext。
(4)全局管理器(WFManager),用于管理一个进程内全部游戏实体中WFContext的生命周期。
(5)实体会话上下文(WFSessionContext),其为一个图形化工具文件在执行一次具体的图形化工具流程所对应的数据对象。WFContext与WFSessionContext之间存在一对多的对应关系。
(6)实体会话(WFSession),其为一个图形化工具文件对应的逻辑对象,由WFManager管理,一个图形化工具文件对应一个WFSession对象,用于控制图形化工具文件的具体逻辑。逻辑对象通常负责管理程序运行逻辑,而并不包含具体逻辑执行过程中所需使用的数据。
可选地,上述方法还可以包括以下执行步骤:
步骤S45,在图形化工具实例中监听事件的触发下,运行图形化工具实例。
图形化工具是一个完全由事件触发的逻辑流程,因此一次创建流程并不会运行实际逻辑,而只有等到外部系统实际触发图形化工具内的监听事件时,才会开始运行图形化工具实例。
可选地,在步骤S42中,基于文件标识确定逻辑对象可以包括以下执行步骤:
步骤S421,在游戏内的实体对象下,通过全局管理器查找与文件标识对应的逻辑对象。
在一个可选实施例中,上述文件标识可以是图形化工具文件的名称,上述逻辑对象为WFSession对象。Entity需要指定待运行的图形化工具文件的名称,WFManager查找与该图形化工具文件对应的WFSession对象。
可选地,上述方法还可以包括以下执行步骤:
步骤S46,当通过全局管理器未查找到与文件标识对应的逻辑对象时,根据待运行图形化工具文件的存储位置,将待运行图形化工具文件加载至内存并创建逻辑对象。
如果WFManager未能查找到相关的WFSession对象,则从指定位置(即图形化工具文件通常存放的物理位置)将待运行的图形化工具文件加载到内存中,并创建一个WFSession对象。
可选地,在步骤S42中,基于文件标识确定数据对象包括:
步骤S422,在游戏内的实体对象下,通过全局管理器查找与文件标识对应的实体上下文,其中,实体上下文用于管理待运行图形化工具文件对应的多个数据对象;
步骤S423,在实体上下文中创建数据对象。
上述数据对象为WFSessionContext对象。通过WFManager查询该Entity当前已经创建的该图形化工具文件对应的WFContext对象。然后,在WFContext中创建一个或多个WFSessionContext对象。
可选地,上述方法还可以包括以下执行步骤:
步骤S47,当通过全局管理器未查找到与文件标识对应的实体上下文时,为实体对象创建实体上下文;
步骤S48,在实体上下文中创建数据对象。
如果通过WFManager查询该Entity当前尚未创建该图形化工具文件对应的WFContext对象,则先为该Entity创建一个WFContext对象。然后,再在WFContext中创建一个或多个WFSessionContext对象,以等待相关的事件触发。
可选地,上述方法还可以包括以下执行步骤:
步骤S49,为图形化工具实例分配实例标识,并采用实体组件管理实例标识,其中,在客户端上创建的图形化工具实例与在服务端上创建的图形化工具实例使用相同的实例标识。
服务端可以通过RPC方式指示客户端根据待运行的图形化工具文件的名称创建相应的WFContext对象和WFSessionContext对象,并使用相同并且唯一的WFSessionContextID。
图6是根据本发明其中一可选实施例的图形化工具实例的创建逻辑示意图,如图6所示,Entity需要指定待运行的图形化工具文件的名称,WFManager查找与该图形化工具文件对应的WFSession对象。如果WFManager未能查找到相关的WFSession对象,则从指定位置(即图形化工具文件通常存放的物理位置)将待运行的图形化工具文件加载到内存中,并创建一个WFSession对象。通过WFManager查询该Entity当前是否已经创建该图形化工具文件对应的WFContext对象。如果尚未创建该图形化工具文件对应的WFContext对象,则为该Entity创建一个WFContext对象。然后,在WFContext中创建一个或多个WFSessionContext对象,以等待相关的事件触发。与此同时,服务端还会通过RPC方式指示客户端根据待运行的图形化工具文件的名称创建相应的WFContext对象和WFSessionContext对象,并使用相同并且唯一的WFSessionContext ID。
根据本发明其中一实施例,还提供了一种事件处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端、网络侧设备或者类似的电子装置中执行。电子装置可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器。可选地,上述电子装置还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的事件处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的事件处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示设备可以例如触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与电子装置的用户界面进行交互。在一些实施例中,上述电子装置具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
在本实施例中提供了一种运行于上述电子装置的事件处理方法,在该电子装置上可以搭建服务端。图7是根据本发明其中一实施例的事件处理方法的流程图,如图7所示,该方法包括如下步骤:
步骤S70,获取待执行的预定义事件,其中,预定义事件用于响应外部系统调用,触发图形化工具流程;
步骤S71,基于预定义事件发起图形化工具流程,执行与预定义事件对应的逻辑;
步骤S72,在执行与预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,其中,第一自定义事件用于与至少一个客户端进行通讯;
步骤S73,将第一自定义事件发送至至少一个客户端,以使至少一个客户端执行与第一自定义事件对应的逻辑。
通过上述步骤,可以采用获取待执行的预定义事件,该预定义事件用于响应外部系统调用触发图形化工具流程,以及基于预定义事件发起图形化工具流程,执行与预定义事件对应的逻辑的方式,通过在执行与预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,以及将第一自定义事件发送至至少一个客户端,以使至少一个客户端执行与第一自定义事件对应的逻辑,达到了利用图形化工具流程在客户端与服务端上进行逻辑流程控制的目的,从而实现了多端协作(异步)的逻辑开发,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷的技术效果,进而解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
上述客户端与服务端之间的事件触发流程既可以发生在单客户端与单服务端之间,也可以发生在多客户端与单服务端之间。
图8是根据本发明其中一可选实施例的单客户端与单服务端之间事件触发流程示意图,如图8所示,当一个Entity的事件(记为预定义事件A)触发时,Entity通过WFComponent将该事件发送给WFManager。WFManager查找到该Entity中全部关注预定义事件A的WFContext,并向WFContext转发预定义事件A触发的消息和相应的数据。WFContext向其管理的WFSessionContext发送消息,以便WFSessionContext查找到相应的事件节点,并从该节点开始执行逻辑。如果事件执行逻辑中存在向对端(即客户端为服务端的对端,反之服务端也为客户端的对端)发送事件的节点,则将WFSessionContext的唯一ID和待发送的自定义事件或事件数据发往对端,否则在逻辑节点执行完毕之后,便可结束逻辑处理。在接收到对端的自定义事件请求之后,在本端可以根据接收到的WFSessionContext的唯一ID,查找到本端对应的WFSessionContext,以便开始执行相应自定义事件的逻辑。
如果一个事件是在多客户端与单服务端之间触发的,那么多端的自定义事件触发将会导致服务端执行仲裁操作。即,服务端只需执行一次事件触发流程。
该过程通常由服务端开始执行或者由特定客户端向服务端发出通知消息,然后再由服务端触发事件,并最终都会通过广播的方式通知所有当前图形化工具所属的对象(例如:游戏场景中的游戏角色、怪物)可见的其他对象,进行技能表现。例如:当一个游戏角色或怪物释放技能时,会通知可视范围内全部的游戏玩家客户端对释放技能进行表现。如果可视范围内只有一个由游戏玩家客户端控制的游戏角色,则执行单服务端与单客户端之间事件触发流程。如果可视范围内存在多个由游戏玩家客户端控制的游戏角色,则执行单服务端与多客户端之间事件触发流程。
可选地,在步骤S71中,执行与预定义事件对应的逻辑可以包括以下执行步骤:
步骤S711,在游戏内的实体对象下,通过实体组件将预定义事件发送至全局管理器;
步骤S712,通过全局管理器查找与预定义事件关联的实体上下文,并向实体上下文转发与预定义事件对应的触发消息;
步骤S713,通过向实体上下文向第一实体会话上下文发送触发消息,在第一实体会话上下文中查找与预定义事件关联的事件节点;
步骤S714,基于事件节点执行与预定义事件对应的逻辑。
当一个Entity的事件(记为预定义事件B)触发时,Entity通过WFComponent将该事件发送给WFManager。WFManager查找到该Entity中全部关注预定义事件B的WFContext,并向WFContext转发预定义事件B触发的消息和相应的数据。WFContext向其管理的WFSessionContext(即第一实体会话上下文)发送消息,以便WFSessionContext查找到相应的事件节点,并从该节点开始执行逻辑。
可选地,在步骤S73中,将第一自定义事件发送至至少一个客户端可以包括以下执行步骤:
步骤S731,将第一实体会话上下文的标识信息和第一自定义事件发送至至少一个客户端,其中,标识信息用于在至少一个客户端查找对应的第二实体会话上下文。
如果事件执行逻辑中存在向对端(即客户端为服务端的对端,反之服务端也为客户端的对端)发送事件的节点,则将WFSessionContext的唯一ID和待发送的自定义事件(记为自定义事件C,即第一自定义事件)和事件数据发往各个客户端。各个客户端查找到本端对应的WFSessionContext(即第二实体会话上下文),并开始执行相应自定义事件C的逻辑。
可选地,上述方法还可以包括以下执行步骤:
步骤S74,接收至少一个客户端反馈的标识信息和第二自定义事件;
步骤S75,对第二自定义事件进行校验处理,得到校验结果,其中,校验处理包括:执行顺序校验、数据合法性校验;
步骤S76,当根据校验结果确定第二自定义事件通过校验时,基于标识信息查找到第一实体会话上下文;
步骤S77,在第一实体会话上下文中执行与第二自定义事件对应的逻辑。
客户端根据实际需求还可以向服务端发送自定义事件D(即第二自定义事件)。此时,服务端需要对自定义事件D进行服务端校验(其包括但不限于:执行顺序校验、数据合法性校验)。如果自定义事件D通过服务端校验,则服务端将会继续执行自定义事件D的相应逻辑;如果自定义事件D未能通过服务端校验,则服务端直接将自定义事件D丢弃。
图9是根据本发明其中一可选实施例的单服务端与多客户端之间事件触发流程示意图,如图9所示,当一个Entity的事件(记为预定义事件B)触发时,Entity通过WFComponent将该事件发送给WFManager。WFManager查找到该Entity中全部关注预定义事件B的WFContext,并向WFContext转发预定义事件B触发的消息和相应的数据。WFContext向其管理的WFSessionContext发送消息,以便WFSessionContext查找到相应的事件节点,并从该节点开始执行逻辑。如果事件执行逻辑中存在向对端(即客户端为服务端的对端,反之服务端也为客户端的对端)发送事件的节点,则将WFSessionContext的唯一ID和待发送的自定义事件(记为自定义事件C)和事件数据发往各个客户端。各个客户端查找到本端对应的WFSessionContext,并开始执行相应自定义事件C的逻辑。然后,各个客户端根据实际需求还可以向服务端发送自定义事件D。此时,需要对自定义事件D进行服务端校验(其包括但不限于:执行顺序校验、数据合法性校验)。如果自定义事件D通过服务端校验,则服务端将会继续执行自定义事件D的相应逻辑;如果自定义事件D未能通过服务端校验,则服务端直接将自定义事件D丢弃。
可选地,在步骤S75中,对第二自定义事件进行校验处理,得到校验结果可以包括以下执行步骤:
步骤S751,判断第二自定义事件是否为首次接收的事件并且按照执行顺序判断第二自定义事件是否属于待执行事件;
步骤S752,如果第二自定义事件为首次接收的事件并且第二自定义事件属于待执行事件,则对第二自定义事件进行数据合法性校验;
步骤S753,确定第二自定义事件通过数据合法性校验,得到校验结果。
如果技能表现分成多段进行,并且每一段的表现可以独立进行,只依赖前一段的部分简单信息(例如:位置、所属对象),则此类技能通常可以分为多个阶段。
在客户端反馈与服务端校验阶段,不同客户端由于本地环境存在差异,因此会在不同时机触发下一阶段的事件,即不同客户端将会根据自身情况(例如:到达触发条件或者超时)向服务端发起下一阶段的请求。服务端在接收到事件触发之后,如果该事件已经过期或者提前到来,那么便会直接被拒绝处理。如果确定为本阶段事件,则对该事件进行校验。如果未能通过校验,那么便会直接被拒绝处理。如果能够通过校验,那么便会执行服务端逻辑,并且分发后续事件。
图10是根据本发明其中一可选实施例的单服务端对多客户端反馈处理流程示意图,如图10所示,客户端A与客户端B均触发自定义事件D,并向服务端发送自定义事件D。服务端在接收到自定义事件D之后,需要对自定义事件D依次进行执行顺序校验和数据合法性校验。
针对执行顺序校验可以理解如下:假如一个技能流程分为4个阶段(例如:英雄角色的4段位移技能),那么每个阶段均有一个起始事件,依次记为事件A、事件B、事件C和事件D,由此服务端可以确定当前需要执行哪个阶段的逻辑。如果服务器执行完事件B所在阶段的逻辑,而客户端发送的仍是与事件B相关的消息或与事件D相关的消息,那么便可以被认定为“非本阶段事件”(即,不属于待执行事件)。与之相反,事件C便是“本阶段事件”(即,属于待执行事件),其原因在于:服务端正在等待事件C作为后续逻辑的起始事件。
针对数据合法性校验可以理解如下:假设客户端A向服务端发送的自定义事件D表明客户端A所控制的游戏角色A向其他客户端(例如:客户端B)所控制的游戏角色B投掷了一枚手榴弹的爆炸伤害。该手榴弹的杀伤区域是以手榴弹爆炸位置为中心、半径为5米的圆形爆炸区域。按照上述游戏逻辑,只有游戏角色B位于该圆形爆炸区域内,才会对游戏角色B造成伤害。此时,如果客户端A向服务端发送的自定义事件D表明游戏角色B受到爆炸伤害,那么服务端便需要对游戏角色B是否位于上述圆形爆炸区域内以及是否会遭受爆炸伤害进行数据合法性校验。
经过上述校验处理,如果自定义事件D并非是本阶段事件,则直接拒绝处理。如果是本阶段事件,则需要在服务端进一步对自定义事件D进行数据合法性校验。如果未通过数据合法性校验,则直接拒绝处理。如果通过数据合法性校验,则执行服务端逻辑,
可选地,上述方法还可以包括以下执行步骤:
步骤S78,判断是否存在待发送的第三自定义事件,其中,第三自定义事件为第二自定义事件的后续事件;
步骤S79,如果存在第三自定义事件,则将标识信息和第三自定义事件发送至至少一个客户端;如果不存在第三自定义事件,则结束逻辑处理。
服务端在本端的逻辑控制流程执行完毕之后,还需要进一步判断是否存在待发送的第三自定义事件。如果服务端的WFSessionContext后续再次产生自定义事件E(即第三自定义事件),则可以向客户端A与客户端B分发后续自定义事件E,并继续重复上述操作流程。
根据本发明其中一实施例,还提供了另一种事件处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种运行于上述电子装置的事件处理方法,在该电子装置上可以搭建客户端。图11是根据本发明其中一实施例的另一种事件处理方法的流程图,如图11所示,该方法包括如下步骤:
步骤S112,接收来自于服务端的第一自定义事件,其中,第一自定义事件是在服务端执行与预定义事件对应逻辑的过程中触发的事件,预定义事件用于服务端响应外部系统调用触发图形化工具流程;
步骤S114,基于第一自定义事件发起图形化工具流程,执行与第一自定义事件对应的逻辑。
通过上述步骤,可以采用接收来自于服务端的第一自定义事件,该第一自定义事件是在服务端执行与预定义事件对应逻辑的过程中触发的事件,预定义事件用于服务端响应外部系统调用触发图形化工具流程的方式,通过第一自定义事件发起图形化工具流程,执行与第一自定义事件对应的逻辑,达到了利用图形化工具流程在客户端与服务端上进行逻辑流程控制的目的,从而实现了多端协作(异步)的逻辑开发,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷的技术效果,进而解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
可选地,在步骤S112中,接收来自于服务端的第一自定义事件包括:
步骤S1121,接收来自于服务端的第一实体会话上下文的标识信息和第一自定义事件,其中,第一实体会话上下文用于执行与预定义事件对应的逻辑。
如果在服务端的事件执行逻辑中存在向客户端发送事件的节点,则服务端会将WFSessionContext的唯一ID和待发送的自定义事件(记为自定义事件C,即第一自定义事件)和事件数据发往客户端。
可选地,在步骤S114中,执行与第一自定义事件对应的逻辑可以包括以下执行步骤:
步骤S1141,基于标识信息查找第二实体会话上下文;
步骤S1142,在第二实体会话上下文中执行与第一自定义事件对应的逻辑。
客户端可以基于WFSessionContext的唯一ID查找到本端对应的WFSessionContext(即第二实体会话上下文),并开始执行相应自定义事件C的逻辑。
可选地,上述方法还可以包括以下执行步骤:
步骤S115,判断是否存在待发送的第二自定义事件,其中,第二自定义事件为第一自定义事件的后续事件;
步骤S116,如果存在第二自定义事件,则将标识信息和第二自定义事件发送至服务端;如果不存在第二自定义事件,则结束逻辑处理。
客户端可以根据实际需求判断是否需要向服务端发送自定义事件D(即第二自定义事件)。如果不需要,则直接结束逻辑处理。如果需要向服务端发送自定义事件D,则服务端会对自定义事件D进行服务端校验(其包括但不限于:执行顺序校验、数据合法性校验)。如果自定义事件D通过服务端校验,则服务端将会继续执行自定义事件D的相应逻辑;如果自定义事件D未能通过服务端校验,则服务端直接将自定义事件D丢弃。
可选地,上述方法还可以包括以下执行步骤:
步骤S117,接收来自于服务端的第三自定义事件,其中,第三自定义事件为第二自定义事件的后续事件;
步骤S118,如果确定当前仍在执行与第一自定义事件对应的逻辑,则清除当前正在执行的逻辑,并开始执行与第三自定义事件对应的逻辑;如果确定已提前执行与第三自定义事件的后续事件对应的逻辑,则回退执行与第三自定义事件对应的逻辑。
客户端在接收到后续事件之后,需要调整自身表现并触发新的表现。由服务端发送下一阶段的消息给需要表现的客户端。图12是根据本发明其中一可选实施例的客户端接收服务端反馈的处理流程示意图,如图12所示,客户端可能会存在如下两种异常状态:
(1)仍在执行上一阶段的逻辑和表现,尚未进入当前阶段的逻辑和表现。假设上一阶段为事件B所在阶段,当前阶段为事件C所在阶段,客户端本应在执行完事件B所在阶段的逻辑之后,继续执行事件C所在阶段的逻辑。但是,客户端由于特定原因实际上仍在执行事件B所在阶段的逻辑。针对该状态而言,通常可以清除正在运行的逻辑和显示效果,并且驱动该客户端进入当前阶段即可运行正确的逻辑并展示正确的显示效果。
(2)提前执行下一阶段的逻辑和表现。假设上一阶段为事件B所在阶段,当前阶段为事件C所在阶段,下一阶段为事件D所在阶段,客户端本应在执行完事件B所在阶段的逻辑之后,继续执行事件C所在阶段的逻辑。但是,客户端由于特定原因实际上提前执行事件D所在阶段的逻辑。针对该状态而言,通常需要执行逻辑回退操作,恢复运行正确的逻辑并展示正确的显示效果。
根据本发明其中一实施例,还提供了一种文件更新方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端、网络侧设备或者类似的电子装置中执行。电子装置可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器。可选地,上述电子装置还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的文件更新方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的文件更新方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示设备可以例如触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与电子装置的用户界面进行交互。在一些实施例中,上述电子装置具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
在本实施例中提供了一种运行于上述电子装置的文件更新方法,在该电子装置上可以搭建服务端。图13是根据本发明其中一实施例的文件更新方法的流程图,如图13所示,该方法包括如下步骤:
步骤S130,在服务端本地对待更新的图形化工具文件进行热更新处理,得到更新结果,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系;
步骤S132,向客户端发送通知消息,其中,通知消息用于通知客户端进行与更新结果对应的热更新处理。
通过上述步骤,可以采用在服务端本地对待更新的图形化工具文件进行热更新处理,得到更新结果,该图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括多个节点以及多个节点之间的连接关系的方式,通过向客户端发送通知消息,以通知客户端进行与更新结果对应的热更新处理,达到了利用图形化工具流程在客户端与服务端上进行热更新的目的,从而实现了多端协作(异步)的逻辑开发,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷的技术效果,进而解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
可选地,在步骤S130中,在服务端本地对图形化工具文件进行热更新处理,得到更新结果可以包括以下执行步骤:
步骤S1301,在游戏内的实体对象下,通过实体组件向全局管理器通知图形化工具文件;
步骤S1302,通过全局管理器缓存与更新前的图形化工具文件对应的第一实体会话并创建与更新后的图形化工具文件对应的第二实体会话,得到更新结果,其中,第一实体会话用于控制更新前图形化工具的执行逻辑,第二实体会话用于控制更新后图形化工具的执行逻辑。
关于图形化工具热更新逻辑,热更新主要针对图形化工具节点图面板流程的更新与节点内逻辑的更新。由于在热更新时很可能会发生当前待更新的图形化工具流程正在按照原有的流程或逻辑运行,因此热更新需要确保不会干扰当前待更新的图形化工具流程仍然按照原有的流程或逻辑运行,而是在下次运行时再按照更新后的流程或逻辑运行。
为此,在本发明的一个可选实施例中,采用Python进行热更新,因此节点内的逻辑更新使用python自身的热更新机制即可。图14是根据本发明其中一可选实施例的图形化工具流程的热更新过程示意图,如图14所示,由服务端发起热更新过程,使用python热更新图形化工具文件。Entity通过WFComponent来通知WFManager需要更新一个图形化工具文件。此时,对原有的WFSession(即第一实体会话)进行缓存,以确保当前正在运行的WFSessionContext按照原有的逻辑运行。然后,再创建新的WFSession(即第二实体会话)。在服务端更新完毕之后,再通知客户端进行热更新。
可选地,上述方法还可以包括以下执行步骤:
步骤S133,利用第一实体会话上下文执行第一实体会话对应的逻辑,其中,第一实体会话上下文为执行第一实体会话对应的逻辑提供所需数据。
由于采用了逻辑对象与数据对象分离的架构,WFSession负责逻辑运行,而WFSessionContext负责为逻辑运行提供所需数据,因此对于热更新而言,由于缓存过原有的WFSession,因此原有的WFSessionContext(即第一实体会话上下文)不会受到影响。
可选地,上述方法还可以包括以下执行步骤:
步骤S134,利用第二实体会话上下文执行第二实体会话对应的逻辑,其中,第二实体会话上下文为执行第二实体会话对应的逻辑提供所需数据。
同样,由于采用了逻辑对象与数据对象分离的架构,WFSession负责逻辑运行,而WFSessionContext负责为逻辑运行提供所需数据,因此对于热更新而言,只需要更新WFSession,便可以使得后续创建的WFSessionContext(即第二实体会话上下文)对象使用新的逻辑。
根据本发明其中一实施例,还提供了另一种文件更新方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种运行于上述电子装置的文件更新方法,在该电子装置上可以搭建客户端。图15是根据本发明其中一实施例的另一种文件更新方法的流程图,如图15所示,该方法包括如下步骤:
步骤S150,接收来自于服务端的通知消息,其中,通知消息用于通知在客户端本地进行与更新结果对应的热更新处理,更新结果由服务端对待更新的图形化工具文件进行热更新处理后获得,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系;
步骤S152,基于更新结果在客户端本地对待更新的图形化工具文件进行热更新处理。
通过上述步骤,可以采用接收来自于服务端的通知消息,该通知消息用于通知在客户端本地进行与更新结果对应的热更新处理,更新结果由服务端对待更新的图形化工具文件进行热更新处理后获得,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括多个节点以及多个节点之间的连接关系的方式,通过更新结果在客户端本地对待更新的图形化工具文件进行热更新处理,达到了利用图形化工具流程在客户端与服务端上进行热更新的目的,从而实现了多端协作(异步)的逻辑开发,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷的技术效果,进而解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
可选地,在步骤S152中,基于更新结果在客户端本地对待更新的图形化工具文件进行热更新处理可以包括以下执行步骤:
步骤S1521,从服务端获取更新结果;
步骤S1522,在游戏内的实体对象下,通过实体组件向全局管理器通知更新结果;
步骤S1523,通过全局管理器缓存与更新前的图形化工具文件对应的第一实体会话并创建与更新后的图形化工具文件对应的第二实体会话,其中,第一实体会话用于控制更新前图形化工具执行逻辑,第二实体会话用于控制更新后图形化工具执行逻辑。
在本发明的一个可选实施例中,采用Python进行热更新,因此节点内的逻辑更新使用python自身的热更新机制即可。客户端在接收到服务端的热更新通知消息之后,Entity通过WFComponent来通知WFManager需要更新一个图形化工具文件。此时,对原有的WFSession(即第一实体会话)进行缓存,以确保当前正在运行的WFSessionContext按照原有的逻辑运行。然后,再创建新的WFSession(即第二实体会话)。
可选地,上述方法还可以包括以下执行步骤:
步骤S153,利用第一实体会话上下文执行第一实体会话对应的逻辑,其中,第一实体会话上下文为执行第一实体会话对应的逻辑提供所需数据。
由于采用了逻辑对象与数据对象分离的架构,WFSession负责逻辑运行,而WFSessionContext负责为逻辑运行提供所需数据,因此对于热更新而言,由于缓存过原有的WFSession,因此原有的WFSessionContext(即第一实体会话上下文)不会受到影响。
可选地,上述方法还可以包括以下执行步骤:
步骤S154,利用第二实体会话上下文执行第二实体会话对应的逻辑,其中,第二实体会话上下文为执行第二实体会话对应的逻辑提供所需数据。
同样,由于采用了逻辑对象与数据对象分离的架构,WFSession负责逻辑运行,而WFSessionContext负责为逻辑运行提供所需数据,因此对于热更新而言,只需要更新WFSession,便可以使得后续创建的WFSessionContext(即第二实体会话上下文)对象使用新的逻辑。
根据本发明其中一实施例,还提供了一种文件处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端、网络侧设备或者类似的电子装置中执行。电子装置可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器。可选地,上述电子装置还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的文件处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的文件处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示设备可以例如触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与电子装置的用户界面进行交互。在一些实施例中,上述电子装置具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
在本实施例中提供了一种运行于上述电子装置的文件处理方法,在该电子装置上可以搭建客户端。图16是根据本发明其中一实施例的文件处理方法的流程图,如图16所示,该方法包括如下步骤:
步骤S160,接收图形化工具发送的图形化工具文件和第一自定义事件,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系,第一自定义事件用于触发客户端执行与可执行文件对应的图形化工具流程;
步骤S162,基于第一自定义事件执行图形化工具流程,并实时反馈执行结果。
通过上述步骤,可以采用在接收图形化工具发送的图形化工具文件和第一自定义事件,该图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括多个节点以及多个节点之间的连接关系,第一自定义事件用于触发客户端执行与可执行文件对应的图形化工具流程的方式,通过第一自定义事件执行图形化工具流程并实时反馈执行结果,达到了利用图形化工具流程在客户端与服务端上进行调试的目的,从而实现了多端协作(异步)的逻辑开发,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷的技术效果,进而解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
可选地,在步骤S160中,接收图形化工具文件和第一自定义事件可以包括以下执行步骤:
步骤S1601,通过远程过程调用方式接收图形化工具发送的图形化工具文件和第一自定义事件。
调试是在使用图形化工具过程中测试逻辑的完整性与正确性所不可或缺的关键步骤。调试由图形化工具所在终端发起,将图形化工具节点图面板导出成可执行的图形化工具文件。图形化工具将导出文件通过RPC方式发送至客户端并指定待执行的第一自定义事件。
可选地,在步骤S162中,实时反馈执行结果可以包括以下执行步骤:
步骤S1621,通过远程过程调用方式将执行结果实时反馈至图形化工具的调试窗口。
客户端可以通过RPC方式将执行结果(包括:执行的节点顺序和数据)实时反馈至图形化工具的调试窗口。
可选地,上述方法还可以包括以下执行步骤:
步骤S163,通过远程过程调用方式将图形化工具文件和第一自定义事件发送至服务端。
客户端可以通过RPC方式将导出文件发送至服务端并指定待执行的第一自定义事件。
可选地,上述方法还可以包括以下执行步骤:
步骤S164,基于图形化工具文件对客户端本地原有的图形化工具文件进行热更新处理。
客户端在接收到图形化工具文件之后,可以基于图形化工具文件对客户端本地原有的图形化工具文件执行热更新流程。
可选地,在步骤S162中,基于第一自定义事件执行图形化工具流程可以包括以下执行步骤:
步骤S1621,在游戏内的实体对象下,创建图形化工具流程;
步骤S1622,在第一自定义事件的触发下,执行图形化工具流程。
客户端会在Entity上创建图形化工具流程并主动触发由图形化工具指定的待执行事件,进而执行图形化工具流程。
根据本发明其中一实施例,还提供了另一种文件处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种运行于上述电子装置的文件处理方法,在该电子装置上可以搭建服务端。图17是根据本发明其中一实施例的另一种文件处理方法的流程图,如图17所示,该方法包括如下步骤:
步骤S170,接收客户端发送的图形化工具文件和第一自定义事件,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系,第一自定义事件用于触发服务端执行与可执行文件对应的图形化工具流程;
步骤S172,基于第一自定义事件执行图形化工具流程,并实时反馈执行结果。
通过上述步骤,可以接收客户端发送的图形化工具文件和第一自定义事件,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括多个节点以及多个节点之间的连接关系,第一自定义事件用于触发服务端执行与可执行文件对应的图形化工具流程的方式,通过第一自定义事件执行图形化工具流程并实时反馈执行结果,达到了利用图形化工具流程在客户端与服务端上进行调试的目的,从而实现了多端协作(异步)的逻辑开发,从而使用策划人员和程序人员都能够更高效地开发相应的游戏逻辑,程序人员与策划人员的分工与协作更加便捷,重复性的组装操作可以交由非程序人员来执行,由此减轻了程序人员的工作压力,同时还能够使得非程序人员的调试和测试工作更加方便、快捷的技术效果,进而解决了相关技术中无法通过可视的图形化工具对客户端与服务端模型进行逻辑流程控制的技术问题。
可选地,在步骤S170中,接收图形化工具文件和第一自定义事件可以包括以下执行步骤:
步骤S1701,通过远程过程调用方式接收客户端发送的图形化工具文件和第一自定义事件。
调试是在使用图形化工具过程中测试逻辑的完整性与正确性所不可或缺的关键步骤。调试由图形化工具所在终端发起,将图形化工具节点图面板导出成可执行的图形化工具文件。图形化工具将导出文件通过RPC方式发送至客户端并指定待执行的第一自定义事件。然后,客户端再通过RPC方式将导出文件发送至服务端并指定待执行的第一自定义事件。
可选地,在步骤S172中,实时反馈执行结果可以包括以下执行步骤:
步骤S1721,通过远程过程调用方式将执行结果实时反馈至图形化工具的调试窗口。
服务端可以通过RPC方式将执行结果(包括:执行的节点顺序和数据)实时反馈至图形化工具的调试窗口。
可选地,上述方法还可以包括以下执行步骤:
步骤S173,基于图形化工具文件对服务端本地原有的图形化工具文件进行热更新处理。
服务端在接收到图形化工具文件之后,可以基于图形化工具文件对客户端本地原有的图形化工具文件执行热更新流程。
可选地,在步骤S172中,基于第一自定义事件执行图形化工具流程可以包括以下执行步骤:
步骤S1721,在游戏内的实体对象下,创建图形化工具流程;
步骤S1722,在第一自定义事件的触发下,执行图形化工具流程。
服务端会在Entity上创建图形化工具流程并主动触发由图形化工具指定的待执行事件,进而执行图形化工具流程。
图18是根据本发明其中一可选实施例的图形化工具调试过程示意图,如图18所示,调试由图形化工具所在终端发起,将图形化工具节点图面板导出成可执行的图形化工具文件。图形化工具将导出文件通过RPC方式发送至客户端并指定待执行事件。客户端接收导出文件并执行热更新流程,然后再将导出文件通过RPC方式发送至服务端。服务端接收导出文件并执行热更新流程,在Entity上创建图形化工具流程并主动触发由图形化工具指定的待执行事件。然后再将执行的节点顺序和数据发送至图形化工具的调试窗口。同时,客户端也会在Entity上创建图形化工具流程并主动触发由图形化工具指定的待执行事件。然后再将执行的节点顺序和数据发送至图形化工具的调试窗口。最终,图形化工具会将从客户端与服务端接收到的处理结果显示在调试窗口中,以便进行后续调试。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种文件处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图19是根据本发明其中一实施例的文件处理装置的结构框图,通过在电子装置的处理器上执行软件应用并在电子装置的显示器上渲染得到图形用户界面,图形用户界面所显示的内容至少包括第一显示区域,如图19所示,该装置包括:获取模块10,用于获取在第一显示区域内编辑的目标节点图,其中,目标节点图包括:多个节点以及多个节点之间的连接关系;处理模块11,用于基于目标节点图生成图形化工具文件,其中,图形化工具文件是由目标节点图导出的运行在客户端与服务端的可执行文件,图形化工具文件用于在客户端与服务端上进行逻辑流程控制。
可选地,图形用户界面所显示的内容还包括第二显示区域,获取模块10,用于响应作用于第二显示区域的控制操作,在第一显示区域生成初始节点图,其中,初始节点图为缺省图;在初始节点图中获取多个节点中每个节点的位置信息与类型信息,以及多个节点之间的连接关系;依据位置信息、类型信息和多个节点之间的连接关系,确定目标节点图。
可选地,图形用户界面所显示的内容还包括第三显示区域,获取模块10,用于响应作用于第三显示区域的控制操作,在第一显示区域生成初始节点图,其中,初始节点图为本地预先存储的节点图;在初始节点图中获取多个节点中每个节点的位置信息与类型信息,以及多个节点之间的连接关系;依据位置信息、类型信息和多个节点之间的连接关系,确定目标节点图。
可选地,获取模块10,用于按照目标节点图的目标逻辑,从多个节点中确定第一部分节点与第二部分节点,其中,第一部分节点按照目标逻辑确定先后执行顺序,第二部分节点按照目标逻辑确定参数传递方向;在第一部分节点之间创建逻辑连接关系以及在第二部分节点之间创建参数连接关系,得到多个节点之间的连接关系。
可选地,图形用户界面所显示的内容还包括第四显示区域,图20是根据本发明其中一可选实施例的文件处理装置的结构框图,如图20所示,该装置除包括图19所示的所有模块外,该装置还包括:修改模块12,用于响应作用于第四显示区域的控制操作,对多个节点中至少一个节点的属性进行修改。
可选地,图形用户界面所显示的内容还包括第五显示区域,如图20所示,该装置除包括图19所示的所有模块外,该装置还包括:输出模块13,用于在目标节点图运行过程中,将调试信息输出至第五显示区域。
可选地,多个节点的类型信息包括:逻辑节点、监听节点、值节点、事件节点。
可选地,事件节点的事件类型包括:预定义事件和自定义事件,其中,预定义事件用于响应外部系统调用,触发图形化工具流程,自定义事件用于与客户端或服务端进行通讯。
可选地,逻辑节点用于定义节点属性信息和运行逻辑信息。
在本实施例中还提供了一种实例创建装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图21是根据本发明其中一实施例的实例创建装置的结构框图,如图21所示,该装置包括:获取模块20,用于获取待运行图形化工具文件的文件标识;确定模块21,用于基于文件标识确定与待运行图形化工具文件对应的逻辑对象和数据对象,其中,逻辑对象用于控制图形化工具的执行逻辑,数据对象用于为执行逻辑提供所需数据;创建模块22,用于采用逻辑对象和数据对象创建图形化工具实例。
可选地,图22是根据本发明其中一可选实施例的实例创建装置的结构框图,如图22所示,该装置除包括图21所示的所有模块外,该装置还包括:运行模块23,用于在图形化工具实例中监听事件的触发下,运行图形化工具实例。
可选地,确定模块21,用于在游戏内的实体对象下,通过全局管理器查找与文件标识对应的逻辑对象。
可选地,如图22所示,该装置还包括:第一处理模块24,用于当通过全局管理器未查找到与文件标识对应的逻辑对象时,根据待运行图形化工具文件的存储位置,将待运行图形化工具文件加载至内存并创建逻辑对象。
可选地,确定模块21,用于在游戏内的实体对象下,通过全局管理器查找与文件标识对应的实体上下文,其中,实体上下文用于管理待运行图形化工具文件对应的多个数据对象;在实体上下文中创建数据对象。
可选地,如图22所示,该装置还包括:第二处理模块25,用于当通过全局管理器未查找到与文件标识对应的实体上下文时,为实体对象创建实体上下文;在实体上下文中创建数据对象。
可选地,如图22所示,该装置还包括:第三处理模块26,用于为图形化工具实例分配实例标识,并采用实体组件管理实例标识,其中,在客户端上创建的图形化工具实例与在服务端上创建的图形化工具实例使用相同的实例标识。
在本实施例中还提供了一种事件处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图23是根据本发明其中一实施例的事件处理装置的结构框图,如图23所示,该装置包括:第一获取模块30,用于获取待执行的预定义事件,其中,预定义事件用于响应外部系统调用,触发图形化工具流程;处理模块31,用于基于预定义事件发起图形化工具流程,执行与预定义事件对应的逻辑;第二获取模块32,用于在执行与预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,其中,第一自定义事件用于与至少一个客户端进行通讯;发送模块33,用于将第一自定义事件发送至至少一个客户端,以使至少一个客户端执行与第一自定义事件对应的逻辑。
可选地,处理模块31,用于在游戏内的实体对象下,通过实体组件将预定义事件发送至全局管理器;通过全局管理器查找与预定义事件关联的实体上下文,并向实体上下文转发与预定义事件对应的触发消息;通过向实体上下文向第一实体会话上下文发送触发消息,在第一实体会话上下文中查找与预定义事件关联的事件节点;基于事件节点执行与预定义事件对应的逻辑。
可选地,发送模块33,用于将第一实体会话上下文的标识信息和第一自定义事件发送至至少一个客户端,其中,标识信息用于在至少一个客户端查找对应的第二实体会话上下文。
可选地,图24是根据本发明其中一可选实施例的事件处理装置的结构框图,如图24所示,该装置除包括图23所示的所有模块外,该装置还包括:接收模块34,用于接收至少一个客户端反馈的标识信息和第二自定义事件;校验模块35,用于对第二自定义事件进行校验处理,得到校验结果,其中,校验处理包括:执行顺序校验、数据合法性校验;查找模块36,用于当根据校验结果确定第二自定义事件通过校验时,基于标识信息查找到第一实体会话上下文;执行模块37,用于在第一实体会话上下文中执行与第二自定义事件对应的逻辑。
可选地,校验模块35,用于判断第二自定义事件是否为首次接收的事件并且按照执行顺序判断第二自定义事件是否属于待执行事件;如果第二自定义事件为首次接收的事件并且第二自定义事件属于待执行事件,则对第二自定义事件进行数据合法性校验;确定第二自定义事件通过数据合法性校验,得到校验结果。
可选地,如图24所示,该装置除包括图23所示的所有模块外,该装置还包括:判断模块38,用于判断是否存在待发送的第三自定义事件,其中,第三自定义事件为第二自定义事件的后续事件;如果存在第三自定义事件,则将标识信息和第三自定义事件发送至至少一个客户端;如果不存在第三自定义事件,则结束逻辑处理。
在本实施例中还提供了另一种事件处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图25是根据本发明其中一实施例的另一种事件处理装置的结构框图,如图25所示,该装置包括:接收模块40,用于接收来自于服务端的第一自定义事件,其中,所述第一自定义事件是在所述服务端执行与预定义事件对应逻辑的过程中触发的事件,所述预定义事件用于所述服务端响应外部系统调用触发图形化工具流程;处理模块41,用于基于所述第一自定义事件发起所述图形化工具流程,执行与所述第一自定义事件对应的逻辑。
可选地,接收模块40,用于接收来自于服务端的第一实体会话上下文的标识信息和第一自定义事件,其中,第一实体会话上下文用于执行与预定义事件对应的逻辑。
可选地,处理模块41,用于基于标识信息查找第二实体会话上下文;在第二实体会话上下文中执行与第一自定义事件对应的逻辑。
可选地,图26是根据本发明其中一可选实施例的另一种事件处理装置的结构框图,如图26所示,该装置除包括图25所示的所有模块外,该装置还包括:判断模块42,用于判断是否存在待发送的第二自定义事件,其中,第二自定义事件为第一自定义事件的后续事件;如果存在第二自定义事件,则将标识信息和第二自定义事件发送至服务端;如果不存在第二自定义事件,则结束逻辑处理。
可选地,如图26所示,该装置除包括图25所示的所有模块外,该装置还包括:调整模块43,用于接收来自于服务端的第三自定义事件,其中,第三自定义事件为第二自定义事件的后续事件;如果确定当前仍在执行与第一自定义事件对应的逻辑,则清除当前正在执行的逻辑,并开始执行与第三自定义事件对应的逻辑;如果确定已提前执行与第三自定义事件的后续事件对应的逻辑,则回退执行与第三自定义事件对应的逻辑。
在本实施例中还提供了一种文件更新装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图27是根据本发明其中一实施例的文件更新装置的结构框图,如图27所示,该装置包括:更新模块50,用于在服务端本地对待更新的图形化工具文件进行热更新处理,得到更新结果,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系;发送模块51,用于向客户端发送通知消息,其中,通知消息用于通知客户端进行与更新结果对应的热更新处理。
可选地,更新模块50,用于在游戏内的实体对象下,通过实体组件向全局管理器通知图形化工具文件;通过全局管理器缓存与更新前的图形化工具文件对应的第一实体会话并创建与更新后的图形化工具文件对应的第二实体会话,得到更新结果,其中,第一实体会话用于控制更新前图形化工具的执行逻辑,第二实体会话用于控制更新后图形化工具的执行逻辑。
可选地,图28是根据本发明其中一可选实施例的文件更新装置的结构框图,如图28所示,该装置除包括图27所示的所有模块外,该装置还包括:第一处理模块52,用于利用第一实体会话上下文执行第一实体会话对应的逻辑,其中,第一实体会话上下文为执行第一实体会话对应的逻辑提供所需数据。
可选地,如图28所示,该装置除包括图27所示的所有模块外,该装置还包括:第二处理模块53,用于利用第二实体会话上下文执行第二实体会话对应的逻辑,其中,第二实体会话上下文为执行第二实体会话对应的逻辑提供所需数据。
在本实施例中还提供了另一种文件更新装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图29是根据本发明其中一实施例的另一种文件更新装置的结构框图,如图29所示,该装置包括:接收模块60,用于接收来自于服务端的通知消息,其中,通知消息用于通知在客户端本地进行与更新结果对应的热更新处理,更新结果由服务端对待更新的图形化工具文件进行热更新处理后获得,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系;更新模块61,用于基于更新结果在客户端本地对待更新的图形化工具文件进行热更新处理。
可选地,更新模块61,用于从服务端获取更新结果;在游戏内的实体对象下,通过实体组件向全局管理器通知更新结果;通过全局管理器缓存与更新前的图形化工具文件对应的第一实体会话并创建与更新后的图形化工具文件对应的第二实体会话,其中,第一实体会话用于控制更新前图形化工具执行逻辑,第二实体会话用于控制更新后图形化工具执行逻辑。
可选地,图30是根据本发明其中一可选实施例的另一种文件更新装置的结构框图,如图30所示,该装置除包括图29所示的所有模块外,该装置还包括:第一处理模块62,用于利用第一实体会话上下文执行第一实体会话对应的逻辑,其中,第一实体会话上下文为执行第一实体会话对应的逻辑提供所需数据。
可选地,如图30所示,该装置除包括图29所示的所有模块外,该装置还包括:第二处理模块63,用于利用第二实体会话上下文执行第二实体会话对应的逻辑,其中,第二实体会话上下文为执行第二实体会话对应的逻辑提供所需数据。
在本实施例中还提供了一种文件处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图31是根据本发明其中一实施例的文件处理装置的结构框图,如图31所示,该装置包括:接收模块70,用于接收图形化工具发送的图形化工具文件和第一自定义事件,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系,第一自定义事件用于触发客户端执行与可执行文件对应的图形化工具流程;处理模块71,用于基于第一自定义事件执行图形化工具流程,并实时反馈执行结果。
可选地,接收模块70,用于通过远程过程调用方式接收图形化工具发送的图形化工具文件和第一自定义事件。
可选地,处理模块71,用于通过远程过程调用方式将执行结果实时反馈至图形化工具的调试窗口。
可选地,图32是根据本发明其中一可选实施例的文件处理装置的结构框图,如图32所示,该装置除包括图31所示的所有模块外,该装置还包括:发送模块72,用于通过远程过程调用方式将图形化工具文件和第一自定义事件发送至服务端。
可选地,如图32所示,该装置除包括图31所示的所有模块外,该装置还包括:更新模块73,用于基于图形化工具文件对客户端本地原有的图形化工具文件进行热更新处理。
可选地,处理模块71,用于在游戏内的实体对象下,创建图形化工具流程;在第一自定义事件的触发下,执行图形化工具流程。
在本实施例中还提供了另一种文件处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图33是根据本发明其中一实施例的另一种文件处理装置的结构框图,如图33所示,该装置包括:接收模块80,用于接收客户端发送的图形化工具文件和第一自定义事件,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系,第一自定义事件用于触发服务端执行与可执行文件对应的图形化工具流程;处理模块81,用于基于第一自定义事件执行图形化工具流程,并实时反馈执行结果。
可选地,接收模块80,用于通过远程过程调用方式接收客户端发送的图形化工具文件和第一自定义事件。
可选地,处理模块81,用于通过远程过程调用方式将执行结果实时反馈至图形化工具的调试窗口。
可选地,图34是根据本发明其中一可选实施例的另一种文件处理装置的结构框图,如图34所示,该装置除包括图33所示的所有模块外,该装置还包括:更新模块82,用于基于图形化工具文件对服务端本地原有的图形化工具文件进行热更新处理。
可选地,处理模块81,用于在游戏内的实体对象下,创建图形化工具流程;在第一自定义事件的触发下,执行图形化工具流程。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取在第一显示区域内编辑的目标节点图,其中,目标节点图包括:多个节点以及多个节点之间的连接关系;
S2,基于目标节点图生成图形化工具文件,其中,图形化工具文件是由目标节点图导出的运行在客户端与服务端的可执行文件,图形化工具文件用于在客户端与服务端上进行逻辑流程控制。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,获取待运行图形化工具文件的文件标识;
S2,基于文件标识确定与待运行图形化工具文件对应的逻辑对象和数据对象,其中,逻辑对象用于控制图形化工具的执行逻辑,数据对象用于为执行逻辑提供所需数据;
S3,采用逻辑对象和数据对象创建图形化工具实例。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,获取待执行的预定义事件,其中,预定义事件用于响应外部系统调用,触发图形化工具流程;
S2,基于预定义事件发起图形化工具流程,执行与预定义事件对应的逻辑;
S3,在执行与预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,其中,第一自定义事件用于与至少一个客户端进行通讯;
S4,将第一自定义事件发送至至少一个客户端,以使至少一个客户端执行与第一自定义事件对应的逻辑。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,接收来自于服务端的第一自定义事件,其中,第一自定义事件是在服务端执行与预定义事件对应逻辑的过程中触发的事件,预定义事件用于服务端响应外部系统调用触发图形化工具流程;
S2,基于第一自定义事件发起图形化工具流程,执行与第一自定义事件对应的逻辑。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,在服务端本地对待更新的图形化工具文件进行热更新处理,得到更新结果,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系;
S2,向客户端发送通知消息,其中,通知消息用于通知客户端进行与更新结果对应的热更新处理。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,接收来自于服务端的通知消息,其中,通知消息用于通知在客户端本地进行与更新结果对应的热更新处理,更新结果由服务端对待更新的图形化工具文件进行热更新处理后获得,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系;
S2,基于更新结果在客户端本地对待更新的图形化工具文件进行热更新处理。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,接收图形化工具发送的图形化工具文件和第一自定义事件,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系,第一自定义事件用于触发客户端执行与可执行文件对应的图形化工具流程;
S2,基于第一自定义事件执行图形化工具流程,并实时反馈执行结果。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,接收客户端发送的图形化工具文件和第一自定义事件,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系,第一自定义事件用于触发服务端执行与可执行文件对应的图形化工具流程;
S2,基于第一自定义事件执行图形化工具流程,并实时反馈执行结果。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取在第一显示区域内编辑的目标节点图,其中,目标节点图包括:多个节点以及多个节点之间的连接关系;
S2,基于目标节点图生成图形化工具文件,其中,图形化工具文件是由目标节点图导出的运行在客户端与服务端的可执行文件,图形化工具文件用于在客户端与服务端上进行逻辑流程控制。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:
S1,获取待运行图形化工具文件的文件标识;
S2,基于文件标识确定与待运行图形化工具文件对应的逻辑对象和数据对象,其中,逻辑对象用于控制图形化工具的执行逻辑,数据对象用于为执行逻辑提供所需数据;
S3,采用逻辑对象和数据对象创建图形化工具实例。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:
S1,获取待执行的预定义事件,其中,预定义事件用于响应外部系统调用,触发图形化工具流程;
S2,基于预定义事件发起图形化工具流程,执行与预定义事件对应的逻辑;
S3,在执行与预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,其中,第一自定义事件用于与至少一个客户端进行通讯;
S4,将第一自定义事件发送至至少一个客户端,以使至少一个客户端执行与第一自定义事件对应的逻辑。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:
S1,接收来自于服务端的第一自定义事件,其中,第一自定义事件是在服务端执行与预定义事件对应逻辑的过程中触发的事件,预定义事件用于服务端响应外部系统调用触发图形化工具流程;
S2,基于第一自定义事件发起图形化工具流程,执行与第一自定义事件对应的逻辑。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:
S1,在服务端本地对待更新的图形化工具文件进行热更新处理,得到更新结果,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系;
S2,向客户端发送通知消息,其中,通知消息用于通知客户端进行与更新结果对应的热更新处理。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:
S1,接收来自于服务端的通知消息,其中,通知消息用于通知在客户端本地进行与更新结果对应的热更新处理,更新结果由服务端对待更新的图形化工具文件进行热更新处理后获得,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系;
S2,基于更新结果在客户端本地对待更新的图形化工具文件进行热更新处理。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:
S1,接收图形化工具发送的图形化工具文件和第一自定义事件,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系,第一自定义事件用于触发客户端执行与可执行文件对应的图形化工具流程;
S2,基于第一自定义事件执行图形化工具流程,并实时反馈执行结果。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:
S1,接收客户端发送的图形化工具文件和第一自定义事件,其中,图形化工具文件是由图形化工具上目标节点图导出的可执行文件,目标节点图包括:多个节点以及多个节点之间的连接关系,第一自定义事件用于触发服务端执行与可执行文件对应的图形化工具流程;
S2,基于第一自定义事件执行图形化工具流程,并实时反馈执行结果。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务端或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (13)

1.一种事件处理方法,其特征在于,包括:
获取待执行的预定义事件,其中,所述预定义事件用于响应外部系统调用,触发图形化工具流程;
基于所述预定义事件发起所述图形化工具流程,执行与所述预定义事件对应的逻辑;
在执行与所述预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,其中,所述第一自定义事件用于与至少一个客户端进行通讯;
将所述第一自定义事件发送至所述至少一个客户端,以使所述至少一个客户端执行与所述第一自定义事件对应的逻辑;
执行与所述预定义事件对应的逻辑包括:在游戏内的实体对象下,通过实体组件将所述预定义事件发送至全局管理器;通过所述全局管理器查找与所述预定义事件关联的实体上下文,并向所述实体上下文转发与所述预定义事件对应的触发消息;通过向所述实体上下文向第一实体会话上下文发送所述触发消息,在所述第一实体会话上下文中查找与所述预定义事件关联的事件节点;基于所述事件节点执行与所述预定义事件对应的逻辑。
2.根据权利要求1所述的方法,其特征在于,将所述第一自定义事件发送至所述至少一个客户端包括:
将所述第一实体会话上下文的标识信息和所述第一自定义事件发送至所述至少一个客户端,其中,所述标识信息用于在所述至少一个客户端查找对应的第二实体会话上下文。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述至少一个客户端反馈的所述标识信息和第二自定义事件;
对所述第二自定义事件进行校验处理,得到校验结果,其中,所述校验处理包括:执行顺序校验、数据合法性校验;
当根据所述校验结果确定所述第二自定义事件通过校验时,基于所述标识信息查找到所述第一实体会话上下文;
在所述第一实体会话上下文中执行与所述第二自定义事件对应的逻辑。
4.根据权利要求3所述的方法,其特征在于,对所述第二自定义事件进行校验处理,得到所述校验结果包括:
判断所述第二自定义事件是否为首次接收的事件并且按照执行顺序判断所述第二自定义事件是否属于待执行事件;
如果所述第二自定义事件为首次接收的事件并且所述第二自定义事件属于待执行事件,则对所述第二自定义事件进行数据合法性校验;
确定所述第二自定义事件通过数据合法性校验,得到所述校验结果。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
判断是否存在待发送的第三自定义事件,其中,所述第三自定义事件为所述第二自定义事件的后续事件;
如果存在所述第三自定义事件,则将所述标识信息和所述第三自定义事件发送至所述至少一个客户端;如果不存在所述第三自定义事件,则结束逻辑处理。
6.一种事件处理方法,其特征在于,包括:
接收来自于服务端的第一自定义事件,其中,所述第一自定义事件是在所述服务端执行与预定义事件对应逻辑的过程中触发的事件,所述预定义事件用于所述服务端响应外部系统调用触发图形化工具流程;
基于所述第一自定义事件发起所述图形化工具流程,执行与所述第一自定义事件对应的逻辑;
接收来自于所述服务端的所述第一自定义事件包括:接收来自于所述服务端的第一实体会话上下文的标识信息和所述第一自定义事件,其中,所述第一实体会话上下文用于执行与所述预定义事件对应的逻辑;
所述方法还包括:判断是否存在待发送的第二自定义事件,其中,所述第二自定义事件为所述第一自定义事件的后续事件;如果存在所述第二自定义事件,则将所述标识信息和所述第二自定义事件发送至所述服务端;如果不存在所述第二自定义事件,则结束逻辑处理。
7.根据权利要求6所述的方法,其特征在于,执行与所述第一自定义事件对应的逻辑包括:
基于所述标识信息查找第二实体会话上下文;
在所述第二实体会话上下文中执行与所述第一自定义事件对应的逻辑。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收来自于所述服务端的第三自定义事件,其中,所述第三自定义事件为所述第二自定义事件的后续事件;
如果确定当前仍在执行与所述第一自定义事件对应的逻辑,则清除当前正在执行的逻辑,并开始执行与所述第三自定义事件对应的逻辑;如果确定已提前执行与所述第三自定义事件的后续事件对应的逻辑,则回退执行与所述第三自定义事件对应的逻辑。
9.一种事件处理装置,其特征在于,包括:
第一获取模块,用于获取待执行的预定义事件,其中,所述预定义事件用于响应外部系统调用,触发图形化工具流程;
处理模块,用于基于所述预定义事件发起所述图形化工具流程,执行与所述预定义事件对应的逻辑;
第二获取模块,用于在执行与所述预定义事件对应逻辑的过程中,获取待发送的第一自定义事件,其中,所述第一自定义事件用于与至少一个客户端进行通讯;
发送模块,用于将所述第一自定义事件发送至所述至少一个客户端,以使所述至少一个客户端执行与所述第一自定义事件对应的逻辑;
所述处理模块,还用于:在游戏内的实体对象下,通过实体组件将所述预定义事件发送至全局管理器;通过所述全局管理器查找与所述预定义事件关联的实体上下文,并向所述实体上下文转发与所述预定义事件对应的触发消息;通过向所述实体上下文向第一实体会话上下文发送所述触发消息,在所述第一实体会话上下文中查找与所述预定义事件关联的事件节点;基于所述事件节点执行与所述预定义事件对应的逻辑。
10.一种事件处理装置,其特征在于,包括:
接收模块,用于接收来自于服务端的第一自定义事件,其中,所述第一自定义事件是在所述服务端执行与预定义事件对应逻辑的过程中触发的事件,所述预定义事件用于所述服务端响应外部系统调用触发图形化工具流程;
处理模块,用于基于所述第一自定义事件发起所述图形化工具流程,执行与所述第一自定义事件对应的逻辑;
所述接收模块,还用于:接收来自于所述服务端的第一实体会话上下文的标识信息和所述第一自定义事件,其中,所述第一实体会话上下文用于执行与所述预定义事件对应的逻辑;
所述装置还包括:判断模块,用于判断是否存在待发送的第二自定义事件,其中,所述第二自定义事件为所述第一自定义事件的后续事件;如果存在所述第二自定义事件,则将所述标识信息和所述第二自定义事件发送至所述服务端;如果不存在所述第二自定义事件,则结束逻辑处理。
11.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至5任一项中所述的事件处理方法或所述权利要求6至8任一项中所述的事件处理方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序被设置为运行时执行所述权利要求1至5任一项中所述的事件处理方法或所述权利要求6至8任一项中所述的事件处理方法。
13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至5任一项中所述的事件处理方法或所述权利要求6至8任一项中所述的事件处理方法。
CN202010500671.XA 2020-06-04 2020-06-04 事件处理方法、装置、存储介质、处理器及电子装置 Active CN111581114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010500671.XA CN111581114B (zh) 2020-06-04 2020-06-04 事件处理方法、装置、存储介质、处理器及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010500671.XA CN111581114B (zh) 2020-06-04 2020-06-04 事件处理方法、装置、存储介质、处理器及电子装置

Publications (2)

Publication Number Publication Date
CN111581114A CN111581114A (zh) 2020-08-25
CN111581114B true CN111581114B (zh) 2023-10-27

Family

ID=72127309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010500671.XA Active CN111581114B (zh) 2020-06-04 2020-06-04 事件处理方法、装置、存储介质、处理器及电子装置

Country Status (1)

Country Link
CN (1) CN111581114B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111973985B (zh) * 2020-08-26 2024-02-09 网易(杭州)网络有限公司 基于序列的事件处理方法、装置、电子设备及存储介质
CN116414424B (zh) * 2023-06-09 2023-09-12 建信金融科技有限责任公司 热更新方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201211270D0 (en) * 2012-06-26 2012-08-08 Ibm An apparatus for processing one or more events
CN105844450A (zh) * 2011-12-08 2016-08-10 微软技术许可有限责任公司 管理远程事件的技术
CN107656783A (zh) * 2016-07-25 2018-02-02 武汉票据交易中心有限公司 一种基于事件的流程处理方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105844450A (zh) * 2011-12-08 2016-08-10 微软技术许可有限责任公司 管理远程事件的技术
GB201211270D0 (en) * 2012-06-26 2012-08-08 Ibm An apparatus for processing one or more events
CN107656783A (zh) * 2016-07-25 2018-02-02 武汉票据交易中心有限公司 一种基于事件的流程处理方法及系统

Also Published As

Publication number Publication date
CN111581114A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
CN111581115B (zh) 文件处理方法、装置、存储介质、处理器及电子装置
US11184216B2 (en) State control method and apparatus
CN110768833B (zh) 基于kubernetes的应用编排部署方法及装置
CN111581114B (zh) 事件处理方法、装置、存储介质、处理器及电子装置
CN111581113B (zh) 文件更新方法、装置、存储介质、处理器及电子装置
US10684838B2 (en) Dynamic application deployment
CN110942387A (zh) 基于微服务的电票业务功能构建方法和系统
CN104978285A (zh) 功能扩展方法和终端装置
US11379192B2 (en) Saving a snippet of visual programming logic for reuse amongst programs created using an automation building tool
CN110958287B (zh) 操作对象数据同步方法、装置及系统
CN111078530A (zh) 应用程序调试方法、系统、电子设备及计算机可读存储介质
CN109739665A (zh) 接口管理方法、装置、服务器及存储介质
CN111581112A (zh) 文件处理方法、装置、存储介质、处理器及电子装置
CN112044061B (zh) 游戏画面处理方法、装置、电子设备以及存储介质
WO2023169193A1 (zh) 用于生成智能合约的方法和装置
CN112163174A (zh) 消息的显示方法、装置、存储介质及计算机设备
CN116647448A (zh) 一种软件更新方法、系统、设备及介质
WO2022012127A1 (zh) 任务的执行方法及装置、存储介质和电子装置
CN111581111A (zh) 实例创建方法、装置、存储介质、处理器及电子装置
CN116974628A (zh) 信息获取方法、装置、电子设备及计算机可读存储介质
KR20190135146A (ko) 노드 분석 방법 및 장치
CN113190532A (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN114490694A (zh) 一种业务规则处理方法、装置、服务器及存储介质
CN114356520A (zh) 微应用的运行方法、装置、设备、存储介质及程序产品
CN113590033A (zh) 一种超融合系统的信息同步方法及装置

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