チートCheat)とは、直訳すれば「ズル」あるいは「騙す」という意味の英単語で、日本のコンピュータゲーム 用語としては、主としてメモリ エリアに細工するなどの手法で、制作者の意図しない動作をさせる行為を指す。日本では一般には改造ツールなどを使用して、データを改変する行為がチートとして知られる。

概要

この操作は、コンピュータの誤動作を誘発させる行為であるため、本来は推奨されない。しかし現在実行中のプログラムの動作チェックを行ったり、または不正な操作を行う上で実行される。特にコンピュータゲーム に関連してこの言葉が用いられる場合は主に後者を指す。

なおコンピュータが外来ノイズ 等により、偶発的に誤動作を起こす事があり、確率 の問題から、稀にそれが利用者にとって好ましい結果となりうるケースもあるが、これらはチート行為の範疇には含まれず、バグ の一種として捉えられることもある。

「チート」と"Cheat"

英語圏では、Cheatはごく一般的な単語であり、カンニング (和製英語)は英語ではCheatingと表現する。ポーカー では、ブラフ等を含む一種のテクニックをCheatと呼ぶ。コンピュータゲームにおいては、単なるズルや裏技隠しコマンド などを含めてCheatあるいはCheatingと呼ぶ。

当然、英語圏でも改造ツールは存在するが、「いんちき」「騙し」を強調するような場面でCheatを用いるのに対し、データを操作・改変すること自体に比重を置いて表現する場合は、MOD(ModifyあるいはModification:加減・修正)として区別する場合が多い。FPS の拡張MODや音源フォーマットとしてMODが存在するように、MODという単語自体には、ズルかどうかという意味は含まない。

日本語におけるチートは和製英語化しており、英語におけるMODまでを安直に含意して使用される場合があり、本来の意味とはやや変質(用途を限定)している点に注意する必要がある。

技術手法

この方法は、幾つかの手法が存在するが、主なものはマルチタスク OS 等で、複数のプログラムを実行できる環境で行われる物が多いとされる。

コンピュータは常に、プログラム内で一定のメモリエリア を確保して、実行に絡んで計算した結果や入力された値を、これらメモリに格納する。イメージとしては、作業の進行に従って、幾つものメモを残している状態を想像してすると分かりやすい。

チート行為では、これら実行中のプログラムが確保中のメモリエリアに他のプログラムから干渉、その内容を書き換える事で実行される。先の比喩に則れば、作業中に作られたメモに他人が改竄 を加える行為に当たる。これらの行為は、広義ではクラッキング として扱われる事もある。

このようして改竄されたメモリ内容を受け、プログラムが更に処理を続けた場合、プログラムの製作者が意図したのとは違う動作が行われる。更に先の比喩を続けるなら、メモに記載された商品発注の記載を書き換えられ、本来とは異なる商品を発注してしまったり、必要な量以上の商品を発注してしまったりという事態に繋がりかねない、という状態である。

このようにして、プログラムの動作を操ってしまうのが所謂チートである。

またプログラムによっては、実行結果をファイル の形でハードディスクやディスクドライブ に記憶させる動作を行う物もあるが、このファイルを書き換えてしまう行為もチート行為に含まれる。通常、プログラムは様々な計算結果を、自身で利用しやすい形でファイルに出力するよう設計されているが、保存後のファイルをリバースエンジニアリング 等の手法で解析、プログラムを誤動作させるべくファイルを改竄する行為も、このチート行為の範疇である。プログラム終了後の静的な状態にあるファイル(セーブデータ等)を改変する場合は、メモリのように動的に変化する物が対象では無いため、より簡単・確実に狙った動作を誘発させやすいと言える。

この他、プログラムの動作に強制的に介入して、設計された実行速度よりも速い速度で動作させるアクセラレーターや、一定の動作を自動的に繰り返させるマクロも、単調な所定の動作を繰り返す事で経験値等が稼げるゲーム上ではチート行為の一種とされている。

チート行為と社会現象

コンピュータが、特定のユーザーと一対一で作業している場合に於けるチート行為は、その結果(狙った結果にせよ、チート失敗によるデータ破損によるプログラムの制御不能な暴走にせよ)を含めて、ユーザー自身に責任があり、また他に迷惑が掛かる訳でも無いため、社会的な問題とは成らない。

しかしオンラインゲーム等では、ネットワーク で通信中の相手にも影響が出るため、チート行為が成功している場合には不公正な状態に、失敗してプログラムの暴走が起こった場合には相手側もその異常動作のとばっちりを受ける危険を孕んでいる。

教育とチート

オンラインゲームを含むコンピューターゲームに限らずコンピュータプログラムの動作は、すでに完成した状態の物を与えられても、その動作が判り難い。さらにいえばコンピュータの動作概念そのものも非常に複雑となっていて、判りにくい所があるのも事実である。

これらの「完成品を与えて、その動作を理解させる」という教育手法を行う上で、チートは一定の効果を生むと考えることも可能である。これらでは動作しているコンピュータとそのプログラムに外部から干渉し、この反応を確認することで、仕組みを直感的に理解する一助にもできる。

メモリに働き掛けるチートでは、16進数や「8ビット=1バイト」といったような様々な数値表現や単位系の相互関係に対する理解を深められると考えられる。