一种多游戏管理与版本控制方法及装置与流程

文档序号:12362856阅读:417来源:国知局
一种多游戏管理与版本控制方法及装置与流程

本发明涉及一种多游戏管理与版本控制方法及装置。



背景技术:

目前,游戏管理和版本控制没有相应的规范,例如一种支持3D的HTML5游戏加速器产品没有游戏管理和版本控制的功能,游戏数据松散、难以进行数据管理和版本控制。



技术实现要素:

根据本发明实施例提供的技术方案解决的技术问题是多游戏管理与版本控制问题。

根据本发明实施例提供的一种多游戏管理与版本控制方法,包括:

本地版本管理和控制模块在监测到用户启动游戏时,从远程服务器获取所述游戏的游戏参数;

根据所述游戏参数,判断本地是否存在所述游戏的游戏文件夹;

若本地存在所述游戏的游戏文件夹,则在确定所述游戏文件夹中保存的所述游戏数据不是最新版本时,从所述远程服务器获取最新版本的游戏数据,保存至所述游戏文件夹;

若本地不存在所述游戏的游戏文件夹,则创建所述游戏的游戏文件夹,并从所述远程服务器获取最新版本的游戏数据,保存至所述游戏文件夹。

优选地,所述从远程服务器获取的所述游戏的游戏参数包括游戏ID和远程下载地址。

优选地,所述的根据游戏参数,判断本地是否存在所述游戏的游戏文件夹的步骤包括:

所述本地版本管理和控制模块查询本地是否存在以所述游戏ID为文件名的文件夹;

若找到本地存在以所述游戏ID为文件名的文件夹,则判断本地存在所述游戏的游戏文件夹,否则判断本地不存在所述游戏的游戏文件夹。

优选地,通过以下步骤确定所述游戏文件夹中保存的所述游戏数据不是最新版本:

将所述游戏文件夹的游戏版本文件中的远程下载地址与从所述远程服务器获取的远程下载地址进行比较;

若两者不一致,则确定所述游戏文件夹中保存的所述游戏数据不是最新版本。

优选地,所述的从所述远程服务器获取最新版本的游戏数据的步骤包括:

通过从所述远程服务器获取的远程下载地址,从所述远程服务器下载最新版本的游戏包;

对所述最新版本的游戏包进行解压,得到最新版本的游戏数据。

优选地,所述从远程服务器获取的所述游戏的游戏参数还包括游戏包解码密码。

优选地,所述的从所述远程服务器获取最新版本的游戏数据的步骤包括:

通过从所述远程服务器获取的远程下载地址,从所述远程服务器下载最新版本的加密游戏包;

利用所述游戏包解码密码,对所述加密游戏包进行解码,得到解码后的游戏包;

对所述解码后的游戏包进行解压,得到最新版本的游戏数据。

优选地,所述的利用所述游戏包解码密码,对所述加密游戏包进行解码,得到解码后的游戏包的步骤包括:

将所述游戏包解码密码和预定关键字进行组合,得到组合字符串;

将所述组合字符串输入至MD5码生成器,得到所述组合字符串的MD5码作为有效解码密码;

利用所述有效解码密码,对所述加密游戏包进行解码,得到解码后的游戏包。

优选地,还包括:

将所述从所述远程服务器获取的远程下载地址写入所述游戏文件夹的游戏版本文件中。

根据本发明实施例提供的存储介质,其存储用于实现上述多游戏管理与版本控制方法的程序。

根据本发明实施例提供的一种多游戏管理与版本控制装置,包括:

获取单元,用于在监测到用户启动游戏时,从远程服务器获取所述游戏的游戏参数;

判断单元,用于根据所述游戏参数,判断本地是否存在所述游戏的游戏文件夹;

控制单元,若本地存在所述游戏的游戏文件夹,则在确定所述游戏文件夹中保存的所述游戏数据不是最新版本时,从所述远程服务器获取最新版本的游戏数据,保存至所述游戏文件夹,若本地不存在所述游戏的游戏文件夹,则创建所述游戏的游戏文件夹,并从所述远程服务器获取最新版本的游戏数据,保存至所述游戏文件夹。

本发明实施例提供的技术方案具有如下有益效果:

本发明能够隔离多个游戏的数据,便于游戏数据管理和版本控制。

附图说明

