tmsblogo.jpg
 『とり飯ブログ』は、同人サークル『イーグリ設計局』の附属ブログです。
 

チートのソフトキル

チートのソフトキル
チートへの対抗は下策中の下策だが…

以前の記事でプレイヤーのチートに対する最善の対策方法は「北風と太陽」に倣ってノーガード戦術でゆくことだ、とお伝えしましたがあえてチート対策機構を実装するとして、理想的なチート対策機構とはどのようなものであるかについて論じていきたいと思います。

検出機構の存在自体を意識させない

チート検出機構の存在を露骨にアピールするとチートするつもりのない一般プレイヤーも誤作動を恐れて忌避する可能性があります。
チートの犯行を発見したとしても、チート対策機構の存在そのものを通告してはいけません。チート対策機構の存在が露呈すると、作者がプレイヤーを監視しているのでは、というようなネガティブな情報がすぐに広まります。

ペナルティは厳禁

プレイヤーがプレイしているのは海賊版ではなく当然正規版です。
正当な権利を行使して入手したゲームで、チートしたからという理由で処罰するのはよろしくありません。

理想的なチート検出機構の動作は、改変のターゲットになりそうな変数のバックアップを随時取得し、改変された変数を即座に復元するという挙動です。
この時重要なのが、保存されるバックアップの値は作品独自の計算式によって暗号化されていなくてはならないということです。
バックアップ元の数値と同じであると、チートツールで検索した時に同値の値が見つかるのでバックアップであるとバレます。

チートの手口とは

プレイヤーは画面上に表示される数字を手がかりに変数のアドレスを割り出し、その際にはチート対象であるゲームの制作ツール特有の簡単な暗号化数式を用いてメモリ上での数値を割り出します。
例えばツクールVXaceで作られたゲームは、例えば500というゲーム内の数字はツクールVXace特有の2n+1という計算式で暗号化されメモリ上では「1001」という数値になっています。
プレイヤーはこの「1001(500)」を変更したい値の2n+1を代入してチートを行い、例えば元の値を「5000」にしたいのであれば「10001」と入力します。
最初にチートしたい数値を入力した時点ではアプリケーション内から吐き出される膨大な量の同値の変数が出現するため、次にこれらの中から目当ての数値を探しだすために、ゲーム内で目的の変数を変動させます。
1でも-1でも動けば最初の検索でヒットした中から変動した変数を見つけ出せばよいので、キャラクターの経験値と現在所持金はもっとも手軽に狙いやすいターゲットなのです。

具体的なチートのターゲットとなるのは、各キャラクターの現在経験値、所持金、18禁RPGでは淫乱度などでしょう。
要所をガードするだけでもチートの常習犯にまともにプレイするように仕向けられる事ができます。

(キャラクターの能力値は、変動がレベルアップのタイミングのみであるとチートが面倒になるが、
 能力アップアイテムがあるとこまめに変動させられるため操作しやすい)

チートでできない事

まず、ツクールゲームの仕様ではゲームがリセットされる〈プレイ中からタイトル画面に戻る〉とチートツールが取得した変数がすべてリセットされます。
そのため、あるセーブデータで手に入れたアイテムを他のセーブデータで99個追加する、といった行為はできません。
(必ずそのセーブデータで一回は手に入れている必要がある)
また、セーブデータを直接的に書き換える事もできません。ゲームをプレイしながら変数を操作し、その後セーブすることでしかチートによる編集結果を残すことができません。
RPGツクールXP向けのセーブデータの直接的な書き換えツールは存在していますが、VX以降のものは一時期存在してはいたものの、現在入手不可能になっています。
また、壁抜けもうさみみハリケーンやCheatEngineなどの変数チートツールでは不可能です。

また、変数チートツールでは画面上に表示されていない変数を操作することは困難なので、ボスのHPも公開であるか非公開であるかでチートの難易度が大きく変わります。

ツール不要のエロシーン全開放チート

詳細な手口は秘匿とさせていただきますが、18禁RPGの多くは共通の方法によってエロシーン全開放チートが可能です。
これは、個々の18禁RPGが採用しているRGSS素材特有の脆弱性を突いたものですが、少し知識のある方であれば簡単に思いつくのではないでしょうか。
このチート方法に対抗する手段としては、要となっているファイルのファイル名をうまく偽装して存在もうまく隠匿することです。

判定に用いてはいけない要素
・特定のステージを作者の最速記録よりも素早くクリアした

プレイヤーの1~2割は作者よりもそのゲームが上手だと考えてください。作者が自己記録を根拠にチート判定を行うと作者よりも上手い人を弾いてしまう事になります。
例えば、東方地霊殿Lunaticはノーミスクリアやノーボムクリアの記録保持者もネット上にちらほら見受けられますが、(出典元は不明)作者であるZUN氏は自身でギリギリクリアできる程度までに調整したとコメントしていたそうです。
とり飯での実例を出すと、東方鉄飛船FFのクリア後のおまけであるダメージトライアルでは発売直後に作者の最高記録がすぐさま塗り替えられました。

余談:ひよこ13はロリクエ2のプレイ中にほとんどのボスに毒が効く事を発見していましたが、作者さんに問い合わせたところ意識してそういう設定にしたとではないとのことでした。(現在は修正済み)

下策中の下策である理由
これらの要素を兼ね合わせた上で、さらにチートを行っていないプレイヤーに対して誤作動が起こらないことを確認するためのテストプレイも必要となってくるため、チート行為に対してマトモな対策をしようとするとゲーム本編のクオリティを上げるのに使われるべきリソースが大きく損なわれてしまいます。
上記で提案したチート対策機構(対変数操作)は技術的にはかなり敷居の高いもので、ゲーム本編をチート無しで楽しめるようにするほうが簡単だと思います。

つまり、チートに対抗する方法はノーガードが最善であるということです。

すべての記事の一覧を参照する
 
 
Comment






(編集・削除用)


管理者にだけ表示を許可
四五,六四事件,發正念,反共,台灣問題,藏区,走私,激流中国,色情,民主【スパム対策】
 
 
最新記事
 
プロフィール

ひよこ13/とり飯

Author:ひよこ13/とり飯
Present address
三重県
Self introduction
革命的同人サークル
『イーグリ設計局』議長です。

 
最新コメント
 
更新速報
 
お得な情報
 
DLsiteおすすめ
東方鉄飛船 -Flying Fortresses Over The Sky-

WWII英雄列伝 泥の中の虎 オットー・カリウス

パトルの軍事博物館2~地震兵器の恐怖~

 
リンク
 
スポンサードリンク
 
カテゴリ
 
amazonお買い得
 
月別アーカイブ
 
検索フォーム
 
スポンサードリンク
 
ランキングに投票!
人気ブログランキングへ

にほんブログ村 ゲームブログへ
Top
Copyright © ひよこ13/とり飯 / Designed by Paroday