Packaging -> UE4 & PC, Mac, Linux for Steam

Hi!

How does one go about getting one download link on Steam for a game and have it compatible for PC, Mac and Linux?

Is the game packaged for all engines into one .exe or are multiple copies (one for PC, Mac, and Linux) submitted to Steam?

It looks like you just select under File/Package Project/Supported Platforms Windows, Mac & Linux and the game will work for all 3 platforms?

Does anyone have experience with this?

Thanks!

You will need to become a Steam developer before you are able to have your game available through Steam. You can do this through the Steam Greenlight process, or by going through a third-party publisher.

You will need to package your game separately for each platform; Windows, Mac, and Linux. Once you have your game packaged correctly, you’ll need to setup on Steam a depot for each platform, and set which depot corresponds to which platform.

To actually package your game, you can, in the UE4 Editor, go to File → Package Project → and select your options / target here.

As far as I know, the “Supported Platforms” in your project settings only warns you when you do something unavailable for one of your target platforms, and has no other impact.

I hope that helps!

Thanks! Very useful. So Steam will have one download link for the game but depending on what the user’s operating system is, Steam will select the specific depot for the user?

Yes, you configure it that way in the Steamworks website. You can have all platforms download one thing, or split it up based on different operating system / cpu architectures (32 vs 64 bit). Either way, the user only sees one purchase/install button and Steam does whatever you have configured.

Now would it be possible to leave PC, Mac and Linux checked, package one project and submit that to Steam? If there are no errors shouldn’t that one package be able to work for all 3 pc platforms?

Or would it be a problem going through the packaging dialogue box to look for any warnings or errors?

You’ll want to have each platform you’re targeting (Windows, Mac, Linux, PS4, etc), to have their own packaged build. Each different target has different executable files that will only work on that one platform.

Ok, thanks!