图1是本发明实施例提供的多游戏管理与版本控制方法框图;

图2是本发明实施例提供的多游戏管理与版本控制装置框图;

图3是本发明实施例提供的多游戏管理与版本控制流程图;

图4是本发明实施例提供的新游戏处理流程图;

图5是本发明实施例提供的原有游戏的更新流程图;

图6是本发明实施例提供的加密游戏包解码流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是本发明实施例提供的多游戏管理与版本控制方法框图,如图1所示,步骤包括:

步骤S101:本地版本管理和控制模块在监测到用户启动游戏时,从远程服务器获取所述游戏的游戏参数。

所述从远程服务器获取的所述游戏的游戏参数包括游戏ID和远程下载地址,还可以进一步包括游戏包解码密码。

本实施例以游戏ID为游戏唯一标识来区分不同游戏,给每一个游戏分配一个以该游戏的游戏ID为名字的文件夹,该游戏的所有相关信息都在此文件夹下。

步骤S102:根据所述游戏参数,判断本地是否存在所述游戏的游戏文件夹。

所述本地版本管理和控制模块查询本地是否存在以所述游戏ID为文件名的文件夹,若找到本地存在以所述游戏ID为文件名的文件夹,则判断本地存在所述游戏的游戏文件夹,否则判断本地不存在所述游戏的游戏文件夹。

步骤S103:根据判断结果,确定是否创建游戏文件夹,并根据版本情况,从远程服务器获取最新版本游戏数据,保存至所述游戏文件夹。具体地说,若本地存在所述游戏的游戏文件夹,则将所述游戏文件夹的游戏版本文件中的远程下载地址与从所述远程服务器获取的远程下载地址进行比较,若两者不一致,则确定所述游戏文件夹中保存的所述游戏数据不是最新版本,此时从所述远程服务器获取最新版本的游戏数据,保存至所述游戏文件夹,否则创建所述游戏的游戏文件夹,并从所述远程服务器获取最新版本的游戏数据,保存至所述游戏文件夹。

其中,通过从所述远程服务器获取的远程下载地址,从所述远程服务器下载最新版本的游戏包,通过对所述最新版本的游戏包进行解压,得到最新版本的游戏数据。

作为另一实施例,若从所述远程服务器下载最新版本的游戏包为加密游戏包,利用所述游戏包解码密码,对所述加密游戏包进行解码,得到解码后的游戏包。具体地说,将所述游戏包解码密码和预定关键字进行组合,得到组合字符串,然后将所述组合字符串输入至MD5码生成器,得到所述组合字符串的MD5码作为有效解码密码,最后利用所述有效解码密码,对所述加密游戏包进行解码,得到解码后的游戏包。

在得到最新版本的游戏数据之后,将所述从所述远程服务器获取的远程下载地址写入所述游戏文件夹的游戏版本文件中。

本实施例具有对多个游戏的管理和版本控制能力,可以应用于支持3D的HTML5游戏加速器中,例如Egret Runtime。Egret Runtime用于解决低端机对HTML5标准支持不佳、体验差的弊端,通过适配不同的系统使HTML5游戏效果媲美原生游戏,支持使用Egret Engine开发的应用。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,该程序在执行时,包括步骤S101至步骤S103。其中,所述的存储介质可以为ROM/RAM、磁碟、光盘等。

图2是本发明实施例提供的多游戏管理与版本控制装置框图,如图2所示,包括:

获取单元10,用于在监测到用户启动游戏时,从远程服务器获取所述游戏的游戏参数。

判断单元20,用于根据所述游戏参数,判断本地是否存在所述游戏的游戏文件夹。

控制单元30,若本地存在所述游戏的游戏文件夹,则在确定所述游戏文件夹中保存的所述游戏数据不是最新版本时,从所述远程服务器获取最新版本的游戏数据,保存至所述游戏文件夹,若本地不存在所述游戏的游戏文件夹,则创建所述游戏的游戏文件夹,并从所述远程服务器获取最新版本的游戏数据,保存至所述游戏文件夹。

