Alpha v0.20 - Steam Achievements Fix
Usurper Reborn v0.20.0-alpha - Steam Achievements Fix
Release Highlights
This release fixes a critical issue where Steam achievements were not syncing properly, along with improved testing tools for Steam integration.
Bug Fixes
Steam Achievements Not Syncing (Critical)
- Root Cause: CI/CD pipeline was building Steam releases with
-c Releaseinstead of-c Steam, which meant theSTEAM_BUILDpreprocessor directive was never defined. All Steam-specific code (achievement unlocks, stat syncing, etc.) was being compiled out of the executable. - Fix: Updated CI/CD workflow to use
-c Steamconfiguration for all Steam builds. Added explicit Steam build configurations to the project file with properSTEAM_BUILDdefinition. - Impact: Manual achievement unlocks (marriage, friendships, no-death runs, etc.) now properly sync to Steam. Stat-linked achievements were partially working before because Steam's server-side processing handles those automatically when stats are uploaded.
Flaky Spell System Test
- Fixed
CastSpell_ReturnsValidResulttest that had a 5% failure rate due to natural 1 critical failures on the d20 roll. Test now validates result structure rather than asserting success.
New Features
Steam Stats Reset (Dev Menu)
- Added
[R] Reset Steam Stats & Achievementsoption to the Developer Menu - Allows testers to reset all Steam stats and achievements for their account
- Includes confirmation prompt to prevent accidental resets
- Only affects the currently logged-in Steam user (not a global reset)
Achievement Sync on Load
- Game now syncs previously-unlocked achievements to Steam when loading a save
- Ensures achievements earned offline or before the fix are properly registered with Steam
Enhanced Steam Diagnostics
- Added detailed logging for Steam initialization status
- Achievement unlock attempts now log success/failure with achievement IDs
- Helps diagnose Steam integration issues in debug.log
Technical Changes
Build Configuration
- Added explicit
SteamandSteamReleaseconfigurations to project file - Steam configurations include:
STEAM_BUILDpreprocessor directive- Release optimizations enabled
- Debug symbols disabled
CI/CD Updates
- Steam Windows build:
-c Steam -r win-x64 - Steam Linux build:
-c Steam -r linux-x64 - Steam macOS build:
-c Steam -r osx-x64
Files Changed
.github/workflows/ci-cd.yml- Fixed Steam build configurationusurper-reloaded.csproj- Added Steam build configurationsScripts/Systems/SteamIntegration.cs- Added ResetAllStats(), enhanced loggingScripts/Systems/AchievementSystem.cs- Added SyncUnlockedToSteam()Scripts/Locations/DevMenuLocation.cs- Added Steam reset optionScripts/Core/GameConfig.cs- Version bump to 0.20.0-alphaTests/SpellSystemTests.cs- Fixed flaky test
Upgrade Notes
Players who earned achievements before this fix should:
- Load their save game
- The game will automatically sync any previously-unlocked achievements to Steam
For testers needing a fresh start:
- Access the Developer Menu (if enabled)
- Select
[R] Reset Steam Stats & Achievements - Confirm the reset
Full Changelog: https://github.com/yourrepo/usurper-reborn/compare/v0.19.0...v0.20.0