为什么大多数电脑游戏不超过16v16?

Tom*_*len 2 networking resources bandwidth

从编程/网络的角度来看,为什么比16v16更少/没有更大规模的游戏的原因是什么?

有一些32v32游戏,但这些似乎是规则的例外.

Pis*_*3.0 6

很简单,缩放很难和/或昂贵,而O(n ^ 3)通常是一个梦想.对于2v2的游戏和一个天真的通信算法,你需要每台计算机与((2*2)-1)= 3台其他计算机(不计入某种连接中介服务器)进行通信((2*) 2)!/ 2)=共12个连接; 同样,对于nn个玩家,每台计算机需要与((n*n)-1)个计算机通信,这些计算机完全连接到(n!/ 2)个连接.

这变得非常荒谬,并且需要其他方法,例如"所有玩家与中央服务器通信,为他们提供更新".这稍微可扩展,但只能达到一定程度.计算64个玩家的状态并与他们通信(并保持游戏状态同步,即使是短暂断开连接!)也不是很简单,特别是对于延迟很重要的游戏(例如FPS).

拥有大量的服务器场(有大量的网络管道)专门为此定制,可以提供帮助,但它很昂贵(这是你的WoW订阅的很大一部分); 如果其中一个玩家的计算机正在做这项工作,滞后将变得非常明显 - 无论是由于缺乏处理能力,带宽和延迟.