所述装置的工作流程包括:获取单元10在监测到用户启动游戏时,从远程服务器获取所述游戏的游戏参数,例如游戏ID、远程下载地址和游戏包解码密码。判断单元20查询本地存在以所述游戏ID为文件名的文件夹时,判断本地存在所述游戏的游戏文件夹,此时控制单元30将所述游戏文件夹的游戏版本文件中的远程下载地址与从所述远程服务器获取的远程下载地址进行比较,若两者不一致,说明所述游戏文件夹中保存的所述游戏数据不是最新版本,需要从所述远程服务器获取最新版本的游戏数据,控制单元30从远程下载地址下载最新版本的游戏包,并利用游戏包解码密码对所下载的游戏包解码,并将解码后的游戏包解压至所述游戏文件夹。判断单元20查询本地不存在以所述游戏ID为文件名的文件夹时,判断本地不存在所述游戏的游戏文件夹,此时控制单元30创建所述游戏的游戏文件夹,并需要从所述远程服务器获取最新版本的游戏数据,控制单元30从远程下载地址下载最新版本的游戏包,并利用游戏包解码密码对所下载的游戏包解码,并将解码后的游戏包解压至所述游戏文件夹。控制单元30在解码解压处理后,删除所下载的游戏包,并将远程下载地址写入所述游戏文件夹的游戏版本文件中。

作为另一种实施例,若获取单元10未得到游戏包解码密码,或得到的游戏包解码密码为空字符串,则控制单元30将所下载的游戏包直接解压至所述游戏文件夹即可。

图3是本发明实施例提供的多游戏管理与版本控制流程图,如图3所述,具体步骤如下:

步骤S201:游戏启动时,传入来自游戏服务器的操作参数,例如游戏ID、游戏包的远程下载地址、游戏包解码密码(游戏包)。

以一款支持3D的HTML5游戏加速器Egret Runtime产品为例,本本发明的方法和装置可以作为Egret Runtime产品的一个功能模块。EgretRuntime的使用者通过把EgretRuntime的加载器(一个开源免费的程序库)嵌入到应用中,实现EgretRuntime接入。应用通过EgretRuntime的加载器来下载和启动EgretRuntime。当应用启动EgretRuntime时,传入上述操作参数。

步骤S202:判断是否存在以游戏ID为文件名的文件夹,若存在则执行步骤S203,否则执行步骤S204。

对于新游戏:新游戏是指本地并没有这个游戏。游戏是以游戏ID来区分。每个游戏有一个以游戏ID为文件名的文件夹。如果一个游戏的ID为A,经查询,本地并没有文件名为A的文件夹,则该游戏是新游戏,执行新游戏处理流程。

对于已有游戏:如果本地有一个以游戏ID为文件名的文件夹,执行已有游戏处理流程。

步骤S203:检查游戏版本,判断远程游戏版本是否和现有版本一致,若一致,则执行步骤S210,否则执行步骤S205。

具体地说,比较版本文件中的远程下载地址和传入的远程下载地址,若两者一致,则判断远程游戏版本和现有版本一致,否则判断远程游戏版本和现有版本不一致。

对于已有游戏,首先在游戏服务器上查询该游戏是否有新版本,如果没有新版本,则直接启动,如果有新版本,则说明游戏需要更新,则下载新版本并覆盖当前版本,然后记录新版本的信息。

步骤S204:创建以游戏ID为文件名的文件夹,再次文件夹下创建名称为“game”的文件夹,形成游戏文件夹,路径为“/<游戏ID>/game/”。

对于新游戏,本实施例需要新建一个以此游戏ID为文件名的文件夹,以便后续将游戏部署到该文件夹下,并记录好版本信息,启动游戏。

步骤S205:下载游戏包,具体地说,将游戏包下载到游戏文件夹下,并以当前毫秒数作为文件名。

步骤S206:判断是否有游戏包解码密码,或者判断游戏包解码密码是否为空字符串,若是则执行步骤S207,否则执行步骤S208。

步骤S207:对下载的游戏包进行解码,得到解码后的游戏包。

步骤S208:对解码后的游戏包解压到游戏文件夹下,如果游戏文件夹下有同名文件,则覆盖该同名文件,然后删除游戏包。

步骤S209:把游戏下载地址写入版本文件中。

步骤S210:结束流程。

也就是说,本实施例通过以下几个步骤来完成对游戏的管理和版本控制:

1.接受操作参数(即游戏参数)

游戏启动时,传入游戏ID、游戏包的远程下载地址,还可以传入游戏包解码密码(游戏包)。

2.建立游戏文件夹

