游戏服务端实习乱谈杂记

游戏服务端实习乱谈杂记

可能以后想到什么还会记到这里吧
最近在做一个长线的流程 策划 美术 那边估计会来回改 暂时定不下来
主要是一个 玩家间特定物品的交易

RPC还得学啊搞不懂 说什么远程调用 编码解码http 注册 查表 调用 看起好简单的样子 咋实现那么复杂

看起来所有通讯都是通过独立实现的RPC进行的

只能瞎写写 腾讯服务端架构讲的很好 可惜我已经写不动笔记了

这里随便写了下 我看源码能直接得到的东西 不过后面的代码真的多到看不下去 只能写最简单的

gateway

  • chat

  • 广播 同gateway复数玩家

  • Connmgr

    这里主要是RPC的注册和调用 关于客户端还多了些 加密解密DOS 缓存什么
    GAS 和 GAC 的中间层 貌似处理了一些

    • GacConnMgr
      • banIP、 连入断开、 客户端连入Dos防御,加密解密
    • GasConnMgr
      • 转移character 连接的gas
    • MasterConnMgr
      • master 对 gateway 存的 gas 添加删除、 获得mastercpu负载
  • RecordConnMgr 我点过去看怎么还有录像功能 这是啥

    以上 都有关于连接gac gas master log日志记录


gateway 作为透明层转发

1:分担了网络IO资源

2:同时,也分担了网络消息包的加解密,压缩解压等cpu密集的操作。

3:隔离了client和内部服务器组,对client来说,它只需要知道网关的相关信息即可(ip和port)。

4:client由于一直和网关保持常连接,所以切换场景服务器等操作对client来说是透明的。

5:维护玩家登录状态。

– 此处转自匿名网络

不是说有什么断线重连吗 这层没看到 gateway


  • main_frame 启动模块

  • Record 还真是录像啊 为啥写这?

login

关于数据存储一些类似玩家服饰 装备什么的 在数据库中是二进制存储 遵守一个特别协定 使得读取存入数据变得可逆 了解即可

login 和 gateway 与客户端直接相连的存在

  1. Database

  2. Master

  3. SLogin

    • 插队玩家
    • 大量的告诉客户什么有没有验证处理
    • 二维码
    • 关于越南猴子玩 划掉 我是玩玩没想到的
    • 不关游戏的选择角色界面

太多了 看到login上W行 我是害怕的

登陆服务器 关于选角色界面会有玩家自定义外表服饰数据这里数据库存储就是我之前说的

地图服务器 map

暂时不了解 大概就是玩家本地看到的镜像副本 准确点 玩家看到的就是map服务器在跑的 尽管有些网络问题在其中

Gas 主要的逻辑服务

玩家大量计算 逻辑 活动 lua脚本都在这里

这里也是我现在写的最多的地方

完全的不信任客户端数据 对所有消息的传递先进行检验, 与服务器数据一致后 在通过流程处理

由于一些活动跨服 有时必须写道 master 才行

Master

游戏服务器主进程 挂掉之后 除了 DBsvr Mapsvr Ranksvr 其他都会挂掉 不挂也没用了 只会让玩家体验变差 Master 如果真挂了 同服玩家掉了最好 数据已经没有最后去处理的地方 造成玩家损失

这里有协调gas, 跨服通讯, 告诉客户端 login前 那里 各个入口压力

IM and Rank

独立出 的全区聊天 好友 和 算是较快的 排行系统

游戏是帧同步还是状态同步

一般而言 我们从断线重连就可以看出 王者荣耀是帧同步的了
帧同步的断线重连就比较麻烦了,例如客户端在战场开始的第10秒短线了,第15秒连回来了,就需要服务端把第10秒到第15秒之间5秒内的所有消息一次性发给客户端,然后客户端加速整个游戏的核心逻辑运行速度(例如加速成10倍),直到追上现有进度。


后言 :

只能看看 简单的login 和 gateway 其他写的所在是烦杂 一个流程函数上W行 我是万万受不得的

你可能感兴趣的:(笔记,实习,杂谈)