CN111324381B - 开发系统、方法、装置、计算机设备及存储介质 - Google Patents

开发系统、方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111324381B
CN111324381B CN202010097018.3A CN202010097018A CN111324381B CN 111324381 B CN111324381 B CN 111324381B CN 202010097018 A CN202010097018 A CN 202010097018A CN 111324381 B CN111324381 B CN 111324381B
Authority
CN
China
Prior art keywords
engine
primitive
client
information
target
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
CN202010097018.3A
Other languages
English (en)
Other versions
CN111324381A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010097018.3A priority Critical patent/CN111324381B/zh
Publication of CN111324381A publication Critical patent/CN111324381A/zh
Application granted granted Critical
Publication of CN111324381B publication Critical patent/CN111324381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Abstract

本发明涉及开发系统、方法、装置、计算机设备及存储介质。该系统包括:客户端开发组件,用于获取客户端生成文件,确定目标运行平台类型,目标运行平台类型从至少两个运行平台类型中选择得到;根据客户端生成文件和目标运行平台类型生成客户端程序;目标运行平台与目标运行平台类型对应;引擎插件开发组件,用于获取引擎插件生成文件,确定目标游戏引擎类型,目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据引擎插件生成文件和目标游戏引擎类型生成引擎插件程序;引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;目标游戏引擎与目标游戏引擎类型对应。上述技术方案,能够通过统一的系统跨平台实现应用程序的开发。

Description