以游戏ID为文件夹名,并在此目录下面建立名为game的文件夹,作为游戏文件夹,用于存放游戏本身。然后直接执行步骤4。

例如游戏ID为gameId100,那么,最终目录为:/gameId100/game/。如果游戏文件夹存在,不会重复创建,此时跳过此步骤。

3.检查游戏版本

游戏版本信息会存储在游戏文件夹下名为game_code_version的文件中。如果game_code_version不存在,则新建一个空的game_code_version文件,并把游戏远程下载地址按照一定的格式(例如以UTF-8格式)的字符写入该文件,然后继续步骤4。如果game_code_version文件存在,以UTF-8格式读取文件内容,与当前的游戏远程下载地址对比,如果一致,结束整个流程。如果不一致,继续下面的步骤。

4.下载游戏包

游戏包支持2种格式:1.标准zip格式的文件。2.按照规定方式编码的文件。从游戏包远程下载地址下载游戏包,下载于游戏文件夹下,并且以当前系统的毫秒(miniseconds)数字为文件名。

例如,当前的毫秒数字是123456,那么,下载的文件为/gameId100/game/123456。

需要说明的是,在计算机系统里,毫秒数字一般是指从世界标准时间1970年1月1日00:00:00.0时开始到当前时间为止,经历的毫秒数。

5.对游戏包解码

判断传入的游戏包解码密码是否为空字符串。如果为空字符串,则直接进行下一步。如果不是空字符串,需要先对游戏包解码,得到标准zip格式的游戏包。

6.解压游戏包

最终的游戏包是标准zip格式的,按照zip规范对其进行解压。解压到游戏文件夹下。如果游戏文件夹已经存在同名文件,会覆盖同名文件。最后删除游戏包。

7.记录版本信息

把游戏远程下载地址写入版本文件game_code_version,所述版本文件位于游戏文件夹下/gameId100/game/game_code_version。

图4是本发明实施例提供的新游戏处理流程图,如图4所示,步骤包括:

步骤S301:接收到参数信息,包括:游戏ID为gameId22;游戏包地址为http://egret_games/game22_v1.zip;游戏包解码密码为aes123456。

步骤S302:没有发现名为gameId22的文件夹,此时建立游戏文件夹:/gameId22/game/。

步骤S303:下载游戏包(game22_v1.zip)到游戏文件夹,并命名为当前的毫秒数,假设当前毫秒数为6789,则下载的游戏包路径为/gameId22/game/6789。

步骤S304:对游戏包解码,解码后的文件仍然命名为6789。

步骤S305:解压游戏包。

将游戏包6789解压到游戏文件夹:/gameId22/game/game22,并删除游戏包/gameId22/game/6789。

步骤S306:在游戏文件夹中生成版本文件:/gameId22/game/game_code_version,把http://egret_games/game22_v1.zip以UTF-8编码格式写入此文件。

步骤S307:结束流程。

图5是本发明实施例提供的原有游戏的更新流程图,如图5所示,步骤包括:

步骤S401:接收到参数信息。包括:游戏ID:gameId22;游戏包地址:http://egret_games/game22_v1.zip;游戏包解码密码:aes123456。

步骤S402:发现名为gameId22的文件夹。

步骤S403:读取/gameId22/game/game_code_version文件得到:http://egret_games/game22_v1.zip字符串,将所得到的字符串与步骤S401中的http://egret_games/game22_v2.zip比较,发现两个不同,表示需要更新游戏。

步骤S404:将游戏包(game22_v2.zip)下载到游戏文件夹,并命名为当前的毫秒数,假设现在毫秒数为9876,则路径为/gameId22/game/9876。

步骤S405:解码游戏包,解码后的包名仍然为9876,路径为/gameId22/game/9876。

步骤S406:将游戏包9876解压到游戏文件夹,若有同名文件或文件夹则覆盖原文件,即覆盖/gameId22/game/game22,然后删除游戏包/gameId22/game/9876。

步骤S407:生成新的版本文件game_code_version,把http://egret_games/game22_v2.zip以UTF-8编码格式写入该文件,覆盖原版本文件/gameId22/game/game_code_version。

步骤S408:结束流程。

在上述实施例中,对应于游戏包的编码格式,可以采用不同的解码算法,即根据游戏包编码格式,间接或直接采用游戏包解码密码对游戏包进行解码处理。

