Wallhacking
From Wikipedia, the free encyclopedia
This article does not cite any references or sources. (January 2008) Please help improve this article by adding citations to reliable sources. Unverifiable material may be challenged and removed. |
Wallhacking is the changing of wall properties in first-person shooters. Most wallhacks are used to make a map's walls at least partially transparent, allowing players to see objects lying behind a wall. Wallhacking is usually considered cheating, analogous to maphacking in real-time strategy games, and can lead to kicks and bans from online game servers if discovered.
Many FPS games provide weapons such as grenades that can kill unseen players, but such explosives rely on splash damage rather than direct hits. However, in a game like Call of duty 4 : Modern Warfare, certain guns can shoot through walls, rifles in particular. This allows them to see the enemy and kill them instantly, unseen. Using a wallhack in Call of duty 4 : Modern Warfare, on a Punkbuster enabled server will result in a permanent ban from all punkbuster enabled servers if the wall hack is detected.
Other types of wallhack include "wallwalk", in which players become able to see through and walk through walls. Sometimes referred to as "ghostmode", this hack enables sneak attacks on anyone walking by the wall, as the player inside the wall is essentially invisible.
[edit] History
Some of the first wallhacks to appear were for the first-person shooter Quake by id Software. These often worked by altering the map file to have transparent walls rather than making use of any external programs or patches. Games released after Quake generally detected and blocked such modifications to game content to prevent that method of wallhacking.
Valve's hit game Half-Life brought wallhacks into the mainstream to some extent, with both Team Fortress Classic and Counter-Strike being hugely popular multiplayer modifications that were fairly easy to create wallhacks for. The earliest wallhacks for Half-Life — and similar games — worked simply by making everything the engine rendered partially transparent. Since game engines themselves rarely do accurate occlusion checking and instead rely of the graphics hardware's depth buffer to do so, the result was that the player was able to see through the newly-transparent walls to the objects behind that would not normally be visible. The major drawback of this kind of wallhack was the lack of clarity in viewing the game — some players found that the transparency of every surface made it hard to spot things in the game, even to the extent that they would occasionally walk into walls without seeing them or try to shoot players through a wall. This is often known as the Flautz-style wallhack because many people first encountered it in a cheat by a programmer known as Flautz.
Slightly later wallhacks for Half-Life worked by hooking the engine's call to the OpenGL API function glBegin
and checking to see if the engine was about to render a triangle or a quad. Game entities and player characters are drawn with triangles, while the level geometry itself is drawn with quads. If the wallhack detected a triangle about to be rendered, it would call glDisable(GL_DEPTH_TEST)
to prevent the graphics hardware from performing a depth-buffer comparison before rendering each pixel. In this way, the wallhack would cause game characters and game entities to appear on top of all map geometry (walls, floors and ceilings) regardless of their logical position within the world. One of the drawbacks of this method was that the lack of depth-testing on game entities and characters meant that they were often rendered incorrectly, with the backmost polygons of a model being rendered above the frontmost ones simply because they were sent through the graphics pipeline last. This is often known as the XQZ-style wallhack because it was first popularised in a cheat called XQZ2.
The most recent Half-Life wallhacks produce an effect that is almost identical to that of the previously-mentioned XQZ-style wallhack, but without the visual corruption that results from disabling depth-testing. This most recent method takes advantage of the render queue of Half-Life-based mods. Half-Life renders all map geometry first, then renders all game entities and characters. Thus, there is a period of time when the map geometry is rendered fully but rendering of entities has not started. The wallhack effect is achieved by clearing the depth buffer at this point, so that all game entities are then drawn onto what the graphics hardware believes is a clear screen. Depth-testing is not disabled, so the polygons of the game entities and characters are still depth-checked against each other, but are not depth-tested against the game world, since that information has been removed from the depth buffer. The result is that all game entities and characters appear on top of all map geometry regardless of their logical position within the game world — but because they are still depth-tested against each other, there is no corruption of entity models as there is with the XQZ-style wallhack. Because of their similarity and lack of corruption, this method is often known as Perfect XQZ.
Wallhacks for other games, such as Quake 3 or Battlefield 1942, usually use similar methods to those used in Half-Life. Even in games that use shaders for all rendering instead of the fixed-function pipeline the GPU still handles depth-testing internally for most operations and the same techniques remain relevant. Advances in the way scenes are ordered and sent through the render pipeline may require slight changes in wallhack methods in order to differentiate between map geometry and game objects. Both the OpenGL and Direct3D programming interfaces provide similar functionality as regards the depth buffer and depth-testing and neither one is significantly easier or harder to create wallhacks for.
In 2001, ASUS released drivers for their graphics cards which allowed wallhacking. [1]
[edit] Detection
Wallhacks can be instantly recognized by a player who physically sees the cheater's computer screen and thus are impossible to use at LAN parties. When playing over the Internet, detection is not always as simple.
Cheat detection software such as PunkBuster might find it difficult to detect wallhacks. While most wallhacks are achieved by making changes to the game's renderer or maps (and are therefore detectable), some can simply be exploited hardware issues. For example, a player might discover that an obscure combination of a specific video card and an old driver causes the game's doors and other props to be rendered in wireframe.
Wallhacking can be difficult for other players to correctly identify in-game. A wallhacker might be skilled at hiding their virtual extra-sensory perception from other players. For example, consistently shooting people in the head through walls might alert players, but just knowing that there are opponents hiding behind a box or a corner is more than enough to give that player an extra preparedness. Skilled or lucky players can be misinterpreted as wallhackers, Although many skilled players have been known to cheat to give them an extra edge over their opponents. Experienced players become extraordinarily familiar with preferred hiding places and might shoot at or bombard these spots even if they have not seen anyone there, however this isn't to say that they aren't being suspicious. Games which allow player viewpoints to be monitored by spectators can offer a means of detecting wallhackers, but any intelligent wallhacker can easily appear as if they are legit. Many people are caught by being caught aiming at and following their opponent directly through a wall, but this is not necessary. It is very easy to not follow players and look with your eyes and not with your crosshairs. You will still know where they are at as long as they are in your FOV and that can give a tremendous advantage over opponents.
On the other hand, inexperienced wallhackers or players who are unconcerned with being detected will usually track players through walls and other solid objects, often in preference to potentially dangerous areas on which a "blind" player would concentrate. This behaviour may be observed if the game has a spectator mode, or, more recently, in games such as the Call of Duty series, if a "kill-cam" or similar feature is active. This feature shows the last few seconds of a player's life from the first person perspective of their aggressor, thus making wallhacking extremely obvious to the player killed.
Wallhacks are released almost as quickly as a game comes out, for pretty much every multi player game. But they can also be quickly detected. There will always be working wallhacks for every game, anti-cheat protected games included. When wallhacks are released publicly and used by the masses, it is more likely to be protected against since any developer can freely download these wallhacks themselves and easily update their anti-cheat. However, there are wallhacks that are released to only a limited number of people, usually produced by a coterie of cheaters, or a gaming clan with someone knowledgeable enough to make the wallhack. This can keep the developers from detecting these wallhacks.
One problem is the older the game, the more likely anti-cheat will not be updated further, allowing wallhackers to freely cheat. Many cheaters play older games specifically because of this. It is also good to take caution when playing on private or clan servers as many people like to create their own servers, for the purpose of cheating, so that there are no consequences for their actions. And if anyone does accuse them, they can simply deny it or ban that user.