开发系统、方法、装置、计算机设备及存储介质
技术领域
本发明涉及软件开发技术领域,特别是涉及开发系统、方法、装置、计算机设备及存储介质。
背景技术
随着网络技术的发展,出现了许多客户端开发平台、游戏开发平台等开发平台,这些开发平台能够按照一定的标准开发出对应的应用程序。目前,这些开发平台的标准不一致,导致某一平台开发的应用程序无法在另一平台运行。例如,目前的客户端开发平台和游戏引擎(游戏开发平台)相对独立,彼此间不能通用,游戏引擎本身实现的功能也不能实现多引擎的复用。
目前出现了通用的web技术,操作系统通常都提供webview功能,例如:游戏引擎导出的游戏可以通过webview技术实现部分简单的web功能访问。
在实现本发明过程中,发明人发现传统方式中至少存在如下问题:现有开发平台标准不一,各个运行平台或游戏引擎对通用web技术的支持只是基于系统本身的webview的支持,在性能和功能交互上不能满足统一性要求。因此,传统的技术中并没有能够支持多种运行平台和游戏引擎的开发系统。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
基于此,本发明实施例提供了开发系统、方法、装置、计算机设备及存储介质,能够通过统一的系统跨平台跨引擎开发应用程序。
本发明实施例的内容如下:
在一个实施例中,本发明实施例提供一种开发系统,包括:所述客户端开发组件,用于获取客户端生成文件,确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应;所述引擎插件开发组件,用于获取引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应。
在一个实施例中,还包括:处理组件;所述处理组件还用于:获取各个图元节点之间的父子连接关系;根据所述图元节点信息、所述渲染信息和所述父子连接关系得到所述图元节点树。
在一个实施例中,本发明实施例提供一种开发方法,所述方法包括:获取程序生成文件;若所述程序生成文件为客户端生成文件,则确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应;若所述程序生成文件为引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应。
在一个实施例中,本发明实施例提供一种开发装置,所述装置包括:程序文件获取模块,用于获取程序生成文件;客户端生成模块,用于若所述程序生成文件为客户端生成文件,则确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应;引擎插件生成模块,用于若所述程序生成文件为引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应。
在一个实施例中,本发明实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取程序生成文件;若所述程序生成文件为客户端生成文件,则确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应;若所述程序生成文件为引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应。
在一个实施例中,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取程序生成文件;若所述程序生成文件为客户端生成文件,则确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应;若所述程序生成文件为引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应。
上述技术方案中的一个技术方案具有如下优点或有益效果:该开发系统包括客户端开发组件和引擎插件开发组件,其中,客户端开发组件能够根据目标运行平台类型生成客户端程序,以在目标运行平台中运行,而游戏引擎开发组件能够根据目标游戏引擎类型生成引擎插件程序,以在目标游戏引擎中运行并生成对应的游戏应用程序。通过一个开发系统能够针对多种运行平台开发出对应的客户端,还能针对多种游戏引擎开发出对应的引擎插件以实现游戏应用程序的开发,即通过一个开发系统实现了多平台、多引擎的应用程序开发。
附图说明
图1为一个实施例中开发系统的结构示意图;
图2为一个实施例中图元的界面显示图;
图3为一个实施例中图元节点树的结构示意图;
图4为一个实施例中创建工程的界面示意图;
图5为一个实施例中标签的显示层次关系图;
图6为一个实施例中生成并运行应用程序的流程示意图;
图7为一个实施例中生成并运行客户端的流程示意图;
图8为另一个实施例中生成并运行客户端的流程示意图;
图9为一个实施例中生成并运行引擎插件的流程示意图;
图10为另一个实施例中生成并运行引擎插件的流程示意图;
图11为一个实施例中生成渲染节点树的流程示意图;
图12为一个实施例中开发系统的运行流程示意图;
图13为一个实施例中开发方法的流程示意图;
图14为一个实施例中开发装置的结构框图;
图15为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明实施例提供一种开发系统、方法、装置、计算机设备及存储介质。以下分别进行详细说明。
在一个实施例中,如图1所示,提供一种开发系统100,该开发系统可以搭载在具体的计算机设备中,该计算机设备可以是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
进一步的,开发系统100包括客户端开发组件101和引擎插件开发组件102。客户端开发组件101指的是可以开发出客户端的组件,引擎插件开发组件102指的是可以开发出游戏引擎插件的组件。它们可以是开发系统中的两个独立程序段,也可以通过一个程序段来实现(例如:主程序段中包含有判断模块,用于判断当前时刻要进行的是客户端开发还是引擎插件开发,如果确定为开发客户端,则运行开发客户端的分支程序;而如果确定为开发引擎插件,则运行开发引擎插件的分支程序)。本发明实施例通过客户端开发组件和引擎插件开发组件的配合,既能开发出客户端程序(可以简称为客户端)又能开发出引擎插件程序(可以简称为引擎插件)。其中,客户端可以是各种能够与用户进行交互的应用程序,例如:社交APP、学习APP等;引擎插件可以指游戏应用程序开发过程中的中间结果,该中间结果需要通过游戏引擎进行高性能的渲染、物理引擎、3D渲染引擎等处理,以输出最终的游戏应用程序;当然,在某些情况下,引擎插件也可以作为独立的游戏应用程序在运行平台中运行。
这两个组件所实现的功能详细说明如下:
所述客户端开发组件101,用于获取客户端生成文件,确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应。
其中,客户端生成文件指的是用于生成客户端的程序文件,可以包含客户端运行、显示等必须的元素信息,该元素信息能够在至少两种运行平台中被识别并正常运行。运行平台指的是能够运行客户端的平台,可以搭载在各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备中,具体的,运行平台可以指Draw Device(绘图设备)、Mobile Native View(移动端本地视图)等。而运行平台类型可以根据运行平台上搭载的操作系统来确定,具体的,该运行平台类型可以包括:Windows、Macos、Linux、Android和IOS等类型。客户端开发组件可以根据用户输入的运行平台类型选择信息来确定目标运行平台类型。客户端开发组件根据客户端生成文件生成与目标运行平台类型对应的客户端程序,该客户端程序与目标运行平台类型对应,而该目标运行平台类型是在至少两个运行平台类型中选择得到,因此该开发系统可以开发出能够在至少两种运行平台中运行的客户端程序。
所述引擎插件开发组件102,用于获取引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应。
其中,引擎插件生成文件指的是用于生成引擎插件的程序文件,可以包含引擎插件运行、显示等必须的元素信息,该元素信息能够在至少两种游戏引擎中被识别并正常运行。游戏引擎指的是能够运行引擎插件并根据引擎插件输出游戏应用程序的平台,可以搭载在各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备中,具体的,游戏引擎可以搭载在UE4 Wigdet、U3D Canvas等中运行。游戏引擎类型可以指Unity 3D、Unreal Engine 4、Cocos 2D等类型。游戏引擎开发组件可以根据用户输入的游戏引擎类型选择信息来确定目标游戏引擎类型。引擎插件开发组件根据引擎插件生成文件生成与目标游戏引擎类型对应的引擎插件程序,该引擎插件程序与目标游戏引擎类型对应,而该目标游戏引擎类型是在至少两个游戏引擎类型中选择得到,因此该开发系统可以开发出能够在至少两种游戏引擎中运行的引擎插件程序。进一步的,该引擎插件程序可以合入到游戏引擎进行进一步处理,进而生成游戏应用程序。所生成的游戏应用程序可以在Windows、Macos、Linux、Android和IOS等类型的运行平台中运行。
在某些实施例中,客户端程序也可以合入到游戏引擎中进行进一步处理,以提高客户端程序的运行、显示性能。
上述实施例的开发系统,包括客户端开发组件和引擎插件开发组件,客户端开发组件能够根据目标运行平台类型生成客户端,该客户端可以在目标运行平台中运行,通过一个开发系统能够针对多种运行平台开发出对应的客户端,另一方面,游戏引擎开发组件能够根据目标游戏引擎类型生成引擎插件,该引擎插件在目标游戏引擎中运行并生成对应的游戏应用程序,通过一个开发系统能针对多种游戏引擎开发出对应的引擎插件以实现游戏应用程序的开发。因此,上述实施例通过一个开发系统实现了跨平台、跨引擎的应用程序开发。
在一个实施例中,还包括:处理组件;所述处理组件用于:获取编辑文本;所述编辑文本中包含有用于表征程序生成文件的标签信息;对所述编辑文本中的标签信息进行解析,得到图元节点树;根据所述图元节点树得到所述程序生成文件;所述程序生成文件包括所述客户端生成文件和所述引擎插件生成文件。
与客户端开发组件以及引擎插件开发组件类似,处理组件也可以是开发系统中的一个程序段,能够对编辑文本进行处理以得到程序生成文件,以便客户端开发组件和引擎插件开发组件分别生成对应的客户端和引擎插件。
其中,图元指的是基本图形元素。任何一个图形表达都是由若干不同的点、线、面图案或相同的图案循环组合而成的,而这些点、线、面图案即为基本图形元素。图元节点树可以用于表征客户端程序或引擎插件程序需要进行显示的图元(即待显示图元)。待显示图元可以指某个图元(例如:某个矩形框),也可以是多个图元(这些图元可以组成相应的图形)。当待显示图元中有多个图元时,可以将这些图元进行区分处理,即分别确定各个图元的图元节点树,由应用端对这些图元节点树进行整合,以完整地显示对应的待显示图元。需要说明的是,对待显示图元进行显示是跨平台跨引擎开发的其中一个示例,本发明实施例提供的开发系统能针对多平台开发出客户端并针对多引擎开发出游戏插件。
编辑文本指的是对图元信息进行描述的文本、脚本等,可以包括页面开发的文本信息。编辑文本可以通过编辑器得到(可以由编辑器自动生成,也可以由开发者在编辑器上编辑得到)。编辑器可以通过开发语言、开发工具等的结合实现编辑文本的编辑,其中,开发工具可以为HTML(HyperText Markup Language,超文本标记语言)、CSS(Cascading StyleSheets,层叠样式表,标准通用标记语言的一个应用)、XML(eXtensible Markup Language,可扩展标记语言,标准通用标记语言的一个子集)等页面开发语言,而开发语言可以采用javascript/lua等脚本开发语言。更进一步的,编辑文本中可以包含多方面的内容,例如包含CSS部分、HTML部分、脚本语言、资源文件(文字、图片等的来源,处理组件在接收到资源文件后,可以对资源文件进行处理,例如可以从对应的路径中获取对应的文字、图片等,可以对所获取的文字、图片等进行存储处理)等,以完整地表征待显示图元的相关信息。另一方面,编辑文本中的代码可以是按照从底层到顶层的顺序对待显示图元进行描述,待显示图元的示意图可以如图2所示,编辑文本对其进行描述可以按照以下顺序进行:先描述201再描述202,通过这样的方式,应用端(包括运行平台和游戏引擎)从上往下执行就可以逐步显示对应的图元,防止出现上层图元被遮挡的情况,进而实现图元的完整准确显示,实现客户端、引擎插件的正常运行。
其中,标签信息可以为对待显示图元的类型、属性、渲染信息、尺寸、数量、坐标等进行描述的脚本信息。一个编辑文本中可以包含有多个标签信息,各个标签信息可以解析得到对应的至少两个图元节点。
另外,图元节点树可以指能够完整表征待显示图元的框架信息,它能够表征待显示图元中线条、文字、颜色之间的配合关系。
程序生成文件可以指根据图元节点树得到的能够借助开发组件开发出应用程序的程序编码。进一步的,程序生成文件可以根据图元节点树以及应用程序运行所需的基本运行信息得到,以使对应的开发组件(包括客户端开发组件和引擎插件开发组件)获取到程序生成文件后,生成能够正常运行以及进行图元显示的应用程序。更进一步的,客户端生成文件和引擎插件生成文件的内容可以相同(可以包含客户端或引擎插件运行所需的基本元素信息),也可以不同(除了包含客户端或引擎插件运行所需的基本元素信息之外,还包含客户端或引擎插件在运行过程中的特征元素信息,如:引擎插件中特有的渲染信息)。处理组件得到程序生成文件之后,确定当前时刻是需要开发客户端还是引擎插件,调用客户端开发组件和引擎插件开发组件所对应的程序段,以生成对应的客户端或引擎插件。
上述实施例通过对编辑文本中的标签信息进行解析,能得到包含有待显示图元信息的图元节点树,进而根据该图元节点树得到程序生成文件,该待显示图元是可以在多种运行平台和多种游戏引擎中运行的,因此根据该程序生成文件得到的应用程序可以在多种运行平台和游戏引擎中运行,实现应用程序的跨平台和跨引擎开发。
在一个实施例中,所述处理组件还用于:对所述编辑文本中的标签信息进行解析,得到元素节点信息;确定所述元素节点信息中的图元节点信息以及各个图元节点对应的渲染信息;根据所述图元节点信息和所述渲染信息得到所述图元节点树。
元素节点信息可以指待显示图元的构成元素节点的信息,一个标签信息可以解析得到至少两个元素节点信息。在从编辑文本中解析出图元节点信息和对应的渲染信息后,处理组件可以根据图元节点信息和对应的渲染信息得到图元节点树。
其中,图元节点信息表征图元节点的内容,可以指类型、属性、尺寸、数量、坐标等信息,渲染信息表征图元节点的状态,可以指颜色、对比度、饱和度、灯光、阴影、表面纹理等。
具体的,某一张图片上的不同显示框可以认为是不同的元素节点,而这些显示框中可以显示文字、图片等内容,如图2所示的待显示图元(所显示的图元经过去色处理)中,包括201/202(其中202包括“Hello World”、小熊图片、“OK”矩形框以及“Cancel”矩形框)这几个元素节点,其中,201中填充有对应的颜色,202中填充有文字和图片。从图2中可以明显看出,元素节点信息可以进一步提取图元节点信息以及对应的渲染信息,例如,202可以提取到的图元节点信息为:字符内容“Hello World”,图片“小熊”,点击框“OK”和“Cancel”;渲染信息为:背景色“灰色”(图2中用斜直线表示)。这些图元节点信息和渲染信息能够表征图元的显示状态,因此,根据图元节点信息和渲染信息可以得到图元节点树。
进一步的,图元节点树中可以包括各个图元节点之间的位置关系、父子连接关系。进一步地,对于文字显示这一父节点,其可以包括字体颜色和字体大小这两个子节点,这三个节点之间的连接关系就称为父子连接关系,另外,父子连接关系还可以包括图元节点位置叠加关系、高度(其中,高度是树结构的术语,举个例子一个节点只有子节点,那么它的高度就是2,它的字节点高度就是1;如果它又子节点又有孙子节点,那么它的高度是3、它的子节点高度是2,它的孙子节点高度就是1;依次类推)、数量等。更进一步的,可以根据图元节点的父子连接关系确定图元节点树,结合了图元节点的父子连接关系的图元节点树,更清楚地表征图元节点之间的位置、叠加关系等。
因此,在一个实施例中,处理组件还用于:获取各个图元节点之间的父子连接关系;根据所述图元节点信息、所述渲染信息和所述父子连接关系得到所述图元节点树。
图元节点信息表征图元节点的内容,渲染信息表征图元节点的状态,父子连接关系表征图元节点之间的位置关系,因此,结合图元节点信息、渲染信息和父子连接关系能得到图元节点树,所得到的图元节点树充分表征了待显示图元的各方面的信息,能保证待显示图元的完整显示。
编辑文本举例如下:
Figure BDA0002385449660000081
如上述dialog标签通过html的解析标准就可以解析得到如图3所示的图元节点树,每个节点都是一个对应html的标签元素。进一步地,其对应显示图元可以如图2所示,从图2中也可以看出不同图元节点之间的位置关系,而这些位置关系是根据上述父子连接关系确定的。
本实施例提供的开发系统,处理组件对所获取的编辑文本中的标签信息进行解析,得到图元节点树,根据图元节点树得到程序生成文件,以便生成对应的客户端程序和引擎插件程序,该图元节点树中包含有图元节点信息以及各个图元节点对应的渲染信息,而图元节点信息和渲染信息在各种类型的应用端(包括运行平台和游戏引擎)中都能够被运行,因此可以使应用端根据图元节点信息和渲染信息运行对应的应用程序,通过一个系统就能实现对多种运行平台和多种游戏引擎的支持,实现应用程序的跨平台跨引擎开发。
在一个实施例中,所述编辑文本由编辑器使用超文本标记语言编辑得到;所述处理组件还用于:根据超文本标记语言的规则,从所述编辑文本中确定标签信息;对所述标签信息进行解析,得到所述元素节点信息;根据超文本标记语言的规则,确定所述元素节点信息中的图元节点信息以及各个图元节点对应的渲染信息。
其中,超文本标记语言可以指HTML等,而编辑器可以通过VScode(微软发布的一款编辑器)插件开发,开发者可以在VScode的编辑器上开发调试自己的客户端功能,具体的,在VScode中创建新的工程(可以是对图元进行新的操作的工程)的界面图可以如图4所示,编辑者通过图4所示的界面可以添加新工程所在路径并确定新工程名称。通过图4所示的界面创建的工程之后,编辑者可以通过对应的编辑工具生成对应的编辑文本并对编辑文本进行调试(也可以直接调用已生成的编辑文本,然后对调用的编辑文本进行调试),例如:对图元的渲染信息、尺寸、数量进行调整等。其中,对渲染信息进行调整可以指着色,去色,调整灯光效果、阴影效果、表面纹理效果等。另外,编辑器可以配置在开发系统中,也可以独立于开发系统。
对标签信息进行解析得到待显示图元中包含的元素节点信息也可以依照超文本标记语言的规则(也可以理解为html标准)得到。
HTML编辑文本举例如下:
<div style=“font-size:48pt;color:red;”>Hello</div>
<img width=“256px”height=“256px”src=“./images/tenor.gif”/>
上述编辑文本中包含有两个标签信息,分别为:div和img,这两个标签可以解析得到对应的元素节点信息。更进一步地,可以从元素节点信息中确定元素节点中包含的图元节点以及对应的渲染信息,具体的,根据div元素节点生成的图元节点包含2个图元信息:颜色为红色的backgroud-color和字符为“Hello”的content;根据img元素节点生成的图元节点包含1个图元信息:高宽为256像素的图片的content;得到这样的图元信息后,就可以知道每个节点的内容和渲染的方式了,以便对待显示图元进行显示。进一步地,可以由元素节点的事件驱动来更新图元节点对应的渲染数据(即前述渲染信息),并提供渲染指令(可以用于触发渲染节点树的生成)和渲染数据。
本实施例提供的开发系统,处理组件通过超文本标记语言编辑得到编辑文本,进而按照超文本标记语言的规则对标签信息进行解析,解析过程简单,能准确获取到图元节点的具体信息,同时,通过HTML语言得到的图元节点树在操作系统、游戏引擎中都能正常运行,能有效实现跨平台跨引擎的应用程序开发。
在一些实施例中,元素节点也可以进行细分,例如,可以包括元素子节点,元素节点信息可以根据其对应的元素子节点信息综合分析得到。元素节点与元素子节点也可以构成元素节点树,进一步地,该元素节点树可以用于表征整个树的父子关系、高度、数量等,更进一步地,元素节点树作为开发系统框架内部的一个逻辑节点树,通过节点事件来维护整个树的父子关系、高度和数量,也是作为外部渲染的一个依赖。
在一个实施例中,对于要求更高的处理组件或者应用端,在从元素节点中提取图元节点之后,还可以进一步从图元节点中提取信息,即细化到更小的粒度,例如提取图元节点的线、色块,这样能实现更细粒度的渲染和显示,提高图元显示的效果,实现精细显示的目的。
在HTML的标准中,一个标签的显示层次关系如图5所示,从图5可以看出,显示的图元可以分成多个图层,从左向右的遍历可以理解为底层图层到顶层图层的遍历,各个图层中包含有不同的图层属性,这些图层属性包括:背景颜色、页边空白、背景图片、边框、填充区域、内容,这些内容叠加在一起构成完成的图元,从这些图形属性中中可以分离出文字、图形等图元节点信息。
进一步的,在一个实施例中,所述客户端开发组件,还用于:根据所述客户端生成文件的图元节点树确定图元属性;从所述图元属性中分离出所述图元节点信息,根据所分理出的图元节点信息生成客户端程序。其中,所述图元属性包括以下至少一项:背景颜色、背景图片、边框和文本内容(可以参见图2),分离出的图元节点信息包括以下至少一项:图片、文字和显示框。
其中,显示框可以为矩形、圆形、三角形、不规则形态等,本发明实施例对显示框的形状不做限制,另外,显示框可以由有色线条组成,也可以由无色线条组成(用户在界面上可以看到显示框中的文字、图片等,但看不到其边框)。
在另一个实施例中,所述引擎插件开发组件,还用于:根据所述生成文件的图元节点树确定图元属性;从所述图元属性中分离出所述图元节点信息,根据所分理出的图元节点信息生成引擎插件程序。
上述实施例中,开发组件从程序生成文件中逐步分离出图元节点信息,能够据此确定应用程序各个图元的构成情况,进而可以生成对应的应用程序,同时,该图元节点信息在各种平台和游戏引擎中都可以正常运行,因此所生成的应用程序也能在多平台多引擎中运行,实现应用程序的跨平台跨引擎开发。
进一步的,处理组件可以结合应用端的渲染特征信息对图元节点树进行处理,得到对应的渲染节点树。具体如下:
在一个实施例中,所述处理组件还用于:获取所述应用端的渲染特征信息;根据所述图元节点树和所述渲染特征信息得到对应的渲染节点树。
其中,应用端的渲染特征信息可以指应用端在对图元进行渲染时其表现出来的特性,可以是显卡规格、显示屏分辨率等等。处理组件生成的图元节点树可以认为是抽象的图元节点树,即并未进行实体化,而结合了应用端的渲染特征信息的渲染节点树实现了对图元节点树的实体化,可以认为是实体渲染树,应用端可以直接对实体渲染树进行处理,进而显示对应的待显示图元。另外,图元节点对应的渲染信息也可以为实体渲染提供对应关系的渲染数据,即可以结合图元节点的渲染信息以及处理组件的渲染特征信息对图元节点树进行渲染,得到对应的渲染节点树。
在一些实施例中,可以确定各个应用端的运行特征,从运行特征中找出共性特征,进而根据该共性特征确定渲染特征信息,以得到在各个应用端中都能够运行的渲染节点树,这样的处理方式就不再需要对不同应用端进行区别处理,从应用端中导出的渲染节点树可以直接应用在各个运行平台和游戏引擎上,可以极大地提高图元跨平台跨引擎显示的效率。
具体的,在一个实施例中,所述处理组件还用于:获取所述目标运行平台的平台渲染特征信息;根据所述图元节点树和所述平台渲染特征信息得到平台渲染节点树,根据所述平台渲染节点树得到所述客户端生成文件。
在另一个实施例中,所述处理组件还用于:获取所述目标游戏引擎的引擎渲染特征信息;根据所述图元节点树和所述引擎渲染特征信息得到引擎渲染节点树,根据所述引擎渲染节点树得到所述引擎插件生成文件。
其中,平台渲染特征信息和引擎渲染特征信息可以根据前述渲染特征信息的确定方法来确定。
上述实施例中,由于渲染节点树是结合运行平台或者游戏引擎本身的特征信息得到的,因此,运行平台和游戏引擎在接收到渲染节点树时可以无障碍地进行待显示图元的显示,保证应用程序的跨平台跨引擎运行。
在一个实施例中,所述引擎插件开发组件还用于:根据所述目标游戏引擎类型调用游戏引擎接口;通过所述游戏引擎接口将所述引擎插件程序合入所述目标游戏引擎中。
开发系统输出引擎插件程序的示意图可以如图6右侧所示,开发系统生成引擎插件程序,通过调用游戏引擎接口将引擎插件程序合入到目标游戏引擎中,由目标游戏引擎根据引擎插件程序生成对应的游戏应用程序(可以是exe、app、ipa、apk等游戏应用)。
进一步的,以在游戏引擎中显示图元为例,开发系统和游戏引擎之间在显示图元过程的配合过程可以如下:在一个实施例中,所述游戏引擎接口包括引擎交互显示接口(也称为引擎UI显示接口);所述处理组件,还用于根据所述引擎插件生成文件的图元节点树生成第一待显示图元;其中,所述第一待显示图元为所述引擎插件程序中的可视化图形元素;所述引擎插件开发组件,还用于根据所述目标游戏引擎类型调用所述引擎交互显示接口,通过所述引擎交互显示接口触发所述目标游戏引擎显示所述第一待显示图元。
不同游戏引擎对应的引擎UI显示接口可以不同,例如:Unity 3D游戏引擎对应UGUI/NGUI接口,Unreal Engine 4游戏引擎对应UMG/Slate接口,Cocos 2D游戏引擎对应UISprite接口。
进一步的,游戏引擎通过运行引擎插件从图元节点树中提取图元节点信息和渲染信息,进而完成待显示图元的显示,同时可以对引擎插件进行进一步处理,以生成对应的游戏应用程序。
从渲染节点到最终完成待显示图元的显示过程可以如图7所示,具体过程如下:
引擎插件开发组件接收到处理组件发送的引擎插件生成文件,对引擎插件生成文件中的渲染节点树进行解析得到对应的图元属性,从图元属性中分离出图元节点信息,根据图元节点信息控制游戏引擎在界面中显示对应的待显示图元(可以是Text/Image的形式)。
在传统技术中,由于不同开发平台的标准不同,所以在开发游戏时,需要通过不同的系统来实现。如图8所示,Unity 3D、Unreal Engine 4、Cocos 2D等游戏引擎生成App应用/游戏应用,进而通过Windows、Linux、Macos、IOS、Andorid等操作系统进行运行显示。这样的实现方式较为复杂,不能实现跨引擎的复用,例如:引擎本身实现的功能不能实现多引擎的复用;而如果需要复用相同的功能就需要在对应的引擎重新开发实现,这样大大增加了开发成本和维护成本,如果是多个引擎的话开发成本也是随着引擎数量的增加而直线上升。而本发明实施例通过上述渲染抽象过程,将html中的标签最后抽象为最终的文字、图片和矩形这样的基本图元信息,游戏引擎本身都会有自己的UI系统,也支持这样基本图元的显示接口,因此,只需要在对应的游戏引擎上调用对应的UI接口,就可以完成游戏引擎的显示;并且在游戏引擎端的实现完全是使用引擎自身的UI系统,这样就使得UI画面的渲染是完全符合引擎本身的性能要求,还能很好地达到不同UI交互的目的,完美地实现了功能跨引擎这一目的。
在一个实施例中,所述客户端开发组件还用于:根据所述目标运行平台类型调用客户端接口;通过所述客户端接口将所述客户端程序发送给所述目标运行平台。
开发系统输出客户端程序的示意图可以如图6左侧所示,开发系统生成客户端程序,通过调用客户端接口将客户端程序发送给目标运行平台,由目标运行平台对客户端程序进行运行。
进一步的,以在运行平台中显示图元为例,开发系统和运行平台之间在显示图元过程的配合过程可以如下:在一个实施例中,所述客户端接口包括图形绘制接口;所述处理组件,还用于根据所述客户端生成文件的图元节点树生成第二待显示图元;其中,所述第二待显示图元为所述客户端程序中的可视化图形元素;所述客户端开发组件,还用于调用所述图形绘制接口,通过所述图形绘制接口触发所述目标运行平台显示所述第二待显示图元。
不同运行平台对应的图形绘制接口可以不同,例如:Windows系统对应DirectX接口,Linux系统对应OpenGL接口,Macos系统对应Metal接口,IOS系统对应Metal接口,Andorid对应OpenGL/Vulkan接口。
从渲染节点到最终完成待显示图元的显示过程可以如图9所示,具体过程如下:
客户端开发组件接收到处理组件发送的渲染节点树,对渲染节点树进行解析得到对应的图元属性,从图元属性中分离出图元节点信息,根据分离出的图元节点信息控制目标运行平台在界面中显示对应的待显示图元(可以是Text/Image的形式)。
在传统技术中,由于不同开发平台的标准不同,所以在开发游戏时,需要通过不同的系统来实现。例如,如图10所示,通过开发语言和开发工具搭建客户端开发框架,通过该客户端开发框架生成exe、app、ipa、apk等App应用,进而通过Windows、Linux、Macos、IOS、Andorid等操作系统进行运行显示。这样的实现方式较为复杂,不能实现跨平台的复用。本实施例通过上述渲染抽象过程,将html中的标签最后抽象为最终的文字、图片和矩形这样的基本图元信息,而操作系统本身是提供这样基本图元的绘制接口,因此只需要在对应的平台调用对应的渲染接口就可以完成html的最终显示。
在一个实施例中,所述处理组件还用于:若通过事件加载接口获取到节点事件信息,获取与所述节点事件信息对应的编辑文本;其中,所述节点事件为对图元进行状态调整的事件。
事件加载接口可以与外部终端(例如鼠标等)连接,用于接收外部终端发送的节点事件信息。当然,该节点事件信息也可以通过开发系统所在电子设备的触控屏等获取。
节点事件可以指对图元进行操作的事件,它直接影响了元素节点树的结构;事件分为窗口创建、布局更新、动画系统、输入事件;事件影响结果分为创建(例如:打开、新建窗口)、更新(例如:刷新窗口)和销毁(例如:关闭窗口)。其中,窗口创建可以指新建一个用于显示的窗口;布局更新可以指对显示窗口进行更新或刷新,例如,替换其中的图片、文字等;动画系统通过时间来改变某些属性,这些属性可以是大小、位置、颜色等,比如经过1秒从A位置移动到B位置;输入事件就是用户的输入操作。进一步地,节点事件可以由用户触发得到,例如,用户双击某个图标则事件加载接口获取到窗口新建这一节点事件。进一步地,节点事件信息可以理解一种触发信号,处理组件在获取到节点事件信息后被触发去获取编辑文本,进一步地,处理组件在通过事件加载接口获取到节点事件信息后,可以从编辑器中获取对应的编辑文本。
其中,对图元进行状态调整可以理解为对图元的位置、大小、颜色信息等进行更新的操作,替换其中的图片、文字的操作。
获取与节点事件信息对应的编辑文本的实现过程可以为:根据节点事件信息确定所要执行的目标操作,根据目标操作获取编辑文本。具体的,若节点事件为窗口创建,则获取构建新的图元的编辑文本,以便在新创建的窗口中显示该图元;若节点事件为布局更新,则获取对图元进行更新的编辑文本,以便在窗口中对图元信息进行更新;若节点事件为动画系统,则获取对图元进行属性改变的编辑文本,以便在窗口中调整所显示图元的属性;若节点事件为输入事件,根据输入事件的内容进行针对性响应。
具体的获取编辑文本并对图元进行状态调整的过程如下:处理组件接收到创建新窗口的节点事件信息时,从编辑器中获取与该节点事件信息对应的新的编辑文本,对该新的编辑文本进行解析得到图元节点树,根据窗口新建指令以及图元节点树生成程序生成文件,并将程序生成文件发送给客户端开发组件或者引擎插件开发组件;客户端开发组件或者引擎插件开发组件可以新建窗口并在新建的窗口中显示该新的编辑文本对应的图元。
上述实施例通过节点事件来触发图元节点树的生成以及图元的显示,能够有效提高与用户的交互,同时也提高应用程序开发的效率以及便捷性。
在一个实施例中,结合图11说明处理组件生成渲染节点树的整个过程,具体可以如下:
1、获取节点事件信息,该节点事件包括:窗口创建、布局更新、动画系统以及输入事件。
2、根据节点事件信息确定需要进行的目标操作,该目标操作包括以下至少一项:创建、更新和销毁。
3、根据目标操作从编辑器中获取编辑文本,对编辑文本进行解析,得到其中包含的元素节点和元素子节点,并构建对应的元素节点树。其中,元素节点(包括元素子节点)中可以包含元素节点的类型、属性、节点信息以及图元节点信息。
4、进一步解析元素节点树中的图元节点信息可以得到对应的图元节点,并构建对应的图元节点树。其中,图元节点中可以包含以下信息:颜色、坐标、图元信息以及渲染矩阵(渲染矩阵中包含图元节点对应的渲染信息)。
5、获取应用端的渲染特征信息,根据渲染特征信息对图元节点树进行处理,得到对应的渲染节点树。
上述实施例通过逐步解析的方法确定渲染节点树,根据该渲染节点树生成的客户端或引擎插件能够在对应的应用端中直接运行,进而实现跨平台跨引擎的应用程序开发。
为了更好地理解上述系统,参照图12,以下详细阐述一个本发明开发系统的应用实例。
从上层开发环境到底层的实现,可以将系统分为三个层级,分别是前端实现、框架核心和客户端实现。
1、前端实现层:
前端实现为开发者使用的,采用web技术的标准,使用html、css的页面开发,使用javascript/lua作为脚本开发语言,生成html文件(即前述编辑文本)。一个html文件包含css、html、脚本语言和资源文件的相关信息;在编辑器中完成编辑后,通过框架的加载接口就可以提供给核心框架进行解析处理。
2、框架核心层:
框架核心层负责对前端实现的html(包括css部分)的解析、脚本解析和资源管理,并通过解析后构造抽象的图元渲染树(即前述图元节点树)、事件管理和消息管理接口,用于与目标运行平台或目标游戏引擎进行交互。
3、客户端实现层:
客户端可以通过任何目标运行平台或目标游戏引擎的实现,通过框架核心抽象的渲染树、事件和消息信息进行不同平台和引擎的实现,达到跨平台跨引擎并且实现功能统一性的目的;渲染树中的节点包含通用的渲染信息,各个平台引擎可结合自身的渲染特性进行相关实现即可;事件管理器中负责接收和反馈输入事件、html事件、原生事件等事件信息,通过框架核心的转换完成与前端实现的事件交互。通过抽象的图元节点树提供的渲染数据和渲染指令,结合平台自身的渲染特性完成具体的渲染;操作系统和游戏引擎按照自身的渲染环境,执行不同的绘制显示流程。
目前市面上还没有支持跨平台跨引擎开发的系统,在不同的游戏中有很多客户端功能是相同的;本发明为跨平台跨引擎的功能复用提供了很好的解决方案,在这样的功能复用上大大提高了开发效率,同时降低了开发的人力和时间成本,开发人员不需要过多地去关注跨平台跨引擎的技术细节,而可以更多地关注在功能实现上;在满足跨平台跨引擎的同时也保持了与游戏引擎的一致性,在满足功能的同时完全满足性能的需求。
在一个实施例中,如图13所示,提供一种开发方法,可以以程序编码的形式运行在前述开发系统中,该方法包括以下步骤:
S1301、获取程序生成文件。
S1302、若所述程序生成文件为客户端生成文件,则确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应。
S1303、若所述程序生成文件为引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应。
上述实施例提供的开发方法,能够根据目标运行平台类型生成客户端,该客户端可以在目标运行平台中运行,通过一个开发系统能够针对多种运行平台开发出对应的客户端,另一方面,能够根据目标游戏引擎类型生成引擎插件,该引擎插件在目标游戏引擎中运行并生成对应的游戏应用程序,能针对多种游戏引擎开发出对应的引擎插件以实现游戏应用程序的开发。因此,上述实施例实现了跨平台、跨引擎的应用程序开发。
应该理解的是,虽然图13的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图13的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于与上述实施例中的开发方法相同的思想,本发明还提供开发装置,该装置可用于执行上述开发方法。为了便于说明,开发装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在一个实施例中,如图14所示,提供一种开发装置1400,包括程序文件获取模块1401、客户端生成模块1402和引擎插件生成模块1403,详细说明如下:
程序文件获取模块1401,用于获取程序生成文件。
客户端生成模块1402,用于若所述程序生成文件为客户端生成文件,则确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应。
引擎插件生成模块1403,用于若所述程序生成文件为引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应。
本实施例提供的开发装置,能够根据目标运行平台类型生成客户端,该客户端可以在目标运行平台中运行,通过一个开发系统能够针对多种运行平台开发出对应的客户端,另一方面,能够根据目标游戏引擎类型生成引擎插件,该引擎插件在目标游戏引擎中运行并生成对应的游戏应用程序,能针对多种游戏引擎开发出对应的引擎插件以实现游戏应用程序的开发。因此,上述实施例实现了跨平台、跨引擎的应用程序开发。
关于开发方法和开发装置的具体限定可以参见上文中对于开发系统的限定,在此不再赘述。另外,上述开发装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力,处理器中可以搭载操作系统或者游戏引擎。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时可以实现一种开发方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。计算机设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。进一步地,该计算机设备中可以包含有开发系统和应用端。开发系统可以是具有应用程序(例如:客户端、游戏软件等)开发功能的平台,应用端可以是能够搭载操作系统、游戏引擎等的平台以便运行对应的客户端、游戏软件等。在某些实施例中,应用端也可以独立于该计算机设备。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置
在一个实施例中,本申请提供的开发装置可以实现为一种计算机程序的形式,计算机程序可在如图15所示的计算机设备上运行。计算机设备的存储器中可存储组成该开发装置的各个程序模块,比如,图14所示的程序文件获取模块1401、客户端生成模块1402和引擎插件生成模块1403。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的开发方法中的步骤。
例如,图15所示的计算机设备可以通过如图14所示的开发装置中的程序文件获取模块1401执行S1301,可通过客户端生成模块1402执行S1302,可通过引擎插件生成模块1403执行S1303。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (16)

