CN114100142A - 游戏资源的处理方法及装置 - Google Patents
游戏资源的处理方法及装置 Download PDFInfo
- Publication number
- CN114100142A CN114100142A CN202111334843.1A CN202111334843A CN114100142A CN 114100142 A CN114100142 A CN 114100142A CN 202111334843 A CN202111334843 A CN 202111334843A CN 114100142 A CN114100142 A CN 114100142A
- Authority
- CN
- China
- Prior art keywords
- preform
- nested
- component
- base
- game
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 37
- 230000009466 transformation Effects 0.000 claims abstract description 174
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 32
- 230000000712 assembly Effects 0.000 claims abstract description 23
- 238000000429 assembly Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000005516 engineering process Methods 0.000 abstract description 4
- 239000000306 component Substances 0.000 description 254
- 230000004048 modification Effects 0.000 description 27
- 238000012986 modification Methods 0.000 description 27
- 230000015654 memory Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 19
- 238000004590 computer program Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating 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
- A63F13/63—Generating 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 by the player, e.g. authoring using a level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
- G06F8/355—Round-trip engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种游戏资源的处理方法及装置;涉及云技术,方法包括:根据游戏对象的初始变换组件,构建一个基础预制件和至少一个嵌套预制件;将所述一个基础预制件和所述至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,得到目标组件属性项,其中,所述目标组件属性项对应的属性名称和数据值均相同;响应于针对所述基础预制件包括的初始变换组件的组件更新操作,对所述基础预制件包括的初始变换组件进行更新,得到更新变换组件;将所述嵌套预制件包括的初始变换组件中对应所述目标组件属性项的数据值,更新为所述更新变换组件中对应所述目标组件属性项的数据值。通过本申请,能够提高预制件的更新效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种游戏资源的处理方法及装置。
背景技术
随着游戏引擎技术的发展,游戏引擎为游戏设计者提供编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式,在游戏设计的过程中,预制件扮演着至关重要的角色,预制件是开发游戏的过程中可复用的资源模板,用于加速游戏场景的搭建。对于预制件的更新,相关技术在通过游戏引擎实现的过程中代码复杂度较高,严重影响预制件的更新效率。
对于如何提高预制件的更新效率,相关技术尚无有效解决方案。
发明内容
本申请实施例提供一种游戏资源的处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提高预制件的更新效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种游戏资源的处理方法,包括:
根据游戏对象的初始变换组件,构建一个基础预制件和至少一个嵌套预制件;
将所述一个基础预制件和所述至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,得到目标组件属性项,其中,所述目标组件属性项对应的属性名称和数据值均相同;
响应于针对所述基础预制件包括的初始变换组件的组件更新操作,对所述基础预制件包括的初始变换组件进行更新,得到更新变换组件;
将所述嵌套预制件包括的初始变换组件中对应所述目标组件属性项的数据值,更新为所述更新变换组件中对应所述目标组件属性项的数据值。
本申请实施例提供一种游戏资源的处理装置,包括:
构建模块,用于根据游戏对象的初始变换组件,构建一个基础预制件和至少一个嵌套预制件;
对比模块,用于将所述一个基础预制件和所述至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,得到目标组件属性项,其中,所述目标组件属性项对应的属性名称和数据值均相同;
第一更新模块,用于响应于针对所述基础预制件包括的初始变换组件的组件更新操作,对所述基础预制件包括的初始变换组件进行更新,得到更新变换组件;
第二更新模块,用于将所述嵌套预制件包括的初始变换组件中对应所述目标组件属性项的数据值,更新为所述更新变换组件中对应所述目标组件属性项的数据值。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的游戏资源的处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的游戏资源的处理方法。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的游戏资源的处理方法。
本申请实施例具有以下有益效果:
由于基础预制件和嵌套预制件所包括的初始变换组件中包括属性名称和数据值均相同的目标组件属性项,通过构建基础预制件和嵌套预制件,从而在对基础预制件中的初始变换组件进行更新后,可以将嵌套预制件包括的初始变换组件中对应目标组件属性项的数据值进行同步更新,实现了基础预制件和嵌套预制件的同步更新,有效节省了嵌套预制件的更新时长,从而有效提高了预制件的更新效率。
附图说明
图1是本申请实施例提供的游戏资源的处理系统架构的结构示意图;
图2是本申请实施例提供的游戏资源的处理装置的结构示意图;
图3A-图3E是本申请实施例提供的游戏资源的处理方法的流程示意图;
图4A-图4F是本申请实施例提供的游戏资源的处理方法的原理示意图;
图5A-图5J是本申请实施例提供的游戏资源的处理方法的原理示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)游戏引擎:是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用从头开始。大部分都支持多种操作平台,如Linux、Mac OS X、微软Windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
2)游戏对象(Game Object):是所有组件(Component)的容器,游戏中的所有对象本质上都是游戏对象,游戏对象自身不会向游戏添加任何特性,而是容纳实现实际功能的组件(Component)的容器。
3)预制件(Prefab):又称游戏预制件,是一种游戏资源类型,是存储在项目视图中的一种可重复使用的游戏对象。由一个或者多个游戏对象或实体组成的可复用资源模板,用于加速游戏场景搭建。
4)预制件实例(Prefab Instance):在游戏编辑器中使用预制件快速创建出来的游戏对象。
5)基础预制件:不包含预制件实例的预制件。
6)嵌套预制件:包含预制件实例的预制件,嵌套预制件以基础预制件为基础,与基础预制件之间具有嵌套关系,嵌套预制件中包括基础预制件的预制件实例。
7)游戏引擎编辑器:包括场景编辑器、粒子特效编辑器、模型浏览器、动画编辑器和材质编辑器等。其中,场景编辑器,用于负责摆放模型物体、光源、摄像机等;粒子特效编辑器,用于制作各种游戏特效;动画编辑器,用于编辑动画功能,可以触发游戏逻辑中的某些事件;材质编辑器,用于编辑模型效果。
8)游戏:又称电子游戏(Video Games),是指所有依托于电子设备平台而运行的交互游戏。根据运行媒介的不同分为五类:主机游戏(狭义的,此处专指家用机游戏)、掌机游戏、街机游戏、电脑游戏及手机游戏。
在本申请实施例的实施过程中,申请人发现相关技术存在以下问题:在相关技术中,进行预制件的更新的常规流程可以参见图5B,在根据预制件的修改内容来更新预制件实例的组件属性时,相关技术的解决方案会维护预制件修改前后的差异信息,根据差异信息去更新所有受到该预制件影响的预制件实例。另外,在相关技术中,针对从预制件创建出来的预制件实例中部分属性已经被编辑器修改的情况,游戏引擎还会为这些预制件实例中的每个修改内容维护一个“不跟随预制件修改”的标签,在根据预制件的修改来更新预制件实例时,游戏引擎会根据所维护的标签来判断是否把预制件修改的差异信息传递给预制件实例。如此,相关技术通过为预制件实例中的每个修改内容维护一个“不跟随预制件修改”的标签以及维护预制件修改前后的差异信息的方式完成预制件的更新。
但是,在相关技术中,由于需要为预制件实例中的每个修改内容维护一个“不跟随预制件修改”的标签以及维护预制件修改前后的差异信息的方式完成预制件的更新,这样,游戏引擎在实现的过程中代码复杂度较高,从而导致在对预制件进行修改时,时间消耗较大,严重影响预制件的更新效率。对于如何提高预制件的更新效率,相关技术尚无有效解决方案。
本申请实施例提供一种游戏资源的处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够有效提高预制件的更新效率,下面说明本申请实施例提供的游戏资源的处理设备的示例性应用,本申请实施例提供的游戏资源的处理设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。
参见图1,图1是本申请实施例提供的游戏资源的处理系统100的一个可选的架构示意图,为实现游戏资源的处理的应用场景(例如,网络游戏开发的应用场景中,对游戏预制件进行更新),终端(示例性示出了终端400)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400用于供用户使用游戏客户端410,在图形界面410-1(示例性示出了图形界面410-1)显示。终端400和服务器200通过有线或者无线网络相互连接。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能语音交互设备、智能家电、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
在一些实施例中,终端400中的游戏客户端410响应于针对基础预制件的组件更新操作,通过网络300向服务器200发送更新请求,服务器200对基础预制件中的初始变换组件进行更新,并对嵌套预制件中的初始变换组件的目标组件属性项的数据进行同步更新。
参见图2,图2是本申请实施例提供的游戏资源的处理方法的服务器200的一种结构示意图,图2所示的服务器200包括:至少一个处理器410、存储器450、至少一个网络接口420。服务器200中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。
在一些实施例中,本申请实施例提供的游戏资源的处理装置可以采用软件方式实现,图2示出了存储在存储器450中的游戏资源的处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:构建模块4551、对比模块4552、第一更新模块4553、第二更新模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的游戏资源的处理方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如游戏APP。
将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的游戏资源的处理方法。
在一些实施例中,参见图3A,图3A是本申请实施例提供的游戏资源的处理方法的流程示意图,将结合图3A示出的步骤101至步骤104进行说明。
在步骤101中,根据游戏对象的初始变换组件,构建一个基础预制件和至少一个嵌套预制件。
在一些实施例中,游戏对象是游戏引擎中所有组件(Component)的容器,游戏中的所有对象本质上都是游戏对象,游戏对象自身不会向游戏添加任何特性,而是容纳实现实际功能的组件(Component)的容器。
在一些实施例中,游戏对象可以包括不同的初始变换组件,不同的初始变换组件的属性不同,例如,初始变换组件可以是转换型组件(Transform Comp onent),也可以是录像组件(Camera Component),其中,转换型组件中包括转换函数,转换函数用于对游戏对象的参数进行转换;录像组件用于对游戏进行画面录制。
在一些实施例中,预制件是一种游戏资源类型,预制件是存储在项目视图中的一种可重复使用的游戏对象,是由一个或者多个游戏对象组成的可复用资源模板,预制件可以用于加速游戏场景的搭建。预制件可以分为基础预制件和嵌套预制件。基础预制件可以是不包含预制件实例的预制件;嵌套预制件可以是包含预制件实例的预制件,嵌套预制件是以基础预制件为基础,和基础预制件之间具有嵌套关系的预制件。
作为示例,参见图4A,图4A本申请实施例提供的游戏资源的处理方法的原理示意图。基础预制件包括游戏对象1;嵌套预制件除了包括自身特有的游戏对象2以外,还包括基础预制件的预制件实例。而基础预制件的预制件实例是在游戏编辑器中使用基础预制件快速创建出来的游戏对象,也即基础预制件的预制件实例与基础预制件之间具有嵌套关系,而嵌套预制件包括基础预制件的预制件实例,所以,嵌套预制件和基础预制件之间具有嵌套关系。
作为示例,参见图4A,基础预制件中的游戏对象1包括初始变换组件1和初始变换组件2,例如,初始变换组件1可以为转换型组件,初始变换组件2可以为录像组件。
在一些实施例中,参见图3B,图3B是本申请实施例提供的游戏资源的处理方法的流程示意图,图3B示出的步骤101可以通过步骤1011至步骤1012实现,下面分别进行说明。
在步骤1011中,根据游戏对象的初始变换组件,构建一个基础预制件,并确定基础预制件的预制件实例。
作为示例,参见图4A,根据游戏对象1的初始变换组件1和初始变换组件2,构建一个基础预制件。并根据基础预制件,确定基础预制件的预制件实例。
在一些实施例中,基础预制件的预制件实例是在游戏编辑器中使用基础预制件快速创建出来的游戏对象,也即基础预制件的预制件实例与基础预制件之间具有嵌套关系。
在步骤1012中,根据基础预制件的预制件实例构建至少一个嵌套预制件。
在一些实施例中,所构建的至少一个嵌套预制件中需要包括基础预制件的预制件实例,才能保证基础预制件和嵌套预制件之间的嵌套关系。可以理解的是,嵌套预制件中除了包括基础预制件的预制件实例外,还可以包括嵌套预制件所特有的游戏对象(即除了该嵌套预制件以外,其他预制件中所没有的游戏对象)。
作为示例,参见图4A,根据基础预制件的预制件实例和游戏对象2构建一个嵌套预制件。
作为示例,参见图4B,图4B是本申请实施例提供的游戏资源的处理方法的原理示意图。根据基础预制件的预制件实例构建一个嵌套预制件。
在一些实施例中,当所构建的嵌套预制件的数量为多个(即至少两个)时,上述步骤1012可以通过以下方式实现:根据基础预制件的预制件实例,构建第1个嵌套预制件;基于第1个嵌套预制件,生成第1个嵌套预制件的预制件实例;迭代n执行以下处理:根据第1个嵌套预制件的预制件实例,构建第n个嵌套预制件,并生成第n个嵌套预制件的预制件实例,其中,n为整数变量,且取值范围为2≤n≤N-1,N为多个嵌套预制件的数量;根据第n个嵌套预制件的预制件实例,构建第n+1个嵌套预制件。
作为示例,参见图4C,图4C是本申请实施例提供的游戏资源的处理方法的原理示意图。根据基础预制件的预制件实例,构建第1个嵌套预制件;也可以根据基础预制件的预制件实例和游戏对象2构建第1个嵌套预制件。
作为示例,参见图4C,当n=2时,根据第1个嵌套预制件的预制件实例,构建第2个嵌套预制件,并生成第2个嵌套预制件的预制件实例,其中,第2个嵌套预制件的预制件实例包括第1个嵌套预制件的预制件实例和基础预制件的预制件实例。根据第2个嵌套预制件的预制件实例,构建第3个嵌套预制件,其中,第3个嵌套预制件包括第2个嵌套预制件的预制件实例。其中,当n=2时,N=3,即N-1=2,即多个嵌套预制件的数量为3。
作为示例,参见图4C,所构建的第n个嵌套预制件中包括第n-1个嵌套预制件的预制件实例,或者,所构建的第n个嵌套预制件中包括游戏对象n、第n-1个嵌套预制件的预制件实例。所构建的第n+1个嵌套预制件中包括第n个嵌套预制件的预制件实例,或者,所构建的第n+1个嵌套预制件中包括游戏对象n+1和第n个嵌套预制件的预制件实例。可以理解的是,第n+1个嵌套预制件和前n个嵌套预制件之间需要保持嵌套关系,所以,第n+1个嵌套预制件中需要包括第n个嵌套预制件的预制件实例,而第n个嵌套预制件的预制件实例包括基础预制件的预制件实例,所以,第n+1个嵌套预制件中需要包括第n个嵌套预制件的预制件实例和基础预制件的预制件实例。同时,第n+1个嵌套预制件中也可以包括第n+1个嵌套预制件所特有的游戏对象(即游戏对象n+1)。
如此,通过构建基础预制件,然后以基础预制件的预制件实例为基础,构建至少一个嵌套预制件,从而保证了基础预制件和嵌套预制件之间的嵌套关系,从而在后续更新基础预制件时,同步对嵌套预制件进行修改,提供了保障。
在一些实施例中,上述步骤101还可以通过以下方式实现:根据游戏对象的初始变换组件,通过预制件管理器构建一个基础预制件和至少一个嵌套预制件。
作为示例,参见图5D,图5D是本申请实施例提供的游戏资源的处理方法的原理示意图。可以通过游戏引擎的序列化系统(Serialize System)中的预制件管理器(PrefabManager)实现预制件的构建,即通过预制件管理器构建一个基础预制件和至少一个嵌套预制件。
在一些实施例中,在通过预制件管理器构建一个所述基础预制件和至少一个所述嵌套预制件之后,通过以下方式进行保存:将所构建的基础预制件和嵌套预制件保存至游戏引擎中;其中,游戏引擎中所保存的嵌套预制件中包括基础预制件的组件属性项的全部属性名称和部分数据值。
作为示例,参见图5D,将预制件管理器(Prefab Manager)所构建的基础预制件和嵌套预制件保存至游戏引擎中。
如此,通过将基础预制件和嵌套预制件保存至游戏引擎中,而且,游戏引擎中所保存的嵌套预制件中包括基础预制件的组件属性项的全部属性名称,从而保证了基础预制件和嵌套预制件之间的嵌套关系。同时,游戏引擎中所保存的嵌套预制件中包括基础预制件的组件属性项的部分数据值,从而保证了基础预制件和嵌套预制件有相同名称和相同数据值的组件属性项,便于后续在对基础预制件进行更新时,能够对嵌套预制件进行同步更新。
在步骤102中,将一个基础预制件和至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,得到目标组件属性项,其中,目标组件属性项对应的属性名称和数据值均相同。
作为示例,参见图4C,将一个基础预制件和至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,可以是将基础预制件所包括的初始变换组件和第1个嵌套预制件所包括的初始变换组件进行对比处理、将第1个嵌套预制件所包括的初始变换组件和第n个嵌套预制件所包括的初始变换组件进行对比处理等等。
在一些实施例中,对比处理可以是将两个初始变换组件中组件属性项的属性名称和数据值进行比对,判断两个初始变换组件的属性名称是否相同,对于相同属性名称的组件属性项,再判断属性名称下的数据值是否相同的处理过程。
在一些实施例中,参见图3B,图3B是本申请实施例提供的游戏资源的处理方法的流程示意图,当构建的所述嵌套预制件的数量为一个时,图3B示出的步骤102可以通过步骤1021至步骤1022实现,下面分别进行说明。
在步骤1021中,将基础预制件和嵌套预制件分别所包括的初始变换组件进行比对处理,得到名称和对应的数据值均相同的组件属性项。
作为示例,参见图4D,将基础预制件和嵌套预制件分别所包括的初始变换组件(Transform Component)进行比对处理,例如,将基础预制件和嵌套预制件分别所包括的初始变换组件中的Translation组件中的每一相同名称的组件属性项进行对比处理,其中,Translation的组件属性项的表达式可以为:
Translation(组件属性项1;组件属性项2;组件属性项3) (1)
作为示例,参见图4D,基础预制件的组件属性项1为x:-50,其中,x为组件属性项1的名称,-50为组件属性项1的数据值;嵌套预制件的组件属性项1为x:-8,其中,x为组件属性项1的名称,-8为组件属性项1的数据值。将基础预制件的组件属性项1和嵌套预制件的组件属性项1进行对比处理后,可知,基础预制件的组件属性项1和嵌套预制件的组件属性项1的名称相同,均为x;但基础预制件的组件属性项1和嵌套预制件的组件属性项1的数据值不同,基础预制件的组件属性项1的数据值为-50,嵌套预制件的组件属性项1的数据值为-8。因此,基础预制件的组件属性项1和嵌套预制件的组件属性项1为名称相同,对应的数据值不同的组件属性项。
在步骤1022中,将名称和对应的数据值均相同的组件属性项作为目标组件属性项。
作为示例,参见图4D,基础预制件的组件属性项2为y:0,其中,y为基础预制件的组件属性项2的名称,0为基础预制件的组件属性项2的数据值;嵌套预制件的组件属性项2为y:0,其中,y为嵌套预制件的组件属性项2的名称,0为嵌套预制件的组件属性项2的数据值。将基础预制件的组件属性项2和嵌套预制件的组件属性项2进行对比处理后,可知,基础预制件的组件属性项2和嵌套预制件的组件属性项2的名称相同,均为y;同时基础预制件的组件属性项2和嵌套预制件的组件属性项2的数据值相同,基础预制件的组件属性项2的数据值为0,嵌套预制件的组件属性项2的数据值为0。因此,基础预制件的组件属性项2和嵌套预制件的组件属性项2为名称相同,对应的数据值均相同的组件属性项。因此,可以将基础预制件的组件属性项2和嵌套预制件的组件属性项2作为目标组件属性项,即将组件属性项2作为目标组件属性项。
如此,通过确定基础预制件和一个嵌套预制件中名称和对应的数据值均相同的组件属性项作为目标组件属性项,从而确定了嵌套预制件中可能会被修改的组件属性项,便于后续对嵌套预制件进行快速更新。
在一些实施例中,参见图3C,图3C是本申请实施例提供的游戏资源的处理方法的流程示意图,当构建的嵌套预制件的数量为多个时,图3C示出的步骤102可以通过步骤1023至步骤1025实现,下面分别进行说明。
在步骤1023中,针对任意两个嵌套预制件分别包括的初始变换组件进行比对处理,得到名称相同和对应的数据值均相同的第一组件属性项。
作为示例,参见图4E,当构建的嵌套预制件的数量为两个时,针对第1嵌套预制件和第2嵌套预制件进行对比处理,得到名称相同和对应的数据值均相同的第一组件属性项,在图4E中所示出的第1嵌套预制件和第2嵌套预制件中,第一组件属性项可以为第1嵌套预制件中的y:0组件项和第2嵌套预制件中的y:0组件项,和第1嵌套预制件中的z:300组件项和第2嵌套预制件中的z:300组件项,即第1嵌套预制件中的y:0组件项和第2嵌套预制件中的y:0组件项的名称相同和对应的数据值均相同,第1嵌套预制件中的z:300组件项和第2嵌套预制件中的z:300组件项的名称相同和对应的数据值均相同。
在步骤1024中,将基础预制件分别和每个嵌套预制件包括的初始变换组件进行比对处理,得到名称和对应的数据值均相同的第二组件属性项。
作为示例,参见图4E,当构建的嵌套预制件的数量为两个时,将基础预制件包括的初始变换组件分别和第1嵌套预制件和第2嵌套预制件包括的初始变换组件进行对比处理,得到名称和对应的数据值均相同的第二组件属性项。在图4E中所示出的第1嵌套预制件、第2嵌套预制件和基础预制件,第二组件属性项可以为第1嵌套预制件中的y:0组件项、第2嵌套预制件中的y:0组件项以及基础预制件中的y:0组件项。
在步骤1025中,将第一组件属性项与第二组件属性项的数据值进行对比处理,得到数据值相同的目标组件属性项。
作为示例,参见图4E,第一组件属性项可以为第1嵌套预制件中的y:0组件项和第2嵌套预制件中的y:0组件项,和第1嵌套预制件中的z:300组件项和第2嵌套预制件中的z:300组件项;第二组件属性项可以为第1嵌套预制件中的y:0组件项、第2嵌套预制件中的y:0组件项以及基础预制件中的y:0组件项。将第一组件属性项和第二组件属性项的数据值进行对比处理,得到数据值相同的目标组件属性项,即目标组件属性项可以为第1嵌套预制件中的y:0组件项、第2嵌套预制件中的y:0组件项以及基础预制件中的y:0组件项。
如此,通过将基础预制件和多个嵌套预制件进行两两对比,确定基础预制件和多个嵌套预制件中名称和对应的数据值均相同的组件属性项作为目标组件属性项,从而确定了嵌套预制件中可能会被修改的组件属性项,便于后续对嵌套预制件进行快速更新。
在步骤103中,响应于针对基础预制件包括的初始变换组件的组件更新操作,对基础预制件包括的初始变换组件进行更新,得到更新变换组件。
在一些实施例中,响应于针对基础预制件包括的初始变换组件的组件更新操作,对基础预制件包括的初始变换组件的组件属性项的数据值进行更新,得到更新变换组件。
作为示例,参见图4F,响应于针对基础预制件包括的初始变换组件的组件更新操作,对基础预制件包括的初始变换组件进行更新,得到更新变换组件,其中,基础预制件包括的初始变换组件的组件属性项为(x:-50,y:0,z:200),更新后得到的更新变换组件的组件属性项为(x:-10,y:50,z:100),即,更新变换组件的组件属性项的数据值相比于初始变换组件的组件属性项的数据值发生了变化,更新变换组件是对基础预制件包括的初始变换组件的组件属性项的数据值进行更新而得到的。
在一些实施例中,参见图3C,图3C是本申请实施例提供的游戏资源的处理方法的流程示意图,图3C示出的步骤103可以通过步骤1031至步骤1032实现,下面分别进行说明。
在步骤1031中,响应于针对基础预制件包括的初始变换组件的组件更新操作,获取更新操作针对初始变换组件中至少一个组件属性项提交的更新数据值。
作为示例,参见图4F,响应于针对基础预制件包括的初始变换组件的组件更新操作,获取更新操作针对初始变换组件中组件属性项提交的更新数据值,针对组件属性项x提交的更新数据值为-10,针对组件属性项y提交的更新数据值为50,针对组件属性项z提交的更新数据值为100。
在步骤1032中,将基础预制件包括的初始变换组件中对应至少一个组件属性项的原始数据值替换为更新数据值,得到更新变换组件。
作为示例,参见图4F,将基础预制件包括的初始变换组件中的组件属性项x的原始数据值-50,替换为更新数据值-10;将基础预制件包括的初始变换组件中的组件属性项y的原始数据值0,替换为更新数据值50;将基础预制件包括的初始变换组件中的组件属性项z的原始数据值200,替换为更新数据值100。
如此,通过将基础预制件包括的初始变换组件中对应至少一个组件属性项的原始数据值替换为更新数据值,从而实现了对基于预制件包括的初始变换组件的更新,为后续嵌套预制件的更新奠定了更新基础。
在一些实施例中,参见图3D,图3D是本申请实施例提供的游戏资源的处理方法的流程示意图,在上述步骤103中对基础预制件包括的初始变换组件进行更新,得到更新变换组件之后,通过执行步骤105得到基础预制件的更新预制件。
在步骤105中,将基础预制件包括的初始变换组件,替换为更新变换组件,得到基础预制件的更新预制件。
如此,由于更新变换组件的数据值已经完成了更新,将基础预制件包括的初始变换组件替换为更新变换组件,从而得到更新预制件。可以理解的是,基础预制件的更新预制件是基础预制件的更新版本的预制件。
在步骤104中,将嵌套预制件包括的初始变换组件中对应目标组件属性项的数据值,更新为更新变换组件中对应目标组件属性项的数据值。
在一些实施例中,由于嵌套预制件和基础预制件具有嵌套关系,所以在对基础预制件包括的初始变换组件进行更新,得到更新变换组件之后,可以将嵌套预制件包括的初始变换组件中对应目标组件属性项的数据值,更新为更新变换组件中对应目标组件属性项的数据值,从而实现了嵌套预制件的同步更新。
在一些实施例中,参见图3D,图3D是本申请实施例提供的游戏资源的处理方法的流程示意图,在上述步骤104中将嵌套预制件包括的初始变换组件中对应目标组件属性项的数据值,更新为更新变换组件中对应目标组件属性项的数据值之后,通过执行步骤106至步骤107得到嵌套预制件的更新预制件。
在步骤106中,将更新后的嵌套预制件包括的初始变换组件,确定为嵌套预制件的更新变换组件。
作为示例,更新后的嵌套预制件包括的初始变换组件的目标组件属性项的数据值已经更新,从而将更新后的嵌套预制件包括的初始变换组件,确定为嵌套预制件的更新变换组件。
在步骤107中,将嵌套预制件包括的初始变换组件,替换为嵌套预制件的更新变换组件,得到嵌套预制件的更新预制件。
作为示例,通过将嵌套预制件包括的初始变换组件,替换为嵌套预制件的更新变换组件,得到嵌套预制件的更新预制件,从而实现了嵌套预制件的更新。
作为示例,参见图4C,将第1个嵌套预制件……第n个嵌套预制件以及第n+1个嵌套预制件包括的初始变换组件,分别替换为第1个嵌套预制件的更新变换组件……第n个嵌套预制件的更新变换组件以及第n+1个嵌套预制件的更新变换组件,从而实现了多个嵌套预制件的同步更新。
如此,通过将嵌套预制件包括的初始变换组件,替换为嵌套预制件的更新变换组件,从而实现了多个嵌套预制件的同步更新,有效提高了嵌套预制件的更新效率。
在一些实施例中,参见图3E,图3E是本申请实施例提供的游戏资源的处理方法的流程示意图,将结合图3E示出的步骤201至步骤202进行说明。
在步骤201中,响应于针对游戏资源的场景加载操作,确定多个待加载游戏场景中的目标待加载游戏场景,其中,游戏资源包括基础预制件、嵌套预制件和多个待加载游戏场景。
在一些实施例中,游戏场景是游戏中的环境、建筑、机械、道具等。游戏场景通常可以理解为根据要求还原出的游戏中的建筑物、树木、天空、道路等可用元素(包含武器道具等)。
作为示例,参见图5D,序列化系统(Serialize System)中的场景管理器(SceneManager)响应于针对游戏资源的场景加载操作,确定多个待加载游戏场景中的目标待加载游戏场景(例如,图5D所示出的场景1)。如图5D所示出的,游戏资源包括预制件(Prefab)和场景(Scene),即游戏资源包括预制件和待加载游戏场景,预制件包括基础预制件和嵌套预制件,因此,游戏资源包括基础预制件、嵌套预制件和多个待加载游戏场景。
在步骤202中,基于目标待加载游戏场景调用场景管理器进行加载处理,并将加载处理后的目标待加载游戏场景保存至游戏引擎中。
作为示例,参见图5D,基于目标待加载游戏场景调用场景管理器(Scene Manager)进行加载处理,并将加载处理后的目标待加载游戏场景保存至游戏引擎中。
在一些实施例中,加载处理可以读取目标待加载游戏场景的数据,从而达到展示游戏场景的作用。
下面,将说明本申请实施例在一个实际的网络游戏开发的应用场景中的示例性应用。
在一个实际的网络游戏开发的应用场景中,通常需要通过大量的预制件实现游戏场景的搭建,而随着游戏的版本更新迭代,游戏场景需要随之重新搭建,预制件也需要同步更新,大量的预制件更新会耗费大量的时间,通过本申请实施例提供的游戏资源的处理方法,可以大幅减少预制件的更新时长,有效提高预制件的更新效率。
在一些实施例中,图5A是本申请实施例提供的游戏资源的处理方法的原理示意图。参见图5A,本申请实施例可以通过图5A所示出的步骤501至步骤504实现预制件的生成和使用。
在步骤501中,接收所点选的游戏场景中的游戏对象。
在步骤502中,遍历游戏对象的所有组件的属性,并将游戏对象的所有组件的属性存储成特定的预制件文件。
在步骤503中,响应于拖动操作,拖动预制件到游戏场景中,以生成预制件实例(预制件实例的属性和预制件文件的属性项一致)。
在步骤504中,修改预制件实例的部分属性,所修改的部分属性不再受预制件的影响,其他属性会随着预制件的修改而更新。
在一些实施例中,参见图5B,在解决根据预制件修改内容来更新预制件实例的组件属性等内容时,相关技术的解决方案会维护预制件修改前后的差异信息,根据差异信息去更新所有收到该预制件影响的预制件实例。另外,在相关技术中,针对从预制件创建出来的预制件实例中部分属性已经被编辑器修改的情况,游戏引擎还会为这些预制件实例中的每个修改内容维护一个“不跟随预制件修改”的标签,在根据预制件的修改来更新预制件实例时,引擎会根据所维护的标签来判断是否把预制件修改的差异信息传递给预制件实例。如此,相关技术通过为预制件实例中的每个修改内容维护一个“不跟随预制件修改”的标签以及维护预制件修改前后的差异信息的方式完成预制件的更新。
下面,参见图5B,将结合图5B示出的步骤510至步骤515进行说明。
在步骤510中,在编辑器中打开预制件,并调整游戏对象的组件等内容,并保存预制件。
在步骤511中,判断是否有该预制件创建出的预制件实例。若是,则转入执行步骤512;若否,则转入执行步骤513。
在步骤512中,对每一个预制件实例进入如下操作:遍历修改好的预制件属性,获取该预制件属性在预制件实例的标签;当标签是“跟随预制件的修改”,则把预制件属性更新到该预制件实例中;当标签是“不跟随预制件修改”,则不会把预制件属性更新到该预制件实例中;当遍历完所有预制件的属性,并且均进行上述操作,视为该预制件实例更新完毕。
在步骤513中,判断是否有包含该预制件的其他预制件;若是,则转入执行步骤514;若否,则转入执行步骤515。
在步骤514中,更新所有包含该预制件的其他预制件。
在步骤515中,结束。
在一些实施例中,相关技术的解决方案在编辑器中修改预制件实例的内容的时候需要实时更新引擎中维护的差异信息以及标签。因为在游戏开发中修改游戏对象的属性的操作会很多,所以这会导致时间开销会非常大。其次,相关技术的解决方案通常需上万行代码来解决预制件(Prefab)的修改和更新机制。这些代码需要维护预制件实例(PrefabInstance)和预制件的差异信息的架构以支持增删改查,还需要给每个预制件实例的每个属性值维护了是否从预制件嵌套的标签。这些基于差异信息和标签的实现方案要求在编辑器编辑预制件实例中的游戏对象的属性时,实时更新自身和预制件之间的游戏组件等差异信息,同时根据用户输入来更新这些属性的标签。在引擎实现过程中会异常复杂,实现难度很高。此外,该方案在预制件修改后的更新阶段依然避免不了对受到影响预制件和预制件实例进行更新。
在本申请实施例中,基于在引擎中维护完整的预制件实例的组件信息以及通过信息比较的方式来判定是否从预制件中嵌套属性值的思想,避免了编辑器在修改预制件实例内容的时候需要实时更新引擎信息的问题。而在预制件修改后的更新阶段,会通过信息比较的方法把修改更新内容同步给所有受到影响的预制件和预制件实例。
在本申请实施例中,参见图5C,图5C是本申请实施例提供的游戏资源的处理方法的原理示意图。本申请实施例提供的游戏安装包中所包括的资源有:纹理、动画、场景、材质、声音、脚本、预制件等等,其中场景和预制件资源中会存在大量的预制件实例,通过本申请实施例一方面可以降低游戏引擎中预制件架构实现的难度,另一方面又可以提升游戏开发的效率,开发人员在修改预制件实例的组件属性的时,不需要实时更新维护信息,只需要在加载或保存场景(或预制件)的时候处理更新逻辑。
在本申请实施例中,硬件环境包含中央处理器(CPU),内存(RAM),硬盘(HardDisk),图形处理器(GPU)和输入设备键盘、鼠标和触控,以及显示器等。
在本申请实施例中,参见图5D,图5D是本申请实施例提供的游戏资源的处理方法的原理示意图。软件环境包括游戏引擎、编辑器等。其中,游戏引擎的场景管理器管理着多个游戏场景(参见图5D,场景1、场景2、场景3、场景4),每个场景都有自己的序列化系统(Serialize System)用于创建和加载预制件(Prefab)和游戏场景,序列化系统包括预制件管理器(Prefab Manager)和场景管理器(Scene Manager)。预制件管理器(PrefabManager)用于创建预制件和预制件实例,并维护两者的关系,以便于当预制件修改时更新到该预制件所创建的所有的预制件实例。场景管理器用于加载和保存游戏场景(参见图5D,场景(Scene)),并维护每个游戏场景中使用到的预制件实例的列表。本申请实施例中的预制件允许嵌套,根据预制件创建出来的预制件实例可以存在其他场景中或者其它预制件中。
在本申请实施例中,参见图5E,图5E是本申请实施例提供的游戏资源的处理方法的原理示意图。本申请实施例是针对预制件和预制件实例的修改和更新的方案。在一些实施例中,参见图5E,将结合图5E示出的步骤520至步骤523进行说明。
在步骤520中,预制件的创建和加载。
在步骤521中,创建预制件实例。
在步骤522中,修改预制件实例。
在步骤523中,修改预制件后对受到影响的预制件和预制件实例进行更新。
下面,将具体介绍图5E所示出的步骤520至步骤523的技术细节。
在本申请实施例中,如图5F所示,图5F是本申请实施例提供的游戏资源的处理方法的原理示意图。预制件资源文件描述的一组游戏对象(Game Objec t),每个游戏对象可能由不同的组件(Component)组成,而不同的组件的数据不同。在本申请实施例中,使用Json数据结构来描述预制件资源文件,其中,JavaScript对象简谱(JavaScript ObjectNotation,Json)是一种取代可扩展标记语言(Extensible Markup Language,XML)的数据结构,和XML相比,Js on数据结构更小巧但描述能力却不差,由于Json数据结构的小巧,所以通过网络传输数据将减少更多流量从而加快速度,而每个组件也是由Json数据结构来描述的。
因此,上述步骤520中创建预制件的过程是把游戏引擎的运行时(Runtime)的数据,根据选中的游戏对象依次遍历所选中的游戏对象中所有的组件,并以Json数据结构的形式组织成文件。
在本申请实施例中,参见图5G,图5G是本申请实施例提供的游戏资源的处理方法的原理示意图。基础预制件包括两个游戏对象(游戏对象1和游戏对象2),而在嵌套预制件中除了自身存在的两个游戏对象(游戏对象3和游戏对象4)之外,还有基础预制件创建出的两个预制件实例(基础预制件的预制件实例1和基础预制件的预制件实例2),每个基础预制件的预制件实例包括两个游戏对象。所以在嵌套预制件中实际有6个游戏对象。那么在加载嵌套预制件时,本申请实施例在游戏引擎中实际存储6个游戏对象的完整信息,而不是存储部分的差异信息。这为后续步骤的实现奠定了基础。
在一些实施例中,参见图5H,图5H是本申请实施例提供的游戏资源的处理方法的原理示意图。上述步骤521中,创建预制件实例,会根据预制件中存储的所有游戏对象(游戏对象1和游戏对象2)和所需的完整信息(如:每个组件的Json数据,参见图5H的预制件中,游戏对象1的自身数据和各个组件的Json数据,游戏对象2的自身数据和各个组件的Json数据)来生成游戏场景中的游戏对象(游戏对象1和游戏对象2),并在预制件实例中维护游戏场景中游戏对象(游戏对象1和游戏对象2)对应的隐射信息。在编辑器中修改预制件实例中游戏对象的内容时,不同于现有技术方案游戏引擎会实时维护该预制件实例和预制件之间的差异信息和一个是否受到预制件更新影响的标签。而在本申请实施例中,无需做任何操作来修改预制件实例,这是因为预制件实例具备完整的游戏对象数据,而不是基于所属预制件的差异信息。这有助于提升了开发游戏的效率,同时也降低了在引擎中实现差异信息和影响标签复杂度。
参见图5I,图5I是本申请实施例提供的游戏资源的处理方法的原理示意图。图5I所示出的是预制件在游戏场景中使用的示例。基础预制件是一个基础类型的预制件,而嵌套预制件2是基于基础预制件创建出来的预制件,依次类推(嵌套预制件3、嵌套预制件4、嵌套预制件5)。这些具有嵌套关系的一组嵌套预制件可以在游戏场景中创建任何一个预制件实例。在对基础预制件进行编辑修改时,就可以对引用了基础预制件的所有嵌套预制件(嵌套预制件2、嵌套预制件3、嵌套预制件4、嵌套预制件5)以及有关的预制件实例(预制件实例2、预制件实例3、预制件实例4)进行更新。
参见图5J,图5J是本申请实施例提供的游戏资源的处理方法的原理示意图。由于本申请实施例在嵌套预制件中维护了构建游戏对象所需的完整信息。所以如图5J所示,在修改了基础预制件中某个游戏对象中的组件的位置信息(Tran slation)之后,把修改信息更新给嵌套预制件中对应的游戏对象。此时只需要把基础预制件中的该组件的新旧数据同时传递给嵌套预制件。嵌套预制件首先拿出自身的组件数据和基础预制件的旧数据进行对比,发现嵌套预制件中的Tr anslation函数中的y属性项的数据值和基础预制件的原始数据属性项的数据值是一致的,说明这些数据值要跟随基础预制件的变化而变化,然后将基础预制件的新数据中的Translation函数中的y属性项的数据值更新到嵌套预制件中的组件中,如此就完成了更新过程,图5J示出了嵌套预制件根据基础预制件的新数据修改更新后的数据。
而对于预制件实例的更新,预制件只需要把最新的Json数据提供给预制件实例,去重新更新引擎中的游戏对象的属性数据值即可。
通过本申请实施例提供的游戏资源的处理方法,通过在预制件中维护完整信息进行更新的方式避免了根据差异信息以及在修改预制件实例的标签来带来的复杂度。降低了游戏引擎中预制件架构实现的难度,由于无需在游戏引擎中实时维护差异信息和标签,从而提升游戏开发的效率。
下面继续说明本申请实施例提供的游戏资源的处理装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的游戏资源的处理装置455中的软件模块可以包括:构建模块,用于根据游戏对象的初始变换组件,构建一个基础预制件和至少一个嵌套预制件;对比模块,用于将一个基础预制件和至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,得到目标组件属性项,其中,目标组件属性项对应的属性名称和数据值均相同;第一更新模块,用于响应于针对基础预制件包括的初始变换组件的组件更新操作,对基础预制件包括的初始变换组件进行更新,得到更新变换组件;第二更新模块,用于将嵌套预制件包括的初始变换组件中对应目标组件属性项的数据值,更新为更新变换组件中对应目标组件属性项的数据值。
在一些实施例中,上述构建模块,还用于根据游戏对象的初始变换组件,构建一个基础预制件,并确定基础预制件的预制件实例;根据基础预制件的预制件实例构建至少一个嵌套预制件。
在一些实施例中,上述构建模块,还用于根据基础预制件的预制件实例,构建第1个嵌套预制件;基于第1个嵌套预制件,生成第1个嵌套预制件的预制件实例;迭代n执行以下处理:根据第1个嵌套预制件的预制件实例,构建第n个嵌套预制件,并生成第n个嵌套预制件的预制件实例,其中,n为整数变量,且取值范围为2≤n≤N-1,N为多个嵌套预制件的数量;根据第n个嵌套预制件的预制件实例,构建第n+1个嵌套预制件。
在一些实施例中,当构建的嵌套预制件的数量为一个时,上述对比模块,还用于将基础预制件和嵌套预制件分别所包括的初始变换组件进行比对处理,得到名称和对应的数据值均相同的组件属性项;将名称和对应的数据值均相同的组件属性项作为目标组件属性项。
在一些实施例中,当构建的嵌套预制件的数量为多个时,上述对比模块,还用于针对任意两个嵌套预制件分别包括的初始变换组件进行比对处理,得到名称相同和对应的数据值均相同的第一组件属性项;将基础预制件分别和每个嵌套预制件包括的初始变换组件进行比对处理,得到名称和对应的数据值均相同的第二组件属性项;将第一组件属性项与第二组件属性项的数据值进行对比处理,得到数据值相同的目标组件属性项。
在一些实施例中,上述第一更新模块,还用于响应于针对基础预制件包括的初始变换组件的组件更新操作,获取更新操作针对初始变换组件中至少一个组件属性项提交的更新数据值;将基础预制件包括的初始变换组件中对应至少一个组件属性项的原始数据值替换为更新数据值,得到更新变换组件。
在一些实施例中,上述游戏资源的处理装置还包括:第三更新模块,用于将基础预制件包括的初始变换组件,替换为更新变换组件,得到基础预制件的更新预制件;第四更新模块,用于将更新后的嵌套预制件包括的初始变换组件,确定为嵌套预制件的更新变换组件;将嵌套预制件包括的初始变换组件,替换为嵌套预制件的更新变换组件,得到嵌套预制件的更新预制件。
在一些实施例中,上述构建模块,还用于根据游戏对象的初始变换组件,通过预制件管理器构建一个基础预制件和至少一个嵌套预制件;
在一些实施例中,上述游戏资源的处理装置还包括:场景加载模块,用于响应于针对游戏资源的场景加载操作,确定多个待加载游戏场景中的目标待加载游戏场景,其中,游戏资源包括基础预制件、嵌套预制件和多个待加载游戏场景;基于目标待加载游戏场景调用场景管理器进行加载处理,并将加载处理后的目标待加载游戏场景保存至游戏引擎中。
在一些实施例中,上述游戏资源的处理装置还包括:保存模块,用于将所构建的基础预制件和嵌套预制件保存至游戏引擎中;其中,游戏引擎中所保存的嵌套预制件中包括基础预制件的组件属性项的全部属性名称和部分数据值。
本申请实施例提供一种电子设备,包括:存储器,用于存储可执行指令;处理器,用于执行存储器中存储的可执行指令时,实现本申请实施例提供的游戏资源的处理方法。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的游戏资源的处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的游戏资源的处理方法,例如,如图3A示出的游戏资源的处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上,通过本申请实施例具有以下有益效果:
(1)通过构建基础预制件和嵌套预制件,由于基础预制件和嵌套预制件所包括的初始变换组件中包括属性名称和数据值均相同的目标组件属性项,从而在对基础预制件中的初始变换组件进行更新后,可以将嵌套预制件包括的初始变换组件中对应目标组件属性项的数据值进行同步更新,实现了基础预制件和嵌套预制件的同步更新,有效节省了嵌套预制件的更新时长,从而有效提高了预制件的更新效率。
(2)通过构建基础预制件,然后以基础预制件的预制件实例为基础,构建至少一个嵌套预制件,从而保证了基础预制件和嵌套预制件之间的嵌套关系,从而为后续更新基础预制件时,同步对嵌套预制件进行修改,提供了保障。
(3)通过确定基础预制件和嵌套预制件中名称和对应的数据值均相同的组件属性项作为目标组件属性项,从而确定了嵌套预制件中可能会被修改的组件属性项,便于后续对嵌套预制件进行快速更新。
(4)通过将基础预制件和多个嵌套预制件进行两两对比,确定基础预制件和多个嵌套预制件中名称和对应的数据值均相同的组件属性项作为目标组件属性项,从而确定了嵌套预制件中可能会被修改的组件属性项,便于后续对嵌套预制件进行快速更新。
(5)通过将基础预制件包括的初始变换组件中对应至少一个组件属性项的原始数据值替换为更新数据值,从而实现了对基于预制件包括的初始变换组件的更新,为后续嵌套预制件的更新奠定了更新基础。
(6)通过将嵌套预制件包括的初始变换组件,替换为嵌套预制件的更新变换组件,从而实现了多个嵌套预制件的同步更新,有效提高了嵌套预制件的更新效率。
(7)通过将基础预制件和嵌套预制件保存至游戏引擎中,而且,游戏引擎中所保存的嵌套预制件中包括基础预制件的组件属性项的全部属性名称,从而保证了基础预制件和嵌套预制件之间的嵌套关系。同时,游戏引擎中所保存的嵌套预制件中包括基础预制件的组件属性项的部分数据值,从而保证了基础预制件和嵌套预制件有相同名称和相同数据值的组件属性项,便于后续在对基础预制件进行更新时,能够对嵌套预制件进行同步更新。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种游戏资源的处理方法,其特征在于,所述方法包括:
根据游戏对象的初始变换组件,构建一个基础预制件和至少一个嵌套预制件;
将所述一个基础预制件和所述至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,得到目标组件属性项,其中,所述目标组件属性项对应的属性名称和数据值均相同;
响应于针对所述基础预制件包括的初始变换组件的组件更新操作,对所述基础预制件包括的初始变换组件进行更新,得到更新变换组件;
将所述嵌套预制件包括的初始变换组件中对应所述目标组件属性项的数据值,更新为所述更新变换组件中对应所述目标组件属性项的数据值。
2.根据权利要求1所述的方法,其特征在于,所述根据游戏对象的初始变换组件,构建一个基础预制件和至少一个嵌套预制件,包括:
根据所述游戏对象的初始变换组件,构建一个基础预制件,并确定所述基础预制件的预制件实例;
根据所述基础预制件的预制件实例构建至少一个嵌套预制件。
3.根据权利要求2所述的方法,其特征在于,当所构建的所述嵌套预制件的数量为多个时,所述根据所述基础预制件的预制件实例构建至少一个嵌套预制件,包括:
根据所述基础预制件的预制件实例,构建第1个嵌套预制件;
基于所述第1个嵌套预制件,生成所述第1个嵌套预制件的预制件实例;
迭代n执行以下处理:
根据所述第1个嵌套预制件的预制件实例,构建第n个嵌套预制件,并生成所述第n个嵌套预制件的预制件实例,其中,n为整数变量且取值范围为2≤n≤N-1,N为多个所述嵌套预制件的数量;
根据所述第n个嵌套预制件的预制件实例,构建第n+1个嵌套预制件。
4.根据权利要求1所述的方法,其特征在于,当构建的所述嵌套预制件的数量为一个时,所述将所述一个基础预制件和至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,得到目标组件属性项,包括:
将所述基础预制件和所述嵌套预制件分别所包括的初始变换组件进行比对处理,得到名称和对应的数据值均相同的组件属性项;
将所述名称和对应的数据值均相同的组件属性项作为目标组件属性项。
5.根据权利要求1所述的方法,其特征在于,当构建的所述嵌套预制件的数量为多个时,所述将所述一个基础预制件和至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,得到目标组件属性项,包括:
针对任意两个所述嵌套预制件分别包括的初始变换组件进行比对处理,得到名称相同和对应的数据值均相同的第一组件属性项;
将所述基础预制件分别和每个所述嵌套预制件包括的初始变换组件进行比对处理,得到名称和对应的数据值均相同的第二组件属性项;
将所述第一组件属性项与所述第二组件属性项的数据值进行对比处理,得到数据值相同的目标组件属性项。
6.根据权利要求1所述的方法,其特征在于,所述响应于针对所述基础预制件包括的初始变换组件的组件更新操作,对所述基础预制件包括的初始变换组件进行更新,得到更新变换组件,包括:
响应于针对所述基础预制件包括的初始变换组件的组件更新操作,获取所述更新操作针对所述初始变换组件中至少一个组件属性项提交的更新数据值;
将所述基础预制件包括的初始变换组件中对应所述至少一个组件属性项的原始数据值替换为所述更新数据值,得到更新变换组件。
7.根据权利要求1所述的方法,其特征在于,在对所述基础预制件包括的初始变换组件进行更新,得到更新变换组件之后,所述方法还包括:
将所述基础预制件包括的初始变换组件替换为所述更新变换组件,得到所述基础预制件的更新预制件;
在所述将所述嵌套预制件包括的初始变换组件中对应所述目标组件属性项的数据值,更新为所述基础预制件包括的所述更新变换组件中对应所述目标组件属性项的数据值之后,所述方法还包括:
将更新后的所述嵌套预制件包括的初始变换组件,确定为所述嵌套预制件的更新变换组件;
将所述嵌套预制件包括的初始变换组件替换为所述嵌套预制件的更新变换组件,得到所述嵌套预制件的更新预制件。
8.根据权利要求1所述的方法,其特征在于,
所述根据游戏对象的初始变换组件,构建一个基础预制件和至少一个嵌套预制件,包括:
根据游戏对象的初始变换组件,通过预制件管理器构建一个所述基础预制件和至少一个所述嵌套预制件;
所述方法还包括:
响应于针对游戏资源的场景加载操作,确定多个待加载游戏场景中的目标待加载游戏场景,其中,所述游戏资源包括所述基础预制件、所述嵌套预制件和多个所述待加载游戏场景;
基于所述目标待加载游戏场景调用场景管理器进行加载处理,并将加载处理后的所述目标待加载游戏场景保存至游戏引擎中。
9.根据权利要求8所述的方法,其特征在于,在通过预制件管理器构建一个所述基础预制件和至少一个所述嵌套预制件之后,所述方法还包括:
将所构建的所述基础预制件和所述嵌套预制件保存至所述游戏引擎中;
其中,所述游戏引擎中所保存的所述嵌套预制件中包括所述基础预制件的组件属性项的全部属性名称和部分数据值。
10.一种游戏资源的处理装置,其特征在于,所述装置包括:
构建模块,用于根据游戏对象的初始变换组件,构建一个基础预制件和至少一个嵌套预制件;
对比模块,用于将所述一个基础预制件和所述至少一个嵌套预制件中的任意两个所包括的初始变换组件进行对比处理,得到目标组件属性项,其中,所述目标组件属性项对应的属性名称和数据值均相同;
第一更新模块,用于响应于针对所述基础预制件包括的初始变换组件的组件更新操作,对所述基础预制件包括的初始变换组件进行更新,得到更新变换组件;
第二更新模块,用于将所述嵌套预制件包括的初始变换组件中对应所述目标组件属性项的数据值,更新为所述更新变换组件中对应所述目标组件属性项的数据值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111334843.1A CN114100142A (zh) | 2021-11-11 | 2021-11-11 | 游戏资源的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111334843.1A CN114100142A (zh) | 2021-11-11 | 2021-11-11 | 游戏资源的处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114100142A true CN114100142A (zh) | 2022-03-01 |
Family
ID=80378582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111334843.1A Pending CN114100142A (zh) | 2021-11-11 | 2021-11-11 | 游戏资源的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114100142A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313008A1 (en) * | 2007-06-13 | 2008-12-18 | International Business Machines Corporation | Method and system for model-driven approaches to generic project estimation models for packaged software applications |
CN111190915A (zh) * | 2020-01-02 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 一种道具标识或角色标识的确定方法、服务器及存储介质 |
CN111558224A (zh) * | 2020-04-26 | 2020-08-21 | 完美世界(北京)软件科技发展有限公司 | 一种移动端游戏资源打包方法、解包方法、装置及系统 |
US20200306639A1 (en) * | 2019-03-29 | 2020-10-01 | Electronic Arts Inc. | Network-based video game editing and modification distribution system |
CN112023399A (zh) * | 2020-08-21 | 2020-12-04 | 上海完美时空软件有限公司 | 游戏场景数据的处理方法及装置、存储介质、计算机设备 |
CN112915545A (zh) * | 2021-03-02 | 2021-06-08 | 上海哔哩哔哩科技有限公司 | 数据处理方法及系统 |
CN113209632A (zh) * | 2021-06-08 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 一种云游戏的处理方法、装置、设备及存储介质 |
-
2021
- 2021-11-11 CN CN202111334843.1A patent/CN114100142A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313008A1 (en) * | 2007-06-13 | 2008-12-18 | International Business Machines Corporation | Method and system for model-driven approaches to generic project estimation models for packaged software applications |
US20200306639A1 (en) * | 2019-03-29 | 2020-10-01 | Electronic Arts Inc. | Network-based video game editing and modification distribution system |
CN111190915A (zh) * | 2020-01-02 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 一种道具标识或角色标识的确定方法、服务器及存储介质 |
CN111558224A (zh) * | 2020-04-26 | 2020-08-21 | 完美世界(北京)软件科技发展有限公司 | 一种移动端游戏资源打包方法、解包方法、装置及系统 |
CN112023399A (zh) * | 2020-08-21 | 2020-12-04 | 上海完美时空软件有限公司 | 游戏场景数据的处理方法及装置、存储介质、计算机设备 |
CN112915545A (zh) * | 2021-03-02 | 2021-06-08 | 上海哔哩哔哩科技有限公司 | 数据处理方法及系统 |
CN113209632A (zh) * | 2021-06-08 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 一种云游戏的处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113268226B (zh) | 页面数据生成方法、装置、存储介质及设备 | |
CN100461158C (zh) | 一种使用应用程序处理数据的方法 | |
EP3005301B1 (en) | Animation editing | |
CN102103497B (zh) | 有限状态机执行装置和方法、在应用中的建立和使用方法 | |
CN110825362A (zh) | 低代码应用软件开发系统及方法 | |
US7098921B2 (en) | Method, system and computer program product for efficiently utilizing limited resources in a graphics device | |
US10853079B2 (en) | Dependency-based streamlined processing | |
US20120174079A1 (en) | Systems and methods for simulating a mobile device application | |
CN112698921B (zh) | 一种逻辑代码运行方法、装置、计算机设备和存储介质 | |
CN102236544A (zh) | 一种皮肤设计方法及装置 | |
CN115480801A (zh) | 一种基于Vue框架的多项目开发部署运行方法和系统 | |
CN113835691B (zh) | 一种iOS应用开发方法、系统、设备、介质和程序产品 | |
CN102541544B (zh) | 树形控件的处理方法、装置及系统 | |
US20060130008A1 (en) | Model-to-model transformation by kind | |
CN113485708A (zh) | 基于Sketch的跨平台界面开发方法和系统、计算机设备和介质 | |
CN114100142A (zh) | 游戏资源的处理方法及装置 | |
US20150314196A1 (en) | Deployment of an electronic game using device profiles | |
JP2008287365A (ja) | プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体 | |
CN114564207A (zh) | 软件产品的处理方法、装置、计算机设备、存储介质 | |
Di Giacomo et al. | Building game scripting DSL’s with the Metacasanova metacompiler | |
CN114168151A (zh) | 基于容器的程序编译方法、装置、电子设备及存储介质 | |
KR20120130145A (ko) | 음성엔진과 인터렉티브 3차원 어플리케이션을 실시간으로 연동시키는 3차원 가상현실 컨트롤 미들웨어를 이용하는 3차원 가상현실 컨텐츠의 실시간 제어방법. | |
KR20120101604A (ko) | 음성엔진과 인터렉티브 3차원 어플리케이션을 실시간으로 연동시키는 3차원 가상현실 컨트롤 미들웨어 시스템 및 이를 이용하는 3차원 가상현실 컨텐츠의 실시간 제어방법. | |
CN110648081A (zh) | 用于计算系统的业务建模方法、装置和计算机系统 | |
CN113642056B (zh) | 用于MicroStation平台的参数化构件生成、修改方法和装置 |
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 |