Cheating in video games involves a player using various methods to create an advantage beyond normal gameplay, usually in order to make the game easier. Individual techniques or exploits, called cheats, may be activated from within the game itself (a cheat code implemented by the original game developers), inserted by third-party software (a hacking program, game trainer, or debugger), or created by external hardware (a cheat cartridge). They can also be realized by exploitingsoftware bugs; this may or may not be considered cheating based on whether the bug is considered common knowledge and its use as legitimate gameplay accepted. Cheating in online games and in speedrunning are widely acknowledged as one of the most problematic issues affecting online gaming communities,[1] erasing trust and sportsmanship between competing gamers.
The first cheat codes were put in place for play testing purposes. Playtesters had to rigorously test the mechanics of a game and introduced cheat codes to make this process easier. An early cheat code can be found in Manic Miner, where typing "6031769" (based on Matthew Smith's driving license) enables the cheat mode.[2] Within months of Wizardry: Proving Grounds of the Mad Overlord's 1981 release, at least two commercial trainers appeared.[3] 1983 advertisements for "The Great Escape Utility" for Castle Wolfenstein (1981) promised that the $15 product "remodels every feature of the game. Stop startup delays, crashes and chest waiting. Get any item, in any quantity. Start in any room, at any rank. Handicap your aim. Even add items".[4]
In a computer game, all numerical values are stored "as is" in memory. Gamers could reprogram a small part of the game before launching it. In the context of games for many 8-bit computers, it was a usual practice to load games into memory and, before launching them, modify specific memory addresses in order to cheat, getting an unlimited number of lives, currency, immunity, invisibility, etc. Such modifications were performed through POKE statements. The Commodore 64, Amstrad CPC range and ZX Spectrum also allowed players with the proper cartridges or Multiface add-on to freeze the running program, enter POKEs, and resume. Some games tried to detect the Multiface and refused to load if it was present. The earliest models had no ability to "hide". Later revisions either included a switch, hid if the menu had been opened and closed before loading the game, or automatically hid.
For instance, with POKE 47196,201 in Knight Lore for the ZX Spectrum, immunity is achieved. Magazines such as Crash regularly featured lists of such POKE instructions for games. In order to find them a hacker had to interpret the machine code and locate the critical point where the number of lives is decreased, impacts detected, etc. Sometimes the term POKE was used with this specific meaning.
初期のチートは難しかったため、技術志向のプレイヤーがチートを悪用しました。しかし、ゲームシステムが進化するにつれて、チートを商品としてパッケージ化して販売することで、チート産業が出現しました。[ 5 ]チートブック、ゲームガイド、チートカートリッジなどのチートを可能にするものは、チート産業の形成を助け、チートをゲーム文化の一部として定着させました。[ 6 ]しかし、初期のゲームではチートは普遍的に受け入れられていたわけではありません。ゲーム雑誌のAmiga Powerは、チートは公平性の哲学の一部ではないという立場を取り、チートをする人を非難しました。彼らはまた、これを逆方向にも適用し、ゲームもプレイヤーを騙すことを許されるべきではないと主張しました。ガイド、ウォークスルー、チュートリアルはゲームをクリアするために使用されることがありますが、これがチートかどうかは議論の余地があります。さまざまなハッキング方法は、違法なものとしてのハッキングの概念における緊張と両義性に対する警告です。[ 7 ] その後、雑誌、ウェブサイト、さらにはコンソールやコンピュータシステムのチートやウォークスルーを掲載するテレビ番組「Cheat!」によって、チートはより人気になりました。 POKE のチートはトレーナーやチートコードに取って代わられました。一般的に、現代のシステムにおけるチートコードの大部分は、ゲーマーではなくゲーム開発者によって実装されています。多くの人がビデオゲームを自分でクリアする時間がないため、カジュアルゲーマーにとってゲームをよりアクセスしやすく魅力的にするためにチートが必要だと言う人もいます。[ 8 ]多くの場合、開発者はテストを容易にするためにチートを作成し、人々がゲームをプレイできる方法の数を増やしても、それらをゲーム内に残しました。[ 9 ]ゲームの人気が高まるにつれて、外部ソフトウェアやハードウェアを使用したチートは、ゲームコードの変更に関連する多くの著作権法上の問題を引き起こしました。
多くの現代ゲームでは、特定の秘密のボーナスをアンロックする場合を除き、チートコードが完全に削除されています。リアルタイムの実績追跡の使用により、どのプレイヤーもチートを行うことが不公平になりました。オンラインマルチプレイヤーゲームでは、チートは好ましくなく、禁止されており、多くの場合、BANにつながります。ただし、特定の条件を満たせば、シングルプレイヤーのチートがアンロックされるゲームもあります。また、Sourceエンジンを使用するゲームなど、開発者コンソールを使用して、シングルプレイヤーまたはサーバー管理者によってさまざまなチートを有効にすることができるゲームもあります。ビデオゲームは、古い形式のメディアと相互作用して、他の娯楽手段を開発してきました。[ 10 ] [ 11 ]
ゲーム内課金を採用している多くのゲームでは、チート行為は間違っているだけでなく違法であると考えられています。なぜなら、そのようなゲームでチート行為を行うと、本来は課金しなければ入手できないコンテンツ(パワーアップアイテムや追加コインなど)にプレイヤーがアクセスできるようになるからです。しかし、デジタルミレニアム著作権法に詳述されているように、既に所有されているソフトウェアを改変することに対する法律がないため、そのようなゲームでのチート行為は依然として法的にグレーゾーンです。[ 12 ]
最も基本的なタイプのチートコードは、ゲームデザイナーによって作成され、ビデオゲーム自体の中に隠されているもので、通常のゲームメカニズムの一部ではないあらゆる種類の異常な効果を引き起こします。[ 13 ]
チートコードは通常、秘密のパスワードを入力したり、コントローラーのボタンを特定の順序で押したりすることで有効化されます。[ 14 ]あまり一般的ではない有効化方法としては、特定のハイスコア名を入力したり、死亡時にキーやボタンを押し続けたり、特定の順序でアイテムを拾ったり、その他直感に反するアクションを実行したりすることが挙げられます。一部のゲームでは、ゲームパラメータを編集するために使用できるデバッグコンソールも提供される場合があります。効果としては、キャラクターのロック解除やキャラクターのパフォーマンスの向上などが挙げられます。たとえば、車の加速性能を向上させるなどです。[ 14 ]または、ゴールデンアイ 007の「ビッグヘッドモード」のような視覚的なギャグもあります。[ 15 ]一部のゲームでは、他のゲームのチートコードを使用すると、ユーモラスにペナルティが課せられます。たとえば、HereticでDoomのチートコードを使用すると、無敵になる代わりに即死したり、武器が提供される代わりに武器が剥ぎ取られたりするなど、目的とは正反対の効果が得られます。[ 16 ]
他のチート方法とは異なり、チートコードはゲーム開発者自身によって実装され、[ 13 ]多くの場合、ゲームの特定の側面を難なくプレイテストするためのツールとして使用されます。この種のチートの最も初期の例の1つは、1986年にコナミの開発者である橋本和久が、 1985年のアーケードゲーム「グラディウス」をニンテンドーエンターテインメントシステム用に移植する際に作成したコナミコマンドです。橋本は「アーケード版のグラディウスは本当に難しいですよね?私はあまりプレイしたことがなく、ゲームをクリアする方法がなかったので、いわゆるコナミコマンドを入力しました」と述べています。[ 17 ]
A bot is a type of artificial intelligence (AI)–based expert system software that plays a video game in the place of a human, to perform actions (repetitive or not) that enable advantages to be achieved.
Cheating can easily be achieved by modifying the game's data while it is running. These methods of cheating are often less reliable than cheat codes included in a game by its creators. This is due to the fact that certain programming styles or quirks of internal game logic, different release versions of a game, or even using the same game at different times or on different hardware, may result in different memory usage and hence the trainer program might have no effect, or stop the game from running altogether.[18] Modifying game data usually constitutes a violation of a software license agreement that prohibits modifying the program at all.

Cheating via memory editing involves modifying the memory values where the game keeps its status information. The way to achieve this will vary depending on the environment in which the game is running.

A cheat cartridge is attached to an interface port on a home computer or console. It allows a user to modify the game code either before or during its execution. An early example is the Multiface for the ZX Spectrum, and almost every format since has had a cheat cartridge created for it; such as Datel's range of Action Replay devices. Another popular example of this is Game Genie for Genesis, NES, Super NES, Game Boy, and Game Gear game consoles. Modern disc-based cheat hardware includes GameShark and Code Breaker which modify the game code from a large database of cheats. In later generation consoles, cheat cartridges have come to be replaced by cheat discs, containing a simple loader program which loads a game disc and modifies the main executable before starting it.
The legality of this type of devices has been questioned, such as in the case of Lewis Galoob Toys, Inc. v. Nintendo of America, Inc., in which Nintendo unsuccessfully sued Lewis Galoob Toys stating that its cheating device, the Game Genie, created derivative works of games and thus violated copyright law.
これを実現する最も基本的な方法は、メモリエディタソフトウェアを使用することです。このソフトウェアを使用すると、プレイヤーは特定のメモリアドレス内の数値データを直接編集できます。この種のソフトウェアには通常、メモリ検索機能が搭載されており、プレイヤーが既知の値(残機数、スコア、体力レベルなど)が格納されているメモリ領域を特定するのに役立ちます。メモリアドレスが指定されると、メモリエディタはそのアドレスを「フリーズ」し、ゲームがそのメモリアドレスに格納されている情報を変更できないようにすることもできます。
ゲームトレーナーは特殊なタイプのメモリエディタであり、特定のコンピュータゲームの実行時メモリを変更するための定義済み関数がプログラムに付属しています。[ 19 ]配布されるトレーナーには、多くの場合、タイトルに「+」と数字が1つ追加されており、これはトレーナーが利用できる変更の数を表しています。[ 19 ]
1980年代から1990年代にかけて、トレーナーはクラッキンググループによってゲーム本体に直接組み込まれるのが一般的でした。ゲームが最初に起動されると、トレーナーは通常、独自のスプラッシュ画面を表示し、トレーナーに関連するオプションの変更を可能にする場合もあり、その後、実際のゲームへと進みました。クラッキンググループのリリースリストや紹介文では、トレーナーのオプションごとに1つ以上のプラス記号がゲーム名の後に付けられていました。例えば、「Mega Krew presents: Ms. Astro Chicken++」のようにです。
多くのエミュレーターには、ゲームの実行中にプレイヤーがデータを変更できる機能が組み込まれており、Game Genieのようなチートハードウェアをエミュレートできるものもあります。さらに、一部のエミュレーターは、プレイヤーがデータの編集内容をエクスポートおよびインポートできるようにしています。コンソール向けゲームの編集テンプレートは多数収集され、チートパックとして再配布されています。
エミュレーターは、エミュレートされたマシン全体の状態を任意の時点で保存できるという利点も提供することが多く、ゲーム自体にセーブ機能がない場合でも、ゲーム内の任意の時点でセーブすることが可能です。「インスタントリプレイ」などのチート機器も、一部のゲーム機で同様の動作を可能にします。
メモリ編集よりもやや特殊なコードインジェクションは、 POKEコマンドなどを使用して、ゲームの実行中の実行可能コードを変更するものです。ZX SpectrumコンピュータのJet Set Willyの場合、人気のチートとして、プログラム内のZ80命令DEC (HL)(ライフを1つ減らす役割を担っていた)をに置き換えるというものがありNOP、これによりプレイヤーは実質的に無限のライフを得ることができました。[ 20 ] Microsoft Windowsでは、 DLLの使用によるビデオゲームのハッキングが一般的です。ユーザーはサードパーティのプログラムを使用して、選択したゲームにDLLを注入します。[ 21 ]
セーブデータを編集することは、ゲームデータを間接的に変更する手段となります。永続ストレージ内のファイルを変更することで、ゲームがセーブデータをロードしようとした際に復元される実行時ゲームデータを効果的に変更することが可能です。
16進エディタは、セーブデータファイルを編集する最も基本的な手段でした(例えば、『デューンII』のような戦略ゲームでプレイヤーに多額のお金を与える場合など)。しかし、ゲームエディタと同様に、専用のゲーム編集ユーティリティがすぐに登場し、特定のゲームのセーブデータを簡単に編集できる機能などが搭載されたため、16進エディタはこの用途ではほとんど使われなくなりました。
セーブデータが複数のファイルに保存されている場合、これらのファイルを組み合わせるだけで不正行為を行うことが可能です。例えば、あるファイルが宝箱の中身を表し、別のファイルがプレイヤーの持ち物を表す場合、プレイヤーは宝箱からアイテムを取り出す前と後にゲームを保存し、アイテムを取り出す前の宝箱ファイルと、その後の持ち物ファイルを使ってゲームを続けることができます。プログラムのロジックがアイテムの複数所持を制限しない限り、プレイヤーはアイテムを繰り返し取り出すことで、アイテムを複数入手することが可能になります。
オンラインゲームにおける不正行為の別の方法として、クライアントとサーバー間の送受信ネットワークトラフィックを改変する方法がある。
この概念の初期の実装例の1つは、ラグスイッチに見られました。ラグスイッチとは、ネットワークトラフィックを一時的に制限するハードウェアまたはソフトウェアのメカニズムを指します。ほとんどのチートとは異なり、Xbox OneとPS4コンソールで使用できたため、人気が高まりました。ファーストパーソンシューターでは、ラグスイッチの一般的な用途は、プレイヤーにリスクを与えることなく敵の位置を把握できることでした。[ 22 ]
例えば、プレイヤーが部屋に敵がいるかどうか確信が持てない場合、ラグスイッチを起動してネットワークトラフィックを一時的に遮断することができました。これにより、プレイヤーは部屋に入って敵の位置を偵察することができ、その動きはゲームサーバーに送信されません。結果として、サーバー(および敵)の視点から見ると、プレイヤーのキャラクターは事実上安全な位置に留まっていました。プレイヤーは敵の位置に関する必要な情報を収集したら、ラグスイッチを解除して通常のプレイを再開することができました。その後、多くのゲームがラグスイッチの効果を制限するために「アンチデシンク」対策を実装しました。これには、接続が切断された場合にクライアントゲームがプレイヤーの移動を阻止するなどの対策が含まれます。
より現代的な手法では、通常、「中間者攻撃」スタイルの低レベルなパケット編集や偽造が用いられます。例えば、対称暗号鍵をゲームのメモリから読み取ることで、受信パケットへのアクセスが可能になります。これらのパケットを編集することで、クライアントゲームにサーバーの現実を反映しない情報を提供できます。つまり、敵プレイヤーが移動速度を低下させる能力を使用した場合、減速係数の詳細を示すパケットを低い値に変更することで、クライアントゲームに低い値を適用するように操作できます。このような手法は、単純なメモリ操作ほど一般的ではなく、通常は特定のシナリオでのみ使用されます。[ 23 ]
達成可能な実績やハイスコア記録、あるいはその両方が存在するゲームにおいて、チート行為は、不正行為を行わないプレイヤーが正当な手段では達成不可能または極めて困難な実績やスコアを簡単に達成することを可能にする。代表的な例としては、以下のようなものがある。
マルチプレイヤービデオゲームでは、チート行為が蔓延している。シングルプレイヤーゲームを容易にするためのチートコードなどの手段は以前から存在していたが、マルチプレイヤーゲームでは開発者はしばしばチート行為を防止しようと試みてきた。しかし、最初の人気インターネットマルチプレイヤーゲームが登場したことで、チート行為は新たな局面を迎えた。以前は、ほとんどのゲームがローカルネットワークやコンソールでプレイされていたため、他のプレイヤーがチート行為をしているかどうかを見分けるのは比較的容易だった。インターネットの登場によりマルチプレイヤーゲームの人気が高まり、プレイヤーに匿名性が与えられ、チート行為に関する情報が共有されるようになったことで、状況は一変した。
一人称視点シューティングゲームにおけるチートの例としては、エイムボット(プレイヤーがターゲットを狙うのを補助し、ユーザーに不公平なアドバンテージを与える)、ウォールハック(プレイヤーが固体または不透明なオブジェクトを透過して見ることができる、またはテクスチャを操作または削除できる)、メッシング(ゲーム開発者が意図していない方法でアイテム/NPC/プレイヤーを別のオブジェクト/プレイヤー/場所のグラフィック境界に押し込む行為)、ESP (他のプレイヤーの情報を表示する)などがあります。また、ターゲットのヒットボックスのサイズを大きくして、ターゲットの近くに当たったショットがヒットとして認識されるようにするチートもあります。
オンラインのトレーディングカードゲームにおいて、デバイスをジェイルブレイクして複数のアカウントを作成し、より多くの報酬を得る行為は、アカウントを1つしか持っていないプレイヤーにとって不公平であるため、不正行為とみなされる可能性がある。
In online multiplayer games, a player may use macro scripts, which automatically find items or defeat enemies. The prevalence of massively multiplayer online games (MMORPGs) such as World of Warcraft, Anarchy Online, EVE Online, EverQuest, Guild Wars, and RuneScape has resulted in the trading of in-game currency for real-world currency.[29] This can lead to virtual economies. The rise of virtual economies has led to cheating where a gamer uses macros to gain large amounts of in-game money which the player will then trade for real cash.[30] The Terms of Service of most modern online games now specifically prohibit the transfer of accounts or the sale of in-game items for real-world money. However, the enforcement of these terms varies from one company to another, many turning a blind-eye to such trading as detection and prevention requires resources and banning players also results in losses of revenue.
Cheating in online games is common on public game servers. Some online games, such as Battlefield 1942, include specific features to counter cheating exploits, by incorporating tools such as PunkBuster, nProtect GameGuard, or Valve Anti-Cheat. However, much like anti-virus companies, some anti-cheat tools are constantly and consistently bypassed until further updates force cheat creators to find new methods to bypass the protection.
In single-player games, there are a number of plug-ins available to developers to use to stop cheaters. An obfuscator will scramble code so it is unreadable by decompilers, rename events/properties/methods and even add fake code. An obscurer will encrypt variables in memory and mask out strings. Anti-cheat toolkits have a variety of tools such as: detecting speed hacks, encrypting player preferences, detecting time cheats, detecting wall hacks and more. These can be used in most multi-player games as well.
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite web}}: CS1 maint: url-status (リンク)