Steamworks-Defold extension doesn't work

The Steamworks-Defold extension does not work when installed the same way other extensions are installed (by adding the .zip link to game.project deps list). Why is this and can it be fixed?
Worsening this, the instructions on how to make it work are unclear and didn’t work for me. I made a GitHub issue probably half a year ago now and no solutions have come.
What am I supposed to do in this sort of situation?
I would wager that interacting with the Steam APIs, especially for achievements, is a common use case (not common enough to be a part of the engine core but common enough to easily add)
I am not a C developer, I have not studied CS in university, I am just a young game developer in training, and I do not understand how to debug such problems.

Can I get help from someone who does understand how the extension works, or better yet, could the extension be amended to not require such extra steps or to better explain the process?

Just read your issue on github, and if the method described as a solution is still working for them - the only other thing that I could see on the docs that might be different according to your description of how you’ve attempted to solve the problem is that maybe you missed the part where for the examples, you need to run the build using the provided .sh or .bat file. Doing this for your own project would go without saying but I could see how the lack of explicit instruction could be confusing? If that’s not it, the only other thing I could think of is not generating the API correctly - but the directory you point out in your issue on github matches the directory that the cp/copy commands in the .sh and .bat target.

2 Likes

Did you test bundling? It should work.

For building from the editor you need the libs in the right place. We put the required libs/dlls in the root project folder during dev. The script provided can do it for you but we do it manually.

files

2

You can get up to date versions of these from Steamworks portal site.

I think the versions included with the extension need to be updated.

Don’t give up this will work you just need to figure out the issues and once you know what was difficult to you you should help update the documentation so that it is clearer for others in the future.

3 Likes

Here is the problem as best as I can narrow it down:
I have added the relevant lib files in to the project root
image
but it appears that those 2 lib files are not being copied over to the build folder automatically:


How do I make them do that, exactly?

trying to run this .sh script:
image
doesn’t work and errors:


or when running literally:
image
(I believe the script was last written for an older version of Bash, where macOS changed its terminal to running Zsh instead of Bash in macOS Catalina). The mac version of the script therefore no longer works.
I’m respectfully adding @britzl because this is his extension and GitHub says he was the one who originally wrote the macos script file in 2016 and 2018 and maybe he would better understand what’s going on
image

Run chmod +x run_osx.sh to make it executable, then you should be able to run it as normal like you tried in your first screenshot.

On the github issue, it seemed like they needed to be in a folder judging from the replies there - in which case,
@Pkeod, does the folder need to specified as a custom resource in the project settings? This seems like another one of those ‘small details easily missed, but obvious with more experience’ kind of things if so.

I’m on Windows, so I can’t really add anything to the second part of your reply @Griffin, unfortunately.

1 Like

I took a bash course online when I was 12 and while I don’t remember much, I know enough to say that chmod changes file permission access, and for a case where the file is written in the wrong language, changing permissions won’t fix the issue unfortunately. Regardless, I’ll give it a try.
image

I put them in the root project directory on Windows but on macOS it needs to be in the build folder possibly

Read the run_osx script to be sure

Eventually, we’d like to improve on the workflow here as well.
The idea I have is to extract any shared libraries in the extensions, upon build time.
We’d put them in the ./build folder, and when running the app we’d set some PATHvariables accordingly. Something like that at least. Should work.
It’d also be something that an editor extension should be able to solve, and we want to improve on the editor extensions as well.

5 Likes