欢迎光临
我们一直在努力

拿到一套游戏服务端源码,该从哪看起?

开发游戏服务端,经常要接触一套全新的游戏代码。接触新代码贯穿于整个工作生涯,比如,作为刚入职的新人,要去熟悉项目代码,尽快上手工作;调到一个新的项目组工作时,要熟悉已有代码;给项目组做技术指导时,也需要了解原有的写法。

然而看懂一套自己并不熟悉的代码并不容易。其一是时间有限,工作中往往要求能够快速上手;其二是新代码往往包含自己一些知识盲区,需要学习。于是编写此文,总结一套看代码的方法和流程,以供参考。

第一步:看角色逻辑的编写方式

游戏服务端的最核心功能就是处理玩家逻辑,可以先从单服的逻辑看起。比如看看背包模块、签到模块的编写方式,从而理解游戏的逻辑组织。

一般而言,玩家逻辑会涉及如下图的几个部分,看代码时可以按照模块生命周期的流程跟着。当玩家上线时,需要加载数据;然后处理客户端协议;下线前需要保存数据。按照这个顺序,看看每个步骤的写法。

看过几个模块后,便可以仿写一些简单的功能逻辑。对游戏公司,这也是培养新人时,前期的要求。

第二步:看玩家上线到下线的整个流程

玩家从连接服务端,到他退出游戏,中间一般会经历如下图的流程。

(图片来源,《Unity3D网络游戏实战(第2版)》第七章通用服务端框架)

跟完这个流程,基本可以明白整个服务端的逻辑架构。比如有些游戏服务端在gateway中处理连接,然后交由login服处理登录,再交给game服处理游戏逻辑,可能还会有db服处理数据库的读取。那么,一步步的跟进这个流程,就能够把服务端各个部分的职能给联系起来,也能够解决一些游戏流程的问题。

第三步:看战斗逻辑的实现

游戏中的一些核心功能,比如地图、战斗往往较为复杂,还可能涉及跨服。看这部分代码的目的是从之前只能开发一些简单的通用功能,扩展到能够开发核心功能。

举例来说,比如某款游戏的战斗流程可能如下图。卖手机靓号平台当玩家进入匹配时,游戏服会把玩家的一些信息发到匹配服去做匹配;当匹配成功,服务端会创建一个战斗服,然后参与战斗的各个玩家切到战斗服去战斗。

那么要关注的地方就有各个服务的职能是什么,它们间的数据传输流程,以及传输了哪些数据。进而还需要了解角色在战斗服中的逻辑,比如战斗开始、战斗结束的处理,放技能伤害的计算。

第四步:技术实现细节

游戏服务端涉及的内容其实很多,在按照以上三个步骤看代码后,基本就能够在这套代码的基础上做开发。但如果要修改一些底层功能,或者做性能优化,就要更加深入的看代码。

一般而言,以下的三个模块是重点,可以优先了解。

网络作为服务端的重点模块,可以了解该框架采用什么方式处理多路连接,了解协议的设计。磁盘IO可能会是服务端的性能瓶颈,一般会通过缓存机制来缓解,要了解服务端的存储结构,知道保存着什么数据以及怎样保存。手游很注重热更新功能,作为保持服务器稳定的一个重要手段,但做好热更新并不容易,可以了解框架的热更方案。

经由以上几步,应能够了解一套服务端代码,能在它的基础上编写逻辑,改动底层功能。

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《拿到一套游戏服务端源码,该从哪看起?》
文章链接:https://www.456zj.com/37145.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址