Difference between revisions of "Cheating"

From OdaWiki
(What you can do)
Line 40: Line 40:
 
* It would require far more storage and 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
 +
 +
=== 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, report that player to the server administrator or the Odamex team.

Revision as of 10:40, 26 April 2006

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 boosts one's CPU speed in order to accomplish the usual goal of a speedhack, hence the name applied to this cheat, to boost up one's local speed to be faster than that of other players.

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

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, report that player to the server administrator or the Odamex team.