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.
Additional flavors include:
Documentation is available here. You can also check out the Search Help section inside Godot Engine after compiling it with GodotSteam.
Feel free to chat with us about GodotSteam on the CoaguCo Discord server.
You can download pre-compiled versions (currently v3.18.3) of this repo here.
Version 3.18.3 Changes
Version 3.18.2 Changes
Version 3.18.1 Changes
Version 3.18 Changes
You can read more change-logs here.
By far the easiest way to use GodotSteam is to download our pre-compiled editors and templates; especially good for folks who don't want to set up the tools for compiling and just want to get going.
At this point you can skip all the following steps and check our our tutorials to learn more about integrating Steamworks or just explore the SDK!
For those of you who are comfortable compiling or want to give it a shot, here are some steps to follow.
git clone https://github.com/Gramps/GodotSteam.git godotsteam
Move the following from the unzipped Steamworks SDK to the /modules/godotsteam/sdk/ folder:
sdk/public/
sdk/redistributable_bin/
The repo's directory contents should now look like this:
godotsteam/sdk/public/*
godotsteam/sdk/redistributable_bin/*
godotsteam/SCsub
godotsteam/config.py
godotsteam/godotsteam.cpp
godotsteam/godotsteam.h
godotsteam/register_types.cpp
godotsteam/register_types.h
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 the godotsteam folder is located.
Recompile for your platform:
scons platform=<your platform> production=yes tools=yes target=release_debug
scons platform=<your platform> production=yes tools=no target=release_debug
scons platform=<your platform> production=yes tools=no target=release
Some things to be aware of:
LINKFLAGS='-no-pie'
to get an executable instead of a shared library.When recompiling the engine is finished, do the following before running it the first time:
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):
libsteam_api.so
steam_appid.txt
./godot.linux.tools.32 or ./godot.linux.tools.64
libsteam_api.dylib
steam_appid.txt
./godot.osx.tools.32 or ./godot.osx.tools.64
steam_api.dll
steam_appid.txt
./godot.windows.tools.32.exe
steam_api64.dll
steam_appid.txt
./godot.windows.tools.64.exe
Lack of the Steam API .dll/.so/.dylib, for your respective OS, or the steam_appid.txt will cause the editor or game fail and crash when testing or running the game outside of the Steam client.
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. You can read more about it in our Linux Caveats doc.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's documentation.
When uploading your game to Steam, you must upload your game's executable and Steam API .dll/.so/.dylb (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; however, they won't hurt anything.
Pull-requests are the best way to help the project out but you can also donate through Github Sponsors or Paypal!
MIT license