首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网游服务器架构设计需要考虑的一些关键因素

网游服务器架构设计需要考虑的一些关键因素

作者头像
李海彬
发布2018-03-23 16:40:49
1.1K0
发布2018-03-23 16:40:49
举报
文章被收录于专栏:Golang语言社区Golang语言社区

网络游戏出现至今,角色扮演游戏(MMORPG)一直是个主流游戏类型。主要原因还是因为拥有丰富的交互体验,特别是玩家之间的互动、角色扮演的特性在MMORPG这种游戏类型中最能得到丰富的表现。相对于Casual Game网游来说,MMORPG本身的游戏设计方面的特性就决定了MMORPG 服务器的设计和实现的难度会更大、对服务器系统的要求更高。这个难度又主要体现在服务器架构设计方面。

那么如何设计架构、如何评价架构设计、以什么为标准来决定设计,就是一个问题,接下来说说我对评价标准的看法。

服务器组架构(Server Cluster Architecture)的主要评价标准包括:

  • Stability,稳定性

稳定提供游戏服务,是服务器系统确保用户体验的最基本要求。稳定性主要与应用服务器的软件质量相关。稳定性处于第一位的原因是稳定性是用户体验的基石,稳定性不过关的话,其他一切都无从谈起。

  • Efficiency,效率

服务器组的运行时效率主要体现在服务器系统的承载能力上。对于同类型的游戏来说,同样一组服务器硬件运行A游戏可以承载5000人,但是运行B游戏只能运行2000人,这就是效率差异。

  • Scalability,可缩放性

可缩放性在一定程度上可以理解为:增加服务器硬件是否可以相应的提高系统的负载能力或者是否能提高用户体验。承载能力和用户体验都是系统表现的一部分。但是不管对于什么样的系统,系统硬件数量/能力和系统实际运行表现基本上都不可能是线型关系。就是说Scalability总是只能在一定范围内做评价,例如:某系统可以在0-100k在线玩家的情况下提供流畅的游戏。

从游戏开发及运营的角度来考虑,主要评价标准还要包括:

  • Productivity,生产力、开发效率

服务器的架构设计不止要考虑系统运行时的效率,开发时的工作效率也要考虑。例如:不同的系统服务(Service)或应用服务器(Application Server)之间是否会过度耦合(Over Coupling)?如果这种情况出现,也常常会导致开发人员工作的耦合,在日常的开发中,工作效率就难以保证。想象一下要Debug某个模块时候需要手动的在不同的远程服务器上更新开启3、5个不同的服务器程序。这种小任务重复做一年、二年累积起来就是很大的资源浪费,包括人力和硬件,甚至团队士气。

  • TCO,总体拥有成本

尽量使用最便宜、最少量的硬件、最小的带宽、最少的维护人员,尽量达到最好的运行时表现;这直接影响游戏的运营收入、利润率,间接影响游戏的成败、公司的成败;

  • Simplicity,简单

简单性要体现在服务器组(Server Cluster)的部署、和维护方面。如果一个游戏服务器组有20台硬件,那么备份数据、更新、重启这种简单的事情都会不再简单。一般游戏服务商每周都只做两小时停机维护,20组服务器的话,一次需要多少人做这个维护工作?40组呢?

  • Extendibility/可扩展性

实 际上考虑到网络游戏服务的持续性,可扩展性也很重要,再丰富的游戏内容也无法持续吸引玩家几年,一般的做法就是周期性的持续提供游戏更新。在网游服务器架 构设计上考虑内容上的可扩充性,也是有必要的,通过技术细节的改进总可以得到或多或少的改进,但是在架构设计阶段就考虑到可扩展性才是聪明的做法。

作者:JerryWang

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档