简单网络服务器架构

网游的本质就是人与人之间的关系,人越多,关系越多,能把人留住。开服三天内,人最多。单台服务器能容纳的人越多越好。如果是PVE的话,最好能支撑1W人。这样在一个月后流失50%的人数的后,还有5000人左右的每组服务器,已经产生可比较强大的社会效果,各种高级玩法才有进行的基础,如果是PVP洗用户的游戏,容纳人数越高越好。两款较好的国战游戏,《征途》达到了每组4万人,《成吉思汗》,推测至少也达到了两万人。

采用完美常用的分线技术,运营到后期就会出现,每线人数较少,线内,线和线之间都互动不起来。但是如果不分线,刚开服的那天 服务器有可能会被挤爆。《天龙八部》提出了较好的解决方案,建立多个新手村,一主多副,开服时尽可能多的容纳多玩家进入,高等级玩家会新手村只能到达主新手村。


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

图片附件


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

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

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

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

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

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

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值