Quote:
Originally Posted by Karak
can goofy or someone explain to me why blizzard doesn't handle things server side like a poker site to prevent lots of hacks? obviously all the sophisticated encryption isn't as necessary, but widespread hacking has been a big issue on ladder. apparently the last warden ban missed the most oft used multi-feature hack.
i mean my guess is that it's a bandwidth/server space issue to handle all the data, but would it really be that prohibitively expensive?
Warning: it's about to get NERDY up in this bitch.
There are basically two different networking models that games use:
- client-server: most common in FPS games, the server holds the definitive game state and transmits that information to each client (player) each frame.
- lockstep: relies on the basic notion that computers are deterministic machines that, when starting from a given state and receiving the same sequence of input, will always wind up in the same state. Therefore, the game can just make sure all players start in the same state, transmit nothing but each player's input (mouse/key) between the two machines during the game, and ensure that the same game will play out on both machines.
I'm 99% sure Starcraft 2 uses the latter model, based on a couple things:
- the replay format - the fact that a.) replay files are incredibly small, and b.) you can only start watching from the beginning and FF to the end, rather than skipping directly to a point in the future, would seem to indicate that the game just records input and "plays it back" (in a deterministic manner) when you're watching a replay.
-
this article, which gives deeper explanations of the network models above, says that most (all?) RTS games use lockstep. (though I doubt that the network state of an RTS game is still too large to transmit between machines btw, with this being the broadband age and all)
So, given the lockstep model's requirement that each machine maintain a full copy of the game state at all times, it would be very difficult to ensure that each machine ran the game the same way without exposing the full state of the game to those machines. Doing so would basically require a re-architecting of the entire network model to a client-server system.
Thinking idly in my head I can maybe think of some ways that the lockstep model could be executed for SC2 with incomplete information, but since I don't work for Blizzard there's not much of a point in fleshing them out to see if they'd work. But the general point is that the system depends on complete knowledge and execution of the game state, and even if it's possible for the game to work without that complete knowledge, it adds a whole new layer of complexity (and thus bugs) that make it more difficult to engineer.
I'd certainly
like for Blizzard to take cheating in their games more seriously, and be better at detecting it/getting rid of it, but it's possible that they decided delivering a solid and bug-free online experience was more important than delivering a cheating-free online experience (and it's pretty difficult to have both).