Valve has released Steamworks SDK v1.65, introducing significant changes to how games integrate Steam features across hardware like the Steam Deck, Steam Machine, and Steam Frame. Reported by Liam Squires-Hand on GamingOnLinux, the update overhauls existing hardware detection checks and adds new analytics and matchmaking options for developers.

Quick Facts

  • Update version: Steamworks SDK v1.65
  • Platform focus: PC, Steam Deck, Steam Machine, Steam Frame, and Linux via Proton
  • Key change: The dedicated IsRunningOnSteamDeck check has been removed in favor of granular hardware methods
  • New features: Added Proton detection, performance settings reporting, and new Steam Input action origins

Hardware Check Overhaul

The update removes the old ISteamUtils::IsRunningOnSteamDeck() check, which Valve noted could sometimes cause issues depending on developer implementation. In its place, the SDK introduces several targeted methods:

  • ISteamUtils::IsRunningOnSteamHardware() returns an ESteamHardwareType enum for analytics, support, and diagnostics.
  • ISteamUtils::GetSteamHardwareDefaultConfig() helps developers choose tuned video and game settings for specific Steam hardware without requiring game recompilation for future devices.
  • ISteamUtils::IsRunningUnderProton() determines if a game is running under the Proton compatibility layer on Linux.

Developers can also continue using pre-existing utility methods such as IsSteamInBigPictureMode() and IsSteamRunningInVR() as part of the replacement strategy.

Performance Reporting and User Generated Content

Under the ISteamApps interface, Valve added SetGamePerformanceSetting() and SetGameRenderResolution() methods. These allow games to report relative performance settings and target resolutions back to Steam servers, contributing data to anonymous framerate statistics for users who have opted into sharing.

For user-generated content (UGC), the ISteamUGC interface gains two new sorting options in descending order: k_EUGCQuery_RankedByNumParentItems to track how many items depend on a parent item, and k_EUGCRankedByNumParentCollections to track how many collections contain a specific item.

Steam Input and Matchmaking Updates

Steam Input has been updated with action origin enum values for the Switch 2, Steam Controller, and Steam Frame Controller. Meanwhile, ISteamMatchmakingServers adds ServerFriends() to retrieve a list of friends who have recently played on a specific server, alongside a new "popularamongfriends" filter option for server queries.