zoukankan      html  css  js  c++  java
  • 王者荣耀服务器架构

    本人呢,可以说是王者荣耀这款游戏的一个忠实爱好者吧 。看到这个演进的时候 ,很认真的阅读了一遍。

      当下来说,王者荣耀这个游戏非常的流行,主播事业也是渐渐盛起 ,从王者荣耀联想到电子游戏的架构演进,可以说也是一部非常大的工程 了。

      电子游戏的客户端主要注重手机上的资源分配,以及手机 CPU的占比请况,其中最重要的还是游戏的服务器端的设计 以及分配情况。游戏的服务器一般来说是一个一直运行的程序 ,除了游戏在进行更新的时候,服务器的程序可能 会停止运行一小段时间,而且游戏的服务器还是要服务于多个 不定时的,不定点的网络请求,有关于这类软件的特性非常关注与稳定性以及性能 ,无论大型还是小型的电子游戏,在进行服务器端的程序设计时 都需要进行考虑三个方面,分别是如何使用CPU、手机以及电脑内部的内存,网卡的设计。

    对于服务器端的系统设计来说还需要考虑储存玩家的数据,以及游戏的相关数据。当一些游戏做的比较大的时候,服务器端还需要考虑是否使用外挂,当游戏玩家在不同的设备进行登陆时,还需要对玩家的游戏数据进行广播以及同步。可以说,一款游戏的服务器考虑的东西也是非常多的。

     

    游戏服务器的演变过程可以从休闲类的、对于交互性比较弱的卡牌类游戏开始说。

     

    服务器采取http的通信结构,就相当于现在的web界面的访问。在往后发展由于人们的对于游戏的需求越来越大,逐渐的出现了长链接游戏,相关的服务器也是开发出来。长链接相对于短链接来说具有更高的传送速度以及效率。而且在长链接中,玩家是具有状态的,于是出现了类似的养成累的游戏。服务器可以实时和客户端进行链接以及交互。

    再往后发展,出现了一款的拥有网游服务器的游戏,是由英国的一名 学生进行开发的一款文字游戏,采用的是单线程无阻赛,使得各个计算机 的用户可以玩家可以一起在计算机的世界湾里进行 探索。也可以完成实时多人交互的网络游戏。这个文字游戏MUDOS使用单线程无阻赛套接服务所有的玩家,并且每隔一秒进行更新所有的对象。直到现在一些小型的游戏依然是采用的这种服务器的设计。

    进入二十世纪之后,随着图像处理以及更多地用户交互。游戏在线的人数也是越来越多,单个服务器已经是不能满足实时更新的要求了。于是出现了分区分服。简单的来讲,就是一个游戏被分成了几个平行的世界,每个世界和每个世界的玩家在那时还是不能现在一样 跨服。在服务器达到上限时候,开发者通过架设更多地服务器完成应对人数增加的问题。

    由于单线程的限制,再往后发展,逐渐出现了多线程处理以及异步多线程。再往后,将游戏内的不同功能划分成不同的服务器,例如大厅服务器行走服务器,大致可以分为三类场景和非场景以及网管服务器。

    当出现了DOTA类似的大型地图类游戏,地图以及地图之间的无缝连接成了要解决的一个问题,为了解决这个问题,比较以往按照地图来切割游戏而言,无缝世界并不存在一块地图上面的人有且只由一台服务器处理了,此时需要一组服务器来处理,每台 Node服务器用来管理一块地图区域,由 NodeMaster(NM)来为他们提供总体管理。更高层次的 World则提供大陆级别的管理服务。

  • 相关阅读:
    B
    Labyrinth 树的直径加DFS
    Speech to Text for iOS
    苹果开发者:Siri未开放API 有些让人失望
    ios6.0 siri语音识别
    Sample example for Speech to Text in iOS
    iOS升级经验分享
    苹果放宽了 iOS 5.0 对应用本地存储的限制
    iOS5可能会删除本地文件储存
    iOS 5 does not allow to store downloaded data in Documents directory? ios5.0及以后的版本对于下载的文件存储路径有了改变
  • 原文地址:https://www.cnblogs.com/zhangliqiangvictory/p/11029089.html
Copyright © 2011-2022 走看看