DIS是美国国防部、北约及其盟国实时/虚拟世界建模与仿真领域应用最广泛的协议之一。Open-DIS 是该标准的免费开源实现,支持 Java、C++、Python、JavaScript、Objective-C 和 C# 等多种编程语言。
DIS 是由仿真互操作性标准组 (SISO) 制定并经 IEEE 批准的 IEEE 标准 (IEEE-1278.1)。它被广泛应用于实时虚拟世界军事仿真中。
DIS 是一种网络协议。它精确描述了数十个协议数据单元 (PDU) 的布局,这些 PDU 包含有关世界中实体位置和方向以及其他诸多信息。这些 PDU 用于描述电子战、后勤、碰撞和仿真管理。
游戏网络同步
游戏的网络同步机制有很多,总体来看可以分为下面三类:
- Peer-to-Peer,在这类方法中,没有服务器,游戏参与者的身份是对等的,依靠参与游戏的玩家电脑自行解决同步问题的,最为典型的就是Lockstep
- Client-Server,在这类方法中,Server端是绝对的权威,所有计算基本在Server上完成。例如,在游戏中向前移动一步,要等待服务器确认“你向前移动了一步”之后,才可以在客户端上进行这个行为。(延迟较低的时候是察觉不到这个过程的,延迟高时会有明显的卡顿现象)
- Client-Side Prediction,严格来说这并不是一类方法,而是对第二类方法的改进。试想如果所有的操作都必须在得到服务器的确认,然后才在客户端上进行,在延迟较高时用户体验会非常的差。这时可以把常用一部分计算转移到客户端进行,服务器辅助校正即可。
DIS使用 Peer-to-Peer 方式进行状态的网络同步。
参考链接
- 跨平台军事仿真开发:基于Open-DIS C++与SDL2/SDL_net的实战配置指南,by OurPlay.
- AFSIM的DIS接口(分布式交互仿真接口),by tx_zzz.
- 揭开DIS的技术面纱──分布式交互仿真三大特性的关键技术,by 81it.
- 2023-6-2-DIS研究,by 汤姆z.
- 网络游戏同步技术二:状态同步的优化与实现,by antsmallant.
- 游戏网络同步——dead reckoning,by xak.
- 游戏中的网络同步机制——Lockstep,by 宾狗.
- Distributed Interactive Simulation,by wikipedia.