Questions on setting up & building a steam game for non c++ users

Hi guys, I am having 3 issues with building my blueprint game for steam,
Could anyone with a clue, help me with this. Please note that I have absolutely no knowledge of c++ and that I don’t have any c++ software.

(1: ) UE4 Requires Visual studio 2015 to be installed to build the game with steam sdk (maybe be because of the Online Subsystem Steam plugin),

I have my steam SDK working to a certain extent, I have added the sdk files to my project’s \Engine\Binaries\ThirdParty\Steamworks folder and gotten the steam overlay to appear along with my app id while playing in stand along mode and everything checks out, but at this point is where the trouble begins, to get steam working in the engine I have to enable the Online Subsystem Steam plugin, but it makes my game require visual studio 2015 to build, which Is huge and I can’t download it because of the slow unstable internet here, some UE4 Users on the answer hub say enabling the plugin shouldn’t make my game require VS 2015, but for some reason it does and I can’t build while its enable, someone says I’ve probably added code to my engine somehow but disabling the plugin makes the game build work without VS 2015 but stops steam from working, I don’t see where I could have possibly added code to my game, do you guys have any clue how I could get it to build without visual studio 2015 being required while the plugin is enabled?

(2: ) I can’t find the mygame.build.cs file

According to the tutorial I followed I need to make sure to include the Unreal Engine Steam module as part of my project by adding DynamicallyLoadedModuleNames.Add(“OnlineSubsystemSteam”); inside the constructor of mygame.build.cs , but my mygame.build.cs is nowhere to be found no matter how hard I search (This is the tutorial I followed Online Subsystem Steam | Unreal Engine Documentation )

(3: ) the third issue is a bit confusing, so once I have the steam sdk and overlay working with my app id and I’ve successfully built my game, what’s the process of getting the game onto steam, I’m sure I have to build and package the game to a steam depot using steam sdk right? main question is does the building the game to a depot upload it onto steam for others to download? or is uploading the game to steam another process??

thanks a lot guys.

You need to follow the checklists on the app landing page. Part of this checklist is to “Prepare your Game Build”. In that checklist you will configure depots and link them to your game build … there is documentation on how you prepare these files (caches) to be uploaded to Steam using the Tools under the SteamSDK. The documentation is there and gives you step by step instructions.

Basically you do a Full Package from Unreal Engine and then run the SteamSDK to take your UE package and compress it and upload it to the server. Your package has to be approved first before you can make it public … but everything is in the Checklist.

Part of this process is setting up the scripts to generate the files for Steam … the scripts look something like this:

“appbuild”
{
“appid” “580550”
“desc” “Riders of Asgard Demo” // description for this build

    //The following paths can be absolute or relative to location of build script file
"buildoutput" "E:\Development\GobboGames\Games\Riders of Asgard\Deploy\Output" // build output folder for .log, .csm & .csd files
"contentroot" "E:\Development\GobboGames\Games\Riders of Asgard\Deploy" // path to root content folder

"preview" "0" // to enable preview builds set to "1"
"local"	""	// set to file path of local content server

"depots"
{
	"580551" "depot_build_580551.vdf"
	"580552" "depot_build_580552.vdf"
}

}

Alright thanks, that clears a lot for me, how long did it take for your build to be approved? plan having mine complete and uploaded about 1 week before launch.

All that’s left is to resolve the Visual studio 2015 issue now.

It takes a couple of days … they don’t work weekends so you need to keep that in mind. I had to submit my build 3 times as there were some issues, but once I figured it out it was easy.

Alright thanks, I think I should submit my build a little earlier then

I’ve got my game to build after installing Visual Studio 2015 but the steam integration doesn’t work after building the game. I pulled this from the log and I think its the problem

UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogInit: Display: Running engine for game: SaveOurSouls
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogInit: Display: RandInit(1908835851) SRandInit(1908835852).
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogOnline: Display: STEAM: Loading Steam SDK 1.32
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogOnline:Warning: STEAM: Steam API disabled!
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogOnline: Display: STEAM: OnlineSubsystemSteam::Shutdown())

Maybe cause I’m using Steam SDK 1.39?? I don’t know why it says loading steam sdk 1.32

Are you running Steam and running your game in Stand Alone mode? You have to do this to make sure Steam is enabled and working.

It works in stand along mode, but if I try to build my game it doesn’t work anymore, my log says steam api disabled so I’m guessing that why it doesn’t work after building the game, but I don’t know why steam api is being disabled.

That is strange … mine build fines and works on Steam.

Did you add your App Id to the config file for your game? Can you share your config file with us.

How are you building your game? Can you share the steps you are taking with us.

I’m using UE4.14