1.一种开发系统,其特征在于,包括:客户端开发组件和引擎插件开发组件;
所述客户端开发组件,用于获取客户端生成文件,确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应;所述客户端生成文件包含能够在至少两种运行平台中被识别并正常运行的元素信息;
所述引擎插件开发组件,用于获取引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应;所述引擎插件生成文件包含能够在至少两种游戏引擎中被识别并正常运行的元素信息。
2.根据权利要求1所述的系统,其特征在于,还包括:处理组件;所述处理组件用于:
获取编辑文本;所述编辑文本中包含有用于表征程序生成文件的标签信息;对所述编辑文本中的标签信息进行解析,得到图元节点树;根据所述图元节点树得到所述程序生成文件;所述程序生成文件包括所述客户端生成文件和所述引擎插件生成文件。
3.根据权利要求2所述的系统,其特征在于,所述引擎插件开发组件还用于:
根据所述目标游戏引擎类型调用游戏引擎接口;通过所述游戏引擎接口将所述引擎插件程序合入所述目标游戏引擎中。
4.根据权利要求3所述的系统,其特征在于,所述游戏引擎接口包括引擎交互显示接口;
所述处理组件,还用于根据所述引擎插件生成文件的图元节点树生成第一待显示图元;其中,所述第一待显示图元为所述引擎插件程序中的可视化图形元素;
所述引擎插件开发组件,还用于根据所述目标游戏引擎类型调用所述引擎交互显示接口,通过所述引擎交互显示接口触发所述目标游戏引擎显示所述第一待显示图元。
5.根据权利要求2所述的系统,其特征在于,所述客户端开发组件还用于:
根据所述目标运行平台类型调用客户端接口;通过所述客户端接口将所述客户端程序发送给所述目标运行平台。
6.根据权利要求5所述的系统,其特征在于,所述客户端接口包括图形绘制接口;
所述处理组件,还用于根据所述客户端生成文件的图元节点树生成第二待显示图元;其中,所述第二待显示图元为所述客户端程序中的可视化图形元素;
所述客户端开发组件,还用于调用所述图形绘制接口,通过所述图形绘制接口触发所述目标运行平台显示所述第二待显示图元。
7.根据权利要求2所述的系统,其特征在于,所述处理组件还用于:
对所述编辑文本中的标签信息进行解析,得到元素节点信息;
确定所述元素节点信息中的图元节点信息以及各个图元节点对应的渲染信息;
根据所述图元节点信息和所述渲染信息得到所述图元节点树。
8.根据权利要求7所述的系统,其特征在于,所述编辑文本由编辑器使用超文本标记语言编辑得到;
所述处理组件还用于:
根据超文本标记语言的规则,从所述编辑文本中确定标签信息;
对所述标签信息进行解析,得到所述元素节点信息;
根据超文本标记语言的规则,确定所述元素节点信息中的图元节点信息以及各个图元节点对应的渲染信息。
9.根据权利要求7所述的系统,其特征在于,
所述客户端开发组件,还用于:根据所述客户端生成文件的图元节点树确定图元属性;从所述图元属性中分离出所述图元节点信息,根据所分理出的图元节点信息生成客户端程序;
和/或,
所述引擎插件开发组件,还用于:根据所述生成文件的图元节点树确定图元属性;从所述图元属性中分离出所述图元节点信息,根据所分理出的图元节点信息生成引擎插件程序;
其中,所述图元属性包括以下至少一项:背景颜色、背景图片、边框和文本内容,分离出的图元节点信息包括以下至少一项:图片、文字和显示框。
10.根据权利要求7所述的系统,其特征在于,所述处理组件还用于:
获取各个图元节点之间的父子连接关系;根据所述图元节点信息、所述渲染信息和所述父子连接关系得到所述图元节点树。
11.根据权利要求2至9任一项所述的系统,其特征在于,所述处理组件还用于:
获取所述目标运行平台的平台渲染特征信息;
根据所述图元节点树和所述平台渲染特征信息得到平台渲染节点树,根据所述平台渲染节点树得到所述客户端生成文件;
和/或,
获取所述目标游戏引擎的引擎渲染特征信息;
根据所述图元节点树和所述引擎渲染特征信息得到引擎渲染节点树,根据所述引擎渲染节点树得到所述引擎插件生成文件。
12.根据权利要求2至9任一项所述的系统,其特征在于,所述处理组件还用于:
若通过事件加载接口获取到节点事件信息,获取与所述节点事件信息对应的编辑文本;其中,所述节点事件为对图元进行状态调整的事件。
13.一种开发方法,其特征在于,所述方法包括:
获取程序生成文件;
若所述程序生成文件为客户端生成文件,则确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应;所述客户端生成文件包含能够在至少两种运行平台中被识别并正常运行的元素信息;
若所述程序生成文件为引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应;所述引擎插件生成文件包含能够在至少两种游戏引擎中被识别并正常运行的元素信息。
14.一种开发装置,其特征在于,所述装置包括:
程序文件获取模块,用于获取程序生成文件;
客户端生成模块,用于若所述程序生成文件为客户端生成文件,则确定目标运行平台类型,所述目标运行平台类型从至少两个运行平台类型中选择得到;根据所述客户端生成文件和所述目标运行平台类型生成客户端程序;所述客户端程序用于在目标运行平台中运行;所述目标运行平台与所述目标运行平台类型对应;所述客户端生成文件包含能够在至少两种运行平台中被识别并正常运行的元素信息;
引擎插件生成模块,用于若所述程序生成文件为引擎插件生成文件,确定目标游戏引擎类型,所述目标游戏引擎类型从至少两个游戏引擎类型中选择得到;根据所述引擎插件生成文件和所述目标游戏引擎类型生成引擎插件程序;所述引擎插件程序用于触发目标游戏引擎生成对应的游戏应用程序;所述目标游戏引擎与所述目标游戏引擎类型对应;所述引擎插件生成文件包含能够在至少两种游戏引擎中被识别并正常运行的元素信息。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求13所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求13所述的方法的步骤。
CN202010097018.3A 2020-02-17 2020-02-17 开发系统、方法、装置、计算机设备及存储介质 Active CN111324381B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010097018.3A CN111324381B (zh) 2020-02-17 2020-02-17 开发系统、方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010097018.3A CN111324381B (zh) 2020-02-17 2020-02-17 开发系统、方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111324381A CN111324381A (zh) 2020-06-23
CN111324381B true CN111324381B (zh) 2021-06-15

