三维游戏设计方法及系统的制作方法

文档序号:7803298阅读:130来源:国知局
三维游戏设计方法及系统的制作方法
【专利摘要】一种三维游戏设计方法及系统,该方法包括如下步骤:当客户端向总控服务器发起连接请求时,总控服务器将该连接请求分配给平台服务器进行处理;平台服务器对客户端的连接请求进行分流,处理客户端的注册登录操作;当客户端成功登录平台服务器后,平台服务器传送接入服务器的地址、端口号及模块信息给客户端;接入服务器验证客户端的游戏帐号,当客户端的游戏帐号验证通过后,接入服务器将客户端的游戏任务分配给游戏逻辑服务器进行处理;游戏逻辑服务器对客户端的游戏任务进行处理,并对所有游戏逻辑的计算和操作进行管理。利用本发明可增加游戏软件的稳定性和运行效率,并可提高软件开发速度。
【专利说明】三维游戏设计方法及系统
【技术领域】
[0001]本发明涉及一种软件设计方法及系统,尤其涉及一种网络通信中的三维游戏设计方法及系统。
【背景技术】
[0002]现有的游戏软件主要采用Windows或Java等工具开发,造成稳定性差(没有经过高压测试)、运行效率低、开发速度慢,造成开发成本高,产品无法按期开发出来,或虽然勉强开发出来,但由于稳定性差、运行效率低,导致客户端游戏无法正常运行。

【发明内容】

[0003]鉴于以上内容,有必要提供一种三维游戏设计方法及系统,采用分布式服务器架构开发三维游戏软件,从而增加游戏软件的稳定性和运行效率,并可提高软件开发速度。
[0004]一种三维游戏设计方法,该方法包括如下步骤:当客户端向总控服务器发起连接请求时,总控服务器将该连接请求分配给平台服务器进行处理;平台服务器对客户端的连接请求进行分流,处理客户端的注册登录操作;当客户端成功登录平台服务器后,平台服务器传送接入服务器的地址、端口号及模块信息给客户端;接入服务器验证客户端的游戏帐号,当客户端的游戏帐号验证通过后,接入服务器根据上述模块信息将客户端的游戏任务分配给游戏逻辑服务器进行处理;游戏逻辑服务器对客户端的游戏任务进行处理,并对所有游戏逻辑的计算和操作进行管理。
[0005]一种三维游戏设计系统,该系统包括:总控服务器,用于当客户端向总控服务器发起连接请求时,将该连接请求分配给平台服务器进行处理;所述平台服务器,用于对客户端的连接请求进行分流,处理客户端的注册登录操作;所述平台服务器,还用于当客户端成功登录平台服务器后,传送接入服务器的地址、端口号及模块信息给客户端;所述接入服务器,用于验证客户端的游戏帐号,当客户端的游戏帐号验证通过后,所述接入服务器根据上述模块信息将客户端的游戏任务分配给游戏逻辑服务器进行处理;所述游戏逻辑服务器,用于对客户端的游戏任务进行处理,并对所有游戏逻辑的计算和操作进行管理。
[0006]相较于现有技术,所述的三维游戏设计系统及方法,采用分布式服务器架构开发三维游戏软件,从而增加游戏软件的稳定性和运行效率,并可提高软件开发速度,大大降低了游戏软件开发难度。
【专利附图】

