|
游戏服务器里面装载着所有用户登录、等级、装备等数据信息,与普通的服务器相比需要保存更多的状态、且每个用户都是独立存在的,所以与普通的服务器租用需求有一定的区别:
游戏服务器里面装载着所有用户登录、等级、装备等数据信息,与普通的服务器相比需要保存更多的状态、且每个用户都是独立存在的,所以与普通的服务器租用需求有一定的区别:
一、游戏服务器与普通服务器相比较来说,游戏服务器能保存更多的用户的状态.用户的等级等属性必用说,一般的IM服务也会有,还有一些马上就会变化的数据,比如某个玩家的生命值,发技能前后的法力值等等,这些值区别于一般的属性值如名字,ID这些的差异在于,会经常性的变化,还会参与到逻辑的计算中, 比如你一个多少等级的玩家吃了什么东西之后战力值变化为多少,打在一个多少属性的玩家身上会不会被他闪避,会不会产生暴击...诸如此类的信息,在游戏服务器中皆会一一保存.
二、游戏服务器中每一个用户都是独立存在的,每一个用户的数据、请求等都是独立的,用户彼此间的数据并没有任何交互.这也是游戏服务器与普通服务器之间最大的区别.至于客户端之间会有交互这一点,举最简单的例子,一个人在一个场景里面说了一句话,那么同一个屏幕的玩家也需要能够看到他说的这句话.此时游戏服务器就需要判断,多远的距离以内的玩家,会认定为是"同屏幕"的玩家,需要向这些玩家广播这个玩家说的这句话.
三、这个广播就比较麻烦了.首先,计算哪些玩家在"同屏幕",就是我们在第一点提到的玩家身上某些经常变化的属性需要做的运算,在这里需要根据玩家的坐标,找出来跟在同屏幕的玩家,用到的是AOI的概念.另外,找到了这些需要接收这个消息的玩家之后,将消息转发给它们又是一个IO密集的操作,假如场景中有10个人,那么一句话就需要同时广播给另外9个人,假如有100人,1000人呢,量就更大了.所以同样的一个硬件配置的服务器,可能跑Nginx可以同时处理上万的链接,但是对于一个游戏服务器就只有1,2千了,就是因为游戏服务器是一个CPU密集而且IO密集的服务器类型.
更多资讯请联系扣扣3007453862 |
|