rlabrecque/Steamworks.NET

Init fails on Steamworks SDK 1.59 with `Unable to find an entry point named 'SteamAPI_Init'`

hhyyrylainen opened this issue · 4 comments

I'm trying to update all my Steam related things and it seems like even the latest master branch version of this library is incompatible with the latest Steam SDK. The version recommended in this repo's readme mentions using SDK 1.57 which is from 2022.

Using the code SteamAPI.Init() I get the following exception:

System.EntryPointNotFoundException: Unable to find an entry point named 'SteamAPI_Init' in shared library 'steam_api'.
   at Steamworks.NativeMethods.SteamAPI_Init()
   at Steamworks.SteamAPI.Init()

Looking at the Steam library it seems the name of the init method has changed, there's now two:

SteamAPI_InitFlat
SteamAPI_InitSafe

Assuming the APIs are compatible it might be as simple as renaming the method this library looks to SteamAPI_InitSafe.

Same here. :(

I ended up using an older SDK version, as a workaround, that seems to work fine. I hope I don't run into any problems with the older SDK missing any features I would care about.

Also running into this issue with a new config. Started a framework project to wrap all the stuff I'd need for a game into one asset and I wanted to include Steamworks with a ScriptableObject that would let me set the AppId per instance.

That all went well till runtime when I encountered this. I'm going to roll back SDK versions also.

Steamworks SDK release notes:
Feb 9 | 1.59 | Download | Adds a new initialization entry point, SteamAPI_InitFlat, intended for non-C++ projects.

1.58 won't work either.

I think 1.57 will solve the issue. Init works perfectly on startup.
https://partner.steamgames.com/downloads/list

I'd also assume we'd just need to update to 1.x for Steamworks once rlabbq gets this fixed.

#614

Just a note you should never mix and match the SDK dlls with either the C++ headers or Steamworks.NET; you should ALWAYS be using a matching set of DLLs