游戏服务器是什么怎么租用
我是艾西,作为一个常年与游戏行业保持着高频率的服务器供应商,今天我以个人的专业知识以及经验和大家聊聊游戏服务器什么,它的工作原理是怎么与你的pc做交互的!!!
游戏服务器架构通识
前言
我们将从游戏服务器发展的简单历程出发,大概了解一下目前大多数的游戏服务器架构。
这里尽可能的避免谈论细节的技术问题,而是从技术更新的状态,反推原始问题是什么。希望能通过这个过程,解释清楚游戏服务器是在解决什么问题,痛点到底在哪里。
一、早期网游服务器
蛮荒时期的游戏服务器框架我们一笔带过,那时的游戏服务器和一个小Web服务没有区别。
蛮荒时代的服务器只负责存储玩家账号、数据、转发场景内其他玩家的行为。很多移动、使用技能等关键逻辑在服务器上根本没有。随意就能用变速齿轮改变游戏速度。
从传奇的时代开始,游戏服务器就不再是简单的上传存档、下载存档、访问页面而已。游戏服务器内部出现了游戏逻辑,既能用于同步每个玩家看到的世界,又能让逻辑与客户端分离,避免早期的网络游戏那种毫无防范的逻辑体系(对辅助插件防御能力为0)。
这种架构奇怪的地方是处理网络连接数据传输的压力和逻辑处理的压力在同一个服务器上(存储模块可能也在同一个进程),就算逻辑处理压力为0,承载人数也高不到哪去。
二、早期游戏服务器的改进版本
当开发者们有了初步经验以后,新作品的开发,自然而然的过渡到了如下的形式:
游戏逻辑服务依然是在一台服务器上,单进程(逻辑处理本身肯定是在一个线程中,可以有子线程负责内网通信)。但是我们自然的想到,存储负载和网络连接负载可以从逻辑服上拆分出来。
由于连接服务器本身没有时序性,很容易做分布式的(其实大部分游戏还是只用一个连接服),存储服务不要求高实时性,高峰期存盘间隔可以稍长一些,不会对游戏服造成影响。
三、成熟形态的服务器框架
逻辑服务器的负载均摊方法一:按照功能划分多个服务器进程
逻辑服务器的负载均摊方法二:按照场景划分多个服务器进程
难点在逻辑的设计上,要像做手术一样把本来是一体的功能切开,并抽象出若干个API来保持联系(服务器之间是TCP连接)。
在分解时,要找联系相对最薄弱的环节入手,比如场景和场景之间分开、单独抽出聊天服务、组队服务、好友服务。
无论如何分解,最终结果只能是有限个服务。而且分解的越细,开发难度就越大。因为跨服务器逻辑是把简单的同步逻辑变成了异步Callback逻辑,而且容易出现时序问题等不易测试的问题。
这种成熟形态的游戏服务器已经能满足现实中99%的频繁交互类网游需求,是大型MMO端游、页游的主流形式。
对比Web服务器
大致只说一点:由于数据库的存在以及HTTP请求的特性,Web服务器天生就是并发的,也一直在高并发的路上越走越远。
例:开房间式的网络游戏
开房间式的网络游戏也是游戏的一个重要分支,英雄联盟、DOTA、很多手游例如皇室战争、王者荣耀等等。
这种游戏房间之间几乎没有交互,只有大厅内有交互,可以理解为原始形态的游戏服务器的平行扩展。
房间式游戏扩展难度较小,只是需要根据玩家数量动态扩展游戏房间的数量、服务器数量。很像网站的架构。
这种游戏架构最最适合放在云平台上,设计合理的话,它可能遇到的问题和大型网站几乎一模一样。
小结:游戏服务器框架特点
单CPU性能比CPU数量重要的多。
目前有很多游戏,特别是手游,使用Redis读写代替内存读写,甚至也有用Mongo的。
游戏开发未来的趋势是多元化、低门槛化、大众化。
从游戏玩家之间的交互形态出发
单机游戏:一个人在机器上玩。
联网游戏:同时玩的范围比较小,比如8-10个人。
网络游戏:在远端有许多机器跑一个很大的系统,可以有几千几万几十万甚至更多的玩家连进来一起玩。
游戏服务是互联网服务的一种
常见的其他互联网服务有:搜索、电商、即时通讯、邮件、视频等
游戏服务的基本职能有哪些?
网络连接和数据收发:TCP收包打包分包。
数据存取
逻辑计算
状态保持:上下文、内部驱动等等。
游戏服务器:严格说是一个硬件概念
常见种类:机架式服务器,刀片机,小型机。
会根据游戏类型或运行程序的不同,在CPU/内存/硬盘上有所侧重。
游戏服务器开发
从游戏交互形态,看游戏开发分工
游戏交互形态 开发者分工
单机游戏 图形程序员+游戏逻辑程序员
联网游戏 游戏程序员+网络程序员
网络游戏 游戏前台开发+游戏后台开发
游戏服务器:承载游戏服务的硬件、提供游戏服务的软件、开发游戏服务的程序员。
目前我司解决并稳定运行海量十万~百万~千万级同时在线,最高达亿级注册量;
稳定
高质量这也是游戏服务器的核心点所在
游戏服务与其互联网服务区别:
延迟敏感实时交互游戏一般需要网络延迟在300ms以内才能保证游戏体验
实时的高强度交互单个终端高频发送请求;单次请求引发多处数据改变
业务逻辑复杂,内部耦合度高延迟敏感+高强度交互同时作用下,状态维护往往成为必需;复杂游戏服务的实现代码,可达百万行量级
变更频度高,幅度大:变更幅度,包含内容和逻辑。
性能来自于算法选择与算法优化:排序、查找、空间-时间。
操作系统/应用程序运行机制:IO多路复用;局部性原理;编程语言。
硬件:CPU的充分利用_多线程/多进程;存储层级的理解和利用;多队列网卡。
持续运行,意味着:稳定最重要;容错;日志和监控。
作为游戏玩家,希望在玩多人游戏时尽可能地控制和自定义自己的游戏环境。拥有专用的游戏服务器可以让您实现这一目标。作为开发人员,拥有可为您提供有关玩家的重要数据和信息的远程游戏服务器无疑是一个优势。
游戏服务器如何工作的一种简单方法是将其视为你作为玩家在通过第三方游戏平台进行游戏时与之交互的服务器。这个数据请求游戏服务器做交互允许玩家无缝衔接玩游戏并且还可以访问他们的结果。你使用的游戏服务器配置将对你的游戏体验产生巨大影响。因此,选择正确的服务器很重要。
借助服务器,一次集成设定好即可让你访问功能库。也可以在手机、平板设备或台式机上玩。
服务器配置、大流量承载、基础设施、高防护安全级别、7*24运维
专用游戏服务器和远程游戏服务器有什么区别?
专用游戏服务器和远程游戏服务器都提供了出色的性能,但远程服务器提供了更多的功能和灵活性。单个服务器软件更新支持不同的服务器。游戏服务器致力于网络中的所有游戏玩家提供最佳体验。
专用服务器根据你的需要自定义程序,从而优化应用程序以改善玩家的游戏体验。游戏服务器配置更高性能更强以处理更多流量,因此此类服务器非常适合使用量激增的游戏。
我是艾西,今天的分享就到这里啦希望我的经验以及专业能为你带来帮助