这篇blog题目涉及的范围真大!以至于在这里需要先写一篇前言把范围缩小。选择写这样一个系列的文章,主要是想给工作了两年的自己一个交代,或者说是一个阶段性的总结。两年时间里,房价依然再涨,工资依然跑不赢CPI,某人依然在仰望星空。期间很多梦碎了,很多还在坚持着,生活过得波澜不惊。而我也从刚毕业是的青涩逐步蜕变为“老油条”。不知道是一种悲哀、还是一种悲哀、还是一种悲哀....... 庆幸的是梦还在继续,一颗倔强的心还在坚持。希望明天的明天被束缚的心能回到梦开始的地方!
==========================我只是条分割线========================
作为本系列blog的开篇前言,本文主要明确网络游戏服务器构架的设计目标,并作出一些限定。因为本系列所讨论的服务器端构架只适用于部分网游,并不是一个通用的网游服务器构架。
设计目标:
支持的游戏类型:大型MMORPG游戏,类似魔兽世界(有大世界,不是开房间式)。
连接方式:以TCP长连接为主。动作类游戏并不在本文讨论范围内(因为本人并没有参与开发过动作类游戏),如果有时间可以研究一下龙之谷(部分使用UDP传输)、天下贰(全部使用UDP传输),类似的逆向工程网上已经有人做了。
在线人数:保证最大1w人左右在线还能比较流畅的运行。如果在线人数大于1w对客户端的同学和策划的同学都是很大的挑战。
服务器可以以多进程的形式布置在不同的物理主机上,也可以布置在同一主机上,考虑效率的同时兼顾可扩展性。能在普通配置的服务器上流程运行,物理主机配置:按照DELL 1950、DELL R610上32G内存的标准来部署主机,一般公司是用不起WOW的小霸王的.......
内存不用过多的考虑,因为现在服务器的内存已经很大了。减少内存使用会放到模块设计、详细设计里。不在构架分析的讨论范围内。偏格斗的游戏会对CPU和带宽要求比较高,设计时需要进行讨论。
设计目标就这些多说无益,核心就是设计出能够支持类似魔兽世界的大型MMORPG游戏的网游服务器端。具体的设计以及设计时的取舍、需要解决的问题等,会在后续的文章进行详细的介绍。
相关文章
- 如何从0设计开发一款JS-SDK-一、前言
- TSL 和 SSL 是什么?它们有何关系?-定义:SSL(安全套接层)是一种早期的加密协议,用于在互联网通信中保障数据传输的安全性。它通过加密和身份验证机制,确保客户端(如浏览器)与服务器之间的通信不被窃听或篡改。 版本:SSL 1.0(未发布)、SSL 2.0(1995年,已废弃)、SSL 3.0(1996年,已淘汰)。 问题:SSL 3.0 及早期版本存在严重安全漏洞(如 POODLE 攻击),目前已被现代系统禁用。 2. TLS(Transport Layer Security) 定义:TLS(传输层安全协议)是 SSL 的继任者,旨在提供更安全的通信协议。TLS 由国际互联网工程任务组(IETF)标准化,逐步替代了 SSL。 版本:TLS 1.0(1999年,已淘汰)、TLS 1.1(2006年,已淘汰)、TLS 1.2(2008年,广泛使用)、TLS 1.3(2018年,最新标准)。 优势:更强的加密算法(如 AES、ChaCha20)、更高效的握手过程、支持前向保密(Perfect Forward Secrecy)等。 SSL 与 TLS 的关系 继承关系 TLS 直接基于 SSL 3.0 设计,可以视为 SSL 的升级版。TLS 1.0 最初命名为 SSL 3.1,后因标准化需要更名为 TLS。 协议兼容性
- Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。
- 大数据毕业设计选题推荐-B站热门视频数据分析-Python数据可视化-Hive-Hadoop-Spark-一、前言
- 《C++20设计模式》命令模式思考-一、前言
- 基于STM32的轻量级Web服务器设计-一、前言
- 网络游戏开发-服务器(01)Asp.Net Core中的websocket,并封装一个简单的中间件
- 想实现一个“嵌入式Web服务器”作为毕业设计可行吗?
- C语言Linix服务器网络爬虫项目(二)项目设计和通过一个http请求抓取网页的简单实现
- 多个终端每隔几秒钟给一个服务器发送数据,用VB如何设计?--各位高手都来讨论