チート対策について考えてみる
はいどーもこんにちは、ツミオです。
本日はチート対策について書いていきたいと思います(RPGツクールMVとUnity)。
目次はこんな感じ。
- チート対策は必要か
- セーブデータの改ざん手法
- セーブデータの改ざん対策
- メモリ改ざん手法
- メモリ改ざん対策
- コード改ざん手法
- コード改ざん対策
- まとめ
なお具体的なチートのやり方やツールについては一切触れません(悪用されたら困るので)。
チートの概要を紹介し、それに対して取れる対策方法を考えてみよう、という感じです。
チート対策は必要か
最初からこの記事の存在意義が揺らぐ問いかけですが、そもそもチート対策って必要なのでしょうか?
例えばスマホゲーム(オンラインゲーム)なら必須でしょう。
チートで不正にキャラクターを強くされると、ゲームが崩壊します。
「なんだこいつずっと無敵状態じゃないか」とかですね。
それはユーザーの不満に繋がり、ひいては売上の減少にもつながるでしょう(知らんけど)。
ですがここで僕が対象として考えているのはエロゲです。
僕のスタンスとしてはチートしたいならすればいいんじゃない? というものです。
というのも、オンライン機能を実装しているエロゲはともかくとして)、ふつーのエロゲはチートをされても別に誰も困らないんですよね(笑)
作者として「ちゃんと遊んで欲しい!」というのはあるかもですが、そこまで致命的に困ることはなく、ユーザーが単にゲームを楽にクリアできるくらいです。
そこを踏まえた上で、どのようなチートがあり、対策として取れることは何があるのかを考えていきたいと思います。
セーブデータの改ざん
真っ先に思いつくのはセーブデータの改ざんでしょう。
RPGツクールMVとUnityそれぞれの改ざん手法を見ていきます。
RPGツクールMVでのセーブデータ改ざん
RPGツクールMVではセーブに使うスクリプトはほぼほぼ固定でしょう。
セーブデータはJSON形式で保存されているため、ユーザーはそのデータを簡単に書き換えることができます。
ただし後述するように、若干の対策が取られてはいます(セーブデータの圧縮が目的なのだとは思いますが……)。
Unityでのセーブデータ改ざん
Unityでセーブデータを保存する際に使われる手法の一つはPlayerPrefsでしょう。
入門記事とかでデータの保存によく使われているかと思います。
こちらはWindowsの場合だとレジストリにデータを保存するため、ユーザーが簡単に値を改変することができます。
他の方法としては例えばJSON形式でセーブデータを保存する方法があります(RPGツクールMVと同じですね)。
こちらも生のデータを保存してしまっていると、ユーザーはそのデータを簡単に書き換えることができます。
フォロワー以上限定無料
続きが読めます
無料
【 プラグイン制作応援プラン 】プラン以上限定 支援額:300円
続きが読めます
このバックナンバーを購入すると、このプランの2019/08に投稿された限定特典を閲覧できます。 バックナンバーとは?
支援額:300円