[zz]游戏服务器架构探讨(上)

[zz]游戏服务器架构探讨(上)

ID:13994693

大小:41.50 KB

页数:15页

时间:2018-07-25

[zz]游戏服务器架构探讨(上)_第1页
[zz]游戏服务器架构探讨(上)_第2页
[zz]游戏服务器架构探讨(上)_第3页
[zz]游戏服务器架构探讨(上)_第4页
[zz]游戏服务器架构探讨(上)_第5页
资源描述:

《[zz]游戏服务器架构探讨(上)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、[zz]游戏服务器架构探讨(上)2008-10-311116这里讨论的游戏服务器架构大概是目前国内乃至世界上的网游通用的一种架构了:httpbbs.gameres.comshowthread.aspthreadid=93775作者:qinglan有段时间没有研究技术了,这次正好看到了新版的mangos,较之以前我看的版本有了比较大的完善,于是再次浏览了下他的代码,也借此机会整理下我在游戏服务器开发方面的一些心得,与大家探讨。另外由于为避免与公司引起一些不必要的纠纷,我所描述的全都是通过google能够找到的资料,所以也可以认为我下面的内容都是网上所找资料的整理合集。在平时的开

2、发中我也搜索过相关的中文网页,很少有讲游戏服务器相关技术的,大家的讨论主要还是集中在3D相关技术,所以也希望我将开始的这几篇文章能够起到抛砖引玉的作用,潜水的兄弟们也都上来透透气。要描述一项技术或是一个行业,一般都会从其最古老的历史开始说起,我本也想按着这个套路走,无奈本人乃一八零后小辈,没有经历过那些苦涩的却令人羡慕的单机游戏开发,也没有响当当的拿的出手的优秀作品,所以也就只能就我所了解的一些技术做些简单的描述。一来算是敦促自己对知识做个梳理,二来与大家探讨的过程也能够找到我之前学习的不足和理解上的错误,最后呢,有可能的话也跟业内的同行们混个脸熟,哪天要是想换个工作了也好有

3、个人帮忙介绍下。最后的理由有些俗了。关于游戏开发,正如云风在其blog上所说,游戏项目始终只是个小工程,另外开发时间还是个很重要的问题,所以软件工程的思想及方法在大部分的游戏公司中并不怎么受欢迎。当然这也只是从我个人一些肤浅的了解所得,可能不够充分。从游戏开发的程序团队的人员构成上也可看出来,基本只能算作是小开发团队。有些工作室性质的开发团队,那就更简单了。我所了解的早些的开发团队,其成员间没有什么严格的分工,大家凭兴趣自由选择一些模块来负责,完成了再去负责另一模块,有其他同事的工作需要接手或协助的也会立即转入。所以游戏开发人员基本都是多面手,从网络到数据库,从游戏逻辑到图形

4、图象,每一项都有所了解,并能实际应用。或者说都具有非常强的学习能力,在接手一项新的任务后能在很短的时间内对该领域的技术迅速掌握并消化,而且还能现炒现卖。当然,这也与早期2D游戏的技术要求相对比较简单,游戏逻辑也没有现在这般复杂有关。而更重要的可能是,都是被逼出来的吧!)好了,闲话少说,下一篇,也就是第一篇了,主题为,服务器结构探讨。服务器结构探讨--最简单的结构所谓服务器结构,也就是如何将服务器各部分合理地安排,以实现最初的功能需求。所以,结构本无所谓正确与错误;当然,优秀的结构更有助于系统的搭建,对系统的可扩展性及可维护性也有更大的帮助。好的结构不是一蹴而就的,而且每个设计

5、者心中的那把尺都不相同,所以这个优秀结构的定义也就没有定论。在这里,我们不打算对现有游戏结构做评价,而是试着从头开始搭建一个我们需要的MMOG结构。对于一个最简单的游戏服务器来说,它只需要能够接受来自客户端的连接请求,然后处理客户端在游戏世界中的移动及交互,也即游戏逻辑处理即可。如果我们把这两项功能集成到一个服务进程中,则最终的结构很简单:client-----server嗯,太简单了点,这样也敢叫服务器结构?好吧,现在我们来往里面稍稍加点东西,让它看起来更像是服务器结构一些。一般来说,我们在接入游戏服务器的时候都会要提供一个帐号和密码,验证通过后才能进入。关于为什么要提供用

6、户名和密码才能进入的问题我们这里不打算做过多讨论,云风曾对此也提出过类似的疑问,并给出了只用一个标识串就能进入的设想,有兴趣的可以去看看他们的讨论。但不管是采用何种方式进入,照目前看来我们的服务器起码得提供一个帐号验证的功能。我们把观察点先集中在一个大区内。在大多数情况下,一个大区内都会有多组游戏服,也就是多个游戏世界可供选择。简单点来实现,我们完全可以抛弃这个大区的概念,认为一个大区也就是放在同一个机房的多台服务器组,各服务器组间没有什么关系。这样,我们可为每组服务器单独配备一台登录服。最后的结构图应该像这样:loginServergameServerclient该结构下的

7、玩家操作流程为,先选择大区,再选择大区下的某台服务器,即某个游戏世界,点击进入后开始帐号验证过程,验证成功则进入了该游戏世界。但是,如果玩家想要切换游戏世界,他只能先退出当前游戏世界,然后进入新的游戏世界重新进行帐号验证。早期的游戏大都采用的是这种结构,有些游戏在实现时采用了一些技术手段使得在切换游戏服时不需要再次验证帐号,但整体结构还是未做改变。该结构存在一个服务器资源配置的问题。因为登录服处理的逻辑相对来说比较简单,就是将玩家提交的帐号和密码送到数据库进行验证,和生成会话密钥发送给游戏服和客户端,操

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。