zoukankan      html  css  js  c++  java
  • 《游戏服务器的架构演进(完整版)》阅读笔记

      因为个人偶尔也会玩一把缓解压力,舒缓心情的王者荣耀,并且有时候也会关注下他的端游版的“兄弟”——英雄联盟,其实主要还是因为电子竞技为国人长脸的那一刻才开始关注这些。见到此篇文章,我的兴趣十足,到底这款游戏,他的架构原理是什么呢?下面是我从原文中借鉴的他的技术点如下:

    1. 游戏服务器特征

    2. 短连接游戏服务器架构

    3. 长链接游戏服务器架构

    4. 分区分服服务器架构

    5. MMOARPG服务器架构

    6. 房间服务器架构

      现根据我所了解的进行分享,第一点游戏服务器特征,游戏服务器端,是一个会长期运行的程序,并且它还要服务于多个不定时,不定点的网络请求。所以这类软件的特点是要非常关注稳定性和性能。这类程序如果需要多个协作来提高承载能力,则还要关注部署和扩容的便利性;同时,还需要考虑如何实现某种程度容灾需求。由于多进程协同工作,也带来了开发的复杂度,这也是需要关注的问题。在服务器端,我们往往会关注对电脑内存和CPU的使用,以求在特定业务代码下,能尽量满足承载量和响应延迟的需求。最基本的做法就是“空间换时间”,用各种缓存的方式来以求得CPU和内存空间上的平衡。在CPU和内存之上,是另外一个约束因素:网卡。网络带宽直接限制了服务器的处理能力,所以游戏服务器架构也必定要考虑这个因素。

      第二点就是游戏服务器架构要素,对于游戏服务端架构,最重要的三个部分就是,如何使用CPU、内存、网卡的设计。而内存架构:主要决定服务器如何使用内存,以最大化利用服务器端内存来提高承载量,降低服务延迟。逻辑架构:设计如何使用进程、线程、协程这些对于CPU调度的方案。选择同步、异步等不同的编程模型,以提高服务器的稳定性和承载量。可以分区分服,也可以采用世界服的方式,将相同功能模块划分到不同的服务器来处理。

      最后是王者荣耀特征是在游戏开始前,服务器为每个玩家分配一个随机种子,然后同步给client,如此每个client在计算每个角色的技能时候,就能保证伤害是一致的。这也是多数帧同步游戏采用的方案。

      最后还想说一句就是大家还是要少玩游戏哦!少玩有益身心健康,沉迷网络游戏只会害人害己,多出去运动运动,尤其是我们计算机专业的,千万不能做一个“死肥宅”,那样不仅找不到对象,还会让你的身体一天不如一天的哦!

  • 相关阅读:
    三角函数图像平移后重合对称
    三角恒等式的证明
    三角函数给值求角
    三角方程的解法
    空间中线面位置关系的证明思路
    实时会议
    LATEX 公式总结
    三维重建的应用
    会议
    计算机图形学学习笔记
  • 原文地址:https://www.cnblogs.com/liurx/p/11052762.html
Copyright © 2011-2022 走看看