所谓服务器结构,也就是如何将服务器各部分合理地安排,以实现最初的功能需求。所以,结构本无所谓正确与错误;当然,优秀的结构更有助于系统的搭建,对系统的可扩展性及可维护性也有更大的帮助。
好的结构不是一蹴而就的,而且每个设计者心中的那把尺都不相同,所以这个优秀结构的定义也就没有定论。在这里,我们不打算对现有游戏结构做评价,而是试着从头开始搭建一个我们需要的MMOG结构。
对于一个最简单的游戏服务器来说,它只需要能够接受来自客户端的连接请求,然后处理客户端在游戏世界中的移动及交互,也即游戏逻辑处理即可。如果我们把这两项功能集成到一个服务进程中,则最终的结构很简单:
client ----- server
嗯,太简单了点,这样也敢叫服务器结构?好吧,现在我们来往里面稍稍加点东西,让它看起来更像是服务器结构一些。
一般来说,我们在接入游戏服务器的时候都会要提供一个帐号和密码,验证通过后才能进入。关于为什么要提供用户名和密码才能进入的问题我们这里不打算做过 多讨论,云风曾对此也提出过类似的疑问,并给出了只用一个标识串就能进入的设想,有兴趣的可以去看看他们的讨论。但不管是采用何种方式进入,照目前看来我 们的服务器起码得提供一个帐号验证的功能。
我们把观察点先集中在一个大区内。在大多数情况下,一个大区内都会有多组游戏服,也就是多个 游戏世界可供选择。简单点来实现,我们完全可以抛弃这个大区的概念,认为一个大区也就是放在同一个机房的多台服务器组,各服务器组间没有什么关系。这样, 我们可为每组服务器单独配备一台登录服。最后的结构图应该像这样:
loginServer gameServer
| /
|/
client
该结构下的玩家操作流程为,先选择大区,再选择大区下的某台服务器,即某个游戏世界,点击进入后开始帐号验证过程,验证成功则进入了该游戏世界。但是,如果玩家想要切换游戏世界,他只能先退出当前游戏世界,然后进入新的游戏世界重新进行帐号验证。
无需安装客户端,但游戏在服务器端运行,称之为云游戏。
云游戏(Cloudgaming)又可称为游戏点播(gamingondemand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thinclient)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端;
而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
在说的通俗点,当一个玩家电脑不能运行一个游戏的时候,可以用云端运行。例如说,通过手机可以玩电脑平台上的游戏。
/iknow-pic.cdn.bcebos.com/8c1001e93901213fa53729375ae736d12e2e95d0"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/8c1001e93901213fa53729375ae736d12e2e95d0?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/8c1001e93901213fa53729375ae736d12e2e95d0"/>
扩展资料:
云游戏几乎有着相同的框架。云游戏通常的流程就是,首先用户连接到传送服务器并选择游戏。选择完之后,传送服务器就会把游戏信息发送给游戏服务器,在这里,玩家可以加载选择的游戏。然后,用户可以得到服务器的 URL,然后通过它连接到服务器来玩游戏。当用户和服务器互动时会有大量的数据传输。右图显示了游戏服务器和用户之间的交互结构。
在这两者之间有两类流,控制流负责发送控制信号,当用户使用输入设备如键盘、鼠标、摇杆时,信号会被编码到发送列表中,通过网络被游戏服务器接收,接收后,信号将被解码到游戏控制系统。之后,数据流被启用,将新的音频/视频数据编码传输给用户,用户再反解码并将它们呈现在屏幕上。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)