GameKit.Presence 0.1.1

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package GameKit.Presence --version 0.1.1
                    
NuGet\Install-Package GameKit.Presence -Version 0.1.1
                    
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="GameKit.Presence" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GameKit.Presence" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="GameKit.Presence" />
                    
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 GameKit.Presence --version 0.1.1
                    
#r "nuget: GameKit.Presence, 0.1.1"
                    
#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 GameKit.Presence@0.1.1
                    
#: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=GameKit.Presence&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=GameKit.Presence&version=0.1.1
                    
Install as a Cake Tool

GameKit

GPL-licensed, self-hostable .NET 10 game-services library. Composable NuGet packages for auth, player management, matchmaking, rankings, sessions, and presence. Install only what you need.

License: GPL-3.0-or-later Runtime: .NET 10 LTS Storage: Postgres (via EF Core 10 + Npgsql), Redis (via StackExchange.Redis)

Core Value

A .NET-native, composable, extensible, fully self-hosted game services backend where every algorithm and strategy is an interface the developer can replace — install only what you need, own the rest, depend on no cloud service.

What GameKit Is Not

GameKit explicitly does not provide, and will never provide:

  • No AI / LLM integrations of any kind (moderation, matchmaking, content gen, telemetry analysis).
  • No cloud-only / SaaS dependencies — library runs air-gapped.
  • No hosted / paid components — all functionality is GPL and free, always; no upsell tier.
  • No telemetry / phone-home — library does not collect or transmit usage data.
  • No game-server hosting / orchestration — use Agones, Multiplay, or custom.
  • No real-time game communication (netcode) — use Mirror, Fish-Net, WebSockets, or custom.
  • No inventory / economy / progression systems — game dev owns these, FK into gamekit.players(id).
  • No analytics pipeline — operator brings their own (ClickHouse, BigQuery, etc.).
  • No DDoS mitigation — network/edge concern.
  • No game-specific anti-cheat — engine/game concern.
  • No billing / entitlements — storefronts own this.
  • No real-time chat / voice chat — use SignalR, Mirror, engine netcode, or Vivox.
  • No MySQL / SQL Server providers — Postgres-only for v1.

Packages

Package Purpose
GameKit.Core Entities, DbContext, fluent builder, GDPR, rate-limiting helpers
GameKit.Auth Identity, credentials, JWT, OAuth providers (Steam, Discord, Guest, Password)
GameKit.Rankings Ladders, player ranks, Glicko-2 default algorithm, seasonal leaderboards
GameKit.Matchmaking Redis-backed queue, tickets, parties, background matcher
GameKit.Presence Online/offline/in-match status (Redis-only, no Postgres)
GameKit.Admin.UI Blazor Server admin panel (player search, bans, queue depth, health)

Database Roles (OPS-09)

GameKit's Postgres schema is gamekit. FK direction discipline: only publicgamekit allowed (your application tables may FK into gamekit.players(id); never the reverse). The shipped docker-compose.yml provisions three roles:

Role Purpose
gamekit_owner Migrations (DDL) — used by gamekit migrate and UseGameKit() auto-migrate
gamekit_app Runtime DML — GameKit HTTP API backend
gamekit_reader Game server reads — SELECT-only on gamekit.*

Getting Started

New to GameKit? Follow the 15-minute getting-started tutorial: dotnet new gamekit → docker-compose up → first authenticated player + first completed match against the TicTacToeDuel sample, with zero cloud credentials.

Quick Start

# Requires .NET SDK 10.0.106+ (pinned via global.json)
dotnet restore && dotnet build

Production Deployment

Operators standing up GameKit in production should consult docs/ops/ for the full production-readiness guide. It covers bare-metal, container (Docker / Kubernetes), and air-gapped deployment recipes, plus per-recipe runbooks for the Postgres 3-role rotation, Redis AOF tuning, JWT key generation + kid rotation, disaster recovery, and per-package migration troubleshooting. Every page cites the canonical config file it derives from (docker-compose.yml, docker/postgres/init/01-roles.sql, scripts/gen-test-rsa-pem.sh) so you can trace every recommendation back to source.

Status

Pre-release. Phase 1 (Foundation) in progress.

License

This project is licensed under the GNU General Public License v3.0 or later — see the LICENSE file for details.

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
0.1.2-alpha.0.28 66 7/12/2026
0.1.1 115 6/27/2026