EnfinitOSEnfinitOS
DevelopersConsumer render
Production-ready scaffold

Gaming SDK

Unity 6 (Awaitable), Unreal 5.5 (TPromise), Godot. IAB Gaming SIG 2024 viewability + dwell + interaction proof.

@enfinitos/sdk-gamingSubstrate GamingC#, C++, GDScript
Install

Get the SDK

npm install @enfinitos/sdk-gaming

About this status badge

Typed, tested, documented, and wired to the EnfinitOS platform endpoints that exist today. Vendor-side SDK integrations (Broadsign / VIOOH / DJI / Tizen / Alexa / Twilio / Stripe / etc.) land per-customer at pilot integration time — those bring the renderer/transport/exchange-specific code; the EnfinitOS half is ready.

README

The developer-facing documentation in full

The same README the SDK package ships with — rendered here at build time so what you read matches exactly what you install.

@enfinitos/sdk-gaming

EnfinitOS SDKs for the GAMING substrate. Three per-engine sibling implementations:

PathEngineLanguageStatus
unity/Unity 6 LTS (6000.x)C#full
unreal/Unreal Engine 5.5+C++full
godot/Godot 4.4+GDScript 2.0full

2026 platform notes

Unity

  • Unity 6 LTS (Unity 6000.x stream, released 2024). The SDK ships as a UPM package (com.enfinitos.gaming).
  • UnityEngine.Awaitable for the public async surface — Unity 6's in-engine async primitive that integrates with the main- thread dispatcher. Task interop via Awaitable.AsTask().
  • UnityWebRequest for HTTP — no third-party HTTP client (avoid IL2CPP build issues with HttpClient / Newtonsoft).
  • Compatible with: Universal Render Pipeline (URP), High Definition Render Pipeline (HDRP), the Built-in Pipeline. The SDK does not require any specific render pipeline.
  • Editor support: drag-drop InGameAdSurface MonoBehaviour via GameObject menu; custom inspector surfaces brand-safety verdict + viewability state.

Unreal Engine

  • UE 5.5+ is the supported floor. UE 5.4 added the UE::Tasks::TPromise framework the SDK builds on; UE 5.5 promoted it to the recommended async path. The SDK does NOT use the legacy OnProcessRequestComplete delegate pattern.
  • Nanite + Lumen + MetaHuman are mainstream — the SDK doesn't require them but is designed not to break them. In particular the InGameAdSurface component doesn't override GetActorBounds in a way that would interfere with Nanite's per-cluster culling.
  • C++20 is the language standard (UE 5.5 minimum). The SDK uses concepts + coroutine-style co_await on TPromises.
  • FHttpModule wraps the actual HTTP requests. The async surface is UE::Tasks::TTask-based.
  • Compatible with: all UE platforms (Win64, Linux, Mac, iOS, Android, PS5, XSX) — listed in the .uplugin manifest.

Godot

  • Godot 4.4 LTS+ (mid-2025) is the supported floor. The 3.x line is not supported.
  • GDScript 2.0 — typed signals (signal foo(value: int)), typed parameters + return types, async/await for HTTP.
  • The plugin registers a custom InGameAdSurface node in the editor; designers drag-drop it onto their scenes.
  • HTTPRequest is the supported HTTP path; the SDK does not pull in third-party Godot addons.

In-game ad surface model

The SDK models in-game ad surfaces as 3D geometric primitives with affordances:

  • Billboard — flat quad (stadium ad, virtual TV).
  • Wrapped — texture on a curved surface (logo on a can).
  • Volumetric — full 3D mesh replacement (the platform's asset replaces the host's placeholder prop).
  • Audio — non-visual; in-game radio insertion, NPC dialogue.

The platform's resolve scoring picks an asset whose geometry + MIME matches the surface. Each SDK exposes:

  • EnfinitOSGamingClient — top-level orchestrator (StartAsync, FetchAdAsync, Report*Async).
  • InGameAdSurface — host-attached component (MonoBehaviour / USceneComponent / MeshInstance3D subclass).
  • ViewabilityScorer — IAB Gaming SIG 2024 scorer.
  • ProofReporter/runtime/event-ingest wire glue.

IAB Gaming SIG 2024 viewability

All three SDKs implement the same spec:

ThresholdBillboardWrappedVolumetricAudio
Coverage≥ 50%≥ 50%≥ 50%n/a
Viewing angle≤ 30°≤ 60°≤ 30°n/a
Dwell≥ 2000ms≥ 2000ms≥ 2000ms≥ 2000ms
Gaze on surfacerequiredrequiredrequiredreplaced by "audible"

References:

  • IAB Tech Lab: "Measurement of Ad Inventory in 3D Spatial Environments" (Oct 2024).
  • MRC Viewable Ad Impression Measurement Guidelines (revised 2024 for in-game inclusion).
  • IAB Gaming SIG "In-Game Ad Format Taxonomy" (Mar 2024).

Brand-safety enforcement

Each resolved asset carries a ContentConstraintVerdict from the platform's Rights module. Host games:

  1. Trust the verdict at resolve time (the platform's resolve blocks anything the operator's constraints disallow).
  2. Re-check post-resolve if the scene state changes (the player drove into a war zone after the ad was resolved). The host calls surface.Dismiss() to drop the asset; the SDK reports a dismissed event.

The Unity Editor extension surfaces the verdict in the inspector so designers can see at edit-time whether an ad surface is brand-safe in a given scene.

Steamworks integration

Out of scope for this Tranche. Steamworks ships its own SDK and ad mediation; integrating EnfinitOS with Steamworks happens at the publisher's platform-integration layer, not in this SDK. The Unity SDK is compatible with games shipping to Steam — the SDK doesn't conflict with the Steamworks plugin — but no Steam-specific helpers are bundled here.

Endpoint surface

SDK callPlatform endpointStatus
FetchAdAsyncPOST /runtime/resolve + POST /runtime/grant with substrate: "GAMING"existing
ReportImpressionAsync / Viewable / InteractionPOST /runtime/event-ingestexisting
ContentConstraintVerdict (returned from resolve)platform's Rights module evaluationexisting
Brand-safety re-check post-resolveclient-side; no extra endpointn/a

30-line minimum-viable integrations

Each engine's canonical client file opens with a 30-line copy-paste sample:

  • Unity: unity/Runtime/EnfinitOSGaming.cs
  • Unreal: unreal/Source/EnfinitOSGaming/Public/EnfinitOSGamingClient.h
  • Godot: godot/addons/enfinitos_gaming/EnfinitOSGaming.gd
API reference

Hit the HTTP surface directly

The Gaming SDK is a thin client over the same governed HTTP API every other SDK calls. The full OpenAPI 3.1 reference lives on the docs site, published alongside the April 2027 platform launch.

Sandbox

Run this SDK against a real tenant

The browser demo at enfinitos.com/sandbox runs today against a shared synthetic tenant. The dedicated developer sandbox — your own persistent tenant, API keys, full HTTP-contract coverage — opens ahead of the April 2027 platform launch.