Difference between revisions of "Cheating"

From OdaWiki
(Unfair movement)
(What you can do)
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Cheating is the use of unfair advantage in competition. The odamex client and wad files may be modified, and some players choose to modify them to cheat. The majority of our community is against cheating and takes active measures to prevent, detect and eliminate cheats.
+
Cheating is the use of an unfair advantage by various means in competition to do better than other players. The Odamex client and WAD files may be modified, and some players choose to modify them to cheat. Our community is against cheating and takes active measures to prevent, detect and eliminate cheats.
  
== Types of cheats ==
+
== Types of Cheats ==
  
=== Unfair strategy ===
+
=== Wallhack ===
Also known as a wallhack, this is a modification of the client for unfair visual advantage, such as seing another player through a wall.
+
This is a modification of the client for a visual advantage, most commonly to be granted the ability to see another player through a wall to know where he or she is located most of the time.  
  
=== Unfair movement ===
+
=== Speedhack ===
A speedhack is a cheat which allows a player to move faster than other players.
+
This is often achieved by a stand-alone process that changes one's speed in order to do things that are normally not possible, like moving faster than other players. There are many ways to do this, almost all of them change the timing of the client's outgoing data packets.
  
=== Unfair accuracy ===
+
=== Aimbot ===
Also known as an aimbot, uses automatic aiming algorithms in order to attain superior aim.
+
This is a common cheat that is often produced by modifying the client and that uses automatic aiming algorithms in order to attain superior aim.
  
 
=== Exploit ===
 
=== Exploit ===
Line 25: Line 25:
 
* Limits the [[target platforms]]
 
* Limits the [[target platforms]]
  
An open-source project under a viral license also forces source code to be made available of any derived works (including cheats).
+
An '''open source''' project under a viral license forces source code to be made available of any derived works (including cheats).
  
 
=== Blacklisting ===
 
=== Blacklisting ===
Line 38: Line 38:
 
=== Whitelisting ===
 
=== Whitelisting ===
 
