普通游戏开发者如何更新游戏和服务器?(原理)
所谓服务器结构,即如何合理安排服务器的各个部分,以达到最初的功能需求。因此,结构没有对错之分;当然,优秀的结构更有助于系统的构建,也更有助于系统的扩展性和可维护性。
一个好的结构不可能一蹴而就,每个设计师心中的尺子都不一样,所以这个优秀结构的定义是没有定论的。在这里,我们不打算评价现有的游戏结构,而是试图从零开始建立一个我们需要的MMOG结构。
对于一个最简单的游戏服务器来说,它只需要能够接受客户端的连接请求,然后处理客户端在游戏世界中的移动和交互,也就是游戏逻辑处理。如果我们将这两个功能集成到一个服务流程中,最终的结构很简单:
客户端-服务器
嗯,太简单了。你怎么敢称之为服务器结构?好,现在让我们给它添加一些东西,使它看起来更像一个服务器结构。
一般来说,我们在访问游戏服务器时会提供一个账号和密码,验证后才能进入。我们不打算讨论为什么需要提供用户名和密码才能进入这里的问题。冯云曾经对此提出过类似的问题,并给出了我们可以只用一个识别字符串进入的想法。有兴趣的可以去看看他们的讨论。但是不管我们通过哪种方式进入,根据目前的情况,我们的服务器至少要提供一个账号验证功能。
我们先把观察点集中在一个大的区域。大多数情况下,一个大区域内会有多套游戏服,也就是多个游戏世界可供选择。简单的认识一下,我们完全可以抛弃这个大区域的概念,认为大区域就是同一个机房的一组服务器,服务器组之间没有任何关系。这样,我们可以为每组服务器分别配备一套登录套装。最终的结构图应该是这样的:
登录服务器游戏服务器
| /
| /
客户
玩家在这种结构下的操作流程是:首先选择一个大区域,然后在大区域下选择一个服务器,也就是一个游戏世界,点击进入,开始账号验证过程。如果验证成功,你将进入游戏世界。但如果玩家想切换游戏世界,只能先退出当前游戏世界,然后进入新的游戏世界再次验证账号。