Hacker News new | ask | show | jobs
by abdullahkhalids 1098 days ago
That covers things somewhat, but not entirely. In Dota (and other games), there are a lot of purely client side cheats, that are obtained by reverse engineering the closed source client. Some examples that can't be detected server side reliably.

* Keyboard macros. Actions that require multi keys pressed in sequence can be done with one key press.

* Bigger viewport. Your client has information about the entire visible map, but by default only shows a certain part on your screen. Client side hack zooms out the view and shows you a much larger area.

* Auto disable. A very strong cheat. If an enemy suddenly jumps on you from out of vision, immediately cast disable spell on them. Doesn't matter if you were looking somewhere else or doing something else.

Valve can't prevent people from creating these cheats, but they put code in other parts of the close source client that detects the usage of these cheats. Then they create a list of these cheaters and every few months have a ban wave. And change the code enough to break the cheat.

1 comments

The viewport issue sounds like something you could fix in the server; only send the client info about the area around them.
Its a team game. So you can see anything that is visible to your allies, and you can (and should be able to) pan your viewport around to see that stuff. So the client needs to know everything that is visible to your allies.

Plus there are things that happen outside your viewport that affect whats in your viewport, and trying to limit your client from knowing those things would cause all sorts of graphical artifacts.

Eg. there are some spells that affect an entire area (and have graphical affects associated with the whole area). Even if part of the spell area is in your Fog of War, your client needs to know about it completely, for the graphic drawing algorithms to run. The client draws the whole thing, and then obscures the part that should not be visible to you. Otherwise, the graphic algorithms would become get additional complexity that will possibly have performance impacts.