移植性
インポートとエクスポート:あなたのストーリーは、あなたのもの
ここでは、私がなぜブラウザと Web をこんなにも愛するのかについて、もう 1 つの話をします。 2026 年までに、その急速な開発により、複数の独立したゲームエンジンを維持することなく、同じストーリーがブラウザ、スタンドアロン アーカイブ、Windows アプリ、macOS アプリで実行できるようになります。
2026 年 8 月にインポートとエクスポートが開始されるまで、Romergo には長年のベンダー ロックインの問題がありました。ユーザーはシステム内で何かを作成できますが、その結果を他の場所に持ち出す方法がほとんどありませんでした。それはもう当てはまりません。現在、プロジェクト所有者は文書化された .romergo アーカイブをダウンロードしたり、Web、Windows、macOS、Microsoft Store 用のスタンドアロン ゲームを準備したりすることができます。私は所有権が重要だと考えています。クリエイターのプロジェクトは、最終的に Romergo を離れることを決めたとしても、クリエイターに帰属するべきです。
そこで輸出入の仕事を始めました。
Web によってこのタスクがはるかに小さくなった理由
Romergo には、すでに 1 つの共有 Player ランタイムがありました。シーン、ブランチ、画像、音楽、ビデオ、翻訳、RTL 言語、およびローカル保存を再生する方法を知っています。通常、公開されたストーリーをサービスから読み込みますが、ストーリー自体と一緒にパッケージ化し、すべてのネットワーク アクセスを無効にして実行することもできます。
それがあらゆるゲーム輸出の基礎となりました。 Web ビルドでは、ZIP のルートに index.html が配置されます。 Windows と macOS は、同じ Player を強化された Electron シェルでラップします。 Microsoft Store は、MSIXUpload 内で同じゲームを受け取ります。ストーリーロジックは 4 回も書き換えられるわけではありません。 1 つのランタイムに関するパッケージのみが変更されます。
これは、プラットフォーム開発を 1 つのボタンで行うものではありません。 Windows と Apple には、署名、証明書、公証、ストア ルール、開発者アカウントがまだあります。しかし、プラットフォームごとに異なるストーリー動作を備えた個別のゲーム クライアントを構築するという、最もコストのかかる部分はもう重複しません。
エクスポートの仕組み
エクスポートは、任意のエディター状態をコピーすることから始まりません。 Romergo は、Saved に達した後に保存されたドラフト、または特定の保持された出版物バージョンを取得します。 Runtime とアセットはリビジョンによって固定されます。ビルド中にプロジェクトが変更された場合、古いシーンと新しいファイルを混合する代わりにジョブが再試行されます。
最初の結果は常に .romergo、つまり文書化された構造を持つ通常の ZIP です。これには、マニフェスト、プロジェクト、チャプタ、シーン、フロー グラフ、変数、プレゼンテーション、メディア、クレジット、および SHA-256 チェックサムが含まれます。アーカイブには投稿者の表示名と役割は保存されますが、電子メール アドレスや内部識別子は保存されません。
Saved draft or publication
↓
consistent runtime + asset revisions
↓
documented .romergo archive
↓
isolated platform builder
↓
private ZIP or MSIXUpload for 7 days
すべてのアセットは読み取られてハッシュされ、書き込まれる前に再度チェックされます。アーカイブはストリームとしてプライベート R2 ストレージに直接アセンブルされるため、ワーカーが数ギガバイトのプロジェクトをメモリに保持しようとすることはありません。
作成者が編集可能なプロジェクトのみを必要とする場合、プロセスはそこで終了します。ゲームの場合、.romergo はインターネットにアクセスできない隔離された Linux コンテナーに送信されます。コンテナーはアーカイブを検証し、スタンドアロン Player を追加して、次のいずれかのパッケージを生成します。
- Web / itch.io ZIP (ルートに
index.html) - Electron を使用した Windows x64 ZIP、ローカル保存、SteamPipe テンプレート、およびローカル署名キット。
- 個別の Apple Silicon アプリケーションと Intel アプリケーションを含む macOS ZIP。
- Microsoft パートナー センターから提供された ID を使用して MSIXUpload を行います。
Romergo は、Steam 認証情報、Apple Developer ID、証明書、またはパスワードを要求することはありません。公開と署名は作成者自身のアカウント内で行われます。このサービスは、アップロードできるビルドを準備し、7 日間非公開に保ち、所有者に有効期間の短いダウンロード リンクを提供します。
価格も私を驚かせました。制作プロジェクト「The Blizzard」には 101 個のメディア ファイルが含まれており、サイズは約 30 MB です。付属の Cloudflare リソースが使い果たされた後でも、現時点では構築にかかる費用はわずか数セントです。最大のコストは帯域幅や R2 ストレージではなく、パッケージ化の完了後にビルド コンテナーが存続し続ける時間でした。
ブラウザで「The Blizzard」 の製品バージョンを再生し、この測定に使用されたのと同じプロジェクトを確認できます。
輸入はさらに難しい問題でした
すでに十数ものビジュアルノベル ビルダーとゲームエンジンが存在します。 Twine、ink、Yarn Spinner、Ren'Py から参加するクリエイターもいます。ノート、Obsidian、または Notion にストーリーを記録する人もいます。他の人が、PDF、Markdown ファイルのフォルダー、スプレッドシート、音声メモ、ビデオ リンク、および画像のディレクトリを持ってくる可能性があります。
何千ものフォーマットがあり、毎年現れては消えていきます。それぞれにネイティブ インポーターを作成すると、5 年以内にパーサーの墓場が作成され、それぞれが他人の製品の 1 つのバージョンしか理解できなくなります。
答えはすでにすぐ近くにありました。AI エージェントです。
エージェントは、HTML、Markdown、PDF、オーディオ、画像、リンクのコレクションを受信できます。すべてを 1 つの構文にまとめる必要はありません。資料を読み、その順序を再構築し、繰り返し登場する文字を見つけ、あいまいな分岐を識別し、人に質問することができます。作成者はプロセスをガイドし、結果を確認するだけで済みます。
Romergo はすでに MCP をサポートしているため、インポート システムの基盤が事実上存在していました。世界中のあらゆる形式を Romergo に教える代わりに、私は 1 つの安定したターゲット、つまりエージェントが通常の Romergo プロジェクトを作成および検証するためのツールを保持しました。
エージェント支援インポートはどのようなものですか
source files and links
↓
user's MCP-capable agent
↓
inventory, preview, questions and warnings
↓
Romergo MCP authoring tools
↓
persisted readback + project validation
↓
creator reviews the result in Builder
まず、ユーザーは MCP 対応エージェントを Romergo に接続し、それにソース マテリアルを与えます。エージェントは、チャプター、シーン、キャラクター、場所、メディア、言語、および検出されたリンクのインベントリを作成します。 HTML、Markdown、TXT、およびテキストベースの PDF には、すでに romergo_inspect_story_source および romergo_import_story_source があります。新しい分岐を作成することなく、文字通りの線形転送を準備できます。
Twine、ink、Yarn Spinner、Ren'Py の場合、エージェントはコードのすべての部分が自動的に移動できるかのように装うことなく、ソースのネイティブ構造を解釈します。パッセージ、ノット、ノード、ダイアログ、選択肢、および基本的な変数は、通常、章、シーン、および分岐になります。マクロ、Python、Unity コマンド、画面、CSS/JS、外部関数は人間の判断が必要な警告となります。
プレビュー後、エージェントは MCP を通じて新しいプロジェクトを作成します。宣言型マニフェストを使用し、添付ファイルをバッチでインポートし、章エンティティを作成し、グラフとシーンのコンテンツを書き込むことができます。大規模なメディアは、モデル応答を経由するのではなく、1 回限りのアップロードを通じて R2 に直接アップロードされます。
書くことはフローの終わりではありません。エージェントは、romergo_get_chapter を使用して永続化されたチャプターを読み取り、romergo_validate_project を実行し、romergo_verify_quest_change の後でのみ終了します。次に、作成者は結果を Builder で開き、再生して、ソース形式や人間の意図を明確に再構築できなかった箇所を修正します。
AI ではレビューの必要性がなくなるわけではありません
エージェントは意味をよく理解できますが、推論を事実に変えることはできません。音声録音には外部の文字起こしツールが必要な場合があります。ビデオリンクは、ビデオをゲームにコピーする許可を与えません。複雑な Ren'Py コードまたは Twine マクロは、ストーリー コンテンツではなく別個のプログラムである場合があります。そのため、インポート フローではプレビューと警告が表示され、プロジェクトを作成する前に作成者に権限を確認するよう求められます。
Romergo のネイティブ アップローダーは、.romergo のみを受け入れます。この制限は意図的なものです。独自の形式は決定論的かつ安全にインポートされる必要がありますが、サードパーティのソースのオープンワールドは、推論して質問できるツールでより適切に処理されます。
今後5年への賭け
フォーマットは変わります。モデルもエージェントも変わります。しかし、境界は安定したままにすることができます。一方には人間による任意の作業があり、もう一方には文書化された .romergo 形式とプロジェクト作成ツール MCP があります。
数年以内に新しいエディターが普及したとしても、Romergo は必ずしも専用のインポーターを待つ必要はありません。エージェントは、同じコントラクトを通じてファイルを検査し、理解した内容を示し、結果を書き込むことができます。また、クリエイターが Romergo を離れることに決めた場合でも、オープンなアーカイブとスタンドアロン ゲームを維持します。
それが私にとって正しいと感じる方向性です。Romergo は、ストーリーを作成するのに便利な場所であるべきであり、人々がストーリーを奪うことを防ぐ檻ではありません。