精华内容
下载资源
问答
  • 网络游戏服务器架构

    2012-02-20 11:19:28
    分析了当下比较流行的几款网游服务器架构并且比较的互相的性能,想了解网游的同学有福了~
  • 网游服务器架构设计

    2012-03-30 17:43:24
    《新飞飞》网游服务器架构设计,还不错的文档
  • 网络游戏服务器不同架构类型优劣分析,结合企业自身实际情况进行合理选择
  • 一种高性能网络游戏服务器架构设计,对于游戏服务器设计的简单介绍。
  • 网络游戏服务器开发架构的过程以及需要注意的点,可以更加有利于初学者避免掉进坑,对游戏服务器有进一步的了解
  • 网络游戏服务器架构2

    千次阅读 2013-10-18 15:20:59
    在《网络游戏服务器架构》这篇文章中,我描述了我们游戏中的服务器基本结构。游戏中4大服务器session, gateway, dbx, world,它们之间通过sock进行通信。四大服务器的连接过程是这样的: 1.先启动dbx,dbx监听端口...

    在《网络游戏服务器架构》这篇文章中,我描述了我们游戏中的服务器基本结构。游戏中4大服务器session, gateway, dbx, world,它们之间通过sock进行通信。四大服务器的连接过程是这样的:

    1.先启动dbx,dbx监听端口3000,供其他服务器连接

    2.接下来是session,它连接dbx(3000),同时监听2300,供gateway连接,并且监听2500,供world连接

    3.然后是gateway,它连接session(2300),监听2200,供world连接,同时监听2100,供client连接

    4.最后是world,它连接以上所有服务器,dbx(3000),session(2500),gateway(2200)


    以下是连接关系图示,A->B表示A主动连B。(图片是手稿,在手机里,晚上再传0.0)

    4个服务器进程启动后,除了world木有跟gateway主动连接上以外(这个需要session在玩家登录时进行gateway的分配),其他需要连接的都已连接。

    知道了连接关系以后,我们再来说下登录过程,大概是这样的:

    1.选区。其实是选择session的过程(好吧,代码中是这样写的,其实我更想说的是选db的过程。因为游戏中只有一个session,还谈什么选择),每个区都有一组服务器,他们公用一个数据库。点击后进入账号输入登录界面。

    2.账号验证。输入账号密码,点击进入游戏。session会通过dbx去数据库中查找账号密码是否正确,如果ok,返回服务器列表及各服务器人数情况(红色:爆满;绿色:少量玩家)。这就进入到world服务器选择界面。

    3.选择world服务器 + 选择/创建角色。选择world服务器,点击进入游戏。session根据选择的world服务器ID,来分配gateway(gatewayID = wordID/2,相当于1个world对应两个gateway),同时产生校验码,最后发送gateway信息及校验码到client,发送验证码到gateway。client会去连接gateway,并在gateway中对校验码进行验证。验证成功后,gateway通知world加载角色及场景信息。最后,我们断开client跟session的连接。至此,我们完成了登录,进入到游戏中。

    另外,有必要说下gateway与world的关系。没此有world去连接session的时候,session就会把所有gateway的信息(gatewayList)发送给world,world就会去连接所有的gateway,当然这时也会顺便在client中更新下服务器列表;而当有gateway去连接session的时候,session会更新gatewayList,并通知所有的world更新getewayList信息,同时去连接这个新添加的gateway。所有我们说,所有gateway跟所有world都有连接,恩,就是这样。

    展开全文
  • 本文详细描述了网游服务器架构与设计,对服务器开发的细节给予了详细的方法描述,不停留在简单的文字上,而是描述一个真正实用的网游服务器开发需要注意哪些问题,需要怎么去解决这些问题,整个游戏需要哪些元素,...
  • Unity3D游戏开发之网络游戏服务器架构设计如何做一名好主程.doc
  • 此文并不是聚润堂所在公司当前运营的网游游戏服务器架构,而是在看过了近十个商业网游的架构,在现阶段心目中规划的简单实用的网游服务器架构。 网游的本质是人和人之间关系,人越多,关系越多,越能把人留住。开...

    原文:http://data.gameres.com/message.asp?TopicID=154865


    简单实用的网游服务器架构


    此文并不是聚润堂所在公司当前运营的网游游戏服务器架构,而是在看过了近十个商业网游的架构,在现阶段心目中规划的简单实用的网游服务器架构。

    网游的本质是人和人之间关系,人越多,关系越多,越能把人留住。开服头三天,人数是最多,为了保证一个月后,玩家等级达到一定的等级,策划的玩法都可以完全展开,单组服务器容纳人数越多越好,如果是PVE结构的游戏,最好能容纳1万人左右。这样在一个月后流失率50%的情况下,还有5000人左右在一组服务器内,已经产生比较强大的社会结构,各种高级玩法才有进行的基础。如果是PVP洗用户的游戏,容纳人数越高越好。两款较好的国战游戏,《征途》达到了每组4万人,《成吉思汗》,推测至少也达到了两万人。

    采用完美常用的分线结构,运营到后期,就会出现每线人数较少,线内,线和线之间都互动不起来。但如果不分线,在开服一刹那,用户全部堆积在同一个新手村,基本玩不动。《天龙八部》提出了较好的解决方案,建立多个平行的新手村地图,一主多副,开服时尽可能多的同时容纳新用户的涌入,高等级玩家从其它地图回新手村只能到达主新手村。

    下图中每个方框表示一个独立的进程APP组件,每个服务进程如果发生宕机会影响部分用户,整体服务但不会全部中断。在宕机进程重启后,又可以并入整体,全部服务得以继续。

    图片附件

    gls:game login server,游戏登录服务器,某种程序上,其不是核心组件,gls调用外部的接口,进行基本的用户名密码认证。此外需要实现很多附属的功能:登录排队(对开服非常有帮助),GM超级登录通道(GM可以不排队进入游戏),封测期间激活用户控制,限制用户登录,控制客户端版本等。

    db:实质上是后台sql的大内存缓冲,隔离了数据库操作,比较内存中的数据,只把改变的数据定时批量写入sql。系统的算法,开发稳定性都要求非常高。

    center:所有组件都要在这里注册,在线玩家的session状态都在这里集中存放,和各组件有心跳连接。所有对外的接口也全部通过这里。

    角色入口:玩家登录游戏后的选择角色

    gs:game server,最核心组件,同一地图,所有游戏逻辑相关的功能,都在这里完成。

    gate:建立和用户的常链接,主要作sockt转发,屏蔽恶意包,对gs进行保护。协议加密解密功能,一个gate共享多个gs,降低跳转地图连接不上的风险。

    IM,关系,寄售:表示其它组件,负责对应的跨地图发生全局的游戏逻辑。

    细节是魔鬼。此架构简单、清晰、明了,和其它网游架构相比其实没有什么本质的区别。团队的代码开发能力,项目管理能力才是关键。一个gs承担能力有限,在现在硬件环境下,一个有经验的开发人员,一个gs应该能达到1500人的上限。整个架构的上限,瓶颈在center调度压力,db的读写压力。

    引用一段深以为然的话做结束:
    ==========
    http://blog.csdn.net/lfhfut/archive/2010/04/14/5483266.aspx

    4。游戏开发并没有什么高深的技术

    首先需要明确的一点,游戏项目是工程项目,不是科研项目。

    工程项目的目的是在有限的人力跟财力之下实现出既定的需求,而这个需求从前面的分析可以知道,要求并不高,所以,需求的实现过程也就并没有多么高深。

    至少在我经历过的项目里,没有什么惊天地泣鬼神似的英雄人物,没有创造出多么伟大的算法,我们所做的,只是使用现在的技术,现有的方法,拼合成一个软件产品,一个融合了程序、美术、策划劳动力的软件产品。

    游戏开发的过程里,没有,也不需要多厉害的技术高手,需要的仅仅只是有耐心,有责任心的普通技术人员。
    ===========
    最后赞一句:Dia真是跨平台画流程图的好软件,聚润堂的日常使用中已经完全替代了Visio。

    参考:

    白云哥的blog
    http://blog.csdn.net/lfhfut/archive/2007/09.aspx

    一种经典的网络游戏服务器架构
    http://www.cppblog.com/johndragon/archive/2008/04/10/46768.html

    传奇3的架构图
    http://bbs.gameres.com/showthread.asp?threadid=47752&page=10
    185楼,187楼,分了两部分。聚润堂把其合在一起方便查看



    资讯仅供参考,不代表本站(GameRes.com)观点,此信息由聚润堂提交。 



    展开全文
  • 移动端网络游戏主要分为两种类型,一种是弱联网的,一种是强联网的。 弱联网的游戏,主要是指对游戏数据实时性要求比较低的联网游戏,比如卡牌游戏,休闲游戏等。 强联网的游戏,主要是指对游戏数据实时性要求比较高...

    移动端网络游戏主要分为两种类型,一种是弱联网的,一种是强联网的。
    弱联网的游戏,主要是指对游戏数据实时性要求比较低的联网游戏,比如卡牌游戏,休闲游戏等。
    强联网的游戏,主要是指对游戏数据实时性要求比较高的联网游戏,比如MMORPG,ARPG等。
    要求客户端与服务器之间进行实时通信。
    在这里主要是跟大家讨论一下如何架设具有负载均衡的游戏服务器,对于游戏服务器开发,自然而然就会涉及到分区,跨服,并服等需求,针对这些需求我们该如何去架设服务器?
    首先我们先绘制出游戏服务器分布图:
    在这里插入图片描述
    通过上图,我们可以看出,服务器之间的数据交换,该游戏服务器主要是由LoginServer,GateSever,GameServer,DBServer,CenterServer组成
    负载均衡主要是通过,GateServer完成的,就是说当玩家登陆的时候,GateServer会根据GameSever运行情况从里面找出一个相对空闲的GameServer分配给玩家。GateServer与GameServer之间是多对多的关系。换句话说就是GateServer当掉只会影响局部GameServer中玩家的人数,不影响全局。上图显示的只是软件的服务器架构,不是硬件的,意思是说,上面的布局可以在一台硬件服务器上配置完毕,也可以在多台服务器上配置,他们之间的配置是通过配置表完成的,样式如下:
    在这里插入图片描述
    以上是中心服务器配置,那下面是GameServer服务器配置:
    在这里插入图片描述
    数据的传递流程是这样的:
    用户发送消息到LoginServer,LoginServer确认消息是否正确,如果正确就发送到CenterServer,来获取GateServer的ip地址和端口信息,接着说消息到达CenterServer后,
    CenterServer会选取负载最低的GateServer的ip地址和端口信息发给LoginServer,
    LoginServer发送给客户端,客户端接收到消息后链接GateServer,并发送消息到GateServer,
    GateServer把用户id保存起来并发送给CenterServer,然后通过GateServer分配用户到负载较小的GameServer、FightServer上面,并记录用户分派的服务器,将已登录用户收编发送消息给GateServer。然后GateServer会发消息给GameServer,GameServer会去DBServe查证,用户信息是否合法
    服务器的架构一般都是这个样子。

    展开全文
  • 移动端网络游戏主要分为两种类型,一种是弱联网的,一种是强联网的。 弱联网的游戏,主要是指对游戏数据实时性要求比较低的联网游戏,比如卡牌游戏,休闲游戏等。 强联网的游戏,主要是指对游戏数据实时性要求比较...

    移动端网络游戏主要分为两种类型,一种是弱联网的,一种是强联网的。
    弱联网的游戏,主要是指对游戏数据实时性要求比较低的联网游戏,比如卡牌游戏,休闲游戏等。
    强联网的游戏,主要是指对游戏数据实时性要求比较高的联网游戏,比如MMORPG,ARPG等。
    要求客户端与服务器之间进行实时通信。
    在这里主要是跟大家讨论一下如何架设具有负载均衡的游戏服务器,对于游戏服务器开发,自然而然就会涉及到分区,跨服,并服等需求,针对这些需求我们该如何去架设服务器?
    以下是我们服务器架设示意图,供大家参考:
    首先我们先绘制出游戏服务器分布图:

    这里写图片描述

    我们可以看出,服务器之间的数据交换,该游戏服务器主要是由LoginServer,GateSever,GameServer,DBServer,CenterServer组成。
    负载均衡主要是通过,GateServer完成的,就是说当玩家登陆的时候,GateServer会根据GameSever运行情况从里面找出一个相对空闲的GameServer分配给玩家。GateServer与GameServer之间是多对多的关系。换句话说就是GateServer当掉只会影响局部GameServer中玩家的人数,不影响全局。上图显示的只是软件的服务器架构,不是硬件的,意思是说,上面的布局可以在一台硬件服务器上配置完毕,也可以在多台服务器上配置。

    用户发送消息到LoginServer,LoginServer确认消息是否正确,如果正确就发送到CenterServer,来获取GateServer的ip地址和端口信息,接着说消息到达CenterServer后,CenterServer会选取负载最低的GateServer的ip地址和端口信息发给LoginServer,LoginServer发送给客户端,客户端接收到消息后链接GateServer,并发送消息到GateServer,GateServer把用户id保存起来并发送给CenterServer,然后通过GateServer分配用户到负载较小的GameServer、FightServer上面,并记录用户分派的服务器,将已登录用户收编发送消息给GateServer。然后GateServer会发消息给GameServer,GameServer会去DBServe查证,用户信息是否合法,整个流程就是这样子的。

    展开全文
  • 网游服务器架构变迁

    2018-08-28 10:42:47
    一、早期网游服务器 网游刚出现的时候,游戏服务器和小Web服务器没有区别。 从《传奇》的时代开始,游戏服务器内部就出现了游戏逻辑,既能用于同步每个玩家看到的世界,又能让逻辑与客户端分离,避免早期的网络...
  • 网络游戏的结构分为客户端与服务器端,客户端采用2D绘制引擎或者3D绘制引擎绘制游戏世界的实时画面,服务器端则负责响应所有客户端的连接请求和游戏逻辑处理,并控制所有客户端的游戏画面绘制。客户端与服务器通过...
  • 无缝世界网游服务器架构设计思路(下) 上次写了《无缝世界网游服务器架构的设计思路》,这次是续篇,主要内容是两种架构的优缺点分析。 从一组服务器的角度来看,一般来说,我们的服务器组(Cluster)内都会有登陆...
  • 经典网络游戏服务器架构

    千次阅读 2012-09-07 20:50:26
    图上的所有x N的服务器,都是多台一起的。红线,绿线,和蓝线图上也有图示,这里就不多介绍了。关于Agent Server大家也能看出来,其实就是Gate。 这里主要介绍下图上的标记了号码的位置的数据连接的内容和意义。 ...
  • 大型网游服务器架构

    千次阅读 2018-06-05 23:23:00
    架构一 架构二...
  • 一种经典的网络游戏服务器架构首先,二话不说,上图(用Windows画图画的。。。) 这个图是一个区的架构图,所有区的架构是一样的。上面虚线框的ServerGroup和旁边 方框内的架构一样。图上的所有x N的服务器,都是多...
  • 图上的所有x N的服务器,都是多台一起的。红线,绿线,和蓝线图上也有图示,这里就不多介绍了。关于Agent Server大家也能看出来,其实就是Gate。 这里主要介绍下图上的标记了号码的位置的数据连接的内容和意义。 ...
  • 无缝世界网游服务器架构设计思路(上) 过去一年中,花了很多时间在考虑服务器架构设计方面的问题。看了大量文章、也研究了不少开源项目,眼界倒是开阔了不少,不过回过头来看,对网游架构设计方面的帮助却是不多。...
  • 开源大型网游服务器架构项目

    千次阅读 2012-12-14 20:06:16
    开源大型网游服务器架构项目   Trinity,国人习惯称T端,是在M端(MaNGOS)的基础上,发展出来的大型网游服务器架设软件。此项目为开源方式,任何人都可以在Trinity官方网站免费下载其源码,进行重新编辑...
  • 一种经典的网络游戏服务器架构

    千次阅读 2008-07-27 20:45:00
    一种经典的网络游戏服务器架构 首先,二话不说,上图(用Windows画图画的。。。)这个图是一个区的架构图,所有区的架构是一样的。上面虚线框的ServerGroup和旁边方框内的架构一样。图上的所有x N的服务器,都是多台...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,899
精华内容 30,759
关键字:

网络游戏服务器架构