《王者荣耀游戏服务器架构演进(完整版)》读后感

原文地址:https://mp.weixin.qq.com/s/l1pnVc_E-Nz6Z27iC0G6GA

1.游戏服务器特征

游戏服务器端,是一个会长期运行的程序,并且它还要服务于多个不定时,不定点的网络请求。所以这类软件的特点是要非常关注稳定性和性能。这类程序如果需要多个协作来提高承载能力,则还要关注部署和扩容的便利性;同时,还需要考虑如何实现某种程度容灾需求。由于多进程协同工作,也带来了开发的复杂度,这也是需要关注的问题。

功能约束,是架构设计决定性因素。基于游戏领域的功能特征,对服务器端系统来说,有以下几个特殊的需求:

对于游戏数据和玩家数据的存储

对玩家数据进行数据广播和同步

把一部分游戏逻辑在服务器上运算,做好验证,防止外挂。

针对以上的需求特征,在服务器端,我们往往会关注对电脑内存和CPU的使用,以求在特定业务代码下,能尽量满足承载量和响应延迟的需求。最基本的做法就是“空间换时间”,用各种缓存的方式来以求得CPU和内存空间上的平衡。

在CPU和内存之上,是另外一个约束因素:网卡。网络带宽直接限制了服务器的处理能力,所以游戏服务器架构也必定要考虑这个因素。

2.游戏服务器架构要素

对于游戏服务端架构,最重要的三个部分就是,如何使用CPU、内存、网卡的设计:

内存架构:主要决定服务器如何使用内存,以最大化利用服务器端内存来提高承载量,降低服务延迟。

逻辑架构:设计如何使用进程、线程、协程这些对于CPU调度的方案。选择同步、异步等不同的编程模型,以提高服务器的稳定性和承载量。可以分区分服,也可以采用世界服的方式,将相同功能模块划分到不同的服务器来处理。

通信模式:决定使用何种方式通讯。基于游戏类型不同采用不同的通信模式,比如http,tcp,udp等。

 

2.服务器演化进程

(1)卡牌等休闲游戏弱交互游戏

服务器基于游戏类型不同,所采用的架构也有所不同,我们先讲一下简单的模型,采用http通信模式架构的服务器:

 

 

这种服务器架构和我们常用的web服务器架构差不多,也是采用nginx负载集群支持服务器的水平扩展,memcache做缓存。

唯一不同的地点不同的在于通信层需要对协议再加工和加密,一般每个公司都有自己的一套基于http的协议层框架,很少采用开源框架。

(2)长链接游戏服务器

长链接游戏和弱联网游戏不同的地方在于,长连接中,玩家是有状态的,服务器可以时时和client交互,数据的传送,不像弱联网一般每次都需要重新创建一个连接,消息传送的频率以及速度上都快于弱联网游戏。

 

转载于:https://www.cnblogs.com/qilin20/p/10749812.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
王者荣耀是一款非常受欢迎的游戏,如果你想用Python编写一个简单的王者荣耀游戏,可以参考以下步骤: 1. 首先,你需要使用socket创建一个服务器和客户端的连接。这样可以实现多进程的功能,使得多个玩家可以同时进行游戏。\[2\] 2. 在服务器端,你需要实现主体部分的搭建,包括收发信息部分和具体的步骤实现函数。这些函数可以用来处理玩家的选择和游戏的进行。\[2\] 3. 在客户端,你需要实现与服务器的通信,并根据服务器发送的数据进行相应的操作。比如,可以实现模式选择功能,让玩家选择真人对战或人机对战。\[3\] 4. 在真人对战模式下,你可以让玩家进行英雄选择,并进行对战。这部分的实现可以在服务器端和客户端分别完成。\[3\] 5. 最后,你可以展示游戏的结果,比如显示胜利或失败的信息。这部分的实现也可以在服务器端和客户端分别完成。\[2\] 通过以上步骤,你可以编写一个简单的王者荣耀游戏。希望对你有帮助! #### 引用[.reference_title] - *1* [20行Python代码爬取王者荣耀全英雄皮肤](https://blog.csdn.net/qq_42453117/article/details/103190981)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python写王者荣耀游戏](https://blog.csdn.net/jiangSummer/article/details/113745610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值