Usurper Reborn v0.22.0-alpha - Steam Native Libraries
Release Date: February 2026
Summary
This release fixes a critical issue where Steam builds were failing to initialize Steamworks due to missing native libraries. Steam achievements and stats should now properly sync when running through the Steam client.
Critical Fix
Steam Native Library Bundling
Problem: Steam builds showed "Non-Steam build - Steam features disabled" or "Failed to initialize Steam: Dll was not found" even when launched through Steam.
Root Cause: The Steamworks.NET NuGet package only includes the managed DLL (Steamworks.NET.dll), not the native platform libraries (steam_api64.dll for Windows, libsteam_api.so for Linux). These native libraries must be downloaded separately from either the Steamworks SDK or Steamworks.NET GitHub releases.
Solution: Updated the CI/CD pipeline to:
- Attempt to locate native libraries in the NuGet package
runtimesfolder - Fall back to downloading from Steamworks.NET GitHub releases if not found
- Copy the appropriate native library to each platform's Steam depot folder
Files Changed
-
.github/workflows/ci-cd.yml- Added comprehensive native library extraction step
- Implemented GitHub release fallback download mechanism
- Bundled
steam_api64.dll(295KB) for Windows depot - Bundled
libsteam_api.so(416KB) for Linux depot
-
usurper-reloaded.csproj- Added local development support via
SteamNative/folder structure - Conditional inclusion for local native libraries (won't break builds if absent)
- Added local development support via
Previous Fixes (v0.20-v0.21)
These releases also included:
- CI/CD Steam Configuration Fix: Changed Steam builds from
-c Releaseto-c Steamto ensureSTEAM_BUILDpreprocessor directive is defined - Achievement Syncing: Manual achievement unlocking now properly calls Steam API
- Dev Menu Steam Tools: Added ability to reset Steam stats for testing
- SyncUnlockedToSteam(): Syncs previously-unlocked achievements on game load
Verification
After updating, you can verify Steam integration is working by:
- Launch Usurper Reborn through Steam
- Check
logs/debug.logfor:[STEAM] Steam initialized successfully - Unlock any achievement and verify it appears on your Steam profile
For Local Development
If you want to build Steam builds locally:
- Download native libraries from Steamworks.NET releases
- Extract to your project:
SteamNative/ ├── win64/steam_api64.dll ├── win32/steam_api.dll ├── linux64/libsteam_api.so └── osx/libsteam_api.dylib - Build with Steam configuration:
dotnet build -c Steam