An open-source and fully functional Steamworks SDK / API module and plug-in for the Godot Game Engine (version 3.x). For the Windows, Linux, and Mac platforms.
Fixed: setPNGIcon and updateCurrentEntryCoverArt in Music Remote class
Fixed: missing getUGCDetails and getUGCDownloadProgress functions
Changed: updated doc_class file for in-editor documentation
Changed: updated to Steamworks 1.53
Changed: lobby_data_update, removed lobby data queries as they should be done manually
Changed: minor tweaks under-the-hood
Changed: various generic 'int' to their actual types
Changed: renamed servers and server stats to game server and game server stats respectively, to match SDK
Changed: SteamNetworkingQuickConnectionStatus to SteamNetConnectionRealTimeStatus_t per Steamworks SDK 1.53, causes a break in previous GodotSteam versions
Changed: getConfigValueInfo, removed name and next value from return dictionary as they are no longer passed by function in SDK 1.53
Changed: rearranged functions in godotsteam.cpp class binds to match godotsteam.h order
Changed: enum constant binds to match godotsteam.h enum order
Now move the "godotsteam" directory into the "modules" directory of the unpacked Godot Engine source.
You can also just put the godotsteam directory where ever you like and just apply the custom_modules=.../path/to/dir/godotsteam flag in SCONS when compiling. Make sure the custom_modules= flag points to where godotsteam is located.
Recompile for your platform:
NOTE: use SCONS flags production=yes tools=yes target=release_debug for your editor and production=yes tools=no target=release for your templates.
When recompiling the engine is finished do the following before running it the first time:
Copy the shared library (steam_api), for your OS, from sdk/redistributable_bin/ folders to the Godot binary location (by default in the godot source /bin/ file but you can move them to a new folder).
Create a steam_appid.txt file with your game's app ID or 480 in this folder. Necessary if the editor or game is run outside of Steam.
The finished hierarchy should look like this (if you downloaded the pre-compiles, the editor files go in place of these tools files, which are the same thing):
Linux 32/64-bit
libsteam_api.so
steam_appid.txt
./godot.linux.tools.32 or ./godot.linux.tools.64
MacOS
libsteam_api.dylib
steam_appid.txt
./godot.osx.tools.32 or ./godot.osx.tools.64
Lack of the Steam API DLL/SO/DyLib (for your respective OS) or the steam_appid.txt will cause it fail and crash when testing or running the game outside of the Steam client.
NOTE: For MacOS, the libsteam_api.dylib and steam_appid.txt must be in the Content/MacOS/ folder in your application zip or the game will crash.
NOTE: For Linux, you may have to load the overlay library for Steam overlay to work:
export LD_PRELOAD=~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so;~/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so
or
export LD_PRELOAD=~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so;
export LD_PRELOAD=~/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so;
This can be done in an .sh file that runs these before running your executable. This issue may not arise for all users and can also just be done by the user in a terminal separately.
From here you should be able to call various functions of Steamworks. You should be able to look up the functions in Godot itself under the search section. In addition, you should be able to read the Steamworks API documentation to see what all is available and cross-reference with GodotSteam.
When uploading your game to Steam, you must upload your game's executable and Steam API DLL/SO/DyLIB (steam_api.dll, steam_api64.dll, libsteam_api.dylib, and/or libsteam_api.so). Do not include the steam_appid.txt or any .lib files as they are unnecessary.
Donate
Pull-requests are the best way to help the project out but you can also donate through Patreon or Paypal!
请发表评论