图6是本发明实施例提供的加密游戏包解码流程图,本实施例以白鹭公司产品EgretWing生成的游戏包为例,进一步说明间接采用游戏包解码密码进行游戏包解码的流程,如图6所示,步骤包括:

步骤S501:得到游戏包解码密码12345。

具体产生过程如下:

(1)使用EgretWing开发产品(即游戏)的用户,在发布游戏包时会填写密码作为诱导密码,也即后续解码时使用的游戏包解码密码(如:12345)。

(2)EgretWing先把产品数据打包为zip文件。

(3)EgretWing用12345与预定关键字keys组合得到12345keys.

(4)EgretWing把12345keys提交给md5生成器得到12345keys的MD5码(比如是:abcde)。

(5)以此md5码abcde为加密用密码对zip文件进行AES加密。最后得到一个加密文件就是游戏包。

其中,本实施例的诱导密码是开发产品的用户自己设置的,是不能直接用于解码游戏包的一串字符。

步骤S502:将游戏包解码密码与约定关键字组合,得到新密码串(即组合字符串)。

例如,将12345与约定关键字keys组合得到12345keys。

其中,约定关键字是白鹭时代内部约定好的一串字符。EgretWing会用这个关键字来加密游戏包。本实施例使用这个关键字来生成有效的解码用密码串。约定关键字对外是不公开的。

步骤S503:利用获得的新密码串,计算MD5码,即得到新密码串的MD5码,得到12345keys的md5码abcde。

把12345keys提交给md5码生成器,得到12345keys的md5码。

步骤S504:以此MD5码为密码,对游戏包按AES解码,得到标准ZIP格式的解码后的游戏包。

以abcde为密码,对game22_v1以AES解码,得到game22_v1.zip。

MD5算法用于对给出的数据(数据长度不限)做计算,得到一串固定长度的字符串。同一组数据,每次得到的MD5码都是一样的。不管数据有多长或者多短,这串数据中只要有变化,最后得到的MD5码都不一样。所以,MD5值通常是用来校验信息的完整性的。

本实施例针对是EgretWing生成的加密游戏包,目前约定好的是以AES加密后的zip文件。即:EgretWing先生成没有加密过的zip文件,EgretWing再对这个zip文件进行AES加密。所以,本实施例只适用于被AES加密后的zip文件。

例如,游戏开发者A通过开发加密游戏包的装置EgretWing开发游戏,将所开发的游戏按照ZIP格式进行压缩,得到白鹭游戏包,并填写诱导密码。EgretWing将游戏开发者A填写的诱导密码和约定的关键字组合,得到组合字符串,并通过MD5算法,得到组合字符串的MD5码作为有效加密密码,并利用该有效加密密码对白鹭游戏包进行加密处理,得到白鹭加密游戏包。游戏开发者A发布其开发的游戏包时,将白鹭加密游戏包和其填写的诱导密码保存在游戏服务器上,并发布该游戏。

游戏玩家B通过安装在用户终端上的游戏客户端,点击游戏图标,启动该白鹭加密游戏包。游戏客户端通过网络从游戏服务器获取该游戏的诱导密码,并将该游戏的诱导密码送入安装在用户终端上的具有关键字的多游戏管理与版本控制装置,从而将收到的诱导密码和关键字(多游戏管理与版本控制装置与Egret Wing之间约定的关键字)进行组合,得到组合字符串,并通过MD5算法,得到组合字符串的MD5码作为有效解码密码,并利用该有效解码密码对白鹭游戏包进行解码处理,得到解码后的ZIP格式的白鹭游戏包。

对于直接采用游戏包解码密码对游戏包进行解码处理的方式,若加密时直接采用诱导密码以AES方式对ZIP格式的游戏包进行加密,则在解码时可以直接采用该诱导密码(即游戏包解码密码)以AES方式对ZIP格式的游戏包进行解码处理。

综上所述,本发明的实施例具有以下技术效果:

1、本发明通过游戏ID来管理各个游戏,与每个游戏的所有相关信息都保存于以游戏ID为名称的文件夹下,达到“隔离多个游戏的数据”、“集中游戏数据”和“便于游戏管理”的目的;

2、本发明以特有的版本管理方式达到“方便获取游戏版本更新信息”和“可以对游戏做版本更新”的目的。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1