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.在所述玩家数量为0时,在所述缓存空间中加载所述最新版本信息对应的最新资源包,在所述游戏服务器上将所述最新资源包部署在所述目标游戏项目下。
27.可选地,所述方法还包括:
28.响应于玩家的游戏登录请求,确定所述游戏登录请求指示登录的第一游戏;
29.查询游戏服务器上是否部署有所述第一游戏的第一游戏资源包;
30.当查询确定所述游戏服务器上未部署所述第一游戏资源包时,在资源服务器的缓存空间中读取所述第一游戏的第一游戏资源包,在所述游戏服务器上创建第一游戏项目,在所述游戏服务器上将所述第一游戏资源包部署在所述第一游戏项目下,并基于所述游戏服务器运行所述第一游戏资源包;
31.当确定所述游戏服务器上部署有所述第一游戏资源包时,基于所述游戏服务器运行所述第一游戏资源包,按照所述游戏登录请求的指示,在运行后的所述第一游戏资源包中为所述玩家创建虚拟区域。
32.可选地,所述方法还包括:
33.响应于玩家的游戏搜索请求,确定所述游戏搜索请求指示搜索的第二游戏;
34.当所述第二游戏的游戏状态指示所述未下载时,展示下载入口,并在所述下载入口被触发时,在资源服务器的缓存空间中下载所述第二游戏的第二游戏资源包,在所述游戏服务器上创建第二游戏项目,在所述游戏服务器上将所述第二游戏资源包部署在所述第二游戏项目下,并基于所述游戏服务器运行所述第二游戏资源包;
35.当所述第二游戏的游戏状态指示已下载且版本信息为最新版本信息时,展示游戏进入入口,并在所述游戏进入入口被触发时,基于所述游戏服务器运行所述第二游戏资源包;
36.当所述第二游戏的游戏状态指示已下载且所述版本信息与所述最新版本信息不
一致时,在所述资源服务器的缓存空间中下载所述第二游戏的资源更新包,将所述资源更新包与所述版本信息指示的所述第二游戏的资源包进行整合,得到新的游戏资源包,在所述游戏服务器上将所述新的游戏资源包部署在所述第二游戏项目下,并基于所述游戏服务器运行所述新的游戏资源包。
37.可选地,基于所述游戏服务器运行游戏资源包,包括:
38.初始化游戏引擎,与所述游戏服务器建立数据连接;
39.获取当前运行的游戏资源包的游戏模组标识,进入所述游戏模组标识指示的游戏模组,并启动界面管理器和脚本管理器;
40.基于所述脚本管理器,向所述游戏服务器发送区域进入请求;
41.接收所述游戏服务器反馈的区域标识,进入所述区域标识指示的目标区域,并执行当前运行的游戏资源包的游戏逻辑。
42.可选地,基于所述游戏服务器运行游戏资源包,包括:
43.初始化游戏引擎,与所述游戏服务器建立数据连接;
44.获取当前运行的游戏资源包的游戏模组标识,进入所述游戏模组标识指示的游戏模组,并启动界面管理器和脚本管理器;
45.基于所述脚本管理器,向所述游戏服务器发送区域进入请求;
46.接收所述游戏服务器反馈的区域标识,进入所述区域标识指示的目标区域,并执行当前运行的游戏资源包的游戏逻辑。
47.依据本技术第二方面,提供了一种资源发布装置,该装置包括:
48.第一确定模块,用于响应于资源发布请求,确定已创建文件夹和已选中资源模板,所述已创建文件夹包括待制作游戏的第一游戏资源;
49.编辑模块,用于获取输入至所述已选中资源模板的第二游戏资源,按照所述已选中资源模板对所述第一游戏资源和所述第二游戏资源进行编辑,得到场景文件;
50.构建模块,用于基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件;
51.发布模块,用于对所述场景文件和所述逻辑文件进行封装打包,得到所述待制作游戏的游戏资源包,并将所述游戏资源包发布。
52.可选地,所述编辑模块,用于加载所述已创建文件夹包括的所述第一游戏资源,加载输入至所述已选中资源模板中的所述第二游戏资源;按照所述已选中资源模板对所述第一游戏资源和所述第二游戏资源进行合成处理,得到二级游戏素材;采用编辑器对所述二级游戏素材进行编辑渲染,得到所述场景文件,其中,所述编辑器是场景编辑器、界面编辑器、资源编辑器中的一种或一种以上。
53.可选地,所述装置还包括:
54.测试模块,用于生成所述逻辑文件的脚本文件,对所述脚本文件进行测试;
55.所述发布模块,还用于当所述脚本文件通过测试时,继续对所述场景文件和所述逻辑文件进行封装打包,得到所述游戏资源包并将所述游戏资源包发布;
56.展示模块,用于当所述脚本文件未通过测试时,在所述逻辑文件中确定未通过测试的异常游戏逻辑,生成携带所述异常游戏逻辑的测试失败提醒,将所述测试失败提醒进行展示。
57.可选地,所述发布模块,用于将所述游戏资源包存储至资源服务器的缓存空间中;
在游戏服务器上建立目标游戏项目,在所述游戏服务器上将所述游戏资源包部署在所述目标游戏项目下。
58.可选地,所述发布模块,还用于每隔预设周期,读取部署在所述目标游戏项目下的游戏资源包的版本信息;当读取到的版本信息与最新版本信息不一致时,持续检测处于所述游戏资源包构建的游戏场景中的玩家数量;在所述玩家数量为0时,在所述缓存空间中加载所述最新版本信息对应的最新资源包,在所述游戏服务器上将所述最新资源包部署在所述目标游戏项目下。
59.可选地,所述装置还包括:
60.第二确定模块,用于响应于玩家的游戏登录请求,确定所述游戏登录请求指示登录的第一游戏;
61.查询模块,用于查询游戏服务器上是否部署有所述第一游戏的第一游戏资源包;
62.运行模块,用于当查询确定所述游戏服务器上未部署所述第一游戏资源包时,在资源服务器的缓存空间中读取所述第一游戏的第一游戏资源包,在所述游戏服务器上创建第一游戏项目,在所述游戏服务器上将所述第一游戏资源包部署在所述第一游戏项目下,并基于所述游戏服务器运行所述第一游戏资源包;
63.所述运行模块,还用于当确定所述游戏服务器上部署有所述第一游戏资源包时,基于所述游戏服务器运行所述第一游戏资源包,按照所述游戏登录请求的指示,在运行后的所述第一游戏资源包中为所述玩家创建虚拟区域。
64.可选地,所述装置还包括:
65.第三确定模块,用于响应于玩家的游戏搜索请求,确定所述游戏搜索请求指示搜索的第二游戏;
66.运行模块,用于当所述第二游戏的游戏状态指示所述未下载时,展示下载入口,并在所述下载入口被触发时,在资源服务器的缓存空间中下载所述第二游戏的第二游戏资源包,在所述游戏服务器上创建第二游戏项目,在所述游戏服务器上将所述第二游戏资源包部署在所述第二游戏项目下,并基于所述游戏服务器运行所述第二游戏资源包;
67.所述运行模块,还用于当所述第二游戏的游戏状态指示已下载且版本信息为最新版本信息时,展示游戏进入入口,并在所述游戏进入入口被触发时,基于所述游戏服务器运行所述第二游戏资源包;
68.所述运行模块,还用于当所述第二游戏的游戏状态指示已下载且所述版本信息与所述最新版本信息不一致时,在所述资源服务器的缓存空间中下载所述第二游戏的资源更新包,将所述资源更新包与所述版本信息指示的所述第二游戏的资源包进行整合,得到新的游戏资源包,在所述游戏服务器上将所述新的游戏资源包部署在所述第二游戏项目下,并基于所述游戏服务器运行所述新的游戏资源包。
69.可选地,所述运行模块,用于初始化游戏引擎,与所述游戏服务器建立数据连接;获取当前运行的游戏资源包的游戏模组标识,进入所述游戏模组标识指示的游戏模组,并启动界面管理器和脚本管理器;基于所述脚本管理器,向所述游戏服务器发送区域进入请求;接收所述游戏服务器反馈的区域标识,进入所述区域标识指示的目标区域,并执行当前运行的游戏资源包的游戏逻辑。
70.可选地,所述运行模块,还用于响应于玩家的退出请求,将所述退出请求传输至所
述游戏服务器;当所述退出请求指示退出当前运行的游戏资源包时,接收所述游戏服务器反馈的退出成功响应,取消游戏界面;当所述退出请求指示退出资源发布平台提供的客户端时,接收所述游戏服务器反馈的退出成功响应,取消游戏界面,保存当前的游戏资源包列表,断开与所述游戏服务器之间的数据连接,退出所述游戏引擎。
71.依据本技术第三方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述方法的步骤。
72.依据本技术第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的方法的步骤。
73.借由上述技术方案,本技术提供的一种资源发布方法、装置、计算机设备及计算机可读存储介质,本技术响应于资源发布请求,确定包括待制作游戏的第一游戏资源的已创建文件夹和已选中资源模板,获取输入至已选中资源模板的第二游戏资源,按照已选中资源模板对第一游戏资源和第二游戏资源进行编辑,得到场景文件,并基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件。最后,对场景文件和逻辑文件进行封装打包,得到待制作游戏的游戏资源包,并将游戏资源包发布,使得游戏的开发者在制作游戏的过程中无需考虑多端的概念,仅需提供与游戏内容相关的游戏资源便能够自动进行资源的发布,减轻开发人员的工作量,提升资源发布的效率,降低运维成本。
74.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
75.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
76.图1示出了本技术实施例提供的一种资源发布方法流程示意图;
77.图2a示出了本技术实施例提供的一种资源发布方法流程示意图;
78.图2b示出了本技术实施例提供的一种编辑器框架示意图;
79.图2c示出了本技术实施例提供的一种资源发布方法流程示意图;
80.图2d示出了本技术实施例提供的一种资源发布方法流程示意图;
81.图2e示出了本技术实施例提供的一种资源发布方法流程示意图;
82.图2f示出了本技术实施例提供的一种资源发布方法流程示意图;
83.图2g示出了本技术实施例提供的一种资源发布方法流程示意图;
84.图2h示出了本技术实施例提供的一种资源发布方法流程示意图;
85.图3a示出了本技术实施例提供的一种资源发布装置的结构示意图;
86.图3b示出了本技术实施例提供的一种资源发布装置的结构示意图;
87.图3c示出了本技术实施例提供的一种资源发布装置的结构示意图;
88.图3d示出了本技术实施例提供的一种资源发布装置的结构示意图;
89.图4示出了本技术实施例提供的一种计算机设备的装置结构示意图。
具体实施方式
90.下面将参照附图更详细地描述本技术的示例性实施例。虽然附图中显示了本技术的示例性实施例,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
91.本技术实施例提供了一种资源发布方法,如图1所示,该方法包括:
92.101、响应于资源发布请求,确定已创建文件夹和已选中资源模板,已创建文件夹包括待制作游戏的第一游戏资源。
93.102、获取输入至已选中资源模板的第二游戏资源,按照已选中资源模板对第一游戏资源和第二游戏资源进行编辑,得到场景文件。
94.103、基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件。
95.104、对场景文件和逻辑文件进行封装打包,得到待制作游戏的游戏资源包,并将游戏资源包发布。
96.本技术实施例提供的方法,响应于资源发布请求,确定包括待制作游戏的第一游戏资源的已创建文件夹和已选中资源模板,获取输入至已选中资源模板的第二游戏资源,按照已选中资源模板对第一游戏资源和第二游戏资源进行编辑,得到场景文件,并基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件。最后,对场景文件和逻辑文件进行封装打包,得到待制作游戏的游戏资源包,并将游戏资源包发布,使得游戏的开发者在制作游戏的过程中无需考虑多端的概念,仅需提供与游戏内容相关的游戏资源便能够自动进行资源的发布,减轻开发人员的工作量,提升资源发布的效率,降低运维成本。
97.本技术实施例提供了一种资源发布方法,如图2a所示,该方法包括:
98.201、响应于资源发布请求,确定已创建文件夹和已选中资源模板。
99.现有的游戏开发与游戏资源的发布流程,无论是使用商业引擎,还是自研引擎,都需要美术和策划人员使用编辑器制作游戏中使用的资源,程序人员对资源进行编译,得到能够发布到各个平台的可执行程序,然后将整个游戏的资源打包发布到各应用商店。比如在steam(一种游戏或软件平台)平台或googleplay(一种在线应用程序商店)等应用商店发布游戏,开发者需要上传发布对应平台的整个游戏包,用户使用设备从平台下载整个游戏包安装后使用。进一步地,每个游戏均对应有服务器,有更新需要重新对游戏资源进行编译,生成新的可执行程序。而且,游戏更新时,游戏对应的服务器需要停止服务器进程,重新下载可执行程序,更新服务器逻辑依赖的表格文件,脚本文件等。
100.但是,申请人认识到,在上述整个资源发布以及运维的过程中存在以下多个缺陷。首先,游戏资源包的体积较大,需要重复对资源进行打包上传,有几个平台需要发布游戏,就需要打包几份资源,尤其针对一些存在渠道的概念的平台来说,平台的每个渠道都需要上传一份特定的渠道包。因此,程序开发人员需要对每个游戏的每个平台编译对应的程序代码,存在大量重复工作。其次,资源开发以及发布的流程复杂。一个完整游戏的开发需要美术,策划和程序等人员紧密有序配合,一方面增加了出错概率,另一方面增加了游戏开发时间,提高了成本,且网络游戏需要大量的服务器部署与逻辑调试,需要消耗服务器开发者与客户端开发者大量的调试时间。再有,由于在进行游戏的逻辑更新时,需要服务器重新编译执行文件,因此,实际上游戏更新大多是停服更新,影响用户的体验,增加运维成本。
101.综上,本技术提出一种资源发布方法,响应于资源发布请求,确定包括待制作游戏的第一游戏资源的已创建文件夹和已选中资源模板,获取输入至已选中资源模板的第二游戏资源,按照已选中资源模板对第一游戏资源和第二游戏资源进行编辑,得到场景文件,并基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件。最后,对场景文件和逻辑文件进行封装打包,得到待制作游戏的游戏资源包,并将游戏资源包发布,使得游戏的开发者在制作游戏的过程中无需考虑多端的概念,仅需提供与游戏内容相关的游戏资源便能够自动进行资源的发布,减轻开发人员的工作量,提升资源发布的效率,降低运维成本。
102.其中,为了实现本技术的技术方案,本技术实施例提供一种资源发布平台。该资源发布平台是作为一组应用程序存在,其中包括编辑器、windows(一种操作系统)、ios(一种操作系统)和android(一种操作系统)客户端,每个客户端只是作为一个空的游戏框架存在,并不包括具体的游戏内容,而开发者后期通过编辑器发布的游戏内容会作为附加包上传到资源发布平台,以使得用户在资源发布平台上挑选具体的游戏内容下载到对应客户端进行游玩。具体地,用户可以注册登录到资源发布平台后,打开编辑器进行游戏制作。编辑器作为资源发布平台的核心工具,其设计目标为包含从设计、开发、预览、调试到发布的整个工作流所需的全功能一体化编辑器,目标支持发布游戏到ios、android、与pc(personal computer,个人计算机)客户端平台,真正实现一次开发,全平台运行。参见图2b所示的编辑器框架图,利用客户端已经封装的2d engine core(2维引擎核心)接收开发者的资源发布请求,进而调用动画特效编辑器、地形编辑器、剧情编辑器、场景编辑器、逻辑编辑器、ui(user interface,用户界面)编辑器等完成游戏场景、ui以及游戏逻辑的制作。
103.在本技术实施例中,编辑器整合所有工具,提供面向设计的自动化工作流,实现完全不用编程即可发布游戏。编辑器实际上会为开发者提供预设的游戏模板、模块等资源模板,以便降低开发者的学习成本,使开发者可以直接使用资源模板。而为了区分不同开发者开发的游戏,响应于开发者的资源发布请求,资源发布平台的编辑器会确定开发者在下发资源发布请求时创建的已创建文件夹和已选中资源模板,从而在后续以已创建文件夹为基础进行游戏的开发。其中,已创建文件夹包括待制作游戏的第一游戏资源,第一游戏资源可以是资源发布平台提供的在线资源,也可以是开发者本地导入的,比如图片、声音、视频等资源,资源发布平台基于编辑器加载到第一游戏资源后会复制到已创建文件夹下,此外,在资源发布平台的编辑器中开发者也可以利用资源发布平台提供的在线资源创建动画和粒子等二类资源。
104.202、获取输入至已选中资源模板的第二游戏资源,按照已选中资源模板对第一游戏资源和第二游戏资源进行编辑,得到场景文件。
105.在本技术实施例中,确定了包括待制作游戏的第一游戏资源的已创建文件夹和已选中资源模板后,与待制作游戏相关的项目中已经有了一些基本资源,资源发布平台会基于编辑器获取输入至已选中资源模板的第二游戏资源,按照已选中资源模板对第一游戏资源和第二游戏资源进行编辑,得到场景文件,从而实现待制作游戏中场景内容与ui的构建。
106.其中,在生成场景文件时,资源发布平台基于编辑器加载已创建文件夹包括的第一游戏资源,加载输入至已选中资源模板中的第二游戏资源。随后,按照已选中资源模板对第一游戏资源和第二游戏资源进行合成处理,得到二级游戏素材,并采用编辑器对二级游戏素材进行编辑渲染,得到场景文件。其中,生成场景文件时使用的编辑器可以是场景编辑
器、界面编辑器、资源编辑器中的一种或一种以上。二级游戏素材可以是开发者基于上述编辑器制作的游戏中的动画、特效等,比如作为游戏角色的技能或者场景背景的动画、特效等均属于二级游戏素材。
107.需要说明的是,场景是游戏内容最基本的组织方式,也是向玩家展示游戏的基本形态。因此,资源发布平台中还设置有诸如地形工具、刷怪工具等,开发者可以选择地形工具,拖入静态图片以及使用阻挡图或刷怪工具等对场景进行完善,并通过界面编辑器编辑游戏界面,后续游戏界面的按钮响应通过逻辑编辑器实现ui功能。
108.203、基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件。
109.在本技术实施例中,完成了场景文件的创建后,由于游戏中会有游戏任务、故事线等游戏逻辑,因此,需要基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件,使游戏内容更加的完善。
110.具体地,开发者可以使用资源发布平台中配置的各种全局容器以及随机池和公式编辑器等对象编辑器来配置对象数据,使用逻辑编辑器拼搭实现具体的游戏逻辑,实现游戏逻辑的运行和交互,驱动整个游戏逻辑的主循环脚本和玩家角色的控制。
111.需要说明的是,为了保证待制作游戏发布后能够正常运行,在生成场景文件和逻辑文件后,资源发布平台会进行逻辑文件的测试,利用编辑器自动进行逻辑脚本生成,资源打包与数据生成等,在windows平台下进行游戏测试。具体地,资源发布平台会生成逻辑文件的脚本文件,对脚本文件进行测试。当脚本文件通过测试时,继续对场景文件和逻辑文件进行封装打包,得到游戏资源包并将游戏资源包发布。而当脚本文件未通过测试时,在逻辑文件中确定未通过测试的异常游戏逻辑,生成携带异常游戏逻辑的测试失败提醒,将测试失败提醒进行展示,以便开发者基于测试失败提醒进行逻辑文件的修改。在实际应用的过程中,资源发布平台为场景文件提供预览的功能,开发者可以随时点击预览来查看当前场景的运行效果。
112.204、对场景文件和逻辑文件进行封装打包,得到待制作游戏的游戏资源包,并将游戏资源包发布。
113.在本技术实施例中,在生成场景文件和逻辑文件后,资源发布平台会对场景文件和逻辑文件进行封装打包,得到待制作游戏的游戏资源包,并将游戏资源包发布。其中,打包和发布的过程可以由资源发布平台中的编辑器执行,编辑器会自动进行多平台资源增量打包上传,直接进行发布。
114.在进行游戏资源包的发布时,可将游戏资源包存储至资源服务器的缓存空间中,并在游戏服务器上建立目标游戏项目,在游戏服务器上将游戏资源包部署在目标游戏项目下。
115.需要说明的是,无论是上述步骤203中提及的测试过程还是步骤204中提及的发布过程,资源发布平台均需要将资源数据进行转换压缩后提供给客户端及服务器使用,也即将与待制作游戏相关的资源数据导出,导出的数据包括:
116.1、原始素材。原始素材指的是场景文件中的图片、音频、视频等素材,需要根据待制作游戏所要发布的平台指示的格式进行格式转换;
117.2、场景数据。场景数据指的是场景文件,或者有时ui或者动画特效等会形成独立的ui文件、动画特效文件等,ui文件、动画特效文件等也属于场景数据。场景数据根据需要
转化为二进制数据,以便后续用于客户端地图加载和创建角色等操作中;
118.3、模板数据:模板数据指的是开发者配置的角色、背包、道具及技能等数据,模板数据会导出到服务器,以便用于角色等逻辑数据的创建等操作中;
119.4、阻挡数据:阻挡数据指的是开发者在地图上设置的阻挡信息。阻挡数据会导出二进制文件供服务器和客户端使用;
120.5、脚本文件:脚本文件指的是开发者使用积木块在逻辑编辑器里进行拼搭生成的逻辑文件的脚本,会自动导出为服务器脚本进行发布;
121.6、其他配置数据:其他配置数据指的是游戏运行需要的其他配置文件,其他配置数据也会随着游戏的发布而发布。
122.在实际应用的过程中,上面描述的导出数据最后会分别打包上传到其他第三方平台进行下一步审核,审核通过后会分别进行服务器部署、游戏上架等。
123.综上,资源发布平台中编辑器的工作流程如图2c所示:首先,编辑器对开发者提供的图片、音频、视频等第一游戏资源和第二游戏资源进行处理,得到二级游戏素材。随后,基于场景编辑器、ui编辑器、逻辑编辑器、对象编辑器、剧情编辑器、任务编辑器等生成场景文件和逻辑文件。最后,对场景文件和逻辑文件进行打包,生成脚本文件进行测试,并在测试通过后发布。
124.另外,资源发布平台的服务器启动时并不会加载任何的游戏服务器的资源。当服务器检测到玩家请求登录到游戏服务器并请求创建对应游戏服务器的房间时,服务器会确定游戏登录请求指示登录的第一游戏,也即确定玩家想要登录到哪个游戏中。随后,服务器会查询游戏服务器上是否部署有第一游戏的第一游戏资源包。当查询确定游戏服务器上未部署第一游戏资源包时,在资源服务器的缓存空间中读取第一游戏的第一游戏资源包,在游戏服务器上创建第一游戏项目,在游戏服务器上将第一游戏资源包部署在第一游戏项目下,并基于游戏服务器运行第一游戏资源包,实现对第一游戏资源包的解压和部署,加载第一游戏的游戏逻辑,为玩家创建房间、花园等虚拟区域。而当确定游戏服务器上部署有第一游戏资源包时,基于游戏服务器运行第一游戏资源包,按照游戏登录请求的指示,在运行后的第一游戏资源包中为玩家创建虚拟区域。
125.进一步地,资源发布平台的服务器会定期检测已经存在的游戏资源的版本,也即每隔预设周期,服务器读取部署在目标游戏项目下的游戏资源包的版本信息。当读取到的版本信息与最新版本信息不一致时,持续检测处于游戏资源包构建的游戏场景中的玩家数量,并在玩家数量为0时,在缓存空间中加载最新版本信息对应的最新资源包,在游戏服务器上将最新资源包部署在目标游戏项目下。而当读取到的版本信息与最新版本信息一致时,保持当前的工作状态。
126.综上,游戏资源包的整个发布过程如下:
127.参见图2d,游戏资源包上传至服务器等待平台审核。当审核未通过时,通知开发者对游戏资源包进行整改。而当审核通过时,将游戏资源包添加至资源版本列表中,并将游戏资源包存储在缓存空间中。进一步地,当有玩家基于客户端请求登录游戏时,服务器会启动服务器进程,根据资源版本列表中的记录检查已经运行的游戏资源包的版本是否为最新版本。若不是最新版本,则在缓存空间中加载最新版本的游戏资源包,并在玩家退出游戏时进行更新。而若是最新版本,则保持游戏的运行状态。需要说明的是,如果玩家请求登录游戏
时使用的设备上并未下载游戏资源包,则需要向缓存空间请求游戏资源包,并下载在设备上后基于客户端通知玩家进入游戏。
128.通过上述步骤201至步骤204中的过程便完成了待制作游戏的制作以及发布的过程,具体过程总结如下:
129.参见图2e,资源发布平台基于编辑器接收开发者提供的游戏资源,生成场景文件和逻辑文件进行测试,并在测试通过后,将场景文件和逻辑文件打包生成游戏资源包上传到资源发布平台的服务器上。服务器对游戏资源包进行存储、列表记录以及部署,并在面向玩家的客户端中提供游戏的下载、运行入口。当服务器基于客户端检测到玩家请求运行游戏资源包时,下载该游戏资源包,并在玩家的设备上载入游戏资源包中的游戏资源,进入游戏,按照玩家的指示继续在游戏界面上执行操作、创建房间、组队匹配等等。
130.在本技术实施例中,实际上资源发布平台面向玩家同样提供有客户端,客户端提供多个不同的模块,以便玩家基于不同模块的功能进行个人信息、游戏的管理并能够与资源发布平台中注册的其他玩家进行交互。具体地,资源发布平台提供的客户端包括发现模块、游戏架模块、个人中心模块、首页模块以及社区模块。其中,发现模块主要用于展示资源发布平台中已经上线游戏以及为玩家提供游戏搜索功能,玩家可以从发现模块提供的发现页中推荐的游戏进入到游戏详情页面了解游戏并进行游戏下载,也可以搜索自己感兴趣的游戏进入游戏详情页面了解游戏并进行游戏下载;游戏架模块主要用于管理玩家正在下载和已经下载的资源发布平台上的各种游戏,如果游戏已经下载,可以从这里启动游戏;个人中心模块主要用于管理玩家的个人资料,提供社区注册登录入口以及资源发布平台的客户端相关功能的设置入口;首页模块主要展示关于资源发布平台中上线的游戏的各种话题和评论;社区模块用于提供资源发布平台关联的平台社区中玩家的社交功能,包括好友,消息等。如图2f所示,玩家搜索以及进入游戏的过程包括:
131.205、响应于玩家的游戏搜索请求,确定游戏搜索请求指示搜索的第二游戏。当第二游戏的游戏状态指示未下载时,执行下述步骤206;当第二游戏的游戏状态指示已下载且版本信息为最新版本信息时,执行下述步骤207;当第二游戏的游戏状态指示已下载且版本信息与最新版本信息不一致时,执行下述步骤208。
132.在本技术实施例中,玩家可以在发现模块提供的发现页面上输入想要搜索的游戏名称。这样,当玩家对发现页面上输入的信息确认后,响应于玩家的游戏搜索请求,资源发布平台确定游戏搜索请求指示搜索的第二游戏,检查第二游戏是否已经在客户端中下载。当第二游戏的游戏状态指示未下载时,需要协助玩家下载第二游戏并在下载成功后再进入第二游戏,也即执行下述步骤206;而当第二游戏的游戏状态指示已下载且版本信息为最新版本信息时,可直接进入该第二游戏,也即执行下述步骤207;而当第二游戏的游戏状态指示已下载且版本信息与最新版本信息不一致时,需要在客户端中对第二游戏进行更新,并在更新成功后进入第二游戏,也即执行下述步骤208。
133.206、当第二游戏的游戏状态指示未下载时,展示下载入口,并在下载入口被触发时,在资源服务器的缓存空间中下载第二游戏的第二游戏资源包,在游戏服务器上创建第二游戏项目,在游戏服务器上将第二游戏资源包部署在第二游戏项目下,并基于游戏服务器运行第二游戏资源包。
134.在本技术实施例中,当第二游戏的游戏状态指示未下载时,需要协助玩家下载第
二游戏并在下载成功后再进入第二游戏,因此,展示下载入口,并在下载入口被触发时,在资源服务器的缓存空间中下载第二游戏的第二游戏资源包,在游戏服务器上创建第二游戏项目,在游戏服务器上将第二游戏资源包部署在第二游戏项目下,并基于游戏服务器运行第二游戏资源包。
135.207、当第二游戏的游戏状态指示已下载且版本信息为最新版本信息时,展示游戏进入入口,并在游戏进入入口被触发时,基于游戏服务器运行第二游戏资源包。
136.在本技术实施例中,当第二游戏的游戏状态指示已下载且版本信息为最新版本信息时,可直接进入该第二游戏,因此,展示游戏进入入口,并在游戏进入入口被触发时,基于游戏服务器运行第二游戏资源包。
137.208、当第二游戏的游戏状态指示已下载且版本信息与最新版本信息不一致时,在资源服务器的缓存空间中下载第二游戏的资源更新包,将资源更新包与版本信息指示的第二游戏的资源包进行整合,得到新的游戏资源包,在游戏服务器上将新的游戏资源包部署在第二游戏项目下,并基于游戏服务器运行新的游戏资源包。
138.在本技术实施例中,当第二游戏的游戏状态指示已下载且版本信息与最新版本信息不一致时,需要在客户端中对第二游戏进行更新,并在更新成功后进入第二游戏,因此,在资源服务器的缓存空间中下载第二游戏的资源更新包,将资源更新包与版本信息指示的第二游戏的资源包进行整合,得到新的游戏资源包,在游戏服务器上将新的游戏资源包部署在第二游戏项目下,并基于游戏服务器运行新的游戏资源包。
139.需要说明的是,为了针对上述三种状态对玩家进行提醒以及协助玩家下载资源包和更新,当玩家在发现页面上进入第二游戏的游戏详情页面后,可以根据第二游戏的不同状态显示不同的操作按钮,具体参见图2g:
140.向玩家展示发现页面,当检测到玩家在发现页面上直接点选第二游戏或者通过发现页面的搜索功能查找第二游戏时,进入到第二游戏的游戏详情页面。当第二游戏的游戏状态指示未下载时,显示下载按钮,并在检测到该下载按钮被触发时,向资源服务器请求下载第二游戏的第二游戏资源包,切换至游戏架模块显示下载进度,下载完毕后跳转到游戏架模块中的已下载页面,在检测到玩家点击第二游戏关联的打开按钮时进入游戏。当第二游戏的游戏状态指示游戏已下载且版本信息为最新版本信息时,显示第二游戏关联的打开按钮,并在检测到玩家点击打开按钮时进入游戏。当第二游戏的游戏状态指示已下载且版本信息与最新版本信息不一致时,显示更新按钮,在检测到更新按钮被触发后向资源服务器请求下载资源更新包,切换至游戏架模块显示下载进度,下载完毕后会和当前版本信息指示的资源包整合成新的游戏资源包并跳转到游戏架模块中的已下载页面,在检测到玩家点击第二游戏关联的打开按钮时进入游戏。
141.在实际应用的过程中,玩家在资源发布平台中进入游戏后,资源发布平台开始基于游戏服务器运行游戏资源包。参见图2h,资源发布平台的客户端切换到游戏窗口,初始化游戏引擎,读取本地配置的服务器ip(internet protocol,网络之间互联的协议)地址和端口,连接socket(端口),与游戏服务器建立数据连接。需要说明的是,若连接失败,则每隔2秒再次进行连接。如果检测到玩家是首次基于资源发布平台的客户端连接游戏服务器,则登录到游戏服务器,获取当前运行的游戏资源包的游戏模组标识,游戏模组标识具体可以是modid(模组标识),进入游戏模组标识指示的游戏模组,游戏模组也即游戏mod(模组),并
启动界面管理器和脚本管理器。随后,资源发布平台基于脚本管理器,向游戏服务器发送区域进入请求,并接收游戏服务器反馈的区域标识,进入区域标识指示的目标区域,并执行当前运行的游戏资源包的游戏逻辑。
142.另外,继续参见图2h,客户端会持续监听玩家是否点击悬停窗口的退出游戏按键,若检测到玩家点击了退出游戏按键,则确定接收到玩家的退出请求。响应于玩家的退出请求,客户端将退出请求传输至游戏服务器,向服务器发出退出房间消息。其中,需要说明的是,实际上退出请求有两种情况,一种是玩家想要退出当前正在运行的游戏,另一种情况是玩家想要退出资源发布平台提供的客户端,因此,当退出请求指示退出当前运行的游戏资源包时,接收游戏服务器反馈的退出成功响应,取消游戏界面。而当退出请求指示退出资源发布系统时,接收游戏服务器反馈的退出成功响应,取消游戏界面,保存当前的游戏资源包列表,断开与游戏服务器之间的数据连接,退出游戏引擎。再有,如果玩家请求进入其他的游戏,则重复执行获取当前运行的游戏资源包的游戏模组标识以及后续的过程,从而使游戏正常运行。
143.综上,采用这种新的游戏资源发布流程,资源发布平台可事先对游戏数据的部署进行分类处理,对于已有成熟的游戏模块的数据及逻辑可以直接提供给开发者,以便快速搭建游戏主要框架并保证其健壮性,大大简化与加速了游戏发布流程,使游戏开发迭代更有效率。
144.本技术实施例提供的方法,响应于资源发布请求,确定包括待制作游戏的第一游戏资源的已创建文件夹和已选中资源模板,获取输入至已选中资源模板的第二游戏资源,按照已选中资源模板对第一游戏资源和第二游戏资源进行编辑,得到场景文件,并基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件。最后,对场景文件和逻辑文件进行封装打包,得到待制作游戏的游戏资源包,并将游戏资源包发布,使得游戏的开发者在制作游戏的过程中无需考虑多端的概念,仅需提供与游戏内容相关的游戏资源便能够自动进行资源的发布,减轻开发人员的工作量,提升资源发布的效率,降低运维成本。
145.进一步地,作为图1所述方法的具体实现,本技术实施例提供了一种资源发布装置,如图3a所示,所述装置包括:第一确定模块301,编辑模块302,构建模块303和发布模块304。
146.该第一确定模块301建文件夹包括待制作游戏的第一游戏资源;
147.该编辑模块302,用于获取输入至所述已选中资源模板的第二游戏资源,按照所述已选中资源模板对所述第一游戏资源和所述第二游戏资源进行编辑,得到场景文件;
148.该构建模块303,用于基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件;
149.该发布模块304,用于对所述场景文件和所述逻辑文件进行封装打包,得到所述待制作游戏的游戏资源包,并将所述游戏资源包发布。
150.在具体的应用场景中,该编辑模块302,用于加载所述已创建文件夹包括的所述第一游戏资源,加载输入至所述已选中资源模板中的所述第二游戏资源;按照所述已选中资源模板对所述第一游戏资源和所述第二游戏资源进行合成处理,得到二级游戏素材;采用编辑器对所述二级游戏素材进行编辑渲染,得到所述场景文件,其中,所述编辑器是场景编辑器、界面编辑器、资源编辑器中的一种或一种以上。
151.在具体的应用场景中,如图3b所示,该装置还包括:测试模块305,展示模块306。
152.该测试模块305,用于生成所述逻辑文件的脚本文件,对所述脚本文件进行测试;
153.该发布模块304,还用于当所述脚本文件通过测试时,继续对所述场景文件和所述逻辑文件进行封装打包,得到所述游戏资源包并将所述游戏资源包发布;
154.该展示模块306,用于当所述脚本文件未通过测试时,在所述逻辑文件中确定未通过测试的异常游戏逻辑,生成携带所述异常游戏逻辑的测试失败提醒,将所述测试失败提醒进行展示。
155.在具体的应用场景中,该发布模块304,用于将所述游戏资源包存储至资源服务器的缓存空间中;在游戏服务器上建立目标游戏项目,在所述游戏服务器上将所述游戏资源包部署在所述目标游戏项目下。
156.在具体的应用场景中,该发布模块304,还用于每隔预设周期,读取部署在所述目标游戏项目下的游戏资源包的版本信息;当读取到的版本信息与最新版本信息不一致时,持续检测处于所述游戏资源包构建的游戏场景中的玩家数量;在所述玩家数量为0时,在所述缓存空间中加载所述最新版本信息对应的最新资源包,在所述游戏服务器上将所述最新资源包部署在所述目标游戏项目下。
157.在具体的应用场景中,如图3c所示,该装置还包括:第二确定模块307,查询模块308和运行模块309。
158.该第二确定模块307,用于响应于玩家的游戏登录请求,确定所述游戏登录请求指示登录的第一游戏;
159.该查询模块308,用于查询游戏服务器上是否部署有所述第一游戏的第一游戏资源包;
160.该运行模块309,用于当查询确定所述游戏服务器上未部署所述第一游戏资源包时,在资源服务器的缓存空间中读取所述第一游戏的第一游戏资源包,在所述游戏服务器上创建第一游戏项目,在所述游戏服务器上将所述第一游戏资源包部署在所述第一游戏项目下,并基于所述游戏服务器运行所述第一游戏资源包;
161.该运行模块309,还用于当确定所述游戏服务器上部署有所述第一游戏资源包时,基于所述游戏服务器运行所述第一游戏资源包,按照所述游戏登录请求的指示,在运行后的所述第一游戏资源包中为所述玩家创建虚拟区域。
162.在具体的应用场景中,如图3d所示,该装置还包括:第三确定模块310和运行模块309。
163.该第三确定模块310,用于响应于玩家的游戏搜索请求,确定所述游戏搜索请求指示搜索的第二游戏;
164.该运行模块309,用于当所述第二游戏的游戏状态指示所述未下载时,展示下载入口,并在所述下载入口被触发时,在资源服务器的缓存空间中下载所述第二游戏的第二游戏资源包,在所述游戏服务器上创建第二游戏项目,在所述游戏服务器上将所述第二游戏资源包部署在所述第二游戏项目下,并基于所述游戏服务器运行所述第二游戏资源包;
165.该运行模块309,还用于当所述第二游戏的游戏状态指示已下载且版本信息为最新版本信息时,展示游戏进入入口,并在所述游戏进入入口被触发时,基于所述游戏服务器运行所述第二游戏资源包;
166.该运行模块309,还用于当所述第二游戏的游戏状态指示已下载且所述版本信息与所述最新版本信息不一致时,在所述资源服务器的缓存空间中下载所述第二游戏的资源更新包,将所述资源更新包与所述版本信息指示的所述第二游戏的资源包进行整合,得到新的游戏资源包,在所述游戏服务器上将所述新的游戏资源包部署在所述第二游戏项目下,并基于所述游戏服务器运行所述新的游戏资源包。
167.在具体的应用场景中,该运行模块309,用于初始化游戏引擎,与所述游戏服务器建立数据连接;获取当前运行的游戏资源包的游戏模组标识,进入所述游戏模组标识指示的游戏模组,并启动界面管理器和脚本管理器;基于所述脚本管理器,向所述游戏服务器发送区域进入请求;接收所述游戏服务器反馈的区域标识,进入所述区域标识指示的目标区域,并执行当前运行的游戏资源包的游戏逻辑。
168.在具体的应用场景中,该运行模块309,还用于响应于玩家的退出请求,将所述退出请求传输至所述游戏服务器;当所述退出请求指示退出当前运行的游戏资源包时,接收所述游戏服务器反馈的退出成功响应,取消游戏界面;当所述退出请求指示退出资源发布平台提供的客户端时,接收所述游戏服务器反馈的退出成功响应,取消游戏界面,保存当前的游戏资源包列表,断开与所述游戏服务器之间的数据连接,退出所述游戏引擎。
169.本技术实施例提供的装置,响应于资源发布请求,确定包括待制作游戏的第一游戏资源的已创建文件夹和已选中资源模板,获取输入至已选中资源模板的第二游戏资源,按照已选中资源模板对第一游戏资源和第二游戏资源进行编辑,得到场景文件,并基于对象编辑器和逻辑编辑器构建游戏逻辑,得到逻辑文件。最后,对场景文件和逻辑文件进行封装打包,得到待制作游戏的游戏资源包,并将游戏资源包发布,使得游戏的开发者在制作游戏的过程中无需考虑多端的概念,仅需提供与游戏内容相关的游戏资源便能够自动进行资源的发布,减轻开发人员的工作量,提升资源发布的效率,降低运维成本。
170.需要说明的是,本技术实施例提供的一种资源发布装置所涉及各功能单元的其他相应描述,可以参考图1和图2a中的对应描述,在此不再赘述。
171.在示例性实施例中,参见图4,还提供了一种设备,该设备包括总线、处理器、存储器和通信接口,还可以包括输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的资源发布法。
172.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的资源发布方法的步骤。
173.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd
‑
rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景所述的方法。
174.本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本技术所必须的。
175.本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装
置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
176.上述本技术序号仅仅为了描述,不代表实施场景的优劣。
177.以上公开的仅为本技术的几个具体实施场景,但是,本技术并非局限于此,任何本领域的技术人员能思之的变化都应落入本技术的保护范围。