这篇blog题目涉及的范围真大!以至于在这里需要先写一篇前言把范围缩小。选择写这样一个系列的文章,主要是想给工作了两年的自己一个交代,或者说是一个阶段性的总结。两年时间里,房价依然再涨,工资依然跑不赢CPI,某人依然在仰望星空。期间很多梦碎了,很多还在坚持着,生活过得波澜不惊。而我也从刚毕业是的青涩逐步蜕变为“老油条”。不知道是一种悲哀、还是一种悲哀、还是一种悲哀....... 庆幸的是梦还在继续,一颗倔强的心还在坚持。希望明天的明天被束缚的心能回到梦开始的地方!
==========================我只是条分割线========================
作为本系列blog的开篇前言,本文主要明确网络游戏服务器构架的设计目标,并作出一些限定。因为本系列所讨论的服务器端构架只适用于部分网游,并不是一个通用的网游服务器构架。
设计目标:
支持的游戏类型:大型MMORPG游戏,类似魔兽世界(有大世界,不是开房间式)。
连接方式:以TCP长连接为主。动作类游戏并不在本文讨论范围内(因为本人并没有参与开发过动作类游戏),如果有时间可以研究一下龙之谷(部分使用UDP传输)、天下贰(全部使用UDP传输),类似的逆向工程网上已经有人做了。
在线人数:保证最大1w人左右在线还能比较流畅的运行。如果在线人数大于1w对客户端的同学和策划的同学都是很大的挑战。
服务器可以以多进程的形式布置在不同的物理主机上,也可以布置在同一主机上,考虑效率的同时兼顾可扩展性。能在普通配置的服务器上流程运行,物理主机配置:按照DELL 1950、DELL R610上32G内存的标准来部署主机,一般公司是用不起WOW的小霸王的.......
内存不用过多的考虑,因为现在服务器的内存已经很大了。减少内存使用会放到模块设计、详细设计里。不在构架分析的讨论范围内。偏格斗的游戏会对CPU和带宽要求比较高,设计时需要进行讨论。
设计目标就这些多说无益,核心就是设计出能够支持类似魔兽世界的大型MMORPG游戏的网游服务器端。具体的设计以及设计时的取舍、需要解决的问题等,会在后续的文章进行详细的介绍。