Originally Posted by
sephrael
In MMO design, it's mandatory to shift most of the calculation work to the client. Mandatory, not even possible to have the server do everything. The server should check bounds on movement, which it usually does. It does this in WOW as well, as you can see when you are lagging and you start rubber-banding. The server checks to see if it's remotely possible that you got to X point in Y seconds and then throws you back. This is normal, and smart, behavior. If you had servers chugging every time someone pressed the W button on their keyboard, the bandwidth requirements of the game would quickly exceed the saturation point of the server's network card(s).
I don't know where you're getting the notion that the servers can barely handle WoW. They seem to be doing fine - that being said, you're just repeating what someone else said and I shouldn't lambaste you for another poster's absurd opinion on "game engines" when I'm too lazy to go and quote him directly. As for the "redundant data", you will find that any modern MMO sends the same data because the server can't afford to spend the CPU time to figure out where everyone is exactly every tenth of a second, run a crapload of if-checks on them to see if the data is relevant to them. So they use a formula based on how much is going on in the area that adjusts the size of the radius to receive events. Blizzard had problems with this back in BC and early Wrath, and then they changed the way the game sends events so they are essentially sending only a few bytes for each event, so now things are.. better. Internal processes on the Blizzard servers likely go through intensive algorithms to ensure it sends as little redundant data as possible, but there's always going to be a need to because the guy that's 20 yards away from you now might shoot you with a fireball or get a little closer and smack you with an AoE, and that math should be done by the client or else you end up with your character being invincible if you can make your connection drop every other packet.
All that said, we're essentially talking about n^2 problems here which all MMOs and large-scale multiplayer games need to contend with, and when you're dealing with that you have to make design decisions that seem antithetical to traditional design. In this case, your position of "don't let the client do anything but rendering" would normally be quite correct, but when you're dealing with MMOs that needs to be relaxed to "let the client do everything that isn't critical, and rules-check the rest". To their credit, Blizzard does a good job of making sure the memory addresses for WoW are a pain in the ass to manipulate and are heavily monitored by processes like Warden.