Dealing with Steamworks

Let's make some video games!

Moderator: Ice Cream Jonsey

Post Reply
User avatar
Ice Cream Jonsey
Posts: 28877
Joined: Sat Apr 27, 2002 2:44 pm
Location: Colorado
Contact:

Dealing with Steamworks

Post by Ice Cream Jonsey »

I feel that Valve makes getting your game onto Steam a pain so that it acts as a filter. I have certainly been filtered from getting the Linux and Mac versions of Hugor going. Yet I also know that sometimes I have a mental/frustration block when "How I think the world should work" doesn't match how the world actually works."

And I have no idea what a "build" versus a "depot" is in Steamworks. Nobody else makes it this goddamn complicated. On every other store front, it's just "upload your game."

I'm trying to add Linux support for Cryptozookeeper.

This is a screenshot of what I see.

Image

I am thinking I want the Hugor.AppImage to be the executable, and give it an argument for czk.hex? Although when I use the Hugor Appimage on my Ubuntu computer, I double click on it and then give it the hex file, so I don't know if it can take a command line argument or not?
the dark and gritty...Ice Cream Jonsey!

User avatar
RealNC
Posts: 2244
Joined: Wed Mar 07, 2012 4:32 am

Re: Dealing with Steamworks

Post by RealNC »

You'll need a shell script that launches the Linux binary in a way that disables the Steam runtime. It's ancient and doesn't support applications built with modern compilers. Name it "czk.sh", make it executable (chmod +x czk.sh). Contents:

Code: Select all

#! /bin/sh
unset LD_LIBRARY_PATH
exec ./Hugor.AppImage czk.hex
Then enter "czk.sh" as the executable in Steamworks. Set the CPU architecture to "64-bit only" (there is no 32-bit build of Hugor for Linux.)

For macOS, you need to use the executable inside the app bundle. That would be "Hugor.app/Contents/MacOS/Hugor". Enter the hex file as an argument to the binary in the "Arguments" field. It's also 64-bit only.

As for the "depot" thing, it's for having separate sets of files for each port of the game. The Linux depot for example would have czk.sh and Hugor.AppImage, but not czk.exe. You can use depots as you see fit. Or you can simply not use them and only have one depot where you put everything. For Thaumistry, I used these depots:

Linux32
Linux64
macOS
Windows
Common

The game files themselves (in your case that would be CZ, CZ2, CZ3, CZMUS, czk.hex, and any readme files) would be in "Common". Generally, every file needed on every OS. The other depots would only contain the files needed for that OS.

Splitting the files in individual depots allows for updating only one of them without forcing an update for users on other platforms.

Files from different depots are merged on the user's disk when they install the game, depending on which depots are marked to be used on their platform. The "common" depots would be marked as "all OSes" and "all architectures", while the rest would be marked as appropriate:

Image

This requires you to be using depots locally using the steamsdk and set up appropriate build scripts. It's somewhat complicated, so I think you might want to just use one depot where you put everything regardless of OS.

As for "builds", a build is a version of the game. When you push an update to the game, you're uploading a new build.

You should probably uncheck the "disable updates" at the bottom of that page (according to your screenshot, you have that box checked.)

User avatar
Ice Cream Jonsey
Posts: 28877
Joined: Sat Apr 27, 2002 2:44 pm
Location: Colorado
Contact:

Re: Dealing with Steamworks

Post by Ice Cream Jonsey »

This is better information than anything on Valve's site. They owe you a huge favor.

Thank you! Gonna try some things this week with it.
the dark and gritty...Ice Cream Jonsey!

Post Reply