Announcement

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    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 https://docs.unrealengine.com/latest...m/#modulesetup )

    (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.

    Skywalker "this is not going to go the way that you think" PORTFOLIO

    #2
    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"
    }
    }
    Last edited by qdelpeche; 02-27-2017, 12:43 PM.
    Quinton Delpeche
    Founder - Gobbo Games | Designer - The Colony 2174 (Board Game) | Developer - Riders of Asgard

    Comment


      #3
      Originally posted by qdelpeche View Post
      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.

      }
      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.

      Skywalker "this is not going to go the way that you think" PORTFOLIO

      Comment


        #4
        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.
        Quinton Delpeche
        Founder - Gobbo Games | Designer - The Colony 2174 (Board Game) | Developer - Riders of Asgard

        Comment


          #5
          Originally posted by qdelpeche View Post
          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

          Skywalker "this is not going to go the way that you think" PORTFOLIO

          Comment


            #6
            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.
            Quinton Delpeche
            Founder - Gobbo Games | Designer - The Colony 2174 (Board Game) | Developer - Riders of Asgard

            Comment


              #7
              Originally posted by qdelpeche View Post
              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.

              Skywalker "this is not going to go the way that you think" PORTFOLIO

              Comment


                #8
                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.
                Quinton Delpeche
                Founder - Gobbo Games | Designer - The Colony 2174 (Board Game) | Developer - Riders of Asgard

                Comment


                  #9
                  Originally posted by qdelpeche View Post
                  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 Click image for larger version

Name:	upload.jpg
Views:	1
Size:	125.0 KB
ID:	1124164

                  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())

                  Skywalker "this is not going to go the way that you think" PORTFOLIO

                  Comment


                    #10
                    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"
                    Quinton Delpeche
                    Founder - Gobbo Games | Designer - The Colony 2174 (Board Game) | Developer - Riders of Asgard

                    Comment


                      #11
                      Originally posted by qdelpeche View Post
                      You need to add SteamAppID as well. Below is mine for Riders of Asgard."
                      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
                      Last edited by I Create Art!; 03-01-2017, 11:40 AM.

                      Skywalker "this is not going to go the way that you think" PORTFOLIO

                      Comment


                        #12
                        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 [MENTION=22376]qdelpeche[/MENTION] though it was a different problem your suggestion to look at my .ini files definitely helped. And now its crunch time!!
                        Last edited by I Create Art!; 03-01-2017, 03:02 PM.

                        Skywalker "this is not going to go the way that you think" PORTFOLIO

                        Comment


                          #13
                          Originally posted by I Create Art! View Post
                          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 [MENTION=22376]qdelpeche[/MENTION] 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.


                          Consider supporting me on patreon

                          My Open source tools and plugins
                          Advanced Sessions Plugin
                          VR Expansion Plugin

                          Comment


                            #14
                            Originally posted by mordentral View Post
                            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

                            [MENTION=22376]qdelpeche[/MENTION] 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?
                            Last edited by I Create Art!; 03-01-2017, 09:55 PM.

                            Skywalker "this is not going to go the way that you think" PORTFOLIO

                            Comment


                              #15
                              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.
                              Quinton Delpeche
                              Founder - Gobbo Games | Designer - The Colony 2174 (Board Game) | Developer - Riders of Asgard

                              Comment

                              Working...
                              X