The cost of server-side checking everything a 100% of the time is too high... let alone half the time... let alone at all. Think about how this works:
1) Submit movement request to server.
2) Server tests movement request based on current system state
2.a) Poll for any additional players in the area
2.b) Resolve conflicts in movement requests to same area
2.c) Collision detection with objects
2.d) Test speed at which player moved
3) Move player
4) Submit new location to client.
As you can see, this is adding a ton of movement back and forth between a server, which is just about the slowest part of whats happening. Add in a lot of players adding a lot of movement requests all at once and you get a massive bandwidth requirement that isn't practical. Furthermore, for a game like ESO, we can take a simple note that this basic routine is about as inefficient as it gets, and would create a ton of overhead for minimal gain. Why effect 100% of players to target <1% of the population?
Yes, server-side checking would fix the issue. It'd also create an issue. The game would run like shit.
1) Submit movement request to server.
2) Server tests movement request based on current system state
2.a) Poll for any additional players in the area
2.b) Resolve conflicts in movement requests to same area
2.c) Collision detection with objects
2.d) Test speed at which player moved
3) Move player
4) Submit new location to client.
As you can see, this is adding a ton of movement back and forth between a server, which is just about the slowest part of whats happening. Add in a lot of players adding a lot of movement requests all at once and you get a massive bandwidth requirement that isn't practical. Furthermore, for a game like ESO, we can take a simple note that this basic routine is about as inefficient as it gets, and would create a ton of overhead for minimal gain. Why effect 100% of players to target <1% of the population?
Yes, server-side checking would fix the issue. It'd also create an issue. The game would run like shit.