報告ログイン
アーカイブ · 未編集のまま保存
コミュニティ保存プロジェクト

可能な限りシンプルなお願い

2026年6月30日にサーバーが停止する前に書かれたまま保存しています。以下のお願いと、その前提となっている期限は、当時のまま残しています。

Bethesda や Microsoft が継続的に関わらなくても、2026年6月30日以降もすべてのプラットフォームで Blades を動かし続けられるように、Bethesda がコミュニティのためにできる最小限のこと。

以下はすべて、ひとつの考えに集約されます:保存に適した最後のクライアントビルドを1つと、短い技術引き継ぎ文書。パブリッシャーがこのお願いに応じる理由についての戦略的な説明は、戦略ページにあります。このページでは技術的な詳細を扱います。

お願い 1

FairPlay を外した iOS ビルド。

FairPlay の暗号化を外した iOS クライアントの最終ビルドを1つ、一般に公開すること。これがなければ、iOS 版の保存は不可能です。

App Store のバイナリは FairPlay で暗号化されており、復号には適切な iOS バージョンの脱獄済み端末が必要です。クリーンな IPA がなければ、AltStore や Sideloadly のようなサイドロードツールも役に立ちません。コミュニティだけでは、クリーンな iOS バイナリを手に入れる方法がありません。

FairPlay を外してエクスポートした最後のビルドを、長く残る場所(Bethesda の保存ページ、コミュニティのパートナー、アーカイブのリンク1つなど)に置いてもらえれば、App Store から消えた後も iOS 版を生かし続けられます。

Bethesda の負担
一度きりの、数時間程度の開発作業。
Bethesda のリスク
ほぼゼロ。同じバイナリがすでにプレイヤーの端末に配布されています。
お願い 2

保存用ビルドでサーバーのエンドポイントを設定可能にする。

iOS の保存用ビルド(と同等の Android ビルド)が、ユーザーが上書きできるリソースからサーバーのホスト名を読み込むようにします — iOS では Servers.plist、Android では同等のリソース。

名前付きのエンドポイント(auth、game、matchmaking など)の短い一覧を用意し、それぞれをホスト名または IP に対応させます。初期値は Bethesda の現在の本番ホストとして出荷し、コミュニティの再署名者が再署名時に差し替えます。

副作用:複数の独立したコミュニティが互いに調整することなく自分たちのサーバーを運用でき、1つのクライアントを入れたまま、時期に応じて別のサーバーに向けることもできます。

Android では:コミュニティはすでに、これを実現する改造 APK を作っています。この機能を備えた公式の Android ビルドは、法的なグレーさを減らしユーザーの信頼を高めるための好意的な対応であって、必須ではありません。Android の保存はそれなしでも成り立ちます。このお願いが最も重要なのは iOS です。

Bethesda の負担
わずか — ビルドフラグ1つと小さなリソースの読み込みだけです。お願い1とまとめて対応できます。
Bethesda のリスク
iOS ではなし(このビルドはすでに App Store にはありません)。Android でも本番の動作は変わらず、上書きが意味を持つのは再署名されたコピーだけです。
お願い 3

保存用ビルドで、ユーザーがインストールした証明書を信頼する。

ビルドがユーザーのインストールした CA を信頼するので、クライアントはコミュニティが署名した TLS 証明書を使うコミュニティサーバーと通信できます。

iOS:保存用ビルドから NSPinnedDomains(または独自の証明書ピンニング)を取り除きます。ピンニングがなければアプリは標準のシステムの信頼ストアを使い、iOS ではそこにユーザーがインストールした構成プロファイルも含まれます。

Android:本番のマニフェストに、ユーザー CA を信頼する network_security_config を含めます。これがないと、Android 7 以降はユーザーがインストールした CA を標準で拒否します。

このお願いが満たされないと、お願い2の設定可能なエンドポイントは役に立ちません。通信が始まる前に、クライアントがコミュニティサーバーの TLS 証明書を拒否してしまうためです。

Bethesda の負担
Android ではマニフェストに1項目、iOS では Info.plist のキーを1つ削除するだけ。ごく簡単です。
Bethesda のリスク
保存用ビルドについてはなし。現在の本番アプリはピンニングをそのまま維持します。
お願い 4

分かりにくいプロトコルの詳細についての、短い技術引き継ぎ。

観測された通信だけからはサーバーエミュレーターが再構築しにくい部分を説明する文書 — コードの公開ではなく、数ページのテキストです。

  • 認証とセッショントークン。形式、有効期間、クライアント側のものが不透明なセッション ID 以上の意味を持つかどうか、サーバーが前提としているクライアント組み込みのシークレットの有無。
  • セーブ状態の権威。どのサブシステムがサーバー側を正とし(町、インベントリ、キャラクターのステータス)、どれがクライアント側を正とするか。整合ルールと競合の解決方法。
  • アリーナ UDP 暗号化。鍵の導出、libsodium AEAD のパラメータの選択、シーケンス番号、パケットのフレーミング。コミュニティは現在、実行時に Frida のフックで鍵を抜き出しています。文書があれば、それをクリーンな再実装に置き換えられます。
  • 改ざん防止署名。リクエスト本文に対する HMAC やリクエスト署名の方式と、そこで使われるシークレット。
  • IAP レシート検証。Bethesda のサーバーが Apple/Google のレシートを検証する流れと、購入の復元に対してコミュニティサーバーがどう対応すべきか。
  • その他、サーバー側を再実装する人が見落としそうだと Bethesda のエンジニアが考える点。
Bethesda の負担
エンジニア数日分の執筆作業。コードの公開ではありません。
Bethesda のリスク
低い。文書が扱うのはインターフェースであって実装ではなく、独自のコードやアセットは一切公開されません。
長期的な願い。理想は、多くの古いゲーム(Doom、Quake、Command & Conquer Remastered のソース公開など)で何年も経ってから実現したように、クライアントとサーバーを GitHub でオープンソース化することです。今それが難しい理由は理解しています。そのため、上の4つのお願いは、その問題に触れずに実現できる範囲に意図的に絞っています。

このページでは、Bethesda への最もシンプルで具体的なお願いを説明しています。より広い戦略的な背景(なぜ重要なのか、なぜパブリッシャーが応じうるのか、どんな代替案があるのか)は、戦略ページにあります。Bethesda Softworks、ZeniMax Media、Microsoft Corporation とは提携していません。The Elder Scrolls は ZeniMax Media Inc. の商標です。