logo好方法网

一种游戏系统架构的构建方法、实现方法、装置及系统


技术摘要:
本发明提供了一种游戏系统架构的构建方法、实现方法、装置及系统,构建方法包括通过控制器定义游戏系统的初始函数和逻辑功能函数,在初始函数中定义游戏系统的上下文对象,通过控制器控制上下文对象创建包含实体属性的多个实体对象,通过控制器控制上下文对象创建多个  全部
背景技术:
现有技术中的游戏架构ECS(Entity-Component-System,实体-组件-系统)在数据 解耦、逻辑复用等方面的优化非常强大,可以提升游戏效率,减少内存和传输数据的大小, 并且传统的游戏架构所使用的MVC(Model  View  Controller,模型-视图-控制器)架构,分 成数据、视图、控制三层,一般一个视图层对应一个控制层,控制层的部份代码会重复,而数 据库里有大量的逻辑的处理的内容。 Unity对ECS的前端架构有非常好的实现,ECS的前端架构与Unity的能很好的结 合,但是结合也非常的复杂,为了做数据解耦(EC部分)和解决逻辑的复用问题(S部份)需要 做很多额外的工作。在架构的使用中,对程序员本身的架构理解水平也有一定的要求,以实 现对实体E和组件C的有效的分离。 若将架构ECS应用于后端,会带来很多问题。因为后端并没有前端那么多的对象需 要解耦,也不需要做过多的分解对象工作,在后端系统的开发中,若使用ECS架构,对于实体 E和组件C的拆分会出现很多的问题,随需求的变化有可能会时常重构很多的内容。实现ECS 架构上,为了将架构解耦的初衷应用好,会使架构的复杂性有一定的提升,降低执行效率。
技术实现要素:
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的游戏系统架构的构建方法、实现方法、装置及系统。 根据本发明实施例的一方面,提供了一种游戏系统架构的构建方法,包括: 通过控制器定义游戏系统的初始函数和逻辑功能函数,在所述初始函数中定义所 述游戏系统的上下文对象; 通过所述控制器控制所述上下文对象创建包含实体属性的多个实体对象; 通过所述控制器控制上下文对象创建多个不同功能子系统,所述功能子系统用于 接收所述控制器的调用以依据所述逻辑功能函数对控制器引用的实体对象执行逻辑功能; 基于所述上下文对象、实体对象及不同功能子系统构建得到游戏系统架构。 可选地,所述实体对象包含身份属性,通过所述控制器控制所述上下文对象创建 包含实体属性的多个实体对象,包括: 通过所述控制器控制所述上下文对象创建多个实体对象,将所述多个实体对象组 成实体对象数组并存储于所述上下文对象中; 为所述实体对象数组中各实体对象分别分配唯一标识以用于识别实体对象身份。 可选地,所述实体对象包含分组属性,通过所述控制器控制所述上下文对象创建 包含实体属性的多个实体对象,包括: 4 CN 111552458 A 说 明 书 2/12 页 通过所述控制器控制所述上下文对象创建多个实体对象,依据预设规则将所述多 个实体对象划分为不同分组,并记录各实体对象所属分组。 可选地,所述实体对象包含特征属性,通过所述控制器控制所述上下文对象创建 包含实体属性的多个实体对象,包括: 通过所述控制器控制所述上下文对象创建多个实体对象,为所述多个实体对象分 别配置对应的对象特征,将所述对象特征以key-value的形式记录。 可选地,所述逻辑功能函数包括更新函数,所述功能子系统用于依据所述更新函 数对控制器引用的实体对象的特征属性的状态进更新。 可选地,所述实体对象的对象特征包括实体速度、实体位置、实体朝向中的至少一 项。 根据本发明实施例的另一方面,还提供了一种游戏系统架构的实现方法,包括: 依据控制器接收的控制指令确定待控制的实体对象、待调用的功能子系统、以及 实体对象控制方式; 通过所述控制器从上下文对象存储的包含多个实体对象的实体对象数组中查找 所述待控制实体对象并引用; 通过所述控制器调用所述功能子系统,利用调用的功能子系统按照实体对象控制 方式对引用的所述待控制的实体对象进行控制。 可选地,所述实体对象数组中的各实体对象分别具有唯一标识,通过所述控制器 从上下文对象存储的包含多个实体对象的实体对象数组中查找所述待控制的实体对象并 引用,包括: 通过所述控制器获取所述待控制的实体对象的唯一标识; 从上下文对象存储的包含多个实体对象的实体对象数组中查找与获取的唯一标 识对应的实体对象并引用。 可选地,所述控制器预先定义有游戏系统的初始函数和逻辑功能函数,通过所述 控制器调用所述功能子系统,利用调用的功能子系统按照实体对象控制方式对引用的所述 待控制的实体对象进行控制,包括: 通过所述控制器调用所述功能子系统,依据所述实体控制方式为所述逻辑功能函 数配置控制参数; 调用的功能子系统基于所述初始函数对引用的所述待控制的实体对象进行初始 化,并依据配置有控制参数的逻辑功能函数对初始化后的实体对象进行控制。 可选地,所述实体对象数组中的各实体对象预先配置有对象特征,调用的功能子 系统基于所述初始函数对引用的所述待控制的实体对象进行初始化,包括: 调用的功能子系统读取所述待控制的实体对象的对象特征; 基于所述初始函数并根据读取的对象特征对引用的所述待控制的实体对象进行 初始化。 可选地,所述实体对象的对象特征包括实体速度、实体位置、实体朝向中的至少一 项。 可选地,所述逻辑功能函数包括更新函数,依据配置有控制参数的逻辑功能函数 对初始化后的实体对象进行控制,包括: 5 CN 111552458 A 说 明 书 3/12 页 依据配置有控制参数的更新函数对初始化后的实体对象的对象特征状态进行更 新。 可选地,所述引用的待控制的实体对象包括至少两组实体对象,所述控制参数包 括为更新函数配置的针对各组实体对象的不同控制参数,依据配置有控制参数的更新函数 对初始化后的实体对象的对象特征状态进行更新,包括: 确定各组实体对象分别对应的控制参数; 依据配置控制参数的更新函数更新对应的初始化后的各组实体对象的对象特征 状态。 根据本发明实施例的另一方面,还提供了一种游戏系统架构的构建装置,包括: 定义模块,适于通过控制器定义游戏系统的初始函数和逻辑功能函数,在所述初 始函数中定义所述游戏系统的上下文对象; 创建模块,适于通过所述控制器控制所述上下文对象创建包含实体属性的多个实 体对象; 所述创建模块,还适于通过所述控制器控制上下文对象创建多个不同功能子系 统,所述功能子系统用于接收所述控制器的调用以依据所述逻辑功能函数对控制器引用的 实体对象执行逻辑功能; 构建模块,适于基于所述上下文对象、实体对象及不同功能子系统构建得到游戏 系统架构。 可选地,所述实体对象包含身份属性,所述创建模块还适于: 通过所述控制器控制所述上下文对象创建多个实体对象,将所述多个实体对象组 成实体对象数组并存储于所述上下文对象中; 为所述实体对象数组中各实体对象分别分配唯一标识以用于识别实体对象身份。 可选地,所述实体对象包含分组属性,所述创建模块还适于: 通过所述控制器控制所述上下文对象创建多个实体对象,依据预设规则将所述多 个实体对象划分为不同分组,并记录各实体对象所属分组。 可选地,所述实体对象包含特征属性,所述创建模块还适于: 通过所述控制器控制所述上下文对象创建多个实体对象,为所述多个实体对象分 别配置对应的对象特征,将所述对象特征以key-value的形式记录。 可选地,所述逻辑功能函数包括更新函数,所述功能子系统用于依据所述更新函 数对控制器引用的实体对象的特征属性的状态进更新。 可选地,所述实体对象的对象特征包括实体速度、实体位置、实体朝向中的至少一 项。 根据本发明实施例的另一方面,还提供了一种游戏系统架构的实现装置,包括: 确定模块,适于依据控制器接收的控制指令确定待控制的实体对象、待调用的功 能子系统、以及实体对象控制方式; 引用模块,适于通过所述控制器从上下文对象存储的包含多个实体对象的实体对 象数组中查找所述待控制实体对象并引用; 控制模块,适于通过所述控制器调用所述功能子系统,利用调用的功能子系统按 照实体对象控制方式对引用的所述待控制的实体对象进行控制。 6 CN 111552458 A 说 明 书 4/12 页 可选地,所述实体对象数组中的各实体对象分别具有唯一标识,所述引用模块还 适于: 通过所述控制器获取所述待控制的实体对象的唯一标识; 从上下文对象存储的包含多个实体对象的实体对象数组中查找与获取的唯一标 识对应的实体对象并引用。 可选地,所述控制器预先定义有游戏系统的初始函数和逻辑功能函数,所述控制 模块还适于: 通过所述控制器调用所述功能子系统,依据所述实体控制方式为所述逻辑功能函 数配置控制参数; 调用的功能子系统基于所述初始函数对引用的所述待控制的实体对象进行初始 化,并依据配置有控制参数的逻辑功能函数对初始化后的实体对象进行控制。 可选地,所述实体对象数组中的各实体对象预先配置有对象特征,所述控制模块 还适于: 调用的功能子系统读取所述待控制的实体对象的对象特征; 基于所述初始函数并根据读取的对象特征对引用的所述待控制的实体对象进行 初始化。 所述实体对象的对象特征包括实体速度、实体位置、实体朝向中的至少一项。 可选地,所述逻辑功能函数包括更新函数,所述控制模块还适于: 依据配置有控制参数的更新函数对初始化后的实体对象的对象特征状态进行更 新。 可选地,所述引用的待控制的实体对象包括至少两组实体对象,所述控制参数包 括为更新函数配置的针对各组实体对象的不同控制参数,所述控制模块还适于: 确定各组实体对象分别对应的控制参数; 依据配置控制参数的更新函数更新对应的初始化后的各组实体对象的对象特征 状态。 根据本发明实施例的另一方面,还提供了一种游戏系统,包括: 控制器,用于定义游戏系统的初始函数和逻辑功能函数,在初始函数中定义上下 文对象,并控制所述上下文对象创建多个实体对象和不同功能子系统; 存储单元,用于存储所述上下文对象及上下文对象创建的多个实体对象; 不同功能子系统,用于被所述控制器调用后依据所述逻辑功能函数对控制器引用 的实体对象执行逻辑功能。 可选地,所述存储单元中多个实体对象分别包含用于识别实体对象身份的身份属 性、用于区分各实体对象所属分组的分组属性、以及用于识别各实体对象的对象特征的特 征属性。 可选地,所述存储单元中多个实体对象以实体数组形式存储,实体数组中各实体 对象的身份属性对应的属性值为实体对象的唯一标识; 所述控制器还用于根据所述实体对象的唯一标识查找并引用待控制的实体对象, 利用调用的功能子系统依据所述逻辑功能函数对引用的所述待控制的实体对象进行控制。 可选地,所述控制器,还用于对引用的所述待控制的实体对象进行控制之前读取 7 CN 111552458 A 说 明 书 5/12 页 所述待控制的实体对象的特征属性,基于所述初始函数并根据读取的对象特征对引用的所 述待控制的实体对象进行初始化。 可选地,所述上下文对象包含groups属性和idxs属性,用于对实体数组中的实体 对象及属性进行区分和管理。 依据本发明实施例的再一方面,还提供了一种计算机存储介质,所述计算机存储 介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算 设备执行上文任意实施例中的游戏系统架构的构建方法和任意实施例中的游戏系统架构 的实现方法。 依据本发明实施例的再一方面,还提供了一种计算设备,包括:处理器;存储有计 算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备 执行上文任意实施例中的游戏系统架构的构建方法和任意实施例中的游戏系统架构的实 现方法。 本发明实施例通过控制器定义游戏系统的上下文对象,利用上下文对象创建实体 对象和不同功能子系统,进而通过控制器可以引用实体对象和不同功能子系统,由不同功 能子系统利用控制器定义的逻辑功能函数对控制器引用的实体对象执行逻辑功能。本发明 实施例采用相对简洁的过程来构建游戏系统架构,可以有效地实现实体对象和不同功能子 系统的有效解耦,由于实体对象为不包含逻辑的数据且不同功能子系统可以执行逻辑功 能,即有效实现了数据和逻辑功能的解耦,而且,还有效提高了数据和逻辑功能的复用率, 节约了游戏的开发资源。 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,以下特举本发明的
分享到:
收藏