Alpha v0.21 - Steam DLL Fixes
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_BUILDflag correctly, but the native Steam libraries (steam_api64.dllon Windows,libsteam_api.soon 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.dllfromruntimes/win-x64/native/ - Extracts
libsteam_api.sofromruntimes/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 x64SteamNative/win32/steam_api.dll- Windows x86SteamNative/linux64/libsteam_api.so- Linux x64SteamNative/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 stepusurper-reloaded.csproj- Added SteamNative folder configurationScripts/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:
-
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\
-
Build with Steam configuration:
dotnet build usurper-reloaded.csproj -c Steam
-
Run through Steam (or with
steam_appid.txtin output folder)
Full Changelog: https://github.com/yourrepo/usurper-reborn/compare/v0.20.0...v0.21.0