多人FPS游戏的网络架构

Multiplayer-FPS游戏的网络架构

先列出骨架,慢慢填坑

游戏趋势

  • 游戏角色GamePlay逻辑日益复杂
    • TitanFall:载具
    • Overwatch、枪火游侠:技能
  • 游戏模式玩法多变、规模变大
    • Killzone的玩法模式
    • 吃鸡的大规模大逃杀

游戏需求

  • 应对复杂的GamePlay
  • 世界状态的切换
    • Killcam
    • 精彩时刻

重点问题

  • 响应性:Responsive
  • 服务器权威:Server Authority

同步方案的选择

  • LockStep的指令同步
  • Client-Server的状态同步

Lowlevel的Network

  • RUDP的实现

HighLevel的Network

  • 类似UNet和Unreal的接口封装
    • RPC
    • SyncVar
  • ECS(服务但不仅限于网络架构)

LocalPlayer的状态预测和确认

  • 可靠通道
    • 基于Pattern
    • 基于Sequence或者Tick
    • 两者结合
  • 不可靠通道
    • Unreal(还未研究)

移动同步

LocalPlayer

  • 目的:响应及时,少拉扯
  • prediction
  • reconciliation

RemotePlayer

  • 目的:平滑、少闪现
  • Dead Reckoning
  • Entity Interpolation
    • 引入Interpolation Delay(IND)

HitReg

  • 由于引入IND的延迟补偿
  • Rewind机制

目标

  • 不断填充Network架构的内容
  • 不断细化每个内容
  • 讨论并实现每个细节