网络游戏服务器开发杂记---0


混乱之治

离开盛大游戏已经有几个月了,毕业后这10年,一直奋斗在网络游戏的一线开发,负责过的几个产品成绩好坏参半,有的被腾讯代理的,也有打包出售的,也有的走一些小渠道赚了一笔快钱。这些年,我一直从事的游戏服务器开发,不管是底层的网络库编写,还是顶层的业务逻辑,都参与过,略有一些心得。打算花一些时间来整理下,就当是对自己的游戏生涯做个总结吧。

本来是打算一篇小结,但想着想着,感觉内容越来越多,我又很冲动的想它写成一个系列,希望不要太监掉。

开篇第一章节,如何选择适合自己的服务器架构。首先明确自己做的是什么规模的游戏,比如按照运行的终端,我们可以分为端游,页游,手游,当然也有多端互通的,这里如果是同一家公司运营的同一款游戏,我们通常认为复杂度的关系是: 端游>页游>手游。比如梦幻西游的端游框架,通常会比手游更复杂,因为它的模块会更多更全,手游上会做适当的裁剪与阉割。从另一个维度来划分,也就是游戏的类型是什么,是MMORPG,还是ARPG,还是MOBA等,这里可能最复杂的就是MMORPG了,因为它包含的模块非常多,而且他还会有大地图,对服务器的性能考验会更加严格。由于本人涉及到的主要是MMORPG和ARPG,以及房间对战类,我会针对这两几类型的游戏做重点的讲解。

首先来看一下这些类型游戏之间的差别和侧重点。

  • MMORPG:多人同时在线,有能承载多人的大地图,C/S状态同步,服务器计算要求高,客户端能接受一定程度的延迟。
  • ARPG:主要玩法是游戏的打击感和节奏,伤害计算由客户端完成,无需状态同步,但需要随机的防作弊校验。
  • 房间对战类:低频互动,可以C/S状态同步,如卡牌类;高频互动,可以UDP的帧同步,如MOBA类,FPS类游戏。

以上从轮廓上描述了这几种类型的游戏,由于业务场景的不同会导致整体的游戏的架构略有不同,但是他们之间还是有很多的共同点的。相信做过游戏的朋友经常听说这样的几个名词,比如:网关服务器,游戏服务器,地图服务器,中心服务器,帐号服务器等等,这样类似的名词。是的,几乎所有的游戏服务器框架都或多或少出现这几个通用的模块,具体每个模块承载着什么样的功能,以及该如何设计,在接下来的几个章节,我会一一陈述。

这里我用processon画一下大家最熟悉的登录和游戏流程部分,当然内部的细节远不止这些:


服务器

最后想说下,我现在已经离开游戏这个行业了,当初做这个决定的时候也是挣扎了很久,人生就要不断的试错,不是吗?离开不代表分别,故有了做这个知识梳理的冲动,由于本人水平有限,难免有错误或是不严谨的地方,还请大家多多指教,另,如果有侵权的地方,请及时通知。下个小节见!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 帧同步在网上可以搜的资料比较少,关于游戏的更是没有,不过,实现的原理也比较简单,最近几天就写了份关于帧同步的文档,...
    某人在阅读 10,503评论 2 12
  • GameRes游资网发布, 文 /韦易笑 手游页游和端游的服务端本质上没区别,区别的是游戏类型。 类型1:卡牌、跑...
    colourstar阅读 5,470评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,408评论 19 139
  • 任时光匆匆老去,我只在乎你。 爱情的国度里面,根本不会有什么先来后到之分,有的只是天时地利人和的恰恰是你,我于你是...
    阿俊xi阅读 3,587评论 0 2
  • 如果是因为那一年的春光 ——明亮的在记忆深处闪耀 寂静而暧昧的青山深处 你是细叶,羞涩的透出 像嫩黄的处女地一样 ...
    青灯先生阅读 1,735评论 1 3