github binary-knight/usurper-reborn v0.21
Alpha v0.21 - Steam DLL Fixes

latest releases: v1.0.3, v1.0.2, v1.0.1...
6 months ago

Usurper Reborn v0.21.0-alpha - Steam Native Libraries

Release Highlights

This release fixes the missing Steam native libraries that prevented Steam integration from working, even with correctly compiled Steam builds.

Bug Fixes

Steam Native Libraries Missing (Critical)

  • Root Cause: Steam builds were compiled with STEAM_BUILD flag correctly, but the native Steam libraries (steam_api64.dll on Windows, libsteam_api.so on Linux) were not being bundled with the executable. Steamworks.NET requires these native DLLs at runtime.
  • Symptom: Debug log showed "This is a STEAM_BUILD - attempting Steam initialization" followed by "Failed to initialize Steam: Dll was not found"
  • Fix: CI/CD now extracts native libraries from the Steamworks.NET NuGet package and copies them to Steam depot folders

Build System Changes

CI/CD Native Library Extraction

Added new build step "Copy Steam native libraries from NuGet package" that:

  • Locates Steamworks.NET package in NuGet cache after build
  • Extracts steam_api64.dll from runtimes/win-x64/native/
  • Extracts libsteam_api.so from runtimes/linux-x64/native/
  • Copies to respective Steam depot folders

Local Development Support

Updated usurper-reloaded.csproj with SteamNative folder support:

  • SteamNative/win64/steam_api64.dll - Windows x64
  • SteamNative/win32/steam_api.dll - Windows x86
  • SteamNative/linux64/libsteam_api.so - Linux x64
  • SteamNative/osx/libsteam_api.dylib - macOS

Files are conditionally included only when they exist, so builds won't fail if you don't have local copies.

Files Changed

  • .github/workflows/ci-cd.yml - Added native library extraction step
  • usurper-reloaded.csproj - Added SteamNative folder configuration
  • Scripts/Core/GameConfig.cs - Version bump to 0.21.0-alpha

Verification

After this update, debug.log should show:

[STEAM] This is a STEAM_BUILD - attempting Steam initialization
[STEAM] Steam initialized successfully

Instead of the previous:

[STEAM] This is a STEAM_BUILD - attempting Steam initialization
[STEAM] Failed to initialize Steam: Dll was not found.

For Local Development

To test Steam integration locally:

  1. Extract native DLL from NuGet cache:

    $pkg = "$env:USERPROFILE\.nuget\packages\steamworks.net\20.1.0\runtimes"
    mkdir SteamNative\win64 -Force
    copy "$pkg\win-x64\native\steam_api64.dll" SteamNative\win64\
  2. Build with Steam configuration:

    dotnet build usurper-reloaded.csproj -c Steam
  3. Run through Steam (or with steam_appid.txt in output folder)


Full Changelog: https://github.com/yourrepo/usurper-reborn/compare/v0.20.0...v0.21.0

Don't miss a new usurper-reborn release

NewReleases is sending notifications on new releases.