Family

ID=71163510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010097018.3A Active CN111324381B (zh) 2020-02-17 2020-02-17 开发系统、方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111324381B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112704872A (zh) * 2021-01-08 2021-04-27 完美世界(北京)软件科技发展有限公司 一种场景数据的同步方法、装置、系统及存储介质
CN113778386A (zh) * 2021-09-16 2021-12-10 Oppo广东移动通信有限公司 组件生成方法、装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262534A (zh) * 2011-07-12 2011-11-30 红石娱动网络科技(北京)有限公司 基于互联网b/s结构的计算机网络游戏开发系统及方法
CN105005473A (zh) * 2015-06-29 2015-10-28 乐道互动(天津)科技有限公司 一种用于开发3d游戏的游戏引擎系统
CN108132808A (zh) * 2016-12-01 2018-06-08 北京金山云网络技术有限公司 一种渠道包生成方法及装置
CN110134378A (zh) * 2018-02-08 2019-08-16 腾讯科技(深圳)有限公司 应用程序创建方法及装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130271476A1 (en) * 2012-04-17 2013-10-17 Gamesalad, Inc. Methods and Systems Related to Template Code Generator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262534A (zh) * 2011-07-12 2011-11-30 红石娱动网络科技(北京)有限公司 基于互联网b/s结构的计算机网络游戏开发系统及方法
CN105005473A (zh) * 2015-06-29 2015-10-28 乐道互动(天津)科技有限公司 一种用于开发3d游戏的游戏引擎系统
CN108132808A (zh) * 2016-12-01 2018-06-08 北京金山云网络技术有限公司 一种渠道包生成方法及装置
CN110134378A (zh) * 2018-02-08 2019-08-16 腾讯科技(深圳)有限公司 应用程序创建方法及装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于Android平台手机游戏引擎的设计与实现";黎忠文等;《计算机工程与设计》;20140116;第35卷(第1期);第119-124页 *

