与P2P相对的主要是C/S架构, 两者的关键区别在于传输目标数据是否需要经过一个中心化的服务器. 在C/S架构下联机和网络游戏的情况是比较相似的, 玩家的数据需要通过专用服务器才能广播给其他的玩家, 由于很多游戏在中国都没有服务器, 延迟极高, 导致了联机体验很差.
P2P的联机方式在COD系列里其实已经算是一个传统了, 与传统局域网联机所需的vlan技术不同, P2P的技术要点在于实现了NAT穿透, 这样玩家就能直接作为host供互联网上的其他玩家连接(实际情况比描述起来复杂很多). 但也由于需要玩家作为host, 可靠性不如服务器, 比如你玩bo3的时候, 如果host掉线了, 当前局会被停住, 等待其他玩家作为host接盘才能继续游戏, 由于host会变更, 导致延迟也有可能会有大幅度的变化, 虽然游戏本身肯定会匹配和你连接情况最好的玩家给你, 但对比专用服务器的体验还是差了不止一截(仅限延迟低的情况). 同样, COD的匹配有时候会变得很慢就是因为要找和你延迟低的玩家很困难, 即使全网在线的人数很多, 能和你P2P连上能够正常进行游戏的人并不会太多(另外, 由于不同玩家的NAT类型是复杂的, 也会影响匹配), 玩家之间的地理位置也不会差得太远.
可能我们平时用BT下载之类的P2P技术觉得很快, 但那只是带宽大, 延迟对于联机游戏体验起决定性影响, 再加上host的计算能力有限, 所以你很难将P2P运用到人数比较多的大型多人游戏上(这也是为什么有专用服务器的战地4可以64人联机). 当然, 不需要高实时性的游戏真想搞成P2P也不是不可以的, 参考比特币.
至于为什么COD特别喜欢用P2P, 大概是为了省钱吧...
黑狗布雷特 1年前
发布