I added this line to my DefaultEngine.ini

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName=“GameNetDriver”,DriverClassName=“/Script/OnlineSubsystemSteam.SteamNetDriver”,DriverClassNameFallback=“/Script/OnlineSubsystemUtils.IpNetDriver”)

[OnlineSubsystem]
DefaultPlatformService=Steam
PollingIntervalInMs=20

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=600550
GameServerQueryPort=27015
bRelaunchInSteam=false
GameVersion=1.0.0.0
bVACEnabled=1
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName=“/Script/OnlineSubsystemSteam.SteamNetConnection”

__

and 41748d950c2dfd540ed49721fb96624c9e92de59.jpeg

I’ve also enabled OnlineSubsystemSteam plugin

those are the only steps ive taken and it works in play stand alone game but not after building

this appears in the log

UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogInit: Display: Running engine for game: SaveOurSouls
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogInit: Display: RandInit(1908835851) SRandInit(1908835852).
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogOnline: Display: STEAM: Loading Steam SDK 1.32
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogOnline:Warning: STEAM: Steam API disabled!
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: LogOnline: Display: STEAM: OnlineSubsystemSteam::Shutdown())

You need to add SteamAppID as well. Below is mine for Riders of Asgard.

[OnlineSubsystem]
DefaultPlatformService=Steam
PollingIntervalInMs=20

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=552370
SteamAppId=552370
GameServerQueryPort=27015
bRelaunchInSteam=false
GameVersion=1.0
bVACEnabled=1
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90
Achievement_0_Id=“ROA_SCHOLAR”
Achievement_1_Id=“ROA_HELMETCRACKER”
Achievement_2_Id=“ROA_HELMETANNIHILATOR”
Achievement_3_Id=“ROA_CRAZYCANYONMASTER”
Achievement_4_Id=“ROA_GOLDDIGGER”
Achievement_5_Id=“ROA_FORESTCHUMP”
Achievement_6_Id=“ROA_VILLAGEIDIOT”
Achievement_7_Id=“ROA_SHIPWRECKED”
Achievement_8_Id=“ROA_CHESTHUNTER_NOVICE”
Achievement_9_Id=“ROA_CHESTHUNTER_ADEPT”
Achievement_10_Id=“ROA_CHESTHUNTER_MASTER”
Achievement_11_Id=“ROA_CHALLENGEACCEPTED”
Achievement_12_Id=“ROA_IWILLSURVIVE”
Achievement_13_Id=“ROA_HAMMERTIME”

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="/Script/OnlineSubsystemSteam.SteamNetConnection"

Not much luck, I tried making the change, all the same errors still appeared, and after the build the steam overlay still doesn’t appear, even after creating a new project its the same result.

But when I tried creating a new project in ue4.13 the same errors appeared but overlay worked after building the game.

I converted the ue4.13 project to ue4.14 and tried to build again and the overlay worked aswell, so I’m going to try and migrate my files to this project and see if it works, but it seems like a destructive solution.

Right now I’m guessing there maybe something wrong with my ue4.14

(Edit)
Steam integration doest work in A game build when I use the a third person template in 4.14 and in 4.13, but it works if I create an empty project, even in 4.14

Got it working!!,

The problem was kinda silly, after going through all my .ini files and comparing projects that worked and that didn’t, it turns out that the projects that steam was working in were set to package development builds, and were it wasn’t were set to package shipping builds.

So guys If you want steam to work never set unreal to package shipping builds. Can’t believe I spent almost 2 days trying to resolve this.

Thanks for the help @qdelpeche though it was a different problem your suggestion to look at my .ini files definitely helped. And now its crunch time!!

That is not a fix, shipping builds are what you want to use for release.

You need to add an steam_appid.txt file that contains just your appID to the binary location of your project to get steam loading on shipping builds.

Thanks for the heads up, shipping build is working now, but I’m not sure if I did it right. I tried creating the steam_appid.txt file in binaries folder of the project before making a shipping build and it didn’t work. but when I created the steam_appid.txt in the binaries folder of the built game it worked. to be more specific I put the steam_appid.txt file in

WindowsNoEditor\SaveOurSouls\Binaries\Win64\steam_appid.txt

@qdelpeche did you have to create a steam_appid.txt file after building your game? and what build configuration did you use for your game, shipping or development?

I always use a Shipping Build … sorry I thought that was the norm.

Yes … I added steam_appid.txt to the folder after I do my Shipping Build and before I package it for Steam. This is also normally where I submit the executable to Steam for the DRM protection.

Okay so that was what I was missing, and thanks for the heads up with the DRM protection :slight_smile:

Hi guys… basically i did everything that is explained in this forum. I added dev App ID and app ID but still steam overlay doesn’t come. But if i use 480 for both of them, steam overlay just works fine. Please help on how to get steam overlay working with my ID’s, thanks.