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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NextGenSoftware.OGEngine.Client" Version="2.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NextGenSoftware.OGEngine.Client" Version="2.0.3" />
                    
Directory.Packages.props
<PackageReference Include="NextGenSoftware.OGEngine.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NextGenSoftware.OGEngine.Client --version 2.0.3
                    
#r "nuget: NextGenSoftware.OGEngine.Client, 2.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NextGenSoftware.OGEngine.Client@2.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NextGenSoftware.OGEngine.Client&version=2.0.3
                    
Install as a Cake Addin
#tool nuget:?package=NextGenSoftware.OGEngine.Client&version=2.0.3
                    
Install as a Cake Tool

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

https://oasisomniverse.one

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.3 92 10/13/2026
2.0.2 87 10/13/2026
1.0.0 112 9/28/2026

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