游戏中玩家投入的资源主要是两种,时间和金钱。越先开始游戏的玩家,在时间这个资源上面积累得也就越多,对于后来的玩家是不利的,而且这种不利会一直增加,最终导致新的“有追求”的玩家不愿意再进入。这个问题可以通过不断更新游戏,在不提高消费的同时拔高数值来降低新玩家的门槛,但是又需要综合考虑对新手的吸引力和老玩家的感受。
从技术角度出发,对于分服,在角色数不超过一个机房的承载力的前提下(保守估计1亿个角色吧),是不需要数据分服的,也就是说角色可以去不同的服务器,见到不同的人。逻辑分服的话跟负载上限有关,和地图切换合并起来说。
对于地图不切换(比如像老滚那样)的网游,一般称为无缝服务器(seamlessserver),对于这种需求的建议是:不要提这种需求。因为实现起来难度太大,目前没有成熟的实现。对于目前成熟的体系,无法实现这个需求的原因,跟地图无关,跟地图上面的人数有关。比如你可以做个游戏,把整个地球做进去,北京发个导弹可以打到纽约,这个没问题,但是这个地球上面的人数是会有个上限的(按照魔兽世界5,6年前的例子,大概是~人,现在应该可以承担更多的人了)。但如果地图是切换的,比如从上海到北京地图需要切换,可以承担的用户就翻倍了(卡利姆多,东部王国)这个跟云一点关系都没有,实际上是一个进程可以承担的人数上限。实际上如果跑到云上面,可以承担的人数更少。
1、关于云,你要是用过云主机的话,你就知道了云只是个美好的概念,远没想象中那么好。原来用过一个三流云厂商的提供的主机(为了省钱),开机时间长后时钟会不准,每次维护的时候要同步时间,你能想象每次活动告诉玩家10:00开,结果10:05才开么。偶会也会当机(说好的云呢)。感觉就是一个物理机上装了多个虚拟机。
2、关于分服,楼上说的不断开新服吸引玩家是一方面,在页游和手游上体现尤为明显,新开的服务器会有很多人充钱充级别,不停的开服合服,刷用户。还有会给特定渠道开单独的服。这都是次要原因,其实主要是因为服务器压力问题,这个会在下面地图上说。
3、QQ和Facebook为什么不分服,你要是了解的话,你就会知道QQ和facebook的服务器多的连他们自己的大部分员工都不知道有多少台,他们的服务器比现在任何一个游戏的服务器都多的不是一星半点,你在facebook登录,你眼睛看到的只是一个入口,实际上要远比你想象的复杂,系统会根据一系列算法,将你的请求放到其中一个数据中心上进行处理。
对于WEB应用(facebook,QQ客户端暂且不谈)来说,跟游戏服务器也是有差别的,例如刚才说的登录请求,简单来说只是去服务器上验证一下用户名密码然后返回个结果就结束了。生命周期为发起请求到返回结果。而对于游戏服务器来说,游戏世界开启后,就算没有玩家登录,很多东西就要不停的计算(例如怪物AI)。当有玩家登录时,玩家会一直存在于服务器内存中,就算你不做任何做操。生命周期为上线开始到下线为止(一般情况)。
而你所看到的服务器(游戏),只是你看到的一个列表而已(一区、二区、三区这样的),这个对应的不一定是一台真正的物理服务器(物理服务器类似一台看得见摸得着的电脑),一个游戏的分区,可能会对应一个网关服务器,多个游戏逻辑服务器,多个数据库服务器。
4、关于地图,很多端游已经实现了无缝衔接,但是也不会有特别特别特别大的地图。而对于手游来说,小地图更适合手游玩家操作(谁也不想在手机上跑图玩)。分图原因很多,只谈服务器压力来说,一般游戏服务器,可以按照地图来进行分割。即对于负载大的地图A(可能会发生大规模战斗的或者主城),可以放到物理服务器A上。负载大的地图
B,放到物理服务器B上,其他方到物理服务器C上。按照地图来划分不同的物理机好处在于,一般不会出现跨地图操作的事。例如RPG、ARPG玩家A跟玩家B发生PK,一般不会设计成能跨地图PK,都在同一个服务器上,计算攻击伤害等会比较方便。如果不在一个服务器上,那还要跨物理机传输一些数据,对于很多计算来说相对会麻烦很多。
5、停服维护,游戏服务器来说有些内容是可以做成不停服维护的,这些内容在于一些基础的数据配置,例如道具的配置,任务的配置等。也看情况,前面说了当玩家登录时玩家会一直存在有服务器的内存中,包括玩家的一些相应的数据,如果更新的内容可能会对玩家内存中的数据造成破坏,那这样不重启更新,就会导致很多玩家出错(回档是好事,有时候连号都上不去才是悲剧)。对于QQ和facebook不停服维护,只能说他们做的很好,不一定是不停服,只是让你觉得没停服而已,例如对于WEB系统维护,可以将全部的用户请求放到物理机A上,维护物理机
B,当B维护好后,请求转到物理机B上,再去维护物理机A(猜测,只是一种解决方案,不要较真)。对于游戏服务器,很多内容是放到内存里了,所以想做成WEB那种先切到
A,在转到
B,要涉及内存数据的转换……目前还没有这种解决方案,起码我是不知道。