在开发游戏服务器的时候,经常要接触一套全新的游戏代码。新守则贯穿整个工作生活。比如作为新人,要熟悉项目代码,尽快上手。转到新的项目组时,熟悉现有代码;在给项目组做技术指导的时候,还需要了解原文的写法。
然而,要理解一套你不熟悉的代码并不容易。一是时间有限,工作中经常要求快速上手;第二,新代码往往包含一些自身知识的盲点,需要学习。所以写这篇文章就是为了总结一套看代码的方法和流程,以供参考。
第一步:看看角色逻辑的编写方式
游戏服务器的核心功能是处理玩家的逻辑。可以从单服的逻辑入手。比如看看背包模块和签到模块的编写方法,了解游戏的逻辑组织。
一般来说,播放器逻辑会涉及如下图所示的几个部分。当您查看代码时,您可以遵循模块生命周期的过程。一个玩家上线,需要加载数据;然后处理客户端协议;注销前需要保存数据。按这个顺序看每一步的写法。
看了几个模块,可以模仿一些简单的功能逻辑。对于游戏公司来说,这也是培训新人时的前期要求。
第二步:观看玩家从线上到线下的全过程
从连接服务器到退出游戏,玩家一般会经历下图所示的过程。
(图片来源,Unity3D网游练习(第二版)第七章万能服务器框架)
经过这个过程,你就基本可以了解整个服务器的逻辑架构了。比如有的游戏服务器在gateway中处理连接,然后登录登录服务,再登录游戏服务处理游戏逻辑。也可能有db服务来读取数据库。然后按照这个流程一步一步来,就可以把服务器各个部分的功能联系起来,也可以解决游戏过程中的一些问题。
第三步:看战斗逻辑的实现。
游戏中的一些核心功能,比如地图、战斗等,往往比较复杂,也可能涉及跨服。看这部分代码的目的是从之前的一些简单的通用功能的开发扩展到核心功能的开发。
比如某个游戏的战斗流程可能是这样的。当玩家进入比赛时,比赛服会将玩家的一些信息发送到比赛服进行匹配;当匹配成功后,服务器会创建一套战斗服,然后每个参与战斗的玩家都会切入战斗服进行战斗。
然后要注意每个服务的功能是什么,它们之间的数据传输过程,传输的是什么数据。再者,需要了解战斗服中人物的逻辑,比如战斗开始和结束的处理,技能造成伤害的计算。
步骤4:技术实现细节
其实游戏服务器涉及的内容很多。按照以上三步看完代码,基本上就可以在这套代码的基础上进行开发了。但是如果你想修改一些底层函数或者优化性能,你需要更深入地看代码。
总的来说,以下三个模块是重点,可以先了解一下。
作为网络服务器的关键模块,可以了解框架如何处理多路径连接,了解协议的设计。磁盘IO可能是服务器的性能瓶颈,通常通过缓存机制来缓解。需要了解服务器的存储结构,存储什么数据,如何存储。手游非常注重热更新功能,这是保持服务器稳定的重要手段。但是做好热更新并不容易,可以了解一下框架的热更新方案。
通过以上步骤,你应该能理解一套服务器端代码,并在此基础上编写逻辑和更改底层功能。
本文来自莫失莫忘投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/484665.html