NetCode-FPS
Bilibli 车辆同步演示视频
Bilibli FPS同步演示视频
特点:
- 客户端玩家预测
- 客户端远程玩家插值
- 回滚和重播
- 实时调整客户端对于服务端Tick的预测,以优化服务端的输入Buffer
参考:
- Client-Side Prediction With Physics in Unity
- Gaffer On Games Networking
- Gabriel Gambetta Fast-Paced Multiplayer
- Overwatch Gameplay Architecture & Netcode
- https://www.gamedev.net/forums/topic/696756-command-frames-and-tick-synchronization/
- Unity NetCode
运行Demo
说明
Unity版本:2020.1.17f1c1
整个工程全部用DOTS以及混合GameObject开发。
注:请使用同版本UnityEditor打开工程
两个示例场景:
- Scene/NetCube
- Scene/NetFPS
打开场景Editor下直接Play即可
NetCube示例的操作
WASD
移动Space
向上施加力鼠标左键
重置服务端Cube位置,以测试客户端与服务端位置不一致时的拉扯的效果.
NetFPS示例的操作
WASD
移动Space
跳跃鼠标左键
开火Left Shift
加速R
手雷T
重置服务端Playe位置,以测试客户端与服务端位置不一致时的拉扯的效果.F12
锁定鼠标Esc
释放锁定的鼠标- 玩家被击中时,当血量等于0时,在服务端会把玩家的位置重置。
Build
Assets下有两个Build配置:
WindowsClassicBuildConfiguration
构建客户端WindowsClassicBuildConfigurationSev
构建服务端
构建完成后即可在NetCode-FPS/Build
中找到Ser服务端
以及Test客户端