Difference between revisions of "Cheating"
(→Types of cheats) |
(→What you can do) |
||
(11 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | Cheating is the use of unfair advantage in competition. The | + | 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 | + | == 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 === | === Exploit === | ||
Line 25: | Line 25: | ||
* Limits the [[target platforms]] | * 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 === | === Blacklisting === | ||
− | Some have proposed banning all | + | Some have proposed banning all cheaters. This is a bad idea because: |
* A [[ban]] can only lock out a computer address, not the individual | * A [[ban]] can only lock out a computer address, not the individual | ||
* Long ban lists require much storage and maintenance | * Long ban lists require much storage and maintenance | ||
Line 37: | Line 37: | ||
=== Whitelisting === | === Whitelisting === | ||
− | A global login system was proposed in order to enforce nicknames. This would, in theory, cut down on the number of potential [ | + | 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 | + | * 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 | + | 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.
Contents
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.