Changelog
このページでは、各バージョンの具体的な変更内容を記録しています。
ダウンロード、バージョン番号、チェックサムを見たい場合は リリースノート を参照してください。
Unreleased
Section titled “Unreleased”0.2.14 - 2026-07-22
Section titled “0.2.14 - 2026-07-22”-
Unity SDK
0.2.14のメインパッケージと、Mirror transport、Compliance、Lying Bottle、Cloud Archive、GameKit の各オプションパッケージを再ビルドしました。 -
hosted RPC 契約と Unity / Godot SDK の RPC 登録、解除、呼び出し、応答イベント、サンプル、プロトコルテストを復元しました。hosted command の番号
12から14、rpc_name、modeを再び有効化し、RPC realtime メッセージ名は SDK 制御トラフィック用として引き続き予約します。 -
Unity Mirror Transport の診断では、Mirror の
logicalChannelと各送信で実際に使用したeffectiveTransport(kcpまたはraw-udp)を区別します。raw UDP unreliable レーンが利用できない場合は KCP へのフォールバックも明示します。 -
Unity hosted KCP に read-only の
KcpHealthStateとKcpLastFaultReasonを追加しました。dead-link、致命的な socket エラー、送信キューのハード上限超過は、現在の data-plane を閉じ、ConnectionFailedに移行してonErrorで通知します。 -
内蔵 network overlay は
ShowNetworkDiagnostics/showNetworkDiagnosticsに変更され、health、直近の fault、RTT、queue、UDP 統計を表示します。 -
Unity KCP は
WaitSnd >= 1024で送信 backpressure を適用し、256 datagram の soft budget を超える UDP burst を適応的に drain します。 -
Arena KCP は MTU 1200 と拡張された remote ごとの UDP/KCP 進捗診断を使用し、Unity Mirror Transport の reliable batching はデフォルト 1024 bytes になりました。
-
Unity hosted KCP と raw UDP unreliable の診断で、高遅延、高 datagram レート、高バイトレートを対象とした構造化された観測専用 Warning を出力します。
-
Unity Mirror Transport は、許容範囲内の大きな reliable payload と深い受信キューを観測専用 Warning として記録し、パケット単位の概要は
Debugに限定します。 -
高遅延、高トラフィック、Mirror payload/queue の Warning は引き続き観測専用で、ネットワーク動作を変更しません。
-
異常は初回に即時記録し、継続中は最大 30 秒に 1 回集約します。高遅延と高トラフィックは、5 秒間安定して回復した後に 1 回だけ回復ログを記録します。
-
バインド済みの Mirror Transport は Runtime の
ConnectionFailedを即座に検知し、保留中の受信メッセージをクリアして、対応するクライアントとサーバーの切断コールバックを一度だけ通知します。
0.2.13 - 2026-07-13
Section titled “0.2.13 - 2026-07-13”- Published Unity SDK
0.2.13packages for the main SDK, Mirror transport, Compliance, Lying Bottle, Cloud Archive, and GameKit modules. - Reorganized the main Unity package source into
Core,Platform,Capabilities,Multiplayer,Diagnostics, andInternalcategories. Public APIs, namespaces, assembly identity, and Unity asset GUIDs are unchanged. - Unity in-game ready state APIs now live on
IGPRuntimeManagerasSetGameReadyAsyncandGetGameReadyStates. They reuse Arena player state atPlayer.State["gameReady"]; batch queries read the current room snapshot. - Removed the Mirror Transport ready APIs and the dedicated KCP
41004ready message path. Game ready state does not control Mirror connections. - Runtime Manager diagnostics now use the shared
IGPLogpipeline, includingInfogame-ready logs underscope=game-ready. - Unity GameKit adds
IGPProfile.GetProfileAsyncfor fetching the signed-in user’s complete current profile through the desktop-owned user context. - Desktop session command
GetDesktopUserProfile(22) returns profile JSON including avatar and background selections, avatar-frame render metadata, bio, name-change state, activity time, and pending nickname review state. - Unity keeps avatar PNG retrieval on the existing
GetDesktopUserAvatarAsyncpath while Profile exposes the selection metadata and public media URLs returned by desktop.
0.2.12 - 2026-07-10
Section titled “0.2.12 - 2026-07-10”- Published Unity SDK
0.2.12packages for the main SDK, Mirror transport, Compliance, Lying Bottle, Cloud Archive, and GameKit modules. - Unity hosted data-plane descriptors now carry raw UDP unreliable lane
metadata (
unreliableUdpHost,unreliableUdpPort,unreliableUdpToken,unreliableUdpExpiresAtUnixMs,unreliableUdpPayloadMaxBytes), while normalIGPNetwork.SendDataandIGPNetwork.SendReliableDataremain reliable KCP. - Unity SDK adds an internal raw UDP unreliable client for Mirror transport, including token hello/ack, session-targeted envelopes, negotiated payload limits, and receive dispatch.
- Unity Mirror Transport now defaults
Channels.Unreliableto raw UDP through theUse Raw UDP Unreliable Lanetoggle; disabling the toggle restores the legacy all-KCP reliable path. - Unity Mirror Transport reports the unreliable packet max from the UDP lane
(default
1200bytes) when the raw lane is enabled. - Unity GameKit adds a desktop-owned Share module that submits versioned text,
multi-image binary payloads, and game-defined extension data through desktop
session command
RequestDesktopShare. - Desktop session command requests now support binary
contentBytespayloads, and the SDK frame limit is raised to 16 MiB so Share can send up to 10 MiB of raw image bytes.
0.2.11 - 2026-07-07
Section titled “0.2.11 - 2026-07-07”- Published Unity SDK
0.2.11packages for the main SDK, Mirror transport, Compliance, Lying Bottle, Cloud Archive, and GameKit modules. - Unity
IGPConfig.debugLoggingis now anIGPLogLeveldropdown (Off,Error,Warning,Info,Debug) with minimum-level filtering, so projects can keep warnings/errors without logging every network payload. - Unity Mirror Transport now keeps low-frequency
Infosummaries for reliable payloads over 16 KiB or expected to fragment, including direction, peer, original/wire bytes, compression state, and estimated fragments. - Unity RTT HUD diagnostics now show UDP datagram rates, packet totals, and
socket byte totals alongside App RTT, KCP
srtt/rto, 1-second Queue averages, and 5-secondQ peakvalues. - Rebuilt the Unity
0.2.11packages so KCP/RTT diagnostics stay observational: heartbeatIsKcpAliveno longer gates P2P/Mirror sends, and readingKcpTransportStatsno longer advances UDP rate sampling.
0.2.10 - 2026-07-06
Section titled “0.2.10 - 2026-07-06”- Published Unity SDK
0.2.10packages for the main SDK, Mirror transport, Compliance, Lying Bottle, Cloud Archive, and GameKit modules. - Unity Mirror Transport now defaults connection retry attempts to every 60 seconds, connection timeout to 300 seconds, and peer silence timeout to 300 seconds.
- Unity hosted KCP now supports binary envelope v2 for reliable chunk payloads, while preserving the existing JSON/base64 fallback path.
- Unity Mirror transport now adds compression decision diagnostics and a separate reliable batch threshold for Mirror message coalescing.
- Unity KCP send and receive windows are now configurable, with focused protocol/runtime tests covering the new binary reliable chunk behavior.
0.2.8 - 2026-07-03
Section titled “0.2.8 - 2026-07-03”- Published Unity SDK
0.2.8packages for the main SDK, Mirror transport, Compliance, Lying Bottle, Cloud Archive, and GameKit modules. - Unity SDK logs now include a per-process
runIdand startupevent=session-startsummary with app, SDK, platform, transport, endpoint, room, and local player context. - Unity KCP and P2P diagnostics now use explicit
localPlayerId,sourcePlayerId, andtargetPlayerIdfields, add heartbeat timing details, and log payload size/checksum summaries without full base64 payloads.
0.2.7 - 2026-06-30
Section titled “0.2.7 - 2026-06-30”- Published Unity SDK
0.2.7packages for the main SDK, Mirror transport, Compliance, and GameKit modules. - Unity achievement unlock and progress calls now generate an
eventIdwhen callers omit one, so desktop-session achievement uploads have a default idempotency key. - Unity achievement progress reports now accept the optional
progressValueModefield forSETversusINCREMENTsemantics.
0.2.6 - 2026-06-25
Section titled “0.2.6 - 2026-06-25”- Published Unity SDK
0.2.6packages for the main SDK, Mirror transport, and Compliance modules. - Unity internal hosted session, KCP, P2P, and hosted realtime logs now share
the structured
[IGP SDK]format with timestamp, level, scope, path, and event fields while remaining gated byIGPRuntimeManager.DebugLogging. - Unity KCP receive-drain diagnostics now include payload, payload byte, frame, queue, RTT, and window snapshots in the unified SDK log stream.
- Unity Mirror Transport now compresses payloads from 2 KiB by default before SDK size classification, reducing large-message pressure earlier.
0.2.5 - 2026-06-24
Section titled “0.2.5 - 2026-06-24”- Published Unity SDK
0.2.5packages for the main SDK, Mirror transport, and Compliance modules. - Unity hosted KCP now emits structured
[IGP KCP]diagnostics for handshake, UDP/KCP receive, send failures, heartbeat RTT, and internal queue/window state. - Unity
IGPKcpClient.DiagnosticsSummarynow exposes a readable KCP network snapshot for diagnostics exports without parsing console logs.
0.2.4 - 2026-06-24
Section titled “0.2.4 - 2026-06-24”- Published Unity SDK
0.2.4packages for the main SDK, Mirror transport, and Compliance modules. - Unity hosted KCP now emits only
controlanddatatransport channels, matching Arena’s current control/data queue split.
0.2.3 - 2026-06-24
Section titled “0.2.3 - 2026-06-24”- Published Unity SDK
0.2.3packages for the main SDK, Mirror transport, and Compliance modules. - Unity Mirror Transport now exposes
PeerSilenceTimeoutSeconds, defaults peer silence detection to 120 seconds, and keeps the value clamped to at least 1 second for long payload or reconnect-heavy sessions. - Unity
IGPNetworknow emits peer activity when inbound payloads or reliable chunks are accepted, allowing Mirror Transport to refresh peer silence timers while large reliable messages are still being reassembled. - Unity Mirror Transport logs now include timestamps when debug logging is enabled, making transport events easier to correlate with game and platform logs.
0.2.2 - 2026-06-23
Section titled “0.2.2 - 2026-06-23”- Published Unity SDK
0.2.2packages for the main SDK, Mirror transport, and Compliance modules. - Unity
IGPNetworkcan now disable retaining incoming packets for polling when an event-only consumer such as Mirror Transport is bound, preventing duplicate receive queues from accumulating the same realtime data. - Unity Mirror Transport now follows
IGPRuntimeManager.DebugLoggingas its only logging switch, and stays silent when no Runtime Manager is bound.
0.2.1 - 2026-06-23
Section titled “0.2.1 - 2026-06-23”- Unity hosted KCP now clears pending large-payload reassembly state when Arena
sends
reliable-message-aborted, and ignores late chunks for the samereliableMessageIduntil the reassembly timeout window expires.
0.2.0 - 2026-06-22
Section titled “0.2.0 - 2026-06-22”- Unity hosted KCP now separates
control,data-small, anddata-largetransport channels so large reliable fragments do not share the same send queue with ordinary small payloads or control notifications. - Ordinary p2p small payloads keep the existing binary envelope path, while large reliable fragments continue to use JSON chunk metadata for SDK-side reassembly.
- Arena reports
data-largequeue overflow withreliable-message-abortedcontrol messages, and the Unity SDK recognizes and logs those control events. - Mirror Transport payload compression is now enabled by default with a 16 KiB threshold before SDK size classification.
- Published Unity SDK
0.2.0packages for the main SDK, Mirror transport, and Compliance modules.
0.1.11 - 2026-06-18
Section titled “0.1.11 - 2026-06-18”- Published Unity SDK
0.1.11packages for the main SDK, Mirror transport, and Compliance modules.
0.1.9 - 2026-06-16
Section titled “0.1.9 - 2026-06-16”- Unity Mirror transport reconnect windows now use a 30-second connect timeout and 30-second peer silence timeout while keeping connect requests throttled to at most once every 5 seconds.
- Unity Mirror transport pending connect requests are now throttled to at most once every 5 seconds without changing the existing control payload format.
- Repeated
ClientConnect()calls for the same pending host now keep the current retry window instead of resetting it and sending another connect request. - Unity Mirror transport connection handshakes now carry a connect attempt id,
so stale or repeated
ConnectAcceptpackets cannot fire duplicate client connected callbacks. - Published Unity SDK
0.1.9packages.
0.1.8 - 2026-06-15
Section titled “0.1.8 - 2026-06-15”- Published Unity SDK
0.1.8packages.
0.1.7 - 2026-06-14
Section titled “0.1.7 - 2026-06-14”- Rolled back Unity
IGPNetworkto the direct KCP send path throughIGPRuntimeManager.SendP2PMessage, removing SDK-side outgoing reliable scheduling and send-queue backpressure. - Removed network diagnostics summaries, KCP queue diagnostics, RTT congestion filtering, and the diagnostics overlay that no longer apply after the rollback.
- Restored the Unity P2P receive buffer to an unbounded
ConcurrentQueue, and removedIGPNetworkResult.kErrorSendQueueFullplus the matching Mirror transport disconnect handling. - Removed tests and documentation for the reverted bounded packet queue, outgoing scheduler, KCP diagnostics, and error code.
- Published Unity SDK
0.1.7packages.
0.1.6 - 2026-06-12
Section titled “0.1.6 - 2026-06-12”- 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_FOUND、INVALID_STATE_SCOPE、INVALID_REQUEST、FORBIDDENを 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を固定しました。
0.1.5 - 2026-06-12
Section titled “0.1.5 - 2026-06-12”- Unity reliable data sending now drains by available KCP
WaitSndcapacity instead of a fixed byte-rate/token bucket, with a fallback per-drain cap whenWaitSndis unavailable. - Unity reliable send queues now return
kErrorSendQueueFullwhen 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
reassemblyEvictedin network diagnostics. - Unity hosted data-plane status now recovers from stale
errorstate when KCP is still alive, avoiding misleading status after transient transport errors.
0.1.3 - 2026-06-09
Section titled “0.1.3 - 2026-06-09”- Unity KCP RTT 統計に stable/raw の 2 つの見方を追加しました。KCP にすでに送信待ちがある状態で heartbeat が送られた場合、その sample は congested として
LastRTT/RawAvgRTT/ 診断ログにだけ入り、通常のAvgRTT表示を汚さないようにしました。 - Unity ネットワーク診断に
rttLastMs、rttAvgMs、rttRawAvgMs、rttCongested、pingQueueDepthを追加し、短い 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 に一気に流れ込むリスクを下げます。診断にはnetOutQueue、netOutSent、netOutThrottleも出ます。 - Unity KCP 受信側の burst drain 上限を上げ、必要に応じて KCP receive buffer を拡張するようにしました。固定 buffer が小さすぎて正当な大きめの message が受信 queue の先頭に残り続けることを避けます。診断には
recvLimit、recvBufGrow、recvOversizeも出ます。 - KCP pong ごとの通常 RTT ログを止め、短い network burst 中に高頻度ログが Unity main thread の jitter を増幅しないようにしました。
0.1.2 - 2026-06-09
Section titled “0.1.2 - 2026-06-09”- Unity に任意のネットワーク診断を追加し、
WaitSnd、Mirror produced、KCP out/recv、hit64、pktQueue、reassemblyと診断 overlay を確認できるようにしました。 - Unity P2P のポーリング互換キューに上限を設け、イベントのみを使う統合で SDK 内部キューが無制限に増えないようにしました。
- 協商された reliable chunk サイズを自動的に制限し、JSON/base64 で包んだ chunk が KCP frame 上限を超えないようにしました。
- Unity のネットワーク callback を SDK のネットワーク状態 lock の外で呼ぶようにし、ゲーム側 callback が重い処理をした場合の SDK 側への増幅を減らしました。
- Unity runtime のバージョン報告を明示的なパッケージバージョンに切り替え、導入側のバージョン誤判定を避けました。
0.1.1 - 2026-06-09
Section titled “0.1.1 - 2026-06-09”- Unity hosted session で同じルーム内の rematch が waiting に戻ったとき、KCP data plane と P2P セッション状態をリセットし、次のラウンドが古い data-plane 状態を再利用しないようにしました。
0.0.8 - 2026-06-05
Section titled “0.0.8 - 2026-06-05”- Unity SDK の desktop session 接続時に hosted bootstrap リクエストを追加し、
IGPRuntimeManagerが desktop から hosted ルームの初期化パラメータを取得できるようにしました。 IGPDesktopSessionClient/IGPDesktopSessionProtocolに hosted bootstrap のリクエスト、レスポンスモデル、プロトコル定数を追加し、関連契約をルートのigp-protoから生成するようにしました。
0.0.7 - 2026-05-27
Section titled “0.0.7 - 2026-05-27”- Unity SDK に、同じルーム内で進行中にマップが変わるイベントを追加しました。ゲームは
IGPRuntimeManager.onMapChangedまたはIGPEventManager.onMapChangedで受け取れます。 IGPMapChangeDataを追加し、変更前後のmapPublicId/mapVersionIdと更新済みルームスナップショットを含めました。- Unity quickstart、イベント説明、ルームライフサイクルサンプル、トラブルシューティング、Web サイトのルーム文書に、進行中マップ変更の接続説明を追加しました。
0.0.6 - 2026-05-13
Section titled “0.0.6 - 2026-05-13”- Unity / GameMaker / Godot の実績機能に、現在のゲームの全実績をまとめてクリアし、結果を返す API を追加しました。
- Unity Mirror transport は、既定で Mirror
v89.0.0以上に対応します。推奨は引き続きv90.0.0以上です。
0.0.5 - 2026-05-12
Section titled “0.0.5 - 2026-05-12”- desktop session の接続時に互換性チェックを追加し、desktop が古い場合や互換性がない場合は明確なアップグレードエラーを返すようにしました。
- SDK は desktop が返す機能リストを見てから機能を呼び出すようになり、後続処理での失敗を減らしました。
0.0.4 - 2026-05-12
Section titled “0.0.4 - 2026-05-12”- SDK が desktop を起動する場合、本番環境では信頼済みの IndieGamesPass desktop のみを起動するようにしました。開発環境では引き続きローカルのデバッグ用 desktop を指定できます。
- Unity Editor でゲーム exe のデバッグパスが未設定の場合、SDK は Unity Editor の現在のプロセスパスを使い、desktop 側の SDK デバッグルールで appId を検証します。
- Unity SDK の初期化は明示的になり、ゲーム側で
InitializeAsync()を呼び出す形になりました。 - Unity Editor で
IGPRuntimeManagerがIGPConfigを自動で関連付け、存在しない場合は設定を作成します。 - desktop session、host bridge、hosted session のプロトコル定数を共通ソースから生成するようにし、構造のずれを減らしました。
- Unity SDK ドキュメントを最新の初期化方法と Editor デバッグ手順に合わせて更新しました。
0.0.2 - 2026-04-29
Section titled “0.0.2 - 2026-04-29”- Unity SDK に任意のコンプライアンスパッケージ
cn.indiegp.sdk.unity.complianceを追加し、実名認証、未成年保護イベント、状態更新を扱えるようにしました。 - 年齢区分と残りプレイ可能時間を取得する API を追加し、ゲーム側で独自に換算する必要を減らしました。
- 実名認証や未成年保護でネットワークまたはサービス異常が発生した場合は、入場不可として扱い、既定メッセージを「network or service error」にしました。
- Unity SDK のローカル通信、Editor デバッグ、オフライン認可キャッシュの扱いを改善しました。
- Unity SDK の公開形式を
.unitypackageに変更し、Unity Editor のImport Packageから直接導入できるようにしました。
0.0.1 - 2026-03-31
Section titled “0.0.1 - 2026-03-31”SDK 初期リリース。
- 起動接続、実績、ルームロビー、リアルタイムメッセージ、状態、RPC など、Unity SDK の基本機能を提供しました。
- Mirror を使ったマルチプレイ向けに、任意の Unity Mirror transport パッケージを提供しました。
- 初回導入と検証に必要なパッケージ、サンプルプロジェクト、導入ドキュメントを提供しました。