ゲームのリソースをオープンな目で見るのはプロではありませんか?


43

複雑なAPIと基本的には頭を使い果たしているzipファイルを処理しただけで、リソースをパックするのにまだ問題があります。人間の目に見えるリソースを単純なフォルダーに入れてゲームをパックすることもできると思いました。

それは専門家ではないでしょうか?個人的には、ゲームでそれを見たことがありませんでした。基本的には、プレーヤーはmap1.txtに移動してXを追加して壁を作成したり、プレーヤーのスプライトを変更したりするなど、 MSペイントのポニーに。


30
それを改造コミュニティと考えてください:)
Orin MacGregor

1
あなたは予算のあるプロのゲーム開発者ですか?このゲームで多くのお金を稼ぐつもりがない場合は大丈夫だと思います。ただし、いくつかのヒントがあります。気分が良くなる場合は、X-COM / UFO Defenseの保存ファイルを編集していた
wolfdawn

6
@ArthurWulfWhite:お金を稼ぐかどうかではなく、分割点は、改造されたリソースがゲームに与える影響だと思います。MMORPGの場合、改造されたリソース/クライアントは特定のプレーヤーに不公平な利点を与える可能性があるため、できるだけそれを防止したいでしょう。他の多くのゲームでは、改造に適したクライアントは、改造コミュニティがゲームを中心に発展することを魅力的にしており、一般的に良いことと考えられています。
ライライアン

1
モデルとbspファイルをカジュアルなゲーマーに公開することなく、Quake(1)の改造の側面は非常にうまく処理されました。簡単にアクセスできる状態に保ちながら、物を隠すのは悪くないと思います。X-COMで保存ファイルを編集できるという事実が気に入ったので、それを機能として見ました。しかし、money.txtというテキストファイルがあり、そこから開始する金額を入力するだけで、サンドボックスとゲームの間の境界がぼやけてしまうのは馬鹿げています。
-wolfdawn

2
Introversionの方法が気に入っています。名前を変更したzipファイルにファイルを入れます(例:)sound.dat。数百のファイルで圧縮されていないフォルダーを使用すると、(削除)インストールが非常に面倒になります。
トビアスキンツラー

回答:


44

いいえ、そうではありません。ゲームデータの変更は改造と呼ばれます。これは一般的な慣行であり、しばしばプラスの効果と見なされます。実際には、ゲームデータを可能な限り透過的に保ち、できるだけ手間のかからないように編集するのは良いことです。より多くの「上級」プレイヤーをターゲットオーディエンスとして選択している場合はなおさらです。

データに単純なフォルダー構造を使用するAAAゲームが多くないのは、カスタムの最適化されたアーカイブ形式を使用して読み込み時間を短縮するためです。欠点は、透明度の低下とツールチェーン内の追加の必要なツールです。ただし、小さいゲーム、つまり2Dゲームの場合、これら2つのことは通常、ロード時間の改善よりも価値があります。

人々が見るものがただの巨大な混乱ではないことを確認してください:)ファイルを適切なフォルダ構造に入れてください。


物事も盗まれないように詰め込まれています(プッシュされた場合、最終的には無効になります)
CobaltHex

15

他の答えに加えて、考慮すべき2つの重要な懸念事項:

驚くべき驚き
ゲームの途中で「ビデオ」フォルダを見つけたとしましょう。好奇心が強い、私は1つをクリックし、ゲームの最終的なカットシーンを偶然見る。

負けているチャレンジ
同じシナリオですが、保存されたゲーム形式には「ゴールド」の値があります。250から999999999に変更すると、機能します。突然、ゲームの楽しさを最大化する、慎重に作成された難易度カーブはなくなりました。

両方とも、誰かがゲームに興味を失う可能性があります。その結果、ゲームの全体的な印象が低くなる可能性があります(不公平ですが真実です)。

ターゲットオーディエンスの観点からこれらについて考えてください。特に若いプレイヤーは、これが彼らがしていることを本当に理解していなければ、自分の楽しみを台無しにする可能性があります。

改造を奨励したい場合でも、ユーザーが「偶然に」ゲームの体験を台無しにしないようにしたい場合があります。


4
その通りです。ゲームを修正する前に、いくつかのハードルを経験する必要がある場合は問題ありません。ビデオシナリオの+1
wolfdawn

14

おそらく、プロではないというのは間違った言葉です。ファイルを公開したままにしておくのが悪いことなのかどうかは、ゲーム次第です。

シンプルなシングルプレイヤーゲームの場合、プレイヤーと改造者はあなたを愛します。あなたは彼らにあなたのゲームを簡単に変え、彼らが望むことをする能力を与えるでしょう。そして、ゲームがどんなに小さくても、ゲームには常に modder が存在することに注意してください。改造が困難な場合、多くのゲーマーは軽視されます。結局、彼らはあなたのゲームを購入し、彼らが望むものは何でもできるはずです。

一方、ゲームアセットを簡単に編集することは、不正行為と見なされるため、マルチプレイヤーゲームには不適切です。悪意のあるプレーヤーはコンテンツを置き換えて敵をより目立たせたり、壁を透明にしたりすることができます。ゲームコードは実際にアセットが改ざんされていないことを強制する必要がありますが、「アセットパッケージ」アプローチには、このアクティビティ(あいまいさ)。


1
チェックサムテストをバイパスするのに十分であれば、パッケージ化されたアセットも台無しにできます。パッケージングがこれ以上安全だとは思わない。
mmyers

11

簡単な修正方法があります。コマンドプロンプトで次のような方法で拡張機能の名前を一括変更できます。

