コンテンツにスキップ

Changelog

このページでは、各バージョンの具体的な変更内容を記録しています。

ダウンロード、バージョン番号、チェックサムを見たい場合は リリースノート を参照してください。

  • Unity hosted data-plane attach を roomId + playerId ごとの single-flight にし、descriptor の重複 request と KCP session の重複置換を防ぎました。
  • Unity Direct KCP data-plane は kcp_handshake_ack を受け取った後だけ connected になります。reconnect では先に古い KCP session を閉じ、500ms -> 1s -> 2s で retry し、古い attempt の callback を破棄します。
  • Unity runtime は STATE_NOT_FOUNDINVALID_STATE_SCOPEINVALID_REQUESTFORBIDDEN を business error として扱います。STATE_NOT_FOUND は主要な global state key に default を入れ、connection-service failure として表示しません。
  • bridge/contracts/data-plane.md に data-plane single-flight、reconnect 時の close 順序、handshake ack、stale attempt の扱いを追記しました。
  • Unity / Godot / GameMaker SDK Environment に PREVIEW を追加し、IndieGamesPass Preview desktop client と \\.\pipe\igp-desktop-sdk-preview へ接続できるようにしました。
  • Unity MirrorTransportDemo debug panel に Rematch button を追加し、Unity / Godot hosted session の rematch send regression test で command code 16 を固定しました。
  • Unity reliable data sending now drains by available KCP WaitSnd capacity instead of a fixed byte-rate/token bucket, with a fallback per-drain cap when WaitSnd is unavailable.
  • Unity reliable send queues now return kErrorSendQueueFull when capacity is exhausted. Mirror transport treats this as reliable-channel loss and disconnects the affected peer so state can be rebuilt cleanly.
  • Unity Mirror transport now prioritizes small reliable payloads, stops silently dropping inbound queued transport messages, detects 10-second inbound peer silence, and best-effort flushes disconnect packets on shutdown.
  • Unity reliable reassembly now evicts the oldest partial message under inflight/buffer pressure instead of throwing, and reports reassemblyEvicted in network diagnostics.
  • Unity hosted data-plane status now recovers from stale error state when KCP is still alive, avoiding misleading status after transient transport errors.
  • Unity SDK に独立 version の任意 Cloud Archive パッケージ cn.indiegp.sdk.unity.cloud-archive 0.1.4 を追加しました。cloud save の load/save は desktop session 経由で転送され、slot"1" から "5" の固定値です。version / baseVersion、409 conflict 時の currentVersion を扱えます。
  • desktop session の capability に cloudArchive を追加しました。cloudArchiveForward は capability がない場合に早期エラーになります。Cloud Archive の API 失敗レスポンスは Desktop の normalized error body を解析し、旧 API envelope とも互換性を保ちます。
  • Unity release に Cloud Archive の任意 .unitypackage を追加し、release script、Unity package test、installation docs、Release Notes、download table に反映しました。
  • Unity KCP RTT 統計に stable/raw の 2 つの見方を追加しました。KCP にすでに送信待ちがある状態で heartbeat が送られた場合、その sample は congested として LastRTT / RawAvgRTT / 診断ログにだけ入り、通常の AvgRTT 表示を汚さないようにしました。
  • Unity ネットワーク診断に rttLastMsrttAvgMsrttRawAvgMsrttCongestedpingQueueDepth を追加し、短い spike が game payload の queueing、実際のネットワーク揺れ、受信側 backlog のどれかを見分けやすくしました。
  • Unity のネットワーク診断ログと画面 overlay を別々のスイッチに分けました。EnableNetworkDiagnostics は sampling/logging だけを有効にし、ShowNetworkDiagnosticsOverlay が debug panel の表示を制御します。これにより、ログを有効にしても debug UI が自動表示されません。
  • Unity の point-to-point reliable message に outgoing scheduler を追加しました。reliable fragment は token bucket、1 回の drain で送る payload 上限、WaitSnd の高低水位に従って複数 frame に分散され、Mirror や大きな payload の burst が KCP に一気に流れ込むリスクを下げます。診断には netOutQueuenetOutSentnetOutThrottle も出ます。
  • Unity KCP 受信側の burst drain 上限を上げ、必要に応じて KCP receive buffer を拡張するようにしました。固定 buffer が小さすぎて正当な大きめの message が受信 queue の先頭に残り続けることを避けます。診断には recvLimitrecvBufGrowrecvOversize も出ます。
  • KCP pong ごとの通常 RTT ログを止め、短い network burst 中に高頻度ログが Unity main thread の jitter を増幅しないようにしました。
  • Unity に任意のネットワーク診断を追加し、WaitSnd、Mirror produced、KCP out/recv、hit64pktQueuereassembly と診断 overlay を確認できるようにしました。
  • Unity P2P のポーリング互換キューに上限を設け、イベントのみを使う統合で SDK 内部キューが無制限に増えないようにしました。
  • 協商された reliable chunk サイズを自動的に制限し、JSON/base64 で包んだ chunk が KCP frame 上限を超えないようにしました。
  • Unity のネットワーク callback を SDK のネットワーク状態 lock の外で呼ぶようにし、ゲーム側 callback が重い処理をした場合の SDK 側への増幅を減らしました。
  • Unity runtime のバージョン報告を明示的なパッケージバージョンに切り替え、導入側のバージョン誤判定を避けました。
  • Unity hosted session で同じルーム内の rematch が waiting に戻ったとき、KCP data plane と P2P セッション状態をリセットし、次のラウンドが古い data-plane 状態を再利用しないようにしました。
  • Unity SDK に任意の Lying Bottle パッケージ cn.indiegp.sdk.unity.lying-bottle を追加し、プレイヤープロフィール、バッグ、ショップ、注文などの bridge 呼び出し向けに型付き desktop-session 転送入口を提供しました。
  • Unity desktop session に request/response 呼び出しサポートを追加し、IGPRuntimeManager から desktop session 経由で Lying Bottle リクエストを転送できるようにしました。
  • Lying Bottle quickstart、README、中国語開発者ガイドを追加し、最新の bridge guide に合わせてフィールド、ルート、購入数量ルールを整理しました。
  • Unity SDK の desktop session 接続時に hosted bootstrap リクエストを追加し、IGPRuntimeManager が desktop から hosted ルームの初期化パラメータを取得できるようにしました。
  • IGPDesktopSessionClient / IGPDesktopSessionProtocol に hosted bootstrap のリクエスト、レスポンスモデル、プロトコル定数を追加し、関連契約をルートの igp-proto から生成するようにしました。
  • Unity SDK に、同じルーム内で進行中にマップが変わるイベントを追加しました。ゲームは IGPRuntimeManager.onMapChanged または IGPEventManager.onMapChanged で受け取れます。
  • IGPMapChangeData を追加し、変更前後の mapPublicId / mapVersionId と更新済みルームスナップショットを含めました。
  • Unity quickstart、イベント説明、ルームライフサイクルサンプル、トラブルシューティング、Web サイトのルーム文書に、進行中マップ変更の接続説明を追加しました。
  • Unity / GameMaker / Godot の実績機能に、現在のゲームの全実績をまとめてクリアし、結果を返す API を追加しました。
  • Unity Mirror transport は、既定で Mirror v89.0.0 以上に対応します。推奨は引き続き v90.0.0 以上です。
  • desktop session の接続時に互換性チェックを追加し、desktop が古い場合や互換性がない場合は明確なアップグレードエラーを返すようにしました。
  • SDK は desktop が返す機能リストを見てから機能を呼び出すようになり、後続処理での失敗を減らしました。
  • SDK が desktop を起動する場合、本番環境では信頼済みの IndieGamesPass desktop のみを起動するようにしました。開発環境では引き続きローカルのデバッグ用 desktop を指定できます。
  • Unity Editor でゲーム exe のデバッグパスが未設定の場合、SDK は Unity Editor の現在のプロセスパスを使い、desktop 側の SDK デバッグルールで appId を検証します。
  • Unity SDK の初期化は明示的になり、ゲーム側で InitializeAsync() を呼び出す形になりました。
  • Unity Editor で IGPRuntimeManagerIGPConfig を自動で関連付け、存在しない場合は設定を作成します。
  • desktop session、host bridge、hosted session のプロトコル定数を共通ソースから生成するようにし、構造のずれを減らしました。
  • Unity SDK ドキュメントを最新の初期化方法と Editor デバッグ手順に合わせて更新しました。
  • Unity SDK に任意のコンプライアンスパッケージ cn.indiegp.sdk.unity.compliance を追加し、実名認証、未成年保護イベント、状態更新を扱えるようにしました。
  • 年齢区分と残りプレイ可能時間を取得する API を追加し、ゲーム側で独自に換算する必要を減らしました。
  • 実名認証や未成年保護でネットワークまたはサービス異常が発生した場合は、入場不可として扱い、既定メッセージを「network or service error」にしました。
  • Unity SDK のローカル通信、Editor デバッグ、オフライン認可キャッシュの扱いを改善しました。
  • Unity SDK の公開形式を .unitypackage に変更し、Unity Editor の Import Package から直接導入できるようにしました。

SDK 初期リリース。

  • 起動接続、実績、ルームロビー、リアルタイムメッセージ、状態、RPC など、Unity SDK の基本機能を提供しました。
  • Mirror を使ったマルチプレイ向けに、任意の Unity Mirror transport パッケージを提供しました。
  • 初回導入と検証に必要なパッケージ、サンプルプロジェクト、導入ドキュメントを提供しました。