投稿記事

Unityの記事 (2)

ブラウンチップ☆ 2019/08/28 17:46

チート対策について考えてみる

はいどーもこんにちは、ツミオです。
本日はチート対策について書いていきたいと思います(RPGツクールMVとUnity)。
目次はこんな感じ。

  • チート対策は必要か
  • セーブデータの改ざん手法
  • セーブデータの改ざん対策
  • メモリ改ざん手法
  • メモリ改ざん対策
  • コード改ざん手法
  • コード改ざん対策
  • まとめ

なお具体的なチートのやり方やツールについては一切触れません(悪用されたら困るので)。
チートの概要を紹介し、それに対して取れる対策方法を考えてみよう、という感じです。

チート対策は必要か

最初からこの記事の存在意義が揺らぐ問いかけですが、そもそもチート対策って必要なのでしょうか?
例えばスマホゲーム(オンラインゲーム)なら必須でしょう。
チートで不正にキャラクターを強くされると、ゲームが崩壊します。
「なんだこいつずっと無敵状態じゃないか」とかですね。
それはユーザーの不満に繋がり、ひいては売上の減少にもつながるでしょう(知らんけど)。

ですがここで僕が対象として考えているのはエロゲです。
僕のスタンスとしてはチートしたいならすればいいんじゃない? というものです。
というのも、オンライン機能を実装しているエロゲはともかくとして)、ふつーのエロゲはチートをされても別に誰も困らないんですよね(笑)
作者として「ちゃんと遊んで欲しい!」というのはあるかもですが、そこまで致命的に困ることはなく、ユーザーが単にゲームを楽にクリアできるくらいです。

そこを踏まえた上で、どのようなチートがあり、対策として取れることは何があるのかを考えていきたいと思います。

セーブデータの改ざん

真っ先に思いつくのはセーブデータの改ざんでしょう。
RPGツクールMVとUnityそれぞれの改ざん手法を見ていきます。

RPGツクールMVでのセーブデータ改ざん

RPGツクールMVではセーブに使うスクリプトはほぼほぼ固定でしょう。
セーブデータはJSON形式で保存されているため、ユーザーはそのデータを簡単に書き換えることができます。
ただし後述するように、若干の対策が取られてはいます(セーブデータの圧縮が目的なのだとは思いますが……)。

Unityでのセーブデータ改ざん

Unityでセーブデータを保存する際に使われる手法の一つはPlayerPrefsでしょう。
入門記事とかでデータの保存によく使われているかと思います。
こちらはWindowsの場合だとレジストリにデータを保存するため、ユーザーが簡単に値を改変することができます。

他の方法としては例えばJSON形式でセーブデータを保存する方法があります(RPGツクールMVと同じですね)。
こちらも生のデータを保存してしまっていると、ユーザーはそのデータを簡単に書き換えることができます。

フォロワー以上限定無料

続きが読めます

無料

【 プラグイン制作応援プラン 】プラン以上限定 支援額:300円

続きが読めます

このバックナンバーを購入すると、このプランの2019/08に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

ブラウンチップ☆ 2019/08/21 10:20

コマンドバトル(仮)のα版0.01公開

はいどーもこんにちは、ツミオです。
本日は作成中のゲームのα0.01版を公開したいと思います。
が、まずは目次を。

  • コマンドバトル(仮)ってどんなゲーム
  • α版と正式版の違い
  • 操作方法
  • α版のダウンロード

コマンドバトル(仮)ってどんなゲーム

このゲームはバトルパートとADVパートにわかれています。
現在作業中のものは主にバトルパートなため、こちらについて今回は詳しくご紹介します。

バトルパート

1on1の対戦となります。
もしもあなたがスパロボリンクバトラーをご存知なら、それに近いと思っていただければ(笑)
共同制作者さんたちに売り込む際に作ったのは、以下のような画面です(注* 正式版はこれとは全く画面が異なる予定です)。

非常に貧素な画面ですね……。
これはあくまでも機能説明のために作成したもので、機能的に何が足りて何が足りないのかを把握するための試作品です。
とどのつまり破棄することが前提のものです。

詳しく見ていきましょう。
画面に女の子が2体表示されています。
左側がプレイヤーで、右側が敵となります。

画面下部の「スキル名ボタン」を押すと、「登録スキル名」の欄にスキルが登録されていきます。
こんな感じですね(画面はヒットアンドアウェイにカーソルを合わせたところ)。

全てのコマンドを登録し終えると、ターン開始ボタンを押すことができるようになります。
ターン開始ボタンを押したあとは自動で戦闘が開始していく……予定なのですが、α版ではプレイヤーがポチポチとマウスをクリックしないとダメです(笑)

登録したコマンドが全て終了すると(当たり前ですがエネミーも行動します)、1ターン終了というわけで、次のコマンドをまたポチポチと登録し、相手のHPを0にすれば勝利です。

以上が簡単なゲームの流れです。
なおプレイヤーとエネミーは交互にコマンドを実行しますが、いわゆる「電光石火」のような早業もあります。

成長システム

システム的にはプレイヤー側は以下の強化が可能です。

  • 新たなスキル獲得
  • 能力値の強化
  • パッシブスキル(あるいは装備)

ストーリーと絡める関係で実際にどこまでをユーザーに見せるかは不明ですが、一応こんなことができますよーということで。

ADVパート

本筋が一つあり、ミニストーリーをクリアしていくことで本筋が進むタイプの話を予定しています。
ミニストーリーをクリアするたびにプレイヤーが強化されたら面白いかなー? と思っています。
ただADVパートは現在まだ全くシステムを組んでいません(笑)
Unityをご存知の方向けの情報になりますが、Fungusを使って会話を組み込もうかなーとか、そんな感じの思案を進めている最中です。

α版と正式版の違い

今回のα版は、最初にも書いたとおり共同制作者さんたち向けに作った機能紹介用のゲームです。
したがって、深いゲーム性を期待しないでください。
あくまでも「こんなゲームを作ろうと思っているんだ!」とアピールするために作った試作品です。
画面デザインは適当ですし、操作性も難しかありません(笑)
それでもよければ……ということになります(ちゃんとした戦闘画面も完成次第挙げますので、そちらはご心配なく)。

また、今回のα版は3Dモデルを使用していますが、実際には2Dゲームの予定です。
こちらもご留意ください。

再掲ですが予定のバトル画面の画像もペタリ。

操作方法

基本はマウスクリックオンリーで大丈夫です。

  1. 全てのコマンドを埋める
  2. ターン開始を押す
  3. クリックでゲームを進める

クリックするたびにバトルログウィンドウに情報がどんどん追加されていきますので、ちょっと面倒ですがマウスホイールで追って行ってください。
内部で戦闘がどのようにおこなわれているのかわかると思います。

ゲームを終了したい場合はAlt+F4で閉じてください。
また、画面サイズは1920×1080のフルスクリーンでしか動作確認していません。

この辺りの不備もろもろ大丈夫だという方のみDLへお進みください。


この作品はユニティちゃんライセンス条項の元に提供されています

【 コマンドバトル(仮)応援プラン 】プラン以上限定 支援額:500円

このバックナンバーを購入すると、このプランの2019/08に投稿された限定特典を閲覧できます。 バックナンバーとは?

【 とにかく応援プラン 】プラン以上限定 支援額:700円

このバックナンバーを購入すると、このプランの2019/08に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

記事を検索