2026-08-12 14:03:44 +03:00
|
|
|
# Changelog
|
|
|
|
|
|
2026-09-04 15:37:39 +03:00
|
|
|
## 1.0.0
|
2026-09-04 14:23:38 +03:00
|
|
|
|
2026-09-04 15:37:39 +03:00
|
|
|
Breaking changes, following the Rudder.Core 1.0.0 rework:
|
2026-09-04 14:23:38 +03:00
|
|
|
|
|
|
|
|
- Bundled `Rudder.Core.dll` updated to 0.4.0. The local scenario graph engine
|
|
|
|
|
is gone. `client.Scenario` is only `TriggerAsync(eventName)`. Pending nodes
|
|
|
|
|
surface on `client.Effects` (`OnNotification`, `OnStoreOffer`,
|
|
|
|
|
`OnLeaderboard`, `OnWait`, `OnQuest`, `OnBattlePass`,
|
|
|
|
|
`OnBattlePassLevel`, `OnScenarioCompleted`, `OnScenarioFailed`).
|
|
|
|
|
- Session types (`NotificationSession`, `StoreOfferSession`, …) are now
|
|
|
|
|
`*Effect` types. Completion methods: `Done`/`DoneAsync`,
|
|
|
|
|
`Purchase`/`Decline`, `End`/`Claim`, `ReportProgress`, `LevelUp`.
|
|
|
|
|
- `UnityPlanScheduler` removed together with the core `IPlanScheduler`
|
|
|
|
|
abstraction and `RudderClientOptions.Scheduler`; the factory no longer
|
|
|
|
|
wires a scheduler.
|
|
|
|
|
- `UnityPlanStateStore`, `UnityRealtimeTransportFactory`,
|
|
|
|
|
`Runtime/Sources/Realtime/` websocket adapters, and
|
|
|
|
|
`Runtime/Plugins/WebGL/RudderWebSocket.jslib` removed together with Core
|
|
|
|
|
`IPlanStateStore` / `IRealtimeTransport` / `RealtimeService`.
|
|
|
|
|
- `RudderConfiguration.RealtimeUrl` and `RudderUnityClientOptions.RealtimeUrl`
|
|
|
|
|
removed. `Rudder` no longer disconnects a realtime socket on quit.
|
|
|
|
|
- `Rudder.Update` still pumps `client.Update(Time.deltaTime)` (effects
|
|
|
|
|
heartbeat and wait-deadline checks).
|
|
|
|
|
- Samples and docs use `Auth.LoginWithDeviceAsync`. Pending effects are
|
|
|
|
|
fetched after sign-in via the heartbeat; `Scenario.RestoreAsync` /
|
|
|
|
|
`AuthorizeWithDeviceAsync` are gone.
|
|
|
|
|
- Core model fields are nullable now; samples check
|
|
|
|
|
`PurchaseResponse.Success != true` instead of `!Success`.
|
|
|
|
|
- Feature sample scenes for authentication, remote config, storage, stores
|
|
|
|
|
and inventory, leaderboards, and scenarios (`Samples~`).
|
|
|
|
|
- Removed the Cozy Collector example project from the Unity SDK repo.
|
|
|
|
|
- Added `AGENTS.md` with Unity integration rules for coding agents.
|
|
|
|
|
- `Rudder.Initialize()` is now synchronous, takes no arguments, and returns
|
|
|
|
|
`RudderClient`. Put `Rudder` in a scene with a `RudderConfiguration`.
|
|
|
|
|
The old `Initialize(RudderConfiguration)` (hidden GameObject) is gone.
|
|
|
|
|
|
2026-08-19 17:49:00 +03:00
|
|
|
## 0.3.0
|
|
|
|
|
|
|
|
|
|
Breaking changes, following the Rudder.Core 0.3.0 rework:
|
|
|
|
|
|
|
|
|
|
- Bundled `Rudder.Core.dll` updated to 0.3.0: the UGC surface is gone
|
|
|
|
|
(`client.Ugc`, `IUploadTransport`, `RudderClientOptions.UploadTransport`),
|
|
|
|
|
`BattlePassService` methods now take scenario context, `BattlePassSession`
|
|
|
|
|
exposes bound battle pass operations, and `BattlePassLevelSession.Complete`
|
|
|
|
|
was renamed to `Claim`.
|
|
|
|
|
- `UnityUploadTransport` removed together with the core `IUploadTransport`
|
|
|
|
|
abstraction; the factory no longer wires an upload transport.
|
|
|
|
|
- `RudderConfiguration` defaults now point at production
|
|
|
|
|
(`https://api.rudder.build`); `RealtimeUrl` follows the prod `wss://`
|
|
|
|
|
pattern but the relay is not deployed yet.
|
|
|
|
|
|
2026-08-12 14:03:44 +03:00
|
|
|
## 0.2.0
|
|
|
|
|
|
|
|
|
|
Breaking changes, following the Rudder.Core 0.2.0 rework:
|
|
|
|
|
|
|
|
|
|
- `Rudder` moved into the `RudderSdk.Unity` namespace.
|
|
|
|
|
- `Rudder` is now a thin facade: `Client`, `State` (`RudderState`),
|
|
|
|
|
`LastError`, `Ready` and `Initialize(RudderConfiguration)`. The service
|
|
|
|
|
shortcuts (`Rudder.Auth`, `Rudder.Stores`, ...) are gone — use
|
|
|
|
|
`Rudder.Client.*`.
|
|
|
|
|
- `Rudder.Initialize(configuration)` creates its own hidden GameObject when
|
|
|
|
|
no scene component exists; statics reset on Enter Play Mode without domain
|
|
|
|
|
reload, and realtime disconnects gracefully on quit.
|
|
|
|
|
- `LiveOpsConfiguration` renamed to `RudderConfiguration`
|
|
|
|
|
(`Create > Rudder > Configuration`), with tooltips, an empty-ProjectKey
|
|
|
|
|
warning and a configurable `TimeoutSeconds` (default 10).
|
|
|
|
|
- Core renames propagate: `client.Scenarios` → `client.Scenario`,
|
|
|
|
|
`BattlepassService` → `BattlePassService`, `SendAsync` → `TriggerAsync`,
|
|
|
|
|
`LoginViaDeviceAsync` → `LoginWithDeviceAsync(region, language, nickname?)`,
|
|
|
|
|
`StoresService.BuyAsync` → `PurchaseAsync(slug, offerId, idempotencyKey?)`.
|
|
|
|
|
- Scenario events reduced to the canonical set (`OnNotification`,
|
|
|
|
|
`OnStoreOffer`, `OnLeaderboard`, `OnConfigChanged`, `OnWait`, `OnQuest`,
|
|
|
|
|
`OnBattlePass`, `OnBattlePassLevel`, `OnScenarioCompleted`,
|
|
|
|
|
`OnScenarioFailed`); legacy events and `*Session` renames applied.
|
|
|
|
|
- Transport errors are now `RudderApiException` subclasses
|
|
|
|
|
(`RudderAuthException`, `RudderNotFoundException`, `RudderRateLimitException`,
|
|
|
|
|
`RudderNetworkException`); the bare `Exception` in the upload transport and
|
|
|
|
|
the stringly `"network"` / `"http_error"` codes are gone.
|
|
|
|
|
- `UnityWebRequestExecutor` / `UnityUploadTransport` wait via
|
|
|
|
|
`UnityWebRequestAsyncOperation.completed` instead of busy-polling and apply
|
|
|
|
|
a configurable `UnityWebRequest.timeout`.
|
|
|
|
|
- `IRudderLogger` now reports a `RudderLogLevel`; `IUnityLoggerSink` mirrors
|
|
|
|
|
it and `UnityDebugLoggerSink` maps levels to `Debug.Log*`.
|
|
|
|
|
- Bundled plugins slimmed down: only `Rudder.Core.dll` ships. Newtonsoft.Json
|
|
|
|
|
comes from `com.unity.nuget.newtonsoft-json`; `Tiny-JSON.dll` and the
|
|
|
|
|
`System.*` facades were removed.
|
|
|
|
|
|
|
|
|
|
## 0.1.0
|
|
|
|
|
|
|
|
|
|
Initial UPM package: Rudder.Core wrapper with UnityWebRequest transport,
|
|
|
|
|
PlayerPrefs storage, websocket realtime and the Cozy Collector demo.
|