单机存档游戏系统及其存档方法

文档序号:6337876阅读:516来源:国知局
专利名称:单机存档游戏系统及其存档方法
技术领域
本发明涉及单机存档游戏技术领域,尤其是一种单机存档游戏系统及其存档方法。
背景技术
所述的单机存档游戏,是指可以在一台计算机或者某种游戏平台上独立运行、具有运行进度的游戏。目前还存在一种与其相对的游戏,即网络游戏。网络游戏,又叫在线游戏,或线上游戏(On-Line Game,简称0LG),一般指多名玩家通过计算机网络互动娱乐的游戏,有战略游戏、动作游戏、体育游戏、格斗游戏、音乐游戏、竞速游戏、网页游戏和角色扮演游戏等多种类型,当然也有少数在线单人游戏。如要运行网络游戏,各玩家必须接入互联网,游戏的运行需要通过专门的服务器和网络来支撑。因而,单机游戏与网络游戏的一个主要区别在于,单机游戏不需要接入互联网即可正常运行游戏,单机游戏在运行时不需要专门的服务器支撑,单机游戏模式多为人机对战,单机游戏进度通过存档的方式保存在计算机本地硬盘,每次运行时通过读取上一次运行后保存的存档,便可以接着上一次运行的进度继续运行。由于目前的单机存档游戏的存档均保存在本地,这种存档方式存在一个很重要的缺陷游戏的存档不能同步,即,在一台计算机上运行该单机存档游戏并存档后,当用户在另一台计算机上运行同一种单机存档游戏时,不能读取前一台计算机上游戏的存档,从而不能接续在前一台计算机上运行该单机存档游戏的进度,只能重新开始运行或接续该台计算机上从前的进度。因而,目前这种单机存档游戏的互动性和灵活性较差。

发明内容
本发明所要解决的技术问题在于,针对现有技术的不足提供一种单机存档游戏系统及其存档方法,实现存档的同步,以使用户在不同的游戏平台运行同一单机存档游戏时, 能从上一次运行的进度开始。为了解决的上述的技术问题,本发明提供了一种单机存档游戏系统,包括客户端和服务器端,所述客户端用于独立运行所述单机存档游戏,所述服务器端包括管理服务器和游戏进度存储服务器,所述管理服务器与所述客户端交互,接受所述客户端对所述单机存档游戏的游戏进度存档的上传或下载的请求,将上传的游戏进度存档存储到游戏进度存储服务器中,或将游戏进度存储服务器中对应于下载请求的游戏进度存档发送给所述客户端。本发明还提供了一种单机存档游戏的游戏进度存档存储方法,包括如下步骤步骤11 由客户端向服务器端发出游戏进度存档上传请求;步骤12 如果所述服务器端允许所述客户端上传所述游戏进度存档,则所述客户端对所述游戏进度存档进行计算,求出所述的游戏进度存档的识别信息,并将该游戏进度存档及其识别信息发送给所述服务器端,如果所述服务器端不充许所述客户端上传所述游戏进度存档,则终止游戏进度存档的存储过程;步骤13 所述服务器端接收并存储该游戏进度存档及其识别信息。在步骤11中,所述的上传请求中包括游戏信息和通过该客户端发出所述上传请求的用户信息。在上述方法的步骤12中,所述客户端对所述游戏进度存档进行计算之前,对所述游戏进度存档进行压缩,对压缩后的游戏进度存档计算,求出识别信息,更进一步地,对压缩后的游戏进度存档进行的计算为哈希计算,求出的识别信息为哈希值。上述方法的步骤13具体包括以下步骤步骤131、所述服务器端接收该游戏进度存档及其识别信息,将接收到的识别信息存储到用户信息数据库中,并对该游戏进度存档进行分块;步骤132、将各个分块分别存储到节点服务器集群中;步骤133、将各个分块的存储信息存储到索引服务器中。本发明还提供了一种单机存档游戏的游戏进度存档获取方法,包括如下步骤步骤21、通过客户端向服务器端发送针对某一游戏进度存档的下载请求信息,所述下载请求信息包括要获取的游戏进度存档的下载地址,所述下载地址中包含所述游戏进度存档的识别信息;步骤22、所述服务器端解析所述下载请求,获得该游戏进度存档的下载地址及识别信息;步骤23、所述服务器端通过所述识别信息获取该游戏进度存档的各个分块的存储 fn息;步骤M、根据该存储信息,获得该游戏进度存档的各个分块,并合为一个完整的游戏进度存档;步骤25、将所述完整的游戏进度存档发送给所述客户端。通过本发明提供的上述系统和方法,首先,用户可以在不同的计算机上使用同一种单机存档游戏的游戏进度运行单机存档游戏,实现了存档的同步,从而提高了单机存档游戏的互动性和灵活性;其次,由于本发明提供的单机存档游戏系统采用了文件数据压缩、 解压、tcp私有协议以及特殊的文档存储方法,因此减小了服务器的负载量,提高了服务器的容灾能力,可保证游戏运行的安全与稳定
下面结合附图和具体实施例对本发明的技术方案进行详细地说明。


