ファイル用のカスタムコンテンツパッケージ


13

ゲームのプロトタイプを作成するために、かなりの数のモデルパックをWebサイトから購入しようとしています。契約書では、一般の人々がアクセスできないように保護する必要があると述べています。

私はValveゲームで働いたことを覚えています。彼らは基本的に各ゲームのすべてのコンテンツのアーカイブである.gcf(ゲームコンテンツファイル)を使用しました。サウンド/マテリアル/モデル/マップ/などに詰め込まれています。これに似たものを開発し、そこからファイルを追加/削除できる小さなツールを作成することは悪い考えではないかもしれないと考えました。

問題は、このようなことから始める方法が本当にわからないことです。Googleを試してみましたが、何を検索するのかさえ知りませんでした。誰かがアイデア、役に立つリンク、または他の何かを持っているなら、私はそれを大いに感謝します。

回答:


9

7-Zipなどのやや不明瞭なアーカイブ形式でデータを保存します。

カジュアルなユーザーがzipプログラムで簡単に開けないように、異なるファイル拡張子を付けます。

physfsを使用して、これらのファイルを読み取り、アクセスします。また、ローカルディレクトリのファイルも操作できるため、パッケージを再構築せずに新しいリソースを簡単にテストできます。強くお勧めします。

コンテンツの非常に簡単な暗号化を検討してください。XOR暗号化。パッケージをビルドするための小さなバッチファイルまたはスクリプトを記述し、入ってくるデータを暗号化し、同じ関数を使用してゲーム内のデータを解読します。

これは、決定されたユーザーを排除しません-何もしません。ただし、モデルパックの要件を満たすには十分です。


先日誰かがphysfsを勧めてくれました。素敵な小さなライブラリ。
-greyfade

8

プロトタイプを作成するだけであれば、アセットをGCF / ZIP / PAKファイルにパックすることについて心配する必要はありません。公衆はあなたのプロトタイプを見ることはありません!

さらに、ValveのGCFは、ZIPファイルと同じくらい、つまりゼロのコンテンツを保護します。ファイルは暗号化されていません。GCFScapeをダウンロードして、そのコンテンツを参照および抽出できます。

あなたが特定のニーズを持っていない限り、それはあなた自身のパックファイルシステムの作成に力を入れ価値はない今の ZIPファイルやOSの独自のファイル・アクセス・メカニズムによって満たされていないこと。実際、私が考えることができる唯一の理由は次のとおりです。

  • コンテンツの難読化(ファイルをいじくり回さないようにすることには、その用途があります。現在のニーズに対する過剰な使用をお勧めします)
  • ゲーム固有の方法で追加のファイルごとのメタデータを保存して、何らかの方法でコンテンツをデータ駆動しやすくします。
  • 何千もの小さなファイルにすばやくアクセスする必要がある、または連続したデータアクセスを確保するなど、OSのファイルシステムの制限を回避する。(これは、コンソールで作業する際の事実上の必要性です。)

私は完全に同意します。問題は、何らかの形の保護がなければデモをリリースできないことです。ZIPはよく知られていますが、PAKもほぼ同じです。。カスタムフォーマットと少なくとも平均ジョーはそれに抽出ツールを実行して、中に取得することができなくなります(バルブは、アクセスGCFファイルをゲームエンジンにハードコードされたCTXキーが必要)
エイダン・ナイト

おっと、エンターが入らないことに気づかなかった。とにかく、私はこのnemesis.thewavelength.net/index.php?p=35を見つけました。これは、Valveゲームから独立したGCF機能を提供するオープンソースLibのようです。私がここで見る問題は、それがあまりにも堅牢であり、後で拡張するために基本バージョンを作成するためにもう少し単純なものを探していたということです。(正直なところ、彼のコーディング方法は私の頭を痛めます)
エイダンナイト

4
好奇心から、この契約はあなたがどのように彼らのコンテンツを保護することになっていますか?
ブレアホロウェイ

2
それがポイントです!あなた本当にそれを安全にすることができないので、あなた(あなたが愚かでないなら)あなたがこれらの無能な人があなたに何をして欲しいかを正確に知ることは必須です。さもなければ、それが機能しないので、あなたは責任を問われる可能性があります(そもそもできなかった何かをしていない)。
o0 '。

3

この要件は、でたらめです。

ゲームはデータにアクセスでき、ユーザーはゲームにアクセスできるため、十分なスキルと判断があれば、データを保存するために使用した形式をリバースエンジニアリングし、だまされている場合は最終的なキーを取得することができます暗号化します。

