| Networked games touch on a number of general challenges with distributed computation: 1 Logical clocks used for synchronization. The clocks aren't literally synchronized, but the events taking place across multiple clocks(at least one per connection, and maybe more if concurrency within the client is accounted for) are all logged to an eventually-consistent timeline. How that consistency is enforced is where the trade-offs come in. 2. The closer the featureset resembles shared memory, the worse the experience is. Item duplication bugs were a common occurrence for so long because they express shared memory ownership in a fairly direct manifestation, and it takes a few roundtrips to verify ownership. Saying "I shot you", in contrast, is just sending a message, and can usually coexist with other messages. 3. Consensus algorithms that are governed by nominally human inputs and perceptions. Input manipulation and ESP tools are typical entry points for cheating. When we say "you cheated at this game", we're talking about an attack on consensus. The thing that I think more could be done of is to ignore the notion of really playing "simultaneously", since we're already using logical clocks, and to focus instead on performance capture and reproduction with AI. The thing that we want out of the experience, generally, is better signal-to-noise, and that isn't had just by lowering the ping times and exhaustively tracking all the data, but by distilling player behavior into pertinent factors and then recreating them in approximation. We're already doing it, but our expectations force the reconstruction to stay close to real-time, which means consensus is constantly being disrupted by anomalous behaviors. If we looked instead towards trying to create a bot that can accurately match each player's observed unique playstyle, it becomes easier to make "dream matches" that provide a rich signal for players of all types and skill levels. But current bots never throw that much effort into quality, hence their poor reputation as computer opponents persists. |