游戏资源文件管理方法、装置、电子设备及存储介质与流程

文档序号:33642135发布日期:2023-03-29 02:24阅读:112来源:国知局
游戏资源文件管理方法、装置、电子设备及存储介质与流程

1.本发明涉及计算机领域,尤其是涉及一种游戏资源文件管理方法、装置、电子设备及存储介质。


背景技术:

2.现有的各种网络游戏,为了确保画质精美势必会采用高精度高质量的资源文件去呈现游戏世界。对于一个主流的游戏类型:大型多人在线游戏,玩家更倾向于通过在单个终端设备开启多个游戏客户端软件来完成一些游戏内的团队玩法,对设备内存的消耗也会随着开启的客户端软件增多而成倍地增加。


技术实现要素:

3.有鉴于此,本发明提供一种游戏资源文件管理方法、装置、电子设备及存储介质,能够在通过终端设备运行同一游戏的两个以上客户端程序时降低内存占用。
4.第一方面,本发明实施例提供一种游戏资源文件管理方法,通过终端设备运行同一游戏的两个以上客户端程序,所述游戏资源文件管理方法包括:启动所述客户端程序;启动资源管理模块,所述资源管理模块包括共享内存,所述共享内存用于存储所述游戏的资源文件;建立所述客户端程序与所述资源管理模块的通信;响应所述客户端程序对目标资源文件的加载指令,在所述资源管理模块中检索所述共享内存中是否存在所述目标资源文件;若所述共享内存中存在所述目标资源文件,则控制所述客户端程序从所述共享内存加载所述目标资源文件。
5.根据本发明第一方面的前述实施方式,所述游戏资源文件管理方法还包括:若所述共享内存中不存在所述目标资源文件,则控制所述资源管理模块加载所述目标资源文件至所述共享内存中,并控制所述客户端程序从所述共享内存加载所述目标资源文件。
6.根据本发明第一方面的前述任一实施方式,所述启动所述客户端程序之后,所述游戏资源文件管理方法还包括:若本次启动所述客户端程序为首次启动,则检测所述资源管理模块是否运行中,若所述资源管理模块已在运行中,则进行所述建立所述客户端程序与所述资源管理模块的通信的步骤,若所述资源管理模块未在运行中,则进行所述启动资源管理模块的步骤。
7.根据本发明第一方面的前述任一实施方式,所述启动所述客户端程序之后,所述游戏资源文件管理方法还包括:若本次启动所述客户端程序前已有运行中的所述客户端程序,则进行所述建立所述客户端程序与所述资源管理模块的通信的步骤。
8.根据本发明第一方面的前述任一实施方式,在所述启动资源管理模块之后,所述游戏资源文件管理方法还包括:控制所述资源管理模块在所述游戏的全部所述客户端程序都关闭进程后的预设时长后结束进程。
9.根据本发明第一方面的前述任一实施方式,所述共享内存通过哈希函数针对所述游戏的不同所述资源文件分配不同的内存分块。
10.根据本发明第一方面的前述任一实施方式,所述响应所述客户端程序对目标资源文件的加载指令,在所述资源管理模块中检索所述共享内存中是否存在所述目标资源文件包括:将所述目标资源文件的资源路径作为关键词在所述资源管理模块中检索所述共享内存中是否存在所述目标资源文件。
11.根据本发明第一方面的前述任一实施方式,每个所述内存分块包括:互斥锁,用于控制读写;逻辑地址空间,用于缓存所述资源文件;伙伴系统分配标记空间,用于管理对所述逻辑地址空间的分配和回收进行管理;自定义哈希列表,用于记录当前的关键词对应的所述资源文件在所述逻辑地址空间的存储信息的映射关系。
12.根据本发明第一方面的前述任一实施方式,所述若所述共享内存中存在所述目标资源文件,则控制所述客户端程序从所述共享内存加载所述目标资源文件包括:若所述共享内存中存在所述目标资源文件,控制所述资源管理模块向所述客户端程序反馈所述目标资源文件对应的所述逻辑地址空间;控制所述客户端程序根据所述逻辑地址空间加载对应的所述目标资源文件。
13.根据本发明第一方面的前述任一实施方式,所述资源管理模块内采用最近最少使用的淘汰策略和引用计数的垃圾回收策略对所述共享内存进行管理。
14.第二方面,本发明实施例提供一种游戏资源文件管理装置,通过终端设备运行同一游戏的两个以上客户端程序,所述游戏资源文件管理装置包括:客户端启动单元,用于启动所述客户端程序;资源管理启动单元,用于启动资源管理模块,所述资源管理模块包括共享内存,所述共享内存用于存储所述游戏的资源文件;通信单元,用于建立所述客户端程序与所述资源管理模块的通信;检索单元,用于响应所述客户端程序对目标资源文件的加载指令,在所述资源管理模块中检索所述共享内存中是否存在所述目标资源文件;加载单元,用于在所述共享内存中存在所述目标资源文件时,控制所述客户端程序从所述共享内存加载所述目标资源文件。
15.第三方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现根据本发明第一方面的前述任一实施方式的游戏资源文件管理方法。
16.第四方面,本发明实施例提供一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现根据本发明第一方面的前述任一实施方式的游戏资源文件管理方法。
17.根据本发明实施例的游戏资源文件管理方法、装置、电子设备及存储介质,通过终端设备运行同一游戏的两个以上客户端程序,通过包括共享内存的启动资源管理模块,该共享内存能够存储游戏的资源文件,同一游戏的多个客户端软件的相同资源文件存放于全局唯一的资源管理模块中,将客户端软件进程内的资源文件的输入输出,转变成客户端软件进程与资源管理模块进程的通信,加快了重复资源文件加载的速度,减少了终端设备的内存消耗。常用的以及频繁使用的资源文件可以有效缓存在资源管理模块中,降低游戏客户端软件的冷启动。
18.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书
以及附图中所特别指出的结构来实现和获得。
19.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
20.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1为本发明一种实施例提供的游戏资源文件管理方法的流程图;
22.图2为本发明一种实施例提供的游戏资源文件管理方法中共享内存的结构示意图;
23.图3为本发明一种实施例提供的游戏资源文件管理装置的结构框图;
24.图4为本发明一种实施例提供的电子设备的结构框图。
具体实施方式
25.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.现有的各种网络游戏,为了确保画质精美势必会采用高精度高质量的资源文件去呈现游戏世界。对于一个主流的游戏类型:大型多人在线游戏(massive multiplayer online game,mmog),玩家更倾向于通过在单个终端设备开启多个游戏客户端软件来完成一些游戏内的团队玩法,以及部分“小号”的培养,对设备内存的消耗也会随着开启的客户端软件增多而成倍地增加。
27.基于此,本发明实施例提供的一种游戏资源文件管理方法、装置、电子设备及存储介质,对游戏的资源文件做统一管理,让游戏的多个客户端软件的一些公有资源文件能得到复用,减少游戏客户端软件的运行时内存,同时降低部分输入输出(io)消耗,以提升游戏体验。
28.在本发明其中一种实施例中的游戏资源文件管理方法,可以运行于触控或非触控的客户端设备或者是服务器。游戏资源文件管理方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
29.在一些可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,游戏资源文件管理方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游
戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
30.在一些可选的实施方式中,以游戏为例,本地触控终端设备存储有游戏程序并用于呈现游戏画面。本地触控终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地触控终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地触控终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
31.在一种可能的实施方式中,本发明实施例提供了一种游戏资源文件管理方法,通过触控终端设备提供一图形用户界面,其中,触控终端设备可以是前述提到的本地触控终端设备,也可以是前述提到的云交互系统中的客户端设备。通过该触控终端设备提供一图形用户界面,该图形用户界面上可以根据启动的应用程序的类型,显示界面内容,例如,游戏场景画面、通信交互窗口等等。
32.为便于对本实施例进行理解,首先对本发明实施例所公开的一种游戏资源文件管理方法进行详细介绍,图1为本发明一种实施例提供的游戏资源文件管理方法的流程图。游戏资源文件管理方法通过终端设备运行同一游戏的两个以上客户端程序,在本实施例中,游戏资源文件管理方法包括步骤s110至步骤s150。
33.在步骤s110中,启动客户端程序。该客户端程序例如是mmog游戏的客户端程序。
34.在步骤s120中,启动资源管理模块,资源管理模块包括共享内存,共享内存用于存储游戏的资源文件。
35.在步骤s130中,建立客户端程序与资源管理模块的通信。
36.在一些实施例中,在启动客户端程序的步骤s110之后,游戏资源文件管理方法还包括:若本次启动客户端程序为首次启动,则检测资源管理模块是否运行中,若资源管理模块已在运行中,则进行建立客户端程序与资源管理模块的通信的步骤s130,若资源管理模块未在运行中,则进行启动资源管理模块的步骤s120。
37.在一些实施例中,在启动客户端程序的步骤s110之后,游戏资源文件管理方法还包括:若本次启动客户端程序前已有运行中的客户端程序,则进行建立客户端程序与资源管理模块的通信的步骤s130。
38.在一些实施例中,在启动资源管理模块的步骤s120之后,游戏资源文件管理方法还包括:控制资源管理模块在游戏的全部客户端程序都关闭进程后的预设时长后结束进程。当该游戏的最后一个客户端软件进程关闭时,资源管理模块会继续存在一段时间,以防止频繁地开启游戏客户端软件造成的资源管理模块频繁重启,资源管理模块在长时间没有游戏客户端软件的进程连接后自动关闭。
39.在一些实施例中,游戏客户端软件内有个较长时间的核对(tick),定时判断资源管理模块是否还存在,若不存在则可以使用原生的资源加载逻辑。
40.在步骤s140中,响应客户端程序对目标资源文件的加载指令,在资源管理模块中检索共享内存中是否存在目标资源文件。
41.在本实施例中,资源管理模块内采用最近最少使用(least recently used,lru)
的淘汰策略和引用计数的垃圾回收策略对共享内存进行管理。
42.图2为本发明一种实施例提供的游戏资源文件管理方法中共享内存的结构示意图。在本实施例中,共享内存通过哈希函数针对游戏的不同资源文件分配不同的内存分块bm。
43.在一些实施例中,响应客户端程序对目标资源文件的加载指令,在资源管理模块中检索共享内存中是否存在目标资源文件的步骤s140包括:将目标资源文件的资源路径作为关键词(key)在资源管理模块中检索共享内存中是否存在目标资源文件。
44.如图2,本实施例中,每个内存分块bm包括互斥锁(mutex)、逻辑地址空间、伙伴系统分配标记空间、自定义哈希列表。互斥锁用于控制读写,本实施例中,互斥锁采用局部锁,避免读写冲突。逻辑地址空间用于缓存资源文件,由伙伴系统进行管理分配和回收。伙伴系统分配标记空间用于管理对逻辑地址空间的分配和回收进行管理。伙伴系统是一种高效的内存管理方法,能有效地解决外碎片的问题,本实施例中后,内存分块bm的伙伴系统分配标记空间中,选用一个数组来表示二叉树,数组的值用来标识当前内存分块bm的逻辑地址空间是否被划分了,以及当前的节点下的剩余空间。
45.自定义哈希列表用于记录当前的关键词对应的资源文件在逻辑地址空间的存储信息的映射关系。具体地,自定义哈希列表中用于记录当前关键词对应的值在逻辑地址空间的什么位置上,结构体数组中包含文件单元名、文件单元在逻辑地址空间中的存储位置、文件单元大小、单元有效期、单元状态、引用计数的信息。
46.如图1,在步骤s150中,若共享内存中存在目标资源文件,则控制客户端程序从共享内存加载目标资源文件。
47.在一些实施例中,若共享内存中存在目标资源文件,则控制客户端程序从共享内存加载目标资源文件的步骤s150包括:若共享内存中存在目标资源文件,控制资源管理模块向客户端程序反馈目标资源文件对应的逻辑地址空间;控制客户端程序根据逻辑地址空间加载对应的目标资源文件。
48.在一些实施例中,游戏资源文件管理方法还可以包括步骤s160。
49.在步骤s160中,若共享内存中不存在目标资源文件,则控制资源管理模块加载目标资源文件至共享内存中,并控制客户端程序从共享内存加载目标资源文件。
50.根据本发明实施例的游戏资源文件管理方法,通过终端设备运行同一游戏的两个以上客户端程序,通过包括共享内存的启动资源管理模块,该共享内存能够存储游戏的资源文件,同一游戏的多个客户端软件的相同资源文件存放于全局唯一的资源管理模块中,将客户端软件进程内的资源文件的输入输出,转变成客户端软件进程与资源管理模块进程的通信,加快了重复资源文件加载的速度,减少了终端设备的内存消耗。常用的以及频繁使用的资源文件可以有效缓存在资源管理模块中,降低游戏客户端软件的冷启动。
51.本发明实施例还提供一种游戏资源文件管理装置。图3为本发明一种实施例提供的游戏资源文件管理装置的结构框图。该游戏资源文件管理装置通过终端设备运行同一游戏的两个以上客户端程序,游戏资源文件管理装置包括客户端启动单元110、资源管理启动单元120、通信单元130、检索单元140、加载单元150。
52.客户端启动单元110用于启动客户端程序。资源管理启动单元120用于启动资源管理模块,资源管理模块包括共享内存,共享内存用于存储游戏的资源文件。通信单元130用
于建立客户端程序与资源管理模块的通信。检索单元140用于响应客户端程序对目标资源文件的加载指令,在资源管理模块中检索共享内存中是否存在目标资源文件。加载单元150用于在共享内存中存在目标资源文件时,控制客户端程序从共享内存加载目标资源文件。
53.在一些实施例中,加载单元150还用于在共享内存中不存在目标资源文件时,控制资源管理模块加载目标资源文件至共享内存中,并控制客户端程序从共享内存加载目标资源文件。
54.根据本发明实施例的游戏资源文件管理装置,通过终端设备运行同一游戏的两个以上客户端程序,客户端启动单元110能够启动客户端程序,该启动客户端程序包括共享内存,该共享内存能够存储游戏的资源文件,同一游戏的多个客户端软件的相同资源文件存放于全局唯一的资源管理模块中,从而将客户端软件进程内的资源文件的输入输出,转变成客户端软件进程与资源管理模块进程的通信,加快了重复资源文件加载的速度,减少了终端设备的内存消耗。常用的以及频繁使用的资源文件可以有效缓存在资源管理模块中,降低游戏客户端软件的冷启动。
55.本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述游戏资源文件管理方法。该电子设备可以是服务器,也可以是终端设备。
56.图4为本发明一种实施例提供的电子设备的结构框图,该电子设备包括处理器901和存储器902,该存储器902存储有能够被处理器901执行的机器可执行指令,该处理器901执行机器可执行指令以实现上述游戏资源文件管理方法。
57.该游戏资源文件管理方法包括通过终端设备运行同一游戏的两个以上客户端程序,该游戏资源文件管理方法包括:启动客户端程序;启动资源管理模块,资源管理模块包括共享内存,共享内存用于存储游戏的资源文件;建立客户端程序与资源管理模块的通信;响应客户端程序对目标资源文件的加载指令,在资源管理模块中检索共享内存中是否存在目标资源文件;若共享内存中存在目标资源文件,则控制客户端程序从共享内存加载目标资源文件。
58.进一步地,电子设备还可以包括通信接口903和总线904,处理器901、通信接口903和存储器902通过总线904连接。
59.其中,存储器902可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口903(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线904可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,总线在本技术附图中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
60.处理器901可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器901中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器901可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或
者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器902,处理器901读取存储器902中的信息,结合其硬件完成前述实施例的方法的步骤。
61.本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述游戏资源文件管理方法。
62.该游戏资源文件管理方法包括通过终端设备运行同一游戏的两个以上客户端程序,该游戏资源文件管理方法包括:启动客户端程序;启动资源管理模块,资源管理模块包括共享内存,共享内存用于存储游戏的资源文件;建立客户端程序与资源管理模块的通信;响应客户端程序对目标资源文件的加载指令,在资源管理模块中检索共享内存中是否存在目标资源文件;若共享内存中存在目标资源文件,则控制客户端程序从共享内存加载目标资源文件。
63.本发明实施例所提供的游戏资源文件管理方法、装置、电子设备及存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
64.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
65.另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
66.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
67.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
68.最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技
术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1