セキュリティを追加することはできません。繰り返しますが、セキュリティを追加することはできません。あいまいさを追加することはできますが、あいまいさはまったく意味がありません。なぜなら、私が言ったように、十分なスキルと決断力を持つユーザーはそれを壊すだけだからです。

できないことを尋ねる何かに署名しないでください。


1
ほとんどのユーザーは「十分なスキルと決意」を持っていないため、あいまいさは無意味ではありません。同じことはあなたの家を守ることにも当てはまります。本当に入ろうとしている人なら誰でもそうすることができますが、それでも彼らにとっては扱いにくいと考える価値があります。
キロタン

カウンターポイント:自宅に侵入するのとは異なり、誰かがゲームに侵入すると、他の誰かがそれを行うのを簡単にすることができるため、あいまいさは無意味です。(他方では-ブレットはモデルを必要とするため、あいまいさは無意味ではありません。類似性が十分に保持されるとは思わない。)

誰かがあなたの家から金を盗んだ場合、彼はあなたの金を持っています。誰かがあなたのデータファイルからあなたの貴重なモデルをつかむなら、彼は彼が望む限り多くのコピーをすることができます。だから、いや、この例は機能しません。なぜなら、ここで何人の人があなたの価値のない保護を突破するかはまったく関係ないからです。1つで十分です。
o0 '。

1つで十分です。他の人がローカルファイルを見るのをやめてオンラインで見るために十分な注意を払い、誰かがオンラインでの投稿に努力した場合(これは違法ですが、ローカルコピーの表示はそうではありません)指示は、あなたがそれらを通り抜ける忍耐があることを前提としています。少しずつ助けます。
キロタン

1
少しでも助けになります?ユーザーがあなたのデータを見て何もしないのを防ぐのはまったく無意味なので、悲しくなります。このばかげた要件は、他の人がそれらのデータを再利用するのを防ぐために最も確かに存在するので、あなたは一生懸命努力して成功する決心した人だけを気にする必要があります(私が言ったように、長い目で見れば失敗することはないからです) 。
o0 '。

1

多くの場合、カスタムコンテンツパッケージは、拡張子が異なる.zipまたは.rarアーカイブであることに気付きます。もちろん、Webサイトで何らかのカスタム暗号化が必要な場合、これは役に立ちません。


ええ、Ogreはすでにzipファイルによるリソースの読み込みをサポートしています。チャットルームでzipファイルのパスワードだけを言っている人がいますが、それらをクラックするためのツールの量が多いので、それは本当に最初の選択肢ではありません。私は、Valveが使用する.gcfファイルと似たようなことを本当にしたいと思っていますが、開始するまでに何を検索すればよいかさえわかりません。
エイダンナイト

誰かがあなたのzipファイルをクラックした場合、あなたの問題はどうですか?本当に。彼らはあなたがそれらに投げることができるものは何でもクラックすることができます。あなたがしようとした。これらのライセンサーがあなたに責任を負わせるために、どこで線を引きますか?
ネバーレンダー

1

いくつかのアイデア:

1]標準モデル形式(.obj、.xなど)を使用しましたか、またはゲームに直接読み込むときにカスタムモデル形式を使用しますか?カスタム形式があり、モデル形式をリバースエンジニアリングして便利な形式にする必要がある場合は、日和見資産リッパーに対するある程度の保護をすでに得ています。

2] XOR暗号化に関するKylotanのポイントは優れています。ただし、暗号化文字列を示すソースデータ内のゼロの長いシーケンスを回避するために、疑似乱数生成シーケンス(ファイル名のハッシュによってシードされる可能性があります)を使用して暗号化できることに注意してください。もちろん、ファイルを読み込んだ直後にインプレースで復号化する必要がありますが、暗号化されたファイルを再起動可能なブロックに分割すると、これが実際にロード時間の負担になった場合、複数のスレッドでインプレース復号化を開始できます。しかし、私はこのレベルの「保護」が必要であることを真剣に疑っています-特に、他の人が言ったように、断固としたリッパーはそれを回避するでしょう。例えば。DLL迂回ライブラリを使用して描画呼び出しをインターセプトし、頂点バッファー/インデックスバッファーを直接読み戻します。

3]保護の要件について元のアセットプロバイダーに問い合わせる必要がありますが、プログラムのスプラッシュ画面やEULAにアセットの著作権に関する宣伝文句を追加するだけの場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.