图1为本发明单机存档游戏系统的结构框架图;图2为本发明单机存档游戏存档方法的流程图;图3为本发明单机存档游戏系统上传游戏进度存档的流程图;图4为本发明单机存档游戏系统下载游戏进度存档的流程图。
具体实施例方式图1为本发明单机存档游戏系统结构框架图,如图1所示,本发明单机存档游戏系统包括客户端1和服务器端2。所述客户端1可以安装在任何游戏平台上,如计算机、移动
5通讯装置、个人数字助理等,为单机存档游戏的运行提供运行环境。所述客户端1由用户交互单元11、存储单元12、压缩单元13、计算单元14、管理单元15和解压缩单元16组成;所述用户交互单元11在实际应用时可将其设计成系统的主界面,用户可通过该主界面输入各种信息、请求,并可以在此主界面运行单机存档游戏。例如,用户可通过该主界面进行注册或登录,在运行某一游戏时发出对该游戏的某个进度存档的下载请求,或在运行完某一游戏时发出游戏进度存档的上传请求等。所述管理单元15 —方面与所述用户交互单元11 相连接,接收并处理通过所述用户交互单元11输入的信息或请求,如果用户输入的是注册信息,则将接收到的用户注册信息,如用户ID、密码、邮箱等信息发送给所述服务器端2,如果所述管理单元15接收的是用户对某一游戏的某一游戏进度存档的下载请求,则将该请求发送给所述服务器端2,如果所述管理单元15接收的是用户对某一游戏的某一游戏进度存档的上传请求时,所述管理单元15对该游戏进度存档进行处理,得到该游戏进度存档的识别信息,而后将该游戏进度存档及其识别信息发送到服务器端2。另一方面,所述管理单元15与服务器端2进行交互,接收来自于服务器端2的消息及下载的游戏进度存档。另外,所述管理单元15将正在运行的单机存档游戏的游戏进度存档实时存储在所述存储单元12中,其中,所述存储单元12可以具体实施为一本地硬盘。当用户通过所述用户交互单元11输入对某一游戏的某一游戏进度存档的上传请求时,所述管理单元15对该游戏进度存档进行处理,进行处理的一个具体实施方式
是先将该游戏进度存档发送到压缩单元13进行压缩,而后再由计算单元14对该压缩后的游戏进度存档进行计算,得到用于识别该游戏进度存档的识别信息,例如,计算单元14进行哈希计算,得到的识别信息为哈希值。然后,再将该压缩后的游戏进度存档和识别信息(如哈希值)通过管理单元15发送到服务器端2。当管理单元15收到服务器端2发送来的游戏进度存档的压缩文件后,由解压缩单元16对该压缩文件进行解压缩。所述服务器端2包括管理服务器21、用户信息数据库22、节点服务器集群23、索引服务器M和安装包服务器25,其中,所述客户端1与管理服务器21连接,包括有线连接和无线连接;所述管理服务器21分别与用户信息数据库22、节点服务器集群23、索引服务器 24和安装包服务器25连接。所述管理服务器21与管理单元15进行交互,接受管理单元15发来的各种信息及上传或下载请求,并做出相应的处理;所述用户信息数据库22中存储有注册用户的详细资料和上传到节点服务器集群23中的各个游戏存档所对应的识别信息(如哈希值)以及存档描述、存档时间和下载地址等信息,其中,下载地址中包含有哈希值或由哈希值转化的信息,因此,通过该下载地址可以确定地得到该进度存档;所述节点服务器集群23由多个节点服务器231组成,每个节点服务器231中存储有利用云存储技术将游戏存档分成一定大小的(如641Λ)数据块;所述索引服务器24用来存储每个游戏进度存档的存储索引信息, 所述每个游戏进度存档的存储索引信息包括该游戏进度存档的哈希值、该游戏进度存档各个分块的编号及每一个分块的具体存储地址(例如节点服务器的编号);所述安装包服务器25中存有各种可以在客户端1所提供的环境中运行的单机存档游戏安装包。用户可以到提供单机存档游戏进度存档服务的网站或者各类下载网站下载游戏客户端的安装包,并安装在电脑、移动通讯装置(如手机)等终端上,以其作为游戏运行的
D ο
图2为本发明单机存档游戏存档方法的流程图,以下结合图2和图1,对本发明所述的系统及方法进行详细说明。步骤SlOl 启动客户端1,进入该客户端的主界面(即用户交互单元11)。需要说明的是,当用户第一次登录主界面时,需要通过主界面注册用户ID,并填写相应的注册信息,如密码、邮箱等。注册用户的ID以及其他相关资料由客户端1的管理单元15发送给管理服务器21,通过管理服务器21将这些信息保存在用户信息数据库22中。如果用户第一次运行某单机存档游戏时,客户端1通过管理服务器21从游戏安装包服务器25中下载所需的单机存档游戏。步骤S102 用户在主界面选择并运行具有存档功能的单机存档游戏。其中,当用户在主界面点击启动某一个单机存档游戏后,客户端1的管理单元15接收到用户启动该单机存档游戏的请求后,将该用户的用户信息(如用户ID)、游戏ID (—个游戏对应一个ID) 和一代表游戏开始的请求信息合并为一个信息(以下称为游戏开始请求)发送给管理服务器21。步骤S103 管理服务器21收到所述管理单元15发送来的游戏开始请求后,根据请求中包含的用户信息对该用户的身份进行认证,如果该用户不是注册用户,则向所述管理单元15发送一回应信息,以告知该用户的身份,在这种情况下,不对该用户运行游戏的存档进行上传存储或下载以往的存档给用户,然后执行步骤S113 ;在步骤S113中,读取本地游戏进度存档,以本地存档的进度开始运行游戏,如果本地没有该游戏的进度存档,则从该游戏的初始进度开始运行,即进入步骤S114 ;如果该用户是注册用户,执行步骤S104。步骤S104 所述管理服务器21根据该请求中的游戏ID ( 一个ID对应一个游戏), 在用户信息数据库22中查询该用户是否上传过与该游戏ID对应的单机存档游戏的进度存档,如果上传过,则进入步骤S105,如果没有,执行步骤S113 ;在步骤S113中,管理单元15 读取本地游戏进度存档,以本地存档的进度开始运行游戏,如果本地没有该游戏的进度存档,则从该游戏的初始进度开始运行,即进入步骤S114。步骤S105 管理服务器21将用户信息数据库22中存储的、该单机存档游戏的所有或部分(例如最新的3个)历史存档的存档标识(如存档描述、上传时间、下载地址等) 以列表的形式发送给客户端1,通过主界面显示给用户,以供选择。步骤S106 用户通过客户端1是否选择了一个游戏进度存档?如果用户选择了其中的一个,则进入步骤S107 ;如果用户没有选择,则进入步骤S113,读取本地游戏进度存档,以本地存档的进度运行游戏。步骤S107 所述管理服务器21根据客户端1发来的存档标识中的下载地址,从节点服务器集群23中获取该游戏进度存档并发送给客户端1。此步骤中所述的处理过程实际为存档的下载过程,该下载过程的流程在下文有详细说明,在此不再赘述。步骤S108 对所述管理服务器21发送来游戏进度存档进行解压缩,而后该单机存档游戏以该进度运行。另外,在游戏运行的过程中,所述客户端1可对正在运行的游戏进度进行即时存档,用户也可主动进行存档,存档的文件都保存到本地的存储单元12中。步骤S109 在进行游戏时,用户可随时选择退出游戏,如果选择退出游戏则进入步骤Sl 10,如果不选择退出则返回步骤S108或Sl 14、Sl 13继续游戏。
步骤SllO 退出正在运行的单机存档游戏并返回主界面。步骤Slll 在主界面上用户选择是否上传游戏进度存档,如果选择上传游戏进度,则进入步骤S112,如果不选择上传游戏进度存档则返回步骤S110,停留在主界面上。步骤S112 当用户选择上传游戏进度存档时,客户端1的管理单元15向管理服务器21发送上传请求,所述管理服务器21运用云存储技术将本次游戏结束时形成的游戏进度存档存储在节点服务器集群23中。此步骤的上传流程在下文有详细说明,在此不再赘述。图3为本发明单机存档游戏系统上传游戏进度存档流程图,如图3并结合图1所示,上述步骤Sl 12具体包括以下步骤步骤S201 当用户通过主界面选择了对当前游戏的进度存档进行上传时,由管理单元15向管理服务器21发送上传请求,在该上传请求中包括用户信息、游戏ID及该进度存档的存档描述、存档时间等信息。步骤S202 所述管理服务器21通过用户信息数据库22中的信息对该用户进行身份验证,并将允许或不允许上传的消息发送给所述的管理单元15。只有验证为合法用户,即注册用户后才能上传,并将该游戏进度存档的存档描述、存档时间等信息存到用户信息数据库中;如果不是注册用户,则不能进行上传,此时终止上传过程。步骤S203 当发出上传请求的客户端为合法用户后,所述的管理单元15将存储单元12中的需要上传的游戏进度存档发送给压缩单元13进行压缩,并由所述计算单元14根据压缩后的存档的内容计算出一个对应该游戏进度存档的哈希值,所述管理单元15将压缩后的游戏进度存档、根据该压缩后的游戏进度存档计算的哈希值发送给所述的管理服务器21。由于所述哈希值是根据游戏进度存档内容算出来的值,因此可以用来作为该游戏进度存档的唯一标识。步骤S204 管理服务器21接收管理单元15发送的该游戏进度存档的压缩包数据以及该游戏进度存档所对应的哈希值。步骤S205:管理服务器21将接收到的哈希值存储到用户信息数据库22,并将所述压缩包以一定大小(如641Λ)为单位进行分块,将各个分块分别存储到不同的节点服务器 231 中。其中,在步骤S204中,所述管理服务器21接收完压缩包数据后,根据该接收到的压缩包数据计算出一个哈希值,并与用户信息数据库22中存储的与该压缩包数据一起上传的哈希值进行比较。如果两个哈希值相同,则说明上传成功,如果两个哈希值不相同,说明在上传过程中出现网络连接失败或客户端1被强行关闭等情况出现致使接收到的存档不是客户端要上传的存档,则所述管理服务器21将接收完毕的压缩包及其相关的数据,如存到用户信息数据库中的哈希值和存档描述删除,不进行存储动作。步骤S206 所述管理服务器21将对应该存档的哈希值、分块信息存储到索引服务器对中,所述分块信息包括分块编号、和对应各个分块的存储地址,如节点服务器231的编号。其中,所述管理服务器21在用户信息数据库中存储有针对每一个上传存档的存档下载地址,以供该存档下载时使用。其中,该存档下载地址包括哈希值以及其他的一些附属信息,用于使客户端可以唯一地得到要下载的存档。
图4为本发明单机存档游戏系统下载游戏进度存档流程图,如图4并结合图1所示,在前述步骤S107中所述的下载过程如下步骤S301 客户端1的管理单元15向管理服务器21发送下载请求,所述下载请求包括用户信息和游戏本身信息,管理服务器21接收到该下载请求时,对其进行解析,获得该用户的ID和所要求下载的游戏ID。步骤S302 所述管理服务器21通过用户信息数据库22的信息对该用户进行身份验证,如果身份合法,则进行下一步骤S303 ;如果身份不合法,终止所述的单机存档游戏的游戏进度存档获取。步骤S303 所述管理服务器21将针对该用户的、该游戏最新的3个游戏进度存档的存档标识(包括存档描述、存档时间以及存档下载地址)以列表的形式发送给所述客户端1。步骤S304 当用户在所述列表中选择了其中的一个存档标识后(即选择了一个存档的下载地址),客户端中的管理单元15将选中的存档标识中的信息,至少是下载地址,及关于下载的请求发送给服务器端中的管理服务器21。步骤S305 所述管理服务器21根据该下载地址中的哈希值在索引服务器M中获取该游戏进度存档的各个分块的存储信息。步骤S306 所述管理服务器21根据该存储信息中的分块编号和对应的节点服务器编号,从各个节点服务器231中分别获取各个分块数据后,进行合并后发送给客户端1的管理单元15,管理单元15成功地接收到该存档后,由于该存档为一压缩文件,因而将该压缩文件解压存到本地该游戏的存档位置。在本发明单机存档游戏系统上传和下载游戏进度存档的过程中,在上传游戏进度存档时,管理服务器21可以全部接收完再分块,也可以边接收所述压缩包数据,边将压缩包数据以641Λ大小为单位进行分块,再将各个分块数据存储到节点服务器集群23中。综上所述,本发明提供单机存档游戏系统与现有技术中的单机存档游戏相比,本发明的单机存档游戏系统采用了两种游戏进度存档方式第一种在本地保存,第二种在服务器保存,在服务器保存的方式采用了文件数据压缩、解压、tcp私有协议以及“云存储”的存储方式,其优点在于,首先用户可以在不同的计算机上使用同一种单机存档游戏的游戏进度运行该游戏;其次,由于采用将准备存储的文件进行分块,并且将每个分块至少存储到 3个服务器中,因此可以节省服务器的负载量并且这种在服务器中管理存档文件的方式具有强大的容灾能力,可保证自身的安全与稳定。
权利要求
1.一种单机存档游戏系统,其特征在于,包括客户端和服务器端,所述客户端用于独立运行所述单机存档游戏,所述服务器端包括管理服务器和游戏进度存储服务器,所述管理服务器与所述客户端交互,接受所述客户端对所述单机存档游戏的游戏进度存档的上传或下载的请求,将上传的游戏进度存档存储到游戏进度存储服务器中,或将游戏进度存储服务器中对应于下载请求的游戏进度存档发送给所述客户端。
2.如权利要求1所述的一种单机存档游戏系统,其特征在于,所述游戏进度存储服务器包括节点服务器集群和索引服务器,所述节点服务器集群和索引服务器分别与所述管理服务器连接,所述节点服务器集群存储所述游戏进度存档的分块,所述索引服务器存储所述各个游戏进度存档分块在所述节点服务器集群中的存储信息;所述节点服务器集群由多个节点服务器组成;所述服务器端还包括安装包服务器,用于存储单机存档游戏安装包。
3.如权利要求1所述的一种单机存档游戏系统,其特征在于,所述服务器端还包括用户信息数据库,用于存储用户信息和游戏进度存档的存档下载地址;所述存档下载地址包括根据所述游戏进度存档进行哈希计算得到的哈希值。
4.如权利要求1所述的一种单机存档游戏系统,其特征在于,所述客户端包括用户交互单元和管理单元,所述用户交互单元至少用于向所述管理单元提供用户信息和请求,所述管理单元分别与所述用户交互单元和所述管理服务器进行信息的交互和处理。
5.如权利要求4所述的一种单机存档游戏系统,其特征在于,所述客户端还包括计算单元,所述计算单元用于对要上传的游戏进度存档进行计算,以求出该游戏进度存档的识别信息;所述的识别信息哈希值。
6.如权利要求4所述的一种单机存档游戏系统,其特征在于,所述客户端还包括压缩单元和解压缩单元,用于对要上传的游戏进度存档进行压缩,所述计算单元对经过压缩的游戏进度存档进行计算,以求出该游戏进度存档的识别信息;所述解压缩单元用于对接收到的游戏进度存档压缩文件进行解压缩。
7.一种单机存档游戏的游戏进度存档存储方法,其特征在于,包括如下步骤步骤11 由客户端向服务器端发出游戏进度存档上传请求;步骤12 如果所述服务器端允许所述客户端上传所述游戏进度存档,则所述客户端对所述游戏进度存档进行计算,求出所述的游戏进度存档的识别信息,并将该游戏进度存档及其识别信息发送给所述服务器端,如果所述服务器端不充许所述客户端上传所述游戏进度存档,则终止游戏进度存档的存储过程;步骤13 所述服务器端接收并存储该游戏进度存档及其识别信息。
8.根据权利要求7所述的单机存档游戏的游戏进度存档存储方法,其特征在于,在步骤11中,所述的上传请求中包括游戏信息和通过该客户端发出所述上传请求的用户信息;在步骤11和步骤12之间还包括步骤11 ‘步骤11'、所述服务器端接收所述上传请求,对其进行解析以获得通过该客户端发出所述上传请求的用户的信息,并对该用户的身份进行验证,如果该用户的身份合法,则允许所述客户端上传所述游戏进度存档,并将所述游戏信息和/或用户信息存储到用户信息数据库中,否则终止游戏进度存档的存储过程;在步骤12中,所述客户端对所述游戏进度存档进行计算之前,对所述游戏进度存档进行压缩,对压缩后的游戏进度存档计算,求出识别信息;在步骤12中,对压缩后的游戏进度存档进行的计算为哈希计算,求出的识别信息为哈希值;步骤13具体包括以下步骤步骤131、所述服务器端接收该游戏进度存档及其识别信息,将接收到的识别信息存储到用户信息数据库中,并对该游戏进度存档进行分块; 步骤132、将各个分块分别存储到节点服务器集群中; 步骤133、将各个分块的存储信息存储到索引服务器中; 所述步骤131还包括以下步骤步骤134、接收完该游戏进度存档之后,针对该接收到的游戏进度存档进行计算,以求出第二识别信息;步骤135、将所述第二识别信息与存储到用户信息数据库中的该游戏进度存档的识别信息进行比较,如果二者不相同,则丢弃接收到的游戏进度存档,并告知客户端存档失败; 如果二者相同,则执行步骤132。
9.一种单机存档游戏的游戏进度存档获取方法,其特征在于,包括如下步骤步骤21、通过客户端向服务器端发送针对某一游戏进度存档的下载请求信息,所述下载请求信息包括要获取的游戏进度存档的下载地址,所述下载地址中包含所述游戏进度存档的识别信息;步骤22、所述服务器端解析所述下载请求,获得该游戏进度存档的下载地址及识别信息;步骤23、所述服务器端通过所述识别信息获取该游戏进度存档的各个分块的存储信息;步骤对、根据该存储信息,获得该游戏进度存档的各个分块,并合为一个完整的游戏进度存档;步骤25、将所述完整的游戏进度存档发送给所述客户端。
10.根据权利要求9所述的单机存档游戏的游戏进度存档获取方法,其特征在于,在步骤21之前还包括以下步骤步骤20"、通过所述客户端向所述服务器端发送针对某一游戏的游戏进度存档下载请求;步骤20'、所述服务器端对通过所述客户端发送所述游戏进度存档下载请求的用户进行身份验证,如果身法合法,则进行下一步;如果身份不合法,终止所述的单机存档游戏的游戏进度存档获取过程;步骤20、所述服务器端将针对该用户的、该游戏的、所有或部分历史游戏进度存档的存档标识发送给所述客户端,所述存档标识包括下载地址;在步骤20中,所述历史游戏进度存档的存档标识以列表的形式发送给所述客户端; 步骤22和步骤23中的所述识别信息为哈希值,步骤23中的所述各个分块的存储信息为分块与存储地点的对应信息。
全文摘要
一种单机存档游戏系统,包括客户端和服务器端,服务器端中的管理服务器接受所述客户端对游戏进度存档的上传或下载的请求,将上传的游戏进度存档存储到游戏进度存储服务器中,或将游戏进度存储服务器中对应于下载请求的游戏进度存档发送给所述客户端;一种单机存档游戏的游戏进度存档方法,将单机存档游戏的进度存档上传至服务器中,或从服务器中下载游戏进度存档并根据存档进度进行该单机存档游戏。用户可以在不同的计算机上使用同一种单机存档游戏的游戏进度进行单机存档游戏,由于采用的云存储技术,因此节省服务器的负载量并且这种在服务器中管理存档文件的方式具有强大的容灾能力,可保证自身的安全与稳定。
文档编号G06F17/30GK102479238SQ20101057619
公开日2012年5月30日 申请日期2010年11月24日 优先权日2010年11月24日
发明者王欣, 钟智将 申请人:深圳市快播科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1