Why Multiplayer GPS Is Hard
What breaks when everyone on a map can see everyone else?
// PLAIN LANGUAGE
Showing one car on a map is easy. Showing a hundred cars to each other, live, is not — and the reason is arithmetic, not programming skill.
If every driver has to be told where every other driver is, the amount of talking does not grow with the number of drivers. It grows with the number of PAIRS of drivers. Twelve drivers make 132 pairs. Two hundred drivers make 39 800. Add one more driver and you have not added one conversation, you have added two hundred.
That curve is what kills most attempts. It looks fine while you and three friends are testing it, and it falls over the first evening a real crowd shows up — which is exactly the evening you needed it to work.
StreetWizard does not try to route those messages more cleverly. It sends fewer of them. Everyone publishes to one shared channel, so the message count grows in a straight line instead of a curve — and then four separate mechanisms, described in the next chapters, cut what remains.
NAIVE — every rider tells every rider STREETWIZARD — one shared channel[A]━━━━━━━━━[B] [A]──┐┃ ╲ ╱ ┃ [B]──┤┃ ╲ ╱ ┃ [C]──┼──▶ ( CHANNEL ) ──▶ all┃ ╳ ┃ [D]──┘┃ ╱ ╲ ┃[C]━━━━━━━━━[D] messages = Nmessages = N x (N-1) / 2riders naive shared──────────────────────────────────────────12 132 1260 1 770 60200 39 800 200
