NextGenSoftware.OGEngine.Client
2.0.3
dotnet add package NextGenSoftware.OGEngine.Client --version 2.0.3
NuGet\Install-Package NextGenSoftware.OGEngine.Client -Version 2.0.3
<PackageReference Include="NextGenSoftware.OGEngine.Client" Version="2.0.3" />
<PackageVersion Include="NextGenSoftware.OGEngine.Client" Version="2.0.3" />
<PackageReference Include="NextGenSoftware.OGEngine.Client" />
paket add NextGenSoftware.OGEngine.Client --version 2.0.3
#r "nuget: NextGenSoftware.OGEngine.Client, 2.0.3"
#:package NextGenSoftware.OGEngine.Client@2.0.3
#addin nuget:?package=NextGenSoftware.OGEngine.Client&version=2.0.3
#tool nuget:?package=NextGenSoftware.OGEngine.Client&version=2.0.3
OGEngine Client
Part of the OASIS Omniverse ecosystem.
The OGEngine Client is a Native AOT .NET HTTP client for both the WEB4 OASIS API and WEB5 STAR API, plus the P/Invoke interop export layer that bridges those APIs into OGEngine-based native games (OQuake, ODOOM and others). Handles avatar authentication, JWT/refresh-token session management, inventory, quests, XP, karma, NFT minting and sync callbacks — exposing everything as C-callable exports so the game engine never needs to know about HTTP or JSON. Includes the native C interop shims (ogengine_sync.c, ogengine.h).
Portable shared contracts and Unity
Shared/OGEngine.Shared.csproj targets .NET Standard 2.1 and contains the game-engine-neutral invariants shared with managed adapters: the canonical WEB4 beam-in request/envelope/JWT parser, hosted development endpoints, optional NFT/GeoNFT identity normalization, and objective/quest completion transition ordering. It is always present in both the Edge and Remote-Only profiles because authentication is not an Edge-only concern. Native ODOOM/OQuake authentication and managed Our World authentication call this same contract; the native client then applies its existing token/session, WEB5 initialization and cache-warming lifecycle.
Our World keeps only Unity lifecycle and presentation behavior in its adapter, including the animated Beaming In... state and user-safe failure text. The generated Unity package carries NextGenSoftware.OGEngine.Shared.dll; authentication code is not copied or reimplemented in the game. Objective transitions from every WEB5 progress source map to OBJECTIVE COMPLETE, followed by QUEST COMPLETE on the final objective.
Part of the OASIS Omniverse
Licence
Source code is licenced under the HoloSource Licence 1.1 (source-available, not open source). Forking or redistributing the source requires a commercial licence from NextGen World Ltd.
Contact: david.ellams@nextgenworld.co.uk
Git History
This project was originally part of the main OASIS2 monorepo where the full commit history lives. It was extracted into its own private repo in August 2026. Please refer to the main OASIS repo for the complete 7-year history.
Edge, offline-first and release profiles
OGEngineClient is the standard integration boundary for Our World, ODOOM, OQuake and future OASIS applications.
The platform-neutral NextGenSoftware.OGEngine.Client.Edge assembly owns the local-first Edge composition and wraps
the lower-level OASISEdgeAPI. Our World consumes this managed OGEngineClient assembly through a thin Unity
lifecycle binding; native games consume the NativeAOT C ABI. Runtime-specific bindings do not own separate domain or
synchronization rules.
When Edge is enabled, GetGeoHotSpotAsync reads the synchronized star.geohotspot.v1 projection and therefore
continues to work without a network connection after bootstrap. Missing, deleted or invalid local records return a
structured error; the client does not disguise a broken Edge invariant by trying REST. The Remote-Only profile uses
the established /api/GeoHotSpots/{id} request from the same public method.
Avatar preferences use the portable oasis.avatar-preferences.v1 contract. Edge-enabled hosts queue changes in the
durable command journal even in flight mode and read the latest confirmed-or-pending value after restart. Remote-only
hosts use the authenticated ONODE preferences endpoint; both paths persist the same deterministic settings Holon.
OASISEdgeAPI remains public and independently useful for developers who need only durable local storage and
HyperDrive synchronization. First-party OASIS games use OGEngineClient so authentication, avatar, quest, inventory,
NFT, Karma, status and configuration behavior can converge behind one client contract.
The same OGEngineClient.csproj produces two explicit profiles:
OGEngineIncludeEdge=true(default): standard Edge build. Offline synchronization is enabled by default.OGEngineIncludeEdge=false: Remote-Only build for constrained targets. Edge and SQLite assemblies are absent.
An Edge-capable build may explicitly disable offline synchronization using OGEngineConfig.OfflineSyncEnabled, or
by setting OASIS.OASISHyperDriveConfig.OfflineSyncEnabled in the configured OASISDNA.json. Host applications also
expose this preference in their UI. Explicit config overrides DNA; DNA overrides the default. Invalid DNA fails
initialization rather than silently selecting another mode. Network loss never disables the feature or changes the
build profile.
Run Scripts/validate_ogengine_profiles.ps1 from the OASIS repository to build both profiles and verify that the Edge
assembly is present only in the standard artifact.
Every public Edge read, command and lifecycle method returns the structured OGENGINE_EDGE_NOT_INITIALIZED error
when called before initialization or during a completed teardown; it must never expose a null-reference crash to a
host racing startup, suspension or shutdown.
Native hosts opt into Edge with versioned ogengine_edge_config_t and ogengine_configure_edge before the unchanged
legacy ogengine_init call. They poll ogengine_get_edge_status for UI notifications; connectivity and synchronization
remain OGEngineClient responsibilities. device_id may be empty: OGEngineClient atomically creates and reuses
<database_path>.device-id. The signing public key and durable database path are required, and partial configuration
fails explicitly. Native hosts that have not adopted this additive contract retain their established remote-only login
instead of being broken by a struct-layout change.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- NextGenSoftware.OASIS.API.Contracts (>= 2.0.1)
- NextGenSoftware.OASIS.Common (>= 2.0.1)
- NextGenSoftware.OASIS.Contracts (>= 1.0.0)
- NextGenSoftware.OGEngine.Client.Edge (>= 1.0.0)
- NextGenSoftware.OGEngine.Shared (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
NextGenSoftware.OGEngine.Client v2.0.3
Native AOT .NET client for the WEB4 OASIS API and WEB5 STAR API, plus P/Invoke interop exports for OGEngine-based games (OQuake, ODOOM etc). Handles avatar auth, inventory, quests, XP, karma, NFT minting and sync callbacks — bridging the OASIS/STAR platform directly into native game engines.
What's new since v2.0.2
- Pin per-avatar debounce invariant fix for hosted regression checks (468d4dc)
- Pin promoted OGEngine client README packaging correction (dadaaac)
Full changelog
https://github.com/NextGenSoftwareUK/OASIS/commits/master/OASIS Omniverse/OGEngineClient