Also Published As

Publication number Publication date
CN111324381A (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
CN111552473B (zh) 一种应用程序的处理方法、装置及设备
WO2022116759A1 (zh) 图像渲染方法、装置、计算机设备和存储介质
CN107832108B (zh) 3D canvas网页元素的渲染方法、装置及电子设备
CN102221993B (zh) 复杂用户界面状态变更的声明性定义
US11216253B2 (en) Application prototyping tool
JP5209051B2 (ja) データシステム及び方法
US20150286739A1 (en) Html5-protocol-based webpage presentation method and device
CN105096368B (zh) 三维对象处理方法和相关装置
WO2019228013A1 (zh) 在3d模型上展示富文本的方法、装置及设备
US11429558B2 (en) Mapping tests of spreadsheets in server-browser environments
CN111324381B (zh) 开发系统、方法、装置、计算机设备及存储介质
US8345045B2 (en) Shader-based extensions for a declarative presentation framework
CN112272109A (zh) 一种网络拓扑图生成方法、设备及系统
CN112052416A (zh) 用于展示图像元素的方法和装置
CN113411664A (zh) 基于子应用的视频处理方法、装置和计算机设备
CN113018870A (zh) 一种数据处理方法、装置及计算机可读存储介质
US11429557B2 (en) Templatization of spreadsheets in browser environments
Sons et al. xml3d. js: Architecture of a Polyfill Implementation of XML3D
CN114089982A (zh) 前端页面生成方法、装置、设备和介质
CN111694723B (zh) 产品在h5下运行时对节点及组件编辑的方法、存储介质
Alizadeh Design and Implementation of a Web-Based Editor Optimized for Online Gambling Games
CN115586898A (zh) 一种用户交互ui界面的生成方法及装置
CN115469870A (zh) 文件在线处理的方法、装置、电子设备及介质
CN116302026A (zh) 应用程序智能刷新方法、装置、计算机设备和存储介质
CN117014689A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024217

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant