而在专用服务器,游戏玩家无法直接在自己的电脑上运行服务器,而是由游戏制作商运行游戏服务器。专用服务器可以承载比主机服务器更多的同时在线人数,少至数十名多至数百万名可以同时进行游戏。游戏制作商保留专用服务器,因此无论是在技术上还是在法律上,游戏玩家直接运行游戏服务器是不可能的。 主机游戏服务器只在Package游戏当中,而专用游戏服务器是在在线游戏当中。笔者在此会将专用游戏服务器统称为游戏服务器。 在Package游戏当中运行的游戏程序主要有输入,处理游戏Logic,呈现三种作用。输入是指用户利用鼠标或键盘将命令输入到电脑上的行为。处理游戏Logic是指模拟电脑当中发生的游戏空间环境的行为。呈现是指将游戏空间及游戏World呈现到画面和音响上的行为。
如在RPG游戏当中为移动我的魔法师角色在画面中点击鼠标右键的行为称为输入,此时移动魔法师角色被称为处理游戏Logic,展现魔法师优美背影则被称为呈现。 即只要有一台电脑便可以进行游戏是Package游戏的特点。你是想问为什么给别人游戏账号一样但服务器不同吗?
游戏公司对外发包的服务器不同步,所以账号一样,服务器会不同。
根据每个玩家的状态(比如位置、比如所处的位面),服务器吐给客户端的数据会有不同。首先,游戏服务器与普通服务器相比较来说,游戏服务器需要能够保存更多的用户的状态。用户的等级等属性不用说,一般的IM服务也会有,还有一些时刻变化的数据,比如某个玩家的生命值,发技能前后的法力值等等,这些值区别于一般的属性值如名字,ID这些,这些数据会经常性的变化,还会参与到逻辑的计算中,比如你一个多少等级的玩家吃了什么东西之后战力值变化为多少,打在一个多少属性的玩家身上会不会被他闪避,会不会产生暴击…诸如此类的信息,在游戏服务器中都会一一保存。
其次,游戏服务器中每一个用户都是独立存在的,每一个用户的数据、请求等都是独立的,用户彼此间的数据并没有任何交互。这也是游戏服务器与普通服务器之间最大的区别。至于客户端之间会有交互这一点,举最简单的例子,一个人在一个场景里面说了一句话,那么“同一个屏幕”的玩家也需要能够看到他说的这句话。此时游戏服务器就需要判断,多远的距离以内的玩家,会认定为是"同屏幕"的玩家,需要向这些玩家广播这个玩家说的这句话。
这个广播就比较麻烦了。首先,需要计算哪些玩家属于"同屏幕",就是我们在第一点提到的玩家身上某些经常变化的属性需要做的运算,在这里需要根据玩家的坐标,找出来跟在同屏幕的玩家,用到的是AOI的概念。另外,找到了这些需要接收这个消息的玩家之后,将消息转发给它们又是一个IO密集的 *** 作,假如场景中有10个人,那么一句话就需要同时广播给另外9个人,假如有100人,1000人呢,数据量就更大了,而且时间的延迟也不能太长,这对于游戏服务器的性能就要求很高了。所以同样的一个硬件配置的服务器,可能跑Nginx可以同时处理上万的链接,但是对于一个游戏服务器就只有1,2千了,就是因为游戏服务器是一个CPU密集而且IO密集的服务器类型。而且不仅需要这样的游戏服务器不仅要求性能比较高,还需要服务器具有极高的稳定性,总不能隔一会就宕机了,那大家还怎么玩。
此外,游戏服务器需要更好的数据承载能力和处理能力。而普通服务器则在各个方面都比较均衡。在寻找游戏服务器租用商的时候,一定要选择那种CPU性能非常出色的。
最后一点,游戏行业一直以来是网络攻击的重灾区,很多游戏刚上线没多久就频繁遭到攻击,导致玩家大量流失口碑下降,最后可能导致直接关服。所以游戏服务器一定要带高防流量包。先用我自己的说法解释一下吧
服务器说白了就是主机 也就是把电脑共享到网络上
下面用一个详细的解释吧
什么是服务器?
服务器是一种高性能计算机,当然,一般家里计算机也可以用作服务器,但可能很容易就会死机。服务器实际上就是提供站点服务,站别的客户瑞的电脑来访问,比如我们在网上访问的所有网站都是服务器上动行的程序。
服务器的起源,最早在互联网的协议TCP/IP并没有客户机和服务器的概念,所有的设备都是通讯的平等的一端。在十年之前,所有的互联网上的系统都同时具有服务器和客户机的功能。当然,后来发展的那些架构在TCP/IP之上的软件的确采用了客户机/服务器的结构:浏览器和Web服务器,邮件客户端和邮件服务器。
但是,对于服务器来说,它们之间仍然是对等联网的。以email为例,互联网上并没有一个巨大的、唯一的邮件服务器来处理所有的email,而是对等联网的邮件服务器相互协作把email传送到相应的服务器上去。另外用户之间email则一直对等的联络渠道
如果想要更详细的请看参考资料。游戏中的区服诞生于网络游戏中,比如冒险岛、风之大陆、水之大陆每个区的角色数据都是不互通的,所以区用来分割玩家起到缓解服务器作用
探究的一般过程是从发现问题、提出问题开始的,发现问题后,根据自己已有的知识和生活经验对问题的答案作出假设.设计探究的方案,包括选择材料、设计方法步骤等.按照探究方案进行探究,得到结果,再分析所得的结果与假设是否相符,从而得出结论.并不是所有的问题都一次探究得到正确的结论.有时,由于探究的方法不够完善,也可能得出错误的结论.因此,在得出结论后,还需要对整个探究过程进行反思.探究实验的一般方法步骤:提出问题、做出假设、制定计划、实施计划、得出结论、表达和交流.
科学探究常用的方法有观察法、实验法、调查法和资料分析法等.
观察是科学探究的一种基本方法.科学观察可以直接用肉眼,也可以借助放大镜、显微镜等仪器,或利用照相机、录像机、摄像机等工具,有时还需要测量.科学的观察要有明确的目的;观察时要全面、细致、实事求是,并及时记录下来;要有计划、要耐心;要积极思考,及时记录;要交流看法、进行讨论.实验方案的设计要紧紧围绕提出的问题和假设来进行.在研究一种条件对研究对象的影响时,所进行的除了这种条件不同外,其它条件都相同的实验,叫做对照实验.一般步骤:发现并提出问题;收集与问题相关的信息;作出假设;设计实验方案;实施实验并记录;分析实验现象;得出结论.调查是科学探究的常用方法之一.调查时首先要明确调查目的和调查对象,制订合理的调查方案.调查过程中有时因为调查的范围很大,就要选取一部分调查对象作为样本.调查过程中要如实记录.对调查的结果要进行整理和分析,有时要用数学方法进行统计.收集和分析资料也是科学探究的常用方法之一.收集资料的途径有多种.去图书管查阅书刊报纸,拜访有关人士,上网收索.其中资料的形式包括文字、、数据以及音像资料等.对获得的资料要进行整理和分析,从中寻找答案和探究线索.web服务器每个client都是独立的,(hostspace)游戏服务器不同client是有交互有状态,会实时地互相影响。这导致很多设计上的差异。
并发架构的影响
在高并发下,对client请求进行负载均衡并不如web那么简单,因为client状态会互相影响,并且可能共享写数据甚至有时序依赖。大型mmorpg通常是长连接,并发服务数通常要远小于web服务器 。根源就是实时性和强交互性的限制,两者要求越低的游戏,并发就可以做得越高。
web服务运算较少,io密集,读多写少。游戏服计算和io都密集,读写都频繁
对代码风格的影响
比如开发web服务,基于nginx的openresty就很好用,利用了Lua的协程和异步io,写起来很流畅而不失性能。但用来做游戏服务器,协程却可能是个坑,因为游戏依赖很多上下文环境,当协程被唤醒时,上下文环境改变,协程的代码风格很容易用了旧变量导致逻辑错误。第一 服务大区 就是指在每个省份都建立有服务主机
第二 有了服务主机之后就是分小区,因为一个服务器不能容纳太多人,就需要更多的服务器来分担
总结:一个大区,里面分几个服务器每个服务器能容纳多少人!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)