rename *.txt *.map

そして、それらを\ mapフォルダーに配置します

cmdを実行しているウィンドウからコマンドプロンプトにアクセスできます。

これは、ゲームを変更したいことを知っている作成者を止めることはなく、すべてのコンテンツをぶらぶらさせずにゲームをプレイしたいだけの人に、だらしない印象を残します。

はい、それでも編集可能です。

エリック・ロバートソンのコメントに答えるために

ゲームのコンテンツをプレイヤーから適切に隠したい場合は、それらのテキストファイルでRSA暗号化を使用して、そのファイルを1つのテキストファイルにマージできます。私はそれが無理をし過ぎていると思うが、これはあまり面倒ではないはずだ。


1
-1これは実際には「修正」ではありません。目に見えるリソースはまだそこにあります。
エリックロバートソン

6
@Eric Robertsonまあ、これはQuake(1)スタイルをパックすることについても言えるでしょう。資産を完全に隠す魔法の解決策はありません。これは、カジュアルプレイヤーからそれらを隠し、彼が言及した問題をいくらか回避するためのものです。暗号化を使用しない限り、フォルダー構造またはアセットパッケージに配置しても、アセットが存在しない(目に見える)わけではありません。
-wolfdawn

Linuxではファイル拡張子は重要ではないことを知っていますが、これはWindowsでも機能しますか?
jcora

1
@Baneファイル名はピリオドに関係なく、これを試して、.txtファイルの名前を.zip、.bmp、または.xyzに変更し、メモ帳で再度開きます。ファイル名は、PC上のファイルを閲覧している場合にのみ重要です。たとえば、.xyzには特定のアイコンが関連付けられています。xsoftwareでファイルを開く場合、デフォルトでは* .xファイルのみが表示され、メモ帳にはが表示されます。 txtファイル、mspaintはgif、jpeg、bmp、png、tiff、icoなどを表示します。ファイル名は単なる便利な規則です(そのため、ファイル内のデータを調べて分析する必要はありません。内容
。– wolfdawn

1
説明してくれてありがとう!その場合、WindowsはそのドメインのLinuxとそれほど大きな違いはないようです
-jcora

3

それが今までプロではなかった場合、それはもうないかもしれません。初期のゲームでは、主に知的財産(IP)を保持するために、独自のパッケージ形式を使用していました。

すべてのリソースを単一のアーカイブにパックすることで、基になるネイティブファイルシステムの断片化不要な関数呼び出しなどの制限を克服できます。これにより、クライアントのPCにパッケージを展開するときに断片化イベントが発生する可能性が低くなります。
最悪のシナリオでは、ハードディスクセクタの周りに散在する小さな個別のファイルリソースが存在することになります。(SSDの登場により、この点はしばしば議論の余地があります)

ただし、これらの利点はすべて、無料の(Unix)の古い.tarアーカイブ形式でも実現できます。

さらに、独自のパッケージ形式を使用することにより、バージョン管理、ファイルハッシュ、エンコーディング、ファイル内のポインター/リンクの欠如などの制限を克服することができます。

最後に、IPを明示的に保護する必要がない限り、インディーズ開発の透明性を主張します。


大きなポイントのようで提起MGOwen:に防止台無しには驚き、あなたがないようにするには...など、ファイルの拡張子の名前を変更し、変更ファイル属性、珍しいメディア・フォーマットを使用し、消費税メディア・ヘッダおよび他の場所に保存することができチャレンジ失う使用のバイナリシリアル化を必要に応じて、暗号化とおとり変数を追加して、ゲームの状態を保存するライター。

免責事項:私はゲーム開発者ではありません。この投稿は出発点としてのみ考慮してください...


1
「紛失チャレンジを防ぐには、バイナリシリアル化ライターを使用してゲームの状態を保存し、必要に応じて暗号化とおとり変数を追加します。」人々がカンニングをしたい場合、カンニングします。必要に応じて、メモリ内の4バイトがゴールドと相関し、変更を追跡するインメモリデバッガを使用します。
Random832

1
@ Random832それにアーメン。
ローレンツローザウアー

あなたの答えは間違っています。6000のTinnyファイルのコンテンツへのアクセスは、1つのファイルから同じコンテンツにアクセスするよりも私の経験では5〜10倍遅くなります。SSDでの読み込みに5秒かかる場合、通常のハードドライブから同じデータを編集可能なファイルに分割し、読み込み(HDDとSSD)で30秒を超えると15秒かかります。そのため、何らかの理由で、SSDの方がHDDよりも増加が顕著です。(両方の場合RAIDなし)
コヨーテ

@コヨーテ私はポストで同じポイントを主張したという印象を受けていました...?断片化(つまり、ハードウェアコントローラの制限、プラッタの物理的な限界...)+多くのファイルシステムAPI呼び出し(多くの場合、ラッパー経由)=スロー
ローレンツローザウアー

この特定の文は間違っています:「彼がSSDに到着すると、この点は議論の余地がありません」
コヨーテ

1

修正は簡単です。検索インデックスを作成すると、フィナーレ動画などが見つかります。

データファイルの場合:xorでビットを反転します

   realByte_cpp = readByte_cpp ^ 0x44; // xor

GREPから「Gold:250」を非表示にします。

同じ(ランダムな)xor値でエンコードするだけです。

シーンをカジュアルなユーザーから遠ざけるために、これを試してください:Machinariumはファイル名を変換し、\ videosが\ 0101になり、すべてのファイルに8進数のIDの後に.101が付いてファイルの関連付けが停止するようにしました。

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