Most indie multiplayer games ship with three architectural decisions that look fine at MVP and break somewhere between 50 and 500 concurrent players. After hosting servers for indie survival/MMO games across UE, Unity, and Godot for several years, these are the three failure modes I keep seeing. Failure 1: Trusting the client for any value that affects other players The pattern: the client computes "I dealt 25 damage to player X" or "my final survival time was 14:32" and sends that to the server. The server records it. This fails the moment one player decompiles the client and starts sending fake values. They're suddenly invincible, or topping leaderboards with impossible scores, or duplicating resources. Trust collapses for the honest players who watched it happen. The fix that has held up: server-authoritative on anything that touches other players. The client sends INTENT ("I shot at player X from this position") and the server validates and applies. Latency goes up because there's a round trip.…