一种基于虚拟服务器的游戏配置加载方法与流程

文档序号:11582303阅读:250来源:国知局
一种基于虚拟服务器的游戏配置加载方法与流程

本发明属于游戏开发技术领域,涉及一种基于虚拟服务器的游戏配置加载方法。



背景技术:

市面上成熟网络游戏的服务器应包含一整套的应用服务器。比如云网关服务器负责网络连接的负载均衡、冗余防ddos攻击;网关服务器负责将网络协议包在游戏逻辑服务器、数据库服务器、中心服务器、验证服务器、充值服务器中进行中继转发;游戏逻辑服务器负责游戏的玩法逻辑以及各种ai算法;数据库服务器负责游戏数据收集与存档;中心服务器负责游戏社交相关的逻辑;验证服务器负责角色账号密码验证;充值服务器负责游戏充值。各个应用服务器各有分工,但又需要相互协作完成游戏服务器的功能。这些应用服务器的配置、启动、更新、关闭都需要提供专业的运维工具,需要专业的运维人员来维护。综上,如果要直接将网络游戏的服务器作为虚拟服务器,从安全性与成本角度来看就是不可行的。首先它们不够轻量级,其次不够安全。

虚拟服务器也称为vps(virtualprivateservice,虚拟专用业务)主机,简称为虚拟主机。相对于真实主机而言,虚拟服务器是指采用特殊的软硬件技术把一台完整的服务器主机分成若干个主机。实际上是将真实的硬盘空间分成若干份,然后租给不同用户,每一台被分割的主机都具有独立的域名和ip地址,但共享真实主机的cpu、ram、操作系统、应用软件等。

虚拟服务器作为一种轻量级的游戏服务器,托管游戏客户端的一切请求,并实时给出响应。为了更好的加载游戏配置,现提供一种方案。



技术实现要素:

本发明的目的在于提供一种基于虚拟服务器的游戏配置加载方法。

本发明的目的可以通过以下技术方案实现:

一种基于虚拟服务器的游戏配置加载方法,包括启动加载与脚本加载两个流程步骤:

启动加载步骤如下:a、利用虚拟服务器创建资源配置加载管理模块,资源配置加载管理模块分为:配置表管理模块和地图模块,顺序加载配置表文件与加载地图信息文件;

b、启动配置表加载流程,分别创建对应于表种类的分类数据管理器;

c、分类数据管理器加载对应的数据表;

d、分类数据管理器直接读取xml文件;

e、分类数据管理器将xml数据映射进lua环境;

f、加载地图模块,地图模块加载分为:地图格子信息加载和地图跳转点信息二大类;

g、地图资源加载格子信息;地图模块根据配置表中的map表信息获取地图信息对应的logic信息,找到对应地图的logic文件位置,并读取此文件信息将地图相关数据诸如长、宽、阻挡点等数据读入并生成相应的数据结构;如果,在配置表中该地图配置为副本的模版,则额外复制一份地图数据,作为以后服务器生成以此地图为模版的副本;

h、地图资源加载跳转点信息;地图模块通过读取jump表信息获取全部游戏的跳转点数据,并根据跳转点数据中,源地图和目的地图的名称分别找到对应的源和目标地图,并在地图上对应的格子上生成跳转点;

i、启动信息加载完成。

所述虚拟服务器资源分为2类:1类为配置表资源,指的是所有需要加载进服务器的.xml文件,2类为地图资源文件,指的是游戏所有的地图信息文件。

所述分类数据管理器加载对应的数据表,再启动对应表的加载流程之后,首先会通过配置路径,找到对应的配置文件.xml的具体文件路径,并根据文件路径查找在对应位置是否有相应的.db文件,此文件为服务器根据xml文件生成的数据文件,可用于快速加载xml数据,对应.db文件存在且经过验证文件数据正确的db文件,服务器将直接加载此文件快速读取数据已加快数据加载的效率。

所述分类数据管理器直接读取xml文件;当xml对应的db文件不存在或经过验证db数据不正确时,分类管理模块将直接读取xml文件,通过xml文件解析模块解析xml文件数据并分析数据的正确性,并将数据存储进对应的数据结构中以便其他系统读取,在读取完成之后,重新在对应位置生成对应的.db文件,以便下次快速读取。

所述分类数据管理模块将xml数据映射进lua环境;由于配置表数据,在服务器系统脚本层也有可能使用,所以各个配置表分类管理模块在读取数据之后,都会将对应的数据注册lua的环境中,以提供给脚本使用。

所述脚本加载流程具体步骤如下:

a、服务器首先创建lua脚本管理模块,通过lua管理模块控制和管理整个服务器lua相关的功能;

b、虚拟服务器初始化lua运行环境,首先创建lua环境,然后通过设置环境变量,设置lua环境的运行目录;

c、虚拟服务器加载完lua运行环境之后,通过调用load.lua来加载全部的脚本文件,在load.lua文件中必须通过require‘文件名’的方式将服务器所使用的全部脚本文件加载进lua环境,否则,其他脚本文件将无法被服务器所加载;

d、虚拟服务器通过load文件将全部的脚本加载进lua环境并运行,这里会通过引擎对脚本的语法,数据等进行分析,检查,如果发现错误,将会报出错误并终止脚本的继续执行,并通过日志系统进行记录;

e、虚拟服务器加载完全部的脚本文件之后,将触发脚本系统的初始化事件,会由服务器底层触发脚本全局环境下的onload函数,此函数必须定义在lua全局环境中,如果不存在,则服务器会提示错误,并终止脚本继续运行,脚本层通过onload函数来实现所有脚本层的初始化操作;

