本发明涉及数据刷新系统领域,尤其涉及一种游戏数据刷新系统的处理方法、装置、设备及介质。
背景技术:
1、不管是游戏还是手机app,甚至是我们的手机系统需要更新时都会通过某种提示显示直观的告知玩家或者用户“有新的消息,请注意操作”,玩家完成提醒操作后,提示显示则消失,这种提示显示操作背后就是由数据刷新系统所实现。而随着游戏项目功能越来越多,玩法系统越来越复杂,数据变化带来的提醒操作变得极为重要。以往的数据刷新功能,大多是基于某个界面或者某个功能自身的,往往是一个个独自运作的系统,封装性不强,也没有很好的复用性,这样不管是写还是改动起来都比较麻烦,特别是当一个系统关联的地方较多、层次嵌套较深、逻辑判定较复杂、表现较多样时,当需要数据刷新时,往往会出现游戏性能问题,如游戏卡顿,影响游戏体验。
技术实现思路
1、本发明的目的在于提供一种游戏数据刷新系统的处理方法、装置、设备及介质,基于游戏数据刷新系统的数据结构层、检测驱动层和刷新表现层,实现高效流畅的刷新提示特效显示效果,以解决上述现有问题的至少之一。
2、本发明提供了一种游戏数据刷新系统的处理方法,所述方法应用于游戏数据刷新系统,所述游戏数据刷新系统包括数据结构层、检测驱动层和刷新表现层,所述方法具体包括:
3、根据游戏功能模块集合的各个母模块及其对应的子模块,在所述数据结构层基于前缀树结构构建层级关系对应的刷新提示架构;
4、所述检测驱动层监听所述刷新提示架构,并在所述刷新提示架构中触发刷新检测事件的数据节点的处理时间达到第一时间阈值时,所述检测驱动层检测所述刷新提示架构中触发刷新检测事件的数据节点,然后向所述刷新表现层发出通知,所述第一时间阈值为每帧游戏画面数据刷新处理最多占用的时间值;
5、所述刷新表现层根据回调函数列表通知处于待检测状态的数据节点对应的游戏功能模块显示提示特效。
6、进一步的,所述根据游戏功能模块集合的各个母模块及其对应的子模块,在所述数据结构层基于前缀树结构构建层级关系对应的刷新提示架构,具体包括:
7、获取游戏功能模块集合;
8、基于前缀树结构,将所述游戏功能模块集合的母模块作为根节点、所述母模块下的各级子模块作为各级子节点,构建刷新提示架构;
9、在每个根节点和每个子节点中设置当前节点id、各级子节点id、子节点刷新数量和回调函数列表,并在所述回调函数列表中存入当前节点的各级子节点的子节点id和回调函数。
10、进一步的,所述检测驱动层监听所述刷新提示架构,并在所述刷新提示架构中触发刷新检测事件的数据节点的处理时间达到第一时间阈值时,所述检测驱动层检测所述刷新提示架构中触发刷新检测事件的数据节点,然后向所述刷新表现层发出通知,具体包括:
11、在所述刷新提示架构的每个数据节点内均设置刷新检测器,所述刷新检测器用于当所在数据节点触发刷新检测事件时,将所在数据节点标记为待检测状态;
12、设置第一时间阈值,所述第一时间阈值为每帧游戏画面数据刷新处理最多占用的时间值;
13、所述检测驱动层监听所述刷新检测器,并在处于待检测状态的数据节点的处理时间达到当前帧游戏画面的第一时间阈值时,所述检测驱动层检测所述刷新提示架构中处于待检测状态的数据节点,并向所述刷新表现层发出通知;
14、若当前帧游戏画面的第一时间阈值内并未处理完毕当前帧游戏画面中所有处于待检测状态的数据节点,将剩余的处于待检测状态的数据节点放到下一帧游戏画面的第一时间阈值内去处理。
15、更进一步的,所述在所述刷新提示架构的每个数据节点内均设置刷新检测器,具体包括:
16、设置observer接口,所述observer接口包括update方法,用于接收被观察者的通知;
17、设置observable类函数,根据observable类函数创建观察者列表,所述观察者列表用于存储所有的观察者;
18、在所述刷新提示架构的每个数据节点内均设置刷新检测器,并使所述刷新检测器继承所述observer接口;
19、当所述刷新检测器的所在数据节点需要刷新检测时,将所述刷新检测器存入所述观察者列表;
20、所述检测驱动层根据所述观察者列表上的每个刷新检测器,确定所有处于待检测状态的数据节点。
21、更进一步的,所述在处于待检测状态的数据节点的处理时间达到当前帧游戏画面的第一时间阈值时,所述检测驱动层检测所述刷新提示架构中处于待检测状态的数据节点,具体包括:
22、确定当前帧游戏画面中处于待检测状态的第一数据节点集合对应的第一游戏功能模块集合;
23、判断所述第一游戏功能模块集合中每个第一游戏功能模块是否在数据刷新后需要显示提示特效,若判断为是,将第一游戏功能模块对应的第一数据节点划入第一刷新频率组,否则划入第二刷新频率组;
24、或者,判断所述第一游戏功能模块集合中每个第一游戏功能模块在数据刷新后是否处于客户端的显示状态中,若判断为是,将第一游戏功能模块对应的第一数据节点划入第一刷新频率组,否则划入第二刷新频率组;
25、在当前帧游戏画面的第一时间阈值内,所述检测驱动层检测所述第一刷新频率组内的所有第一数据节点完毕后,再检测所述第二刷新频率组内的第一数据节点。
26、更进一步的,所述检测驱动层检测所述第一刷新频率组内的所有第一数据节点完毕后,再检测所述第二刷新频率组内的第一数据节点之后,还包括:
27、根据所述第一游戏功能模块集合中每个第一游戏功能模块在第一客户端的访问频率,确定第一访问频率顺序和第二访问频率顺序,所述第一访问频率顺序为所述第一刷新频率组内的所有第一数据节点对应的第一游戏功能模块在所述第一客户端的访问频率顺序,所述第二访问频率顺序为所述第二刷新频率组内的所有第一数据节点对应的第一游戏功能模块在所述第一客户端的访问频率顺序;
28、根据所述第一访问频率顺序确定第一刷新频率顺序,所述第一刷新频率顺序为当前帧游戏画面的第一时间阈值内,所述检测驱动层对所述第一刷新频率组内的每个第一数据节点的刷新检测顺序;
29、根据所述第二访问频率顺序确定第二刷新频率顺序,所述第二刷新频率顺序为当前帧游戏画面的第一时间阈值内,所述检测驱动层对所述第二刷新频率组内的每个第一数据节点的刷新检测顺序。
30、进一步的,所述刷新表现层根据回调函数列表通知处于待检测状态的数据节点对应的游戏功能模块显示提示特效,具体包括:
31、所述刷新表现层根据所述回调函数列表确定处于待检测状态的第二数据节点集合对应的第二游戏功能模块集合,所述回调函数列表用于存储所述刷新提示架构的每个数据节点的节点名称及对应的回调函数;
32、判断所述第二游戏功能模块集合中每个第二游戏功能模块的数据刷新事件是否属于提示特效事件;
33、若判断为是,所述刷新表现层通知所述第二游戏功能模块显示提示特效,否则所述刷新表现层通知所述第二游戏功能模块不显示提示特效。
34、本发明还提供了一种游戏数据刷新系统的处理装置,所述装置应用于游戏数据刷新系统,所述游戏数据刷新系统包括数据结构层、检测驱动层和刷新表现层,所述装置具体包括:
35、第一处理模块,用于根据游戏功能模块集合的各个母模块及其对应的子模块,在所述数据结构层基于前缀树结构构建层级关系对应的刷新提示架构;
36、第二处理模块,所述检测驱动层监听所述刷新提示架构,并在所述刷新提示架构中触发刷新检测事件的数据节点的处理时间达到第一时间阈值时,所述检测驱动层检测所述刷新提示架构中触发刷新检测事件的数据节点,然后向所述刷新表现层发出通知,所述第一时间阈值为每帧游戏画面数据刷新处理最多占用的时间值;
37、第三处理模块,所述刷新表现层根据回调函数列表通知处于待检测状态的数据节点对应的游戏功能模块显示提示特效。
38、本发明还提供了一种计算机设备,包括:存储器和处理器及存储在存储器上的计算机程序,当所述计算机程序在处理器上被执行时,实现如上述方法中任一项所述的游戏数据刷新系统的处理方法。
39、本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,实现如上述方法中任一项所述的游戏数据刷新系统的处理方法。
40、与现有技术相比,本发明具有以下技术效果的至少之一:
41、1、将原本各自系统各自写一套的独立系统封装到一个整体中,并且数据结构层和刷新表现层分离,便于维护。
42、2、通过树形结构建立建立功能模块间的父子节点关系,子节点的数据全部刷新后便可以获取到父节点的数据状态,层层刷新数据,减少性能开销,使系统总体保持其高效性,
43、3、通过分帧策略控制游戏每帧的数据刷新量,从而控制游戏整体的性能开销,提高流畅度。
44、4、游戏中所有模块的数据表现刷新交给检测驱动层统一管理,不再是各自模块管理各自自己的数据刷新,降低高耦合带来的风险。
45、5、定义稳定的接口,在接口不变的情况下,内部结构可以“随意”变化。
46、6、通过对核心框架的封装,使其具有良好的可移植性,一次开发,多个项目都可以拿去使用。