ManifestGames.GameplayCSharpBindings 0.1.6

ManifestGames.GameplayCSharpBindings

SWIG-generated C# bindings for the gamenetworking gameplay library, packaged as a single NuGet package (ManifestGames.GameplayCSharpBindings) that also carries the native binaries per platform.

Note that this is for consumption by clients (game engine bindings, or bots) - not for servers

Layout

  • src/GameplayCSharpBindings/ — SWIG-generated .cs output (committed) + hand-written GameplayCSharpBindings.xml API documentation + package .csproj
  • swig/interface.i — snapshot of the SWIG interface definition
  • swig/generate.sh — regeneration script (run from the root of the native gamenetworking repo)
  • native/runtimes/<rid>/native/ — native libs dropped here by CI before packing (gitignored):
    • linux-x64 → libgamenetworking.so
    • win-x64 → gamenetworking.dll

XML API documentation

The NuGet package ships a <PackageId>.xml file alongside the DLL, providing IDE tooltips and dotnet build warnings for every public type and member. The documentation is hand-written (the SWIG output has no doc comments) and staged over the compiler's (empty) generated XML at build time via a post-build target (StageHandWrittenApiDocs in the .csproj).

Consuming

<PackageReference Include="ManifestGames.GameplayCSharpBindings" Version="0.1.1" />

.NET resolves the correct native library from the package's runtimes/ folder automatically.

Releasing

# 1. place native libs in native/runtimes/...
dotnet pack src/GameplayCSharpBindings -c Release -o artifacts
# 2. publish artifacts/*.nupkg to your feed

Keep the NuGet version in lock-step with the native library version — they are ABI-coupled.

CI flow (Jenkins + OCI registry)

  1. gamenetworking/Jenkinsfile.client builds the native lib (linux-x64, plus android-arm64 when the NDK is on the agent), pushes the .so files to the in-cluster OCI registry (helm docker-registry, plain HTTP) with oras as <sha12>-linux-x64 / <sha12>-android-arm64 tags, verifies the tags are resolvable, and only then pushes the generated .cs files to this repo as a commit carrying a Native-OCI: gamenetworking/native@<sha12> trailer.
  2. A GitHub webhook on this repo (push events → <jenkins>/github-webhook/, githubPush() trigger in this Jenkinsfile) fires the bindings build.
  3. This Jenkinsfile parses the Native-OCI trailer from the trigger commit and pulls that exact native tag from the OCI registry into native/runtimes/<rid>/native/ before packing — so a triggered build is guaranteed binaries matching the bindings it builds.

Manual runs can override the tag with the OCI_TAG parameter, or build the native lib locally with BUILD_NATIVE=true.

No packages depend on ManifestGames.GameplayCSharpBindings.

.NET Standard 2.1

  • No dependencies.

Version Downloads Last updated
0.4.6 7 10/19/2026
0.4.5 1 10/19/2026
0.4.4 5 10/09/2026
0.4.3 5 10/09/2026
0.4.2 2 10/09/2026
0.4.1 3 10/09/2026
0.4.0 2 10/08/2026
0.3.1 2 10/07/2026
0.3.0 2 10/07/2026
0.2.4 5 10/06/2026
0.2.3 5 09/30/2026
0.2.2 4 09/29/2026
0.2.1 3 09/29/2026
0.2.0 46 09/28/2026
0.1.15 4 09/22/2026
0.1.14 3 09/22/2026
0.1.13 3 09/21/2026
0.1.12 5 09/19/2026
0.1.11 5 09/11/2026
0.1.10 55 09/10/2026
0.1.9 6 09/09/2026
0.1.8 8 09/04/2026
0.1.6 4 09/04/2026
0.1.5 5 09/03/2026
0.1.4 4 09/02/2026
0.1.3 15 09/02/2026
0.1.2 4 09/02/2026