f、虚拟服务器的反初始操作;由于游戏中的脚本是可以实现动态重载,当脚本层被重新加载的时候,需要对之前的lua环境进行反初始化操作。反初始化操作,通过服务器底层调用脚本全局环境下的onunload函数来实现,此函数必须定义在lua全局环境中,如果不存在,则服务器会提示错误,并终止脚本继续运行,脚本层应完善反初始化操作,否则,脚本层在重载将有可能出现数据错乱的情况;

g、脚本信息加载完成。

本发明的有益效果:本发明通过虚拟服务器实时加载游戏制作过程中生成的配置文件、lua脚本,调整虚拟服务器各功能模块的行为,最终让模块的行为会反映到游戏客户端呈现出结果,实现游戏配置在加载过程中的便捷性与安全性能。

附图说明

为了便于本领域技术人员理解,下面结合附图对本发明作进一步的说明。

图1为本发明实施例中启动加载流程示意图;

图2为本发明实施例中脚本加载流程示意图。

具体实施方式

下面结合具体实施例对本发明作进一步详细描述。

一种基于虚拟服务器的游戏配置加载方法,该加载方法包括启动加载与脚本加载两个流程步骤,具体地;

如图1所示,启动加载流程具体步骤如下:

a、利用虚拟服务器创建资源配置加载管理模块;虚拟服务器资源分为2类:1类为配置表资源,指的是所有需要加载进服务器的.xml文件,2类为地图资源文件,指的是游戏所有的地图信息文件;因此,资源配置加载管理模块分为:配置表管理模块和地图模块,服务器加载资源的顺序为,先加载配置表文件,再加载地图信息文件,因此,配置表管理模块将先被创建;

b、虚拟服务器在配置表管理模块创建之后将启动配置表加载流程;服务器的配置表资源又有诸多详细的分类,如item表,role表,npc表等,每个不同的表配置一类不同数据,因此,需要有一个专门的管理模块去管理一类数据。配置表管理模块在启动配置表加载流程之后,会按照一定的顺序,分别创建对应于表种类的分类数据管理器,并用这些分类数据管理来加载对应的配置表;

c、分类数据管理器加载对应的数据表;分类数据管理器,再启动对应表的加载流程之后,首先会通过配置路径,找到对应的配置文件.xml的具体文件路径,并根据文件路径查找在对应位置是否有相应的.db文件,此文件为服务器根据xml文件生成的数据文件,可用于快速加载xml数据,对应.db文件存在且经过验证文件数据正确的db文件,服务器将直接加载此文件快速读取数据已加快数据加载的效率;

d、分类管理模块直接读取xml文件;当xml对应的db文件不存在或经过验证db数据不正确时,分类管理模块将直接读取xml文件,通过xml文件解析模块解析xml文件数据并分析数据的正确性,并将数据存储进对应的数据结构中以便其他系统读取,在读取完成之后,重新在对应位置生成对应的.db文件,以便下次快速读取;

e、分类管理模块将xml数据映射进lua环境;由于配置表数据,在服务器系统脚本层也有可能使用,所以各个配置表分类管理模块在读取数据之后,都会将对应的数据注册lua的环境中,以提供给脚本使用;

f、地图模块加载;在配置表加载完成之后,系统会启动地图资源加载模块,地图资源加载分为:地图格子信息加载和地图跳转点信息二大类;

g、地图资源加载格子信息;地图模块根据配置表中的map表信息获取地图信息对应的logic信息,找到对应地图的logic文件位置,并读取此文件信息将地图相关数据诸如长、宽、阻挡点等数据读入并生成相应的数据结构;如果,在配置表中该地图配置为副本的模版,则额外复制一份地图数据,作为以后服务器生成以此地图为模版的副本;

h、地图资源加载跳转点信息;地图模块通过读取jump表信息获取全部游戏的跳转点数据,并根据跳转点数据中,源地图和目的地图的名称分别找到对应的源和目标地图,并在地图上对应的格子上生成跳转点;

i、启动信息加载完成。

如图2所示,脚本加载流程具体步骤如下:

a、服务器首先创建lua脚本管理模块,通过lua管理模块控制和管理整个服务器lua相关的功能;

b、虚拟服务器初始化lua运行环境,首先创建lua环境,然后通过设置环境变量,设置lua环境的运行目录;

c、虚拟服务器加载完lua运行环境之后,通过调用load.lua来加载全部的脚本文件,在load.lua文件中必须通过require‘文件名’的方式将服务器所使用的全部脚本文件加载进lua环境,否则,其他脚本文件将无法被服务器所加载;

d、虚拟服务器通过load文件将全部的脚本加载进lua环境并运行,这里会通过引擎对脚本的语法,数据等进行分析,检查,如果发现错误,将会报出错误并终止脚本的继续执行,并通过日志系统进行记录;

e、虚拟服务器加载完全部的脚本文件之后,将触发脚本系统的初始化事件,会由服务器底层触发脚本全局环境下的onload函数,此函数必须定义在lua全局环境中,如果不存在,则服务器会提示错误,并终止脚本继续运行,脚本层通过onload函数来实现所有脚本层的初始化操作;

f、虚拟服务器的反初始操作;由于游戏中的脚本是可以实现动态重载,当脚本层被重新加载的时候,需要对之前的lua环境进行反初始化操作。反初始化操作,通过服务器底层调用脚本全局环境下的onunload函数来实现,此函数必须定义在lua全局环境中,如果不存在,则服务器会提示错误,并终止脚本继续运行,脚本层应完善反初始化操作,否则,脚本层在重载将有可能出现数据错乱的情况;

g、脚本信息加载完成。

以上内容仅仅是对本发明所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

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