Skip to content

Vibeverse統合仕様

概要

Vibeverse は Vibe Jam 2026 の公式ゲーム間ポータルプロトコルである。本ページでは、Rift Survivors における Vibeverse 統合の詳細仕様を定義する。

必須ウィジェット

Vibe Jam 2026 の参加要件として、以下のウィジェットスクリプトを index.html に組み込む:

html
<script async src="https://vibej.am/2026/widget.js"></script>

重要

このウィジェットは非同期で読み込み、ゲームの初期表示を妨げないこと。

Inbound フロー(外部 → Rift Survivors)

他のVibe Jamゲームからプレイヤーが来訪するフロー。

フロー全体図

詳細シーケンス

パラメータ解析ルール

重要: パラメータの任意性

portal=true 以外のすべてのパラメータはオプショナルである。 パラメータの存在に依存したロジックを書いてはならない。

"All parameters except portal are optional and may or may not be present — do not rely on their presence." — Vibeverse 公式仕様

パラメータ解析の擬似コード:

typescript
function parsePortalParams(url: URL): PortalCharacter {
  const params = url.searchParams;

  // portal=true の検出が唯一の必須チェック
  if (params.get('portal') !== 'true') {
    return null; // ポータル経由ではない
  }

  // すべてのパラメータはオプショナル — デフォルト値で補完
  return {
    username: params.get('username') ?? 'Drifter',
    color:    params.get('color')    ?? '#00ffff',
    speed:    Number(params.get('speed')) || 5,
    hp:       Number(params.get('hp'))    || 100,
    avatarUrl: params.get('avatar_url') ?? null,
    ref:      params.get('ref')         ?? null,
  };
}

ポータル経由時の制約

制約理由
名前入力画面を表示しないusername パラメータ(またはデフォルト値)を使用
キャラカスタマイズ画面を表示しないcolor パラメータ(またはデフォルト値)を使用
設定画面を表示しない即座にゲーム体験を開始する
ログイン/認証を要求しないブラウザゲームとして即プレイ

ポータル経由プレイヤーのデータは sessionStorage に保存する。 ブラウザを閉じると自動消去され、次回は新規プレイヤーとして扱われる。


Outbound フロー(Rift Survivors → 外部)

プレイヤーがVibeverseポータルから他のゲームへ移動するフロー。

フロー全体図

リダイレクトURL構築

https://vibej.am/portal/2026?username={username}&color={color}&speed={speed}&ref={OUR_URL}

送信パラメータ

パラメータ値の取得元
usernameプレイヤーの現在の名前username=Drifter
colorプレイヤーの現在のカラーコードcolor=%2300ffff
speedプレイヤーの速度ステータスspeed=7
ref本ゲームのURLref=https://our-game.pages.dev

詳細シーケンス


戻りポータル

生成条件

  • Inbound フローで ref パラメータが 存在する 場合のみ、ロビーに戻りポータルを生成する
  • ref が存在しない場合、戻りポータルは 表示しない

挙動

戻りリダイレクトURL

戻りポータルに入った場合、受信時のパラメータを保持して ref 先へリダイレクトする:

{ref}?portal=true&username={current_username}&color={current_color}&speed={current_speed}

設計意図

戻りポータルでは受信時のパラメータではなく 現在のプレイヤー状態 を送信する。これにより、Rift Survivors で装備変更やレベルアップした結果が戻り先に反映される。

戻りポータルの表示仕様

項目仕様
表示位置Vibeverseポータルの右隣
ラベルRETURN TO {ref のドメイン名}
カラーアンバー(#ffaa00
ライフサイクルセッション中のみ存在(sessionStorage に紐づく)
非表示条件ref がない場合 / セッション終了後

ポータル経由プレイヤーと正規プレイヤーの統合

データ保存の違い

項目正規プレイヤーポータル経由プレイヤー
保存先localStoragesessionStorage
永続性ブラウザを閉じても保持セッション終了で消去
キャラ作成手動入力パラメータから自動生成
装備保存・引き継ぎセッション中のみ
レベル永続的に蓄積セッション中のみ

ゲーム内での扱い

  • ポータル経由プレイヤーも正規プレイヤーと 同じゲームプレイ が可能
  • ダンジョンミッションへの参加可能
  • 装備の獲得・変更可能(セッション中のみ保持)
  • ポータル経由プレイヤーには名前の横に ✦ マークを表示(Vibeverseからの漂流者であることを示す)

エラーハンドリング

ケース処理
portal=true だがパラメータが一切ないデフォルト値でキャラ生成、カットイン演出後にロビーへ
ref のURLが不正(非HTTP/HTTPS)戻りポータルを生成しない
color が不正なカラーコードデフォルトの #00ffff を使用
speed / hp が数値でないデフォルト値(5 / 100)を使用
avatar_url が無効なURLデフォルトアバターを使用