A global login system was proposed in order to enforce nicknames. This would, in theory, cut down on the number of potential [http://en.wikipedia.org/wiki/Spoofing_attack spoofing] and [http://en.wikipedia.org/wiki/DDoS DDoS] problems by only accepting connections from a list of signed-up members. It would also make user-tracking easier. However it has not been implemented because:
 
A global login system was proposed in order to enforce nicknames. This would, in theory, cut down on the number of potential [http://en.wikipedia.org/wiki/Spoofing_attack spoofing] and [http://en.wikipedia.org/wiki/DDoS DDoS] problems by only accepting connections from a list of signed-up members. It would also make user-tracking easier. However it has not been implemented because:
* It would require lot more storage&maintenance than even a Blacklist
+
* It would require far more storage and maintenance than even a blacklist
 
* It would provide a single point of failure
 
* It would provide a single point of failure
 +
* It would give someone control over users that nobody should have
 +
 +
=== Sacrificing performance ===
 +
Server-based prediction is optionally implemented in the pre-beta versions of odamex. It is enabled by the [[sv_speedhackfix]] server variable. Despite totally preventing speedhack cheats, in practice, gameplay becomes too jittery for all clients.
 +
 +
Also see: [http://warriors.eecs.umich.edu/games/papers/adcog03-cheat.pdf Cheat-Proofing Dead Reckoned Multiplayer Games]
 +
 +
== Possible solutions ==
 +
 +
=== Statistical evaluation ===
 +
Statistical analysis of live and recorded games is likely to lead to an effective solution. Players tend to have very different performance characteristics compared to programmatically supported ones.
 +
 +
=== Clientside virtual machine ===
 +
It may be possible to push all possible cheat code implementations out of the core engine if a secure virtual machine (vm) is implemented on the client. The virtual machine would maintain the entire game state, and the client would not have sufficient information to decode it except where the vm grants it that privilege. The server would generate new vm code for every game, so that code-specific cheats become useless. It is difficult to see whether such a solution will be successful as it requires a complete translation of the doom engine into a flexible vm representation. There weaker versions of this idea might also be useful.
  
 
== What you can do ==
 
== What you can do ==
When you believe that another player has used an unfair advantage against you, report that player to the server administrator or the odamex team.
+
When you believe that another player has used an unfair advantage against you, you can report that player to the server administrator.  The Odamex development team could be interested in this as a bug to be fixed, but please take up issues with the player themselves with your server administration.  The Odamex development team does not have the power to ban a player globally or on any individual server except where it is a server operated by a team member.
 +
 
 +
If you do think it's a bug, please prepare all the necessary information and file a report on our [http://odamex.net/bugs bug tracker].

Latest revision as of 23:50, 9 May 2012

Cheating is the use of an unfair advantage by various means in competition to do better than other players. The Odamex client and WAD files may be modified, and some players choose to modify them to cheat. Our community is against cheating and takes active measures to prevent, detect and eliminate cheats.

Types of Cheats

Wallhack

This is a modification of the client for a visual advantage, most commonly to be granted the ability to see another player through a wall to know where he or she is located most of the time.

Speedhack

This is often achieved by a stand-alone process that changes one's speed in order to do things that are normally not possible, like moving faster than other players. There are many ways to do this, almost all of them change the timing of the client's outgoing data packets.

Aimbot

This is a common cheat that is often produced by modifying the client and that uses automatic aiming algorithms in order to attain superior aim.

Exploit

An engine exploit may in rare cases be used to cheat.

Rejected solutions

Closing the source

Security through obscurity leads to both insecurity and obscurity. This:

  • Stagnates development
  • Reduces number of eyes checking the code for bugs
  • Encourages binary cheat distribution
  • Has been shown to fail countless times
  • Limits the target platforms

An open source project under a viral license forces source code to be made available of any derived works (including cheats).

Blacklisting

Some have proposed banning all cheaters. This is a bad idea because:

  • A ban can only lock out a computer address, not the individual
  • Long ban lists require much storage and maintenance
  • If used sparingly, some innocent players would also be banned by mistake
  • Reduces the scope for testing countermeasures

However, in specific cases, bans remain a useful deterrent.

Whitelisting

A global login system was proposed in order to enforce nicknames. This would, in theory, cut down on the number of potential spoofing and DDoS problems by only accepting connections from a list of signed-up members. It would also make user-tracking easier. However it has not been implemented because:

  • It would require far more storage and maintenance than even a blacklist
  • It would provide a single point of failure
  • It would give someone control over users that nobody should have

Sacrificing performance

Server-based prediction is optionally implemented in the pre-beta versions of odamex. It is enabled by the sv_speedhackfix server variable. Despite totally preventing speedhack cheats, in practice, gameplay becomes too jittery for all clients.

Also see: Cheat-Proofing Dead Reckoned Multiplayer Games

Possible solutions

Statistical evaluation

Statistical analysis of live and recorded games is likely to lead to an effective solution. Players tend to have very different performance characteristics compared to programmatically supported ones.

Clientside virtual machine

It may be possible to push all possible cheat code implementations out of the core engine if a secure virtual machine (vm) is implemented on the client. The virtual machine would maintain the entire game state, and the client would not have sufficient information to decode it except where the vm grants it that privilege. The server would generate new vm code for every game, so that code-specific cheats become useless. It is difficult to see whether such a solution will be successful as it requires a complete translation of the doom engine into a flexible vm representation. There weaker versions of this idea might also be useful.

What you can do

When you believe that another player has used an unfair advantage against you, you can report that player to the server administrator. The Odamex development team could be interested in this as a bug to be fixed, but please take up issues with the player themselves with your server administration. The Odamex development team does not have the power to ban a player globally or on any individual server except where it is a server operated by a team member.

If you do think it's a bug, please prepare all the necessary information and file a report on our bug tracker.