游戏服务器与普通web服务器有什么区别?

softyun3年前主机评测34

游戏服务器与普通服务器有什么区别?

相比于我们常见的数据中心的普通Web服务器,网络游戏服务器(如英雄联盟,魔兽世界)有什么特别的地方?Web服务器基本是无状态的. 游戏服务器是强状态的, 耦合自己不说, 还要耦合别人, 别的大区…

游戏服务器(网络游戏服务器)和web服务器的最大区别是:

web服务器每个client都是独立的,游戏服务器不同client是有交互有状态,会实时地互相影响。这导致很多设计上的差异。

我个人租过的配置最高的服务器:16核CPU+64G内存,外加50M独享电信宽带。

这种配置在武装突袭的服务器中勉强算是个中低配,可以同时容纳七八十个玩家在线。这种机器要是用来搭建个人的网站那绝对算是豪华配置了。顶个日均万儿八千个UV就是毛毛雨。要我说有什么区别,那就是游戏服务器要求更高。尤其对带宽要求很高。

普通服务器,都是客户与系统之间的数据交换与逻辑,不会涉及玩家与玩家之间的状态,买家A只需要和电商平台系统来进行数据操作就可以了,无需要管买家B的状态。

网络游戏服务器就不一样了,它不是单纯的玩家与系统之间的数据处理,还有玩家与玩家之间的,比如玩家A打死了一只怪,我要告诉玩家B(能看见玩家A的人)。

游戏服务器和应用服务器很大的不一样在于处理问题完全不是同一个。游戏服务器就是长连接,多玩家之间数据如何交换,同步,推动游戏逻辑进度等。应用服务器走http 短连接,处理完业务就关闭释放,下次再处理的时候再连接请求,所以技术架构,开发方式都完全不一样。

提升并发量负载量的方式也不一样, 对于普通的服务器,提升并发,加多机器,反向代理等,相对来说部署更容易一些。而游戏服务器扩容,增加负载,考虑的就多些,比如两个玩家有可能在一个服务器上游戏,两个玩家有可能组队等。

游戏服务器与普通服务器除了基础知识相同以外,处理思想和处理的问题是完全不一样的:

在高并发下,对client请求进行负载均衡并不如web那么简单,因为client状态会互相影响,并且可能共享写数据甚至有时序依赖。大型mmorpg通常是长连接,并发服务数通常要远小于web服务器 。根源就是实时性和强交互性的限制,两者要求越低的游戏,并发就可以做得越高。

web服务运算较少,io密集,读多写少。游戏服计算和io都密集,读写都频繁

比如开发web服务,基于nginx的openresty就很好用,利用了Lua的协程和异步io,写起来很流畅而不失性能。但用来做游戏服务器,协程却可能是个坑,因为游戏依赖很多上下文环境,当协程被唤醒时,上下文环境改变,协程的代码风格很容易用了旧变量导致逻辑错误。

游戏服务器:CPU密集(Redis:内存状态值读写),网络IO密集(广播).

网站服务器:状态比较少(Redis:会话信息),数据库IO密集.

做过游戏服务器的开发,也做过一般的互联网服务器的开发,在我看来两者的区别主要有两点:

1)游戏服务器比一般的服务器要保存更多的状态:

玩家的属性这些自不必说,一般的IM服务也会有,还有一些马上就会变化的数据,比如某个玩家的生命值,发技能前后的法力值等等,这些值区别于一般的属性值如名字,ID这些的差异在于,会经常性的变化,还会参与到逻辑的计算中,比如你一个多少等级的玩家吃了什么东西之后战力值变化为多少,打在一个多少属性的玩家身上会不会被他闪避,会不会产生暴击….

游戏逻辑中的战斗技能计算是很大的一个点,我不太熟悉这块就不展开多说了.可以看到,游戏逻辑的CPU计算是非常多的.

2)游戏服务中,每个玩家不是独立存在的

,而是很有可能会与其他玩家发生状态的交互,一般的服务器比如HTTP什么的,你一个请求过来查你的数据,和别人的请求是独立的,并没有什么交互.

客户端之间会有交互这一点,举最简单的例子,一个人在一个场景里面说了一句话,那么同一个屏幕的玩家也需要能够看到他说的这句话.此时游戏服务器就需要判断,多远的距离以内的玩家,会认定为是”同屏幕”的玩家,需要向这些玩家广播这个玩家说的这句话.

这个广播就比较麻烦了.首先,计算哪些玩家在”同屏幕”,就是我们在第一点提到的玩家身上某些经常变化的属性需要做的运算,在这里需要根据玩家的坐标,找出来跟在同屏幕的玩家,用到的是AOI的概念,感兴趣的可以看看云风的 BLOG: 开发笔记 (13) : AOI 服务的设计与实现 .另外,找到了这些需要接收这个消息的玩家之后,将消息转发给它们又是一个IO密集的操作,假如场景中有10个人,那么一句话就需要同时广播给另外9个人,假如有100人,1000人呢,量就更大了.所以同样的一个硬件配置的服务器,可能跑Nginx可以同时处理上万的链接,但是对于一个游戏服务器就只有1,2千了,就是因为游戏服务器是一个CPU密集而且IO密集的服务器类型.

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

游戏行业怎么选择服务器?游戏服务器选择哪家好?

游戏行业如何选择服务器?随着互联网游戏行业的发展,游戏作为网络游戏的比较重要的游戏之一,在日常生活当中,人们将游戏作为消遣娱乐的一部分,像斗地主、扑克、象棋等等,受到大多数人的喜欢。如今各类游戏迅速发...

游戏云服务器选哪家比较好?腾讯云还是阿里云?

游戏云服务器选哪家比较好?游戏行业的云服务器需求是比较特殊的,它的用户并行数的峰值、平均值以及潜在用户的地域分布是非恒定的,波动性比较大。在游戏新开服,或节日活动时,有难以准确预期的用户访问压力。传统...

游戏服务器为什么上云?游戏云服务器如何选择?

游戏服务器为什么上云?云计算的到来,万物上云已经成为趋势。伴随着移动网络的发展,用户对于游戏的品质需求逐渐提高,传统服务器已经不能满足用户需求。云服务器的游戏成为热潮,云服务器可以很好满足用户的所有需...

游戏高防云服务器哪家好?选择游戏高防服务器考虑的因素

游戏高防云服务器哪家好?游戏的正常运营靠的是高防服务器,高防云服务器是游戏的基础。只有选好的服务器,才承载大量的访客,增加游戏的排名,提升品牌形象等等。一旦网站打不开或者遭受网络攻击,游戏运行团队来说...

游戏服务器在哪里租?租一个游戏服务器需要多少钱?

游戏服务器在哪里租?租一个游戏服务器需要多少钱?游戏服务器大多IDC商都有做,而且一个游戏服务器也有分大平台游戏和小平台游戏,如果是一个小平台游戏的话,配置可以不用太高性能的需求,大部分IDC商的配置...

香港云服务器适合游戏行业吗?香港云服务器选择哪家?

香港云服务器适合游戏行业吗?互联网时代,香港云服务器的普及帮助更多的人进入了游戏时代。在游戏过程中,对香港云服务器租用的支持是必不可少的。香港游戏云服务器是游戏行业的核心部分。用于跨区域服务时,相应的...