无缝世界网游服务器架构设计思路(下)

本文分析了无缝世界网游服务器架构的两种设计思路:基于服务(Services-based)和基于细胞(Cells-based)的架构。Services-based架构与策划需求紧密相关,但服务间的耦合可能导致复杂性和需求变更的困难。Cells-based架构则提供更高的灵活性,与策划设计无关,但面临跨边界对象交互的挑战,尤其是无缝世界的实现。文章探讨了两种架构的优缺点,并强调了设计时需考虑的程序之外的因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无缝世界网游服务器架构设计思路(下)
上次写了《无缝世界网游服务器架构的设计思路》,这次是续篇,主要内容是两种架构的优缺点分析。
从一组服务器的角度来看,一般来说,我们的服务器组(Cluster)内都会有登陆验证服务器(Login Server)、持久性数据服务器(DB及DB Proxy)、连接代理服务器(Gate Server、FEP Server、Client Proxy等)以及Auto Patch Server、还有用于集中管理及控制组的服务器等等,由于这些服务器基本上什么样的架构设计都会用到,所以——现在不考虑以上这些服务器,只考虑具体处理游戏逻辑、游戏规则的各个服务器。以此为前提来分析一下 Services-based Architecture 和 Cells-based Architecture 的优缺点。

对Services-based Architecture的分析
基于服务的架构,顾名思义这种架构的实现(程序)会是和服务的具体内容(策划)相关的,这是因为——各种【服务】内容的确定是建立于项目的【需求分析】基础上的,【需求分析】的前提是基本确定了【策划设计】,至少是项目的概要设计。
我想多数做过游戏项目的人都应该对需求变更有很深的感触,每个人都说“开始想做的那个和最后实际做出来的那个不一样”。特别是在项目的早期阶段,团队的不同成员对项目做完之后的样子有相当不同的看法(很可能大家互相都不知道对方怎么看的),这很容易理解,谁也不可能从几页纸几张图就确切地知道这个游戏做完了什么样子,即使不考虑需求变更。涉及到项目开发方法方面的东西这里就不多说了,总之我的看法就是——尽管我们不大可能设计出一个架构能够适应任何的游戏设计,但是不同开发任务间的耦合度显然还是越低越好,基于服务的架构适应需求变更的能力较差。
关于服务耦合不管如何划分service,不同 service之间都一定存在不同程度的耦合(coupling)关系,不同的 service 之间会有相互依赖关系。而你们的策划设计可能会让这种关系复杂到程序在运行时的状态很难以琢磨的程度。
假设:
1.服务器组内的战斗处理和物品处理分别由两个不同的服务(器)提供
游戏规则:
1.人物被攻击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值