搬瓦工VPS
拥有10+机房且可自主切换机房

游戏服务器和普通云服务器/VPS有什么不同 游戏服务器选择建议

相比于我们常见的数据中心的普通Web服务器,网络游戏服务器(如英雄联盟,魔兽世界)有什么特别的地方?Web服务器基本是无状态的。web服务器每个client都是独立的,游戏服务器不同client是有交互有状态,会实时地互相影响。这导致很多设计上的差异。

游戏服务器和普通云服务器/VPS有什么不同 游戏服务器选择建议

我个人租过的配置最高的服务器:16核CPU+64G内存,外加50M独享电信宽带。这种配置在武装突袭的服务器中勉强算是个中低配,可以同时容纳七八十个玩家在线。这种机器要是用来搭建个人的网站那绝对算是豪华配置了。顶个日均万儿八千个UV就是毛毛雨。要我说有什么区别,那就是游戏服务器要求更高。尤其对带宽要求很高。

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

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

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

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

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

1、并发架构的影响

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

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

2、对代码风格的影响

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

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

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

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

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

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

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

赞(0)
未经允许不得转载:搬瓦工中文网 » 游戏服务器和普通云服务器/VPS有什么不同 游戏服务器选择建议