【附图说明】
[0007]图1是本发明三维游戏设计系统的服务器架构图。
[0008]图2是本发明三维游戏设计方法的主流程图。
[0009]图3是本发明三维游戏设计方法在客户端的运行流程图。
[0010]图4是本发明三维游戏设计方法在服务器端的运行流程图。【具体实施方式】
[0011]如图1所示,是本发明三维游戏设计系统的服务器架构图。在本实施例中,所述服务器架构包括如下7个服务器:总控服务器(Control Server) 1、平台服务器(PlatformServer) 2、接入服务器(Access Server) 3、命名服务器(Name Server) 4、关系表管理服务器(Relation Server) 5、基础数据管理服务器(Database Server) 6、游戏逻辑服务器(GameServer) 7。各服务器的功能介绍如下:
[0012]总控服务器1:全局总控所有服务器集群的服务器,它主要用于服务器之间的逻辑切换,还有服务器与服务器之间的通信。
[0013]平台服务器2:当客户端8(代表游戏玩家,本实施例以一个客户端8为例进行说明)登录平台服务器2时,由平台服务器2进行服务器玩家的分流。若玩家不选择服务器将会进入平台服务器2的推荐服务器。当玩家登录成功平台服务器2,平台服务器2将会返回客户端8需要的接入服务器3的地址(如IP地址)、端口及模块信息。在本实施例中,所述模块信息包括,但不限于,接入服务器3的Zone信息和接入服务器3的Game信息。其中,接入服务器3的Zone信息用于区分同一个端口的虚拟服务器,为更多扩展而用。例如,一台物理服务器能有多个虚拟服务器,多个虚拟服务器通过Zone信息来区分。接入服务器3的Game信息用于区分用户登陆的是接入服务器3中的哪个游戏。两个不一样的游戏,如果连接到同一个接入服务器,则可以通过Game信息的值来作区分。
[0014]接入服务器3:客户端8得到接入服务器3的地址、端口及模块信息后,将游戏帐号与密码信息传入接入服务器3进行校验。若游戏帐号通过验证,则进入游戏逻辑服务器7进行玩家游戏逻辑的管理。
[0015]如果玩家尚没有帐号密码,命名服务器4提供选择注册、默认快速注册两种注册方式给客户端8。选择注册与当前流行网络游戏一样,玩家提供帐号,密码信息完成注册。默认快速注册则与当前手机游戏一样,命名服务器4分配玩家相应的注册信息,达到一键注册的效果。
[0016]命名服务器4:命名服务器4主要用于分配当前某个服务器中玩家的命名,保证各个服务器间玩家的不重名并且不影响游戏逻辑服务器7的效率。玩家可以选择命名服务器4随机分配的帐号进行命名,从而简单快捷创建一个理想角色名,达到一键注册的效果。
[0017]在本实施例中,命名服务器4中包括相应的命名规则和敏感字过滤规则。其中,命名规则可以根据玩家角色的性别进行确定。当玩家选择一个角色的时候,会根据这个角色的性别向服务器发送请求申请一个相应性别的名字。
[0018]例如,如果角色为男性,命名服务器4将从预先设定的男姓角色列表里面按照索引关系,返回一个名字给客户端8。所述男性角色列表可以是一个EXCEL表格,列出的N个(上万个)名字。女性角色返回的名字也是同理,且男姓角色名和女姓角色名的表格是分开的。
[0019]进一步地,当命名的索引达到最高(指向最后一个名字)的时候,命名服务器4采用“姓名+组合姓名”的方式为玩家创建新的唯一名字。
[0020]例如,原本名字为:“罗拉”,当单个服务器的单名已经用满时,命名服务器4则会返回:“罗拉*艾利”,组合所产生的唯一名字是十分庞大的,几乎是不可能用完,从而达到单个服务器的命名唯一性。[0021]所述敏感字过滤规则是指,当玩家自定义命名时,命名服务器4将根据新闻出版总署发布的最新屏蔽词库中列出的屏蔽词,进行对比。如果玩家自定义命名包含词库中列出的屏蔽词,则向客户端8发出提示,例如,该名字含敏感词汇,提示用户重新命名。
[0022]关系表管理服务器5 (其包含关系表管理服务模块):通过数据库连接(如MySQL)与第一数据库50相连,用于管理第一数据库50中所有结构表的关系,从而达到快速查询快速索引的目的。所述结构表的关系包括,但不限于,玩家与玩家的角色关系、玩家自身各种任务之间的关系等。
[0023]在本实施例中,结构表是指基础数据表,包括,但不限于角色表和道具表。其中,角色表包括角色名字、角色等级、角色拥有金钱、角色经验、声望、力量、体力等玩家的基础属性。道具表包括道具名字、道具类别、道具功能、道具描述、道具出售和购买价格、道具使用等级、道具是否可以交易等道具基本信息。
[0024]在本实施例中,关系表管理服务器5主要用于处理表与表之间的关系。例如,玩家与道具的拥有关系、玩家之丨B]的好友关系、车团关系、组队关系、玩家的邮件、玩家的文字聊天、商品竞价、拍卖物品等关系。
[0025]基础数据管理服务器6 (其包含基础数据管理服务模块):通过数据库连接(如MySQL)与第二数据库60相连,第二数据库60中的数据表储存了所有玩家的角色数据、装备数据、任务数据等一系列基础数据。游戏逻辑服务器7可以从基础数据管理服务器6提供的接口中获取相应的数据。在本实施例中,基础数据管理服务器6主要用于异步处理游戏逻辑服务器7、接入服务器3对数据库(如第二数据库60)的操作。
[0026]举例而言,如上提到的角色表和道具表,二者原本是没有任何关联性的。当客户端8创建一个角色(如战士),该角色拥有一把剑。则基础数据管理服务器6将在角色物品表里面添加一条数据,该条数据代表某个角色ID,拥有了道具表的某个ID的道具,其中还包括拥有了多少个,如何拥有等信息。当玩家进入游戏之后,基础数据管理服务器6将会根据该角色的ID,在该角色对应的道具表里查找该角色拥有什么样的道具。
[0027]游戏逻辑服务器7:用于管理所有游戏逻辑的计算和操作,包括但不限于,战斗系统、场景管理、副本系统、任务系统、聊天、DB (Database,数据库)操作、邮件等常用网络游戏对应的模块。开发人员和设计人员根据已有规则也能简单修改和重新创建新的游戏模块。
[0028]在以上服务器当中,其中接入服务器3和游戏逻辑服务器7为分布式架构,可以灵活扩展。在其他实施例中,也可以合并某些服务器,例如,将接入服务器3与命名服务器4合并为一个服务器,或者将关系表管理服务器5与基础数据管理服务器6合并为一个服务器等,这些简单变换都在本发明的保护范围之内。
[0029]通过上述分布式的服务器架构、可以均衡负载、提高系统可扩展性,提升服务器的空间、效率和稳定性。
[0030]本发明中的网络模型是基于Linux系统内核epoll下的实现,Linux系统是免费开源最快最稳定的服务器最好的选择。相较于Windows系统和Java系统,Linux可以更好地支持三维游戏,提供更完整的系统功能和解决方案。
[0031]在本实施例中,各服务器采用C++开发,高效且稳定。客户端8与服务器之间以及各服务器之间的通信协议采用TCP协议和谷歌ProtoBuf解析模块作为基础进行通信,采用二进制传输,速度快且节省流量。
[0032]首先,服务器开发人员与客户端8开发人员沟通写出Proto的协议文件,再通过批处理工具将Proto文件自动化生成一份客户端8专用的C#代码和C++的代码,从而达到服务器与客户端8的协议保持完整一致和简单易用。
[0033]本发明采用的协议主要划分为以下3种:
[0034]1.只能由客户端8发送给服务器的协议,协议的基础命名之后加“_C”结尾。
[0035]2.只能由服务器发送给客户端8的协议,协议的基础命名之后加“_S”结尾。
[0036]3.服务器与客户端8相互沟通的协议,协议的基础命名之后加“_CS”结尾。
[0037]基于TCP协议,当握手成功后,服务器可根据已经协定好的协议自由给客户端8发协议请求,客户端8也可自由给服务器发出协议请求。
[0038]另外,本发明提供了三维游戏常见的功能模块(如战斗系统、场景管理、副本系统、任务系统、聊天、DB操作、邮件等)的代码框架,很多功能只是稍做针对不同游戏的业务需求做下修改,添加至上述服务器中即可,从而使得游戏开发成本大大降低。
[0039]通过本发明三维游戏设计系统的服务器架构,解决了服务器的稳定性、效率问题,同时也解决了所有网络层通信的问题,用户可以专注应用逻辑的开发,大大降低了开发难度,因为游戏中难度大的模块(比如场景同步、分布式框架架设问题,DB操作部分)的代码框架基本已经实现。
[0040]以下通过图2至图4的描述,具体介绍本发明三维游戏设计方法的步骤流程。在本实施例中,所述三维游戏为U3D (Unity Three Dimensional)游戏。
[0041]如图2所示,是本发明三维游戏设计方法的主流程图。
[0042]步骤SI,当客户端8向总控服务器I发起连接请求时,总控服务器I将该连接请求分配给平台服务器2进行处理。
[0043]步骤S2,平台服务器2对客户端8的连接请求进行分流,处理客户端8的注册登录操作。
[0044]在本实施例中,命名服务器4根据预设的命名规则,分配客户端8登录的用户名(玩家的命名),保证各个服务器间玩家的不重名并且不影响游戏逻辑服务器7的效率。另夕卜,如果用户选择由系统随机生成用户名,则命名服务器4给客户端8随机分配用户名,从而简单快捷创建一个理想角色名,达到一键注册的效果。
[0045]步骤S3,当客户端8成功登录平台服务器2后,平台服务器2传送接入服务器3的地址(如IP地址)、端口号及模块信息给客户端8。客户端8得到接入服务器3的地址、端口号及模块信息后,根据接入服务器3的地址和端口号将游戏帐号与密码传入接入服务器3。
[0046]步骤S4,接入服务器3验证客户端8的游戏帐号与密码,当客户端8的游戏帐号与密码验证通过后,接入服务器3将客户端8的游戏任务分配给游戏逻辑服务器7进行处理。
[0047]在本实施例中,客户端8的关系数据,如玩家(由客户端8代表)与玩家的角色关系、玩家自身各种任务之间的关系数据,统一由关系表管理服务器5进行管理,关系表管理服务器5通过数据库连接(如MySQL)与第一数据库50相连。第一数据库50的结构表中存储有上述各种关系数据,通过查询所述第一数据库50,客户端8可以快速查询到各种关系数据。[0048]另外,客户端8的基本数据,如所有玩家的角色数据、装备数据、任务数据等一系列基础数据,统一由基础数据管理服务器6进行管理,基础数据管理服务器6通过数据库连接(如MySQL)与第二数据库60相连。第二数据库60中的数据表中储存有上述基础数据。游戏逻辑服务器7可以从基础数据管理服务器6提供的接口中获取相应的数据。
[0049]步骤S5,游戏逻辑服务器7对客户端8的游戏任务进行处理,并对所有游戏逻辑的计算和操作进行管理。
[0050]以下通过图3与图4的描述具体介绍客户端与服务器端的运行流程图。
[0051]如图3所示,是本发明三维游戏设计方法在客户端的运行流程图。
[0052]步骤S11,客户端8向总控服务器I发起连接请求(由总控服务器I管理)。
[0053]步骤S12,判断连接是否成功。
[0054]步骤S13,如果连接没有成功,则判定服务器无响应(总控服务器I异常),流程结束。
[0055]步骤S14,如果连接成功,则继续判断客户端8与服务器端版本号是否一致,即判定客户端8版本号与服务器端版本号是否一致。
[0056]步骤S15,如果客户端8版本号与服务器端版本号不一致,则进行资源版本号比对,请求服务器(如总控服务器I)更新最新资源,然后返回步骤S11。
[0057]步骤S16,如果客户端8版本号与服务器端版本号一致,则进入注册或登录流程(由平台服务器2管理)。
[0058]步骤S17,当客户端8注册或登录成功后,进入游戏帐号验证流程(由接入服务器
3管理)。
[0059]步骤S18,当客户端8的游戏帐号验证通过后,进入游戏任务处理流程(由游戏逻辑服务器7管理)。
[0060]步骤S19,当游戏任务结束时,断开客户端8与总控服务器I之间的连接,退出游戏。
[0061]如图4所示,是本发明三维游戏设计方法在服务器端的运行流程图。
[0062]步骤S21,监听客户端8的连接请求。
[0063]步骤S22,判断该连接请求是否为新连接。如果该连接请求不是新连接,则返回步骤 S21。
[0064]步骤S23,如果该连接请求是新连接,则继续判断客户端8服务器端版本号是否一致,即判定客户端8版本号与服务器端版本号是否一致。
[0065]步骤S24,如果客户端8版本号与服务器端版本号不一致,则提示客户端8更新最新版本,断开与客户端8的连接,流程结束。
[0066]步骤S25,如果客户端8版本号与服务器端版本号一致,则平台服务器2对客户端8的注册或登录请求进行处理。
[0067]步骤S26,判断客户端8注册或登录是否成功。如果客户端8注册或登录失败,则返回步骤S25。
[0068]步骤S27,如果客户端8注册或登录成功,接入服务器3验证客户端8的游戏帐号。
[0069]具体而言,当客户端8成功登录平台服务器2后,平台服务器2传送接入服务器3的地址(如IP地址)、端口号及模块信息给客户端8。客户端8得到接入服务器3的地址、端口号及模块信息后,根据接入服务器3的地址和端口号将游戏帐号与密码传入接入服务器3,以便接入服务器3验证客户端8的游戏帐号。
[0070]步骤S28,当客户端8的游戏帐号验证通过后,游戏逻辑服务器7处理客户端8的游戏任务。
[0071]步骤S29,当客户端8的游戏任务结束时,断开客户端8与总控服务器I之间的连接。
[0072]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种三维游戏设计方法,其特征在于,该方法包括如下步骤: 当客户端向总控服务器发起连接请求时,总控服务器将该连接请求分配给平台服务器进行处理; 平台服务器对客户端的连接请求进行分流,处理客户端的注册登录操作; 当客户端成功登录平台服务器后,平台服务器传送接入服务器的地址、端口号及模块信息给客户端; 接入服务器验证客户端的游戏帐号,当客户端的游戏帐号验证通过后,接入服务器根据上述模块信息将客户端的游戏任务分配给游戏逻辑服务器进行处理;及 游戏逻辑服务器对客户端的游戏任务进行处理,并对所有游戏逻辑的计算和操作进行管理。
2.如权利要求1所述的三维游戏设计方法,其特征在于,所述客户端得到接入服务器的地址、端口号及模块信息后,根据接入服务器的地址和端口号将游戏帐号与密码传入接入服务器。
3.如权利要求1所述的三维游戏设计方法,其特征在于,该方法还包括步骤: 设置命名服务器,根据预设的命名规则,分配客户端登录的用户名。
4.如权利要求1所述的三维游戏设计方法,其特征在于,该方法还包括步骤: 设置关系表管理服务器,与第一数据库相连,用于管理客户端的关系数据。
5.如权利要求1所述的三维游戏设计方法,其特征在于,该方法还包括步骤: 设置基础数据管理服务器,与第二数据库相连,用于管理客户端的基础数据。
6.一种三维游戏设计系统,其特征在于,该系统包括: 总控服务器,用于当客户端向总控服务器发起连接请求时,将该连接请求分配给平台服务器进行处理; 所述平台服务器,用于对客户端的连接请求进行分流,处理客户端的注册登录操作; 所述平台服务器,还用于当客户端成功登录平台服务器后,传送接入服务器的地址、端口号及模块信息给客户端; 所述接入服务器,用于验证客户端的游戏帐号,当客户端的游戏帐号验证通过后,所述接入服务器根据上述模块信息将客户端的游戏任务分配给游戏逻辑服务器进行处理;及所述游戏逻辑服务器,用于对客户端的游戏任务进行处理,并对所有游戏逻辑的计算和操作进行管理。
7.如权利要求6所述的三维游戏设计系统,其特征在于,所述客户端得到接入服务器的地址、端口号及模块信息后,根据接入服务器的地址和端口号将游戏帐号与密码传入接入服务器。
8.如权利要求6所述的三维游戏设计系统,其特征在于,该系统还包括: 命名服务器,用于根据预设的命名规则,分配客户端登录的用户名。
9.如权利要求6所述的三维游戏设计系统,其特征在于,该系统还包括: 关系表管理服务器,与第一数据库相连,用于管理客户端的关系数据。
10.如权利要求6所述的三维游戏设计系统,其特征在于,该系统还包括: 基础数据管理服务器,与第二数据库相连,用于管理客户端的基础数据。
【文档编号】H04L29/08GK104007965SQ201410193848
【公开日】2014年8月27日 申请日期:2014年5月9日 优先权日:2014年5月9日
【发明者】李泽辉, 徐志平, 于洲 申请人:深圳中青宝互动网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1