Announcement

Collapse
No announcement yet.

Steam Setup Utility

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

    #16
    These are the compile errors I've been getting:

    Code:
    Error	5	error : Failed to produce item: C:\Users\Ryan\Desktop\UnrealEngine-release\Engine\Plugins\Experimental\SteamVR\Binaries\Win64\UE4Editor-SteamVR.dll	C:\Users\Ryan\Documents\Unreal Projects\SuperDistroBuildX\Intermediate\ProjectFiles\ERROR	SuperDistroBuildX
    Error	1	error C2059: syntax error : ';'	c:\users\ryan\desktop\unrealengine-release\engine\source\runtime\renderer\private\PrimitiveSceneInfo.h	34	1	SuperDistroBuildX
    Error	2	error C2143: syntax error : missing ';' before ')'	c:\users\ryan\desktop\unrealengine-release\engine\source\runtime\renderer\private\PrimitiveSceneInfo.h	34	1	SuperDistroBuildX
    Error	3	error C2143: syntax error : missing ';' before '{'	c:\users\ryan\desktop\unrealengine-release\engine\source\runtime\renderer\private\PrimitiveSceneInfo.h	35	1	SuperDistroBuildX
    Error	6	error MSB3073: The command "C:\Users\Ryan\Desktop\UnrealEngine-release\Engine\Build\BatchFiles\Rebuild.bat SuperDistroBuildXEditor Win64 Development "C:\Users\Ryan\Documents\Unreal Projects\SuperDistroBuildX\SuperDistroBuildX.uproject"" exited with code 2.	C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets	43	5	SuperDistroBuildX
    KITATUS
    "Information shouldn't be behind a paywall, It should be free for all!"

    Comment


      #17
      KitatusStudios, I'm going to take a look at these errors and upload a new package. Thank you for being patient and also the first to test this besides me.

      Comment


        #18
        Originally posted by Garner View Post
        KitatusStudios, I'm going to take a look at these errors and upload a new package. Thank you for being patient and also the first to test this besides me.
        Nah, Thank-YOU for being totally awesome! If this does fix my issues, I'd be more then happy to try and help promote Battle for Presidency for you! I don't know if my fan-reach is anything like yours - But it never hurts

        Thanks for all this - You're the best!
        KITATUS
        "Information shouldn't be behind a paywall, It should be free for all!"

        Comment


          #19
          SteamVRPrivatePCH.h also had a hardcoded Steam_SDK_Ver and some code to append with conflicting ARRAY_COUNT definition:
          // Steamworks SDK Clobber Define Fix
          #undef ARRAY_COUNT
          #define ARRAY_COUNT( array ) (sizeof(ArrayCountHelper(array))+0)
          The fix has been made and the code compiles fine on my computer, I'm going to test it on a different computer here to make sure.

          Comment


            #20
            Originally posted by Garner View Post
            SteamVRPrivatePCH.h also had a hardcoded Steam_SDK_Ver and some code to append with conflicting ARRAY_COUNT definition:


            The fix has been made and the code compiles fine on my computer, I'm going to test it on a different computer here to make sure.
            Excellent! You're awesome! When you upload 1.4; Let me know so I can test (Also let me know which build you're using from GitHub so I can test it as you have been!)
            KITATUS
            "Information shouldn't be behind a paywall, It should be free for all!"

            Comment


              #21
              Sorry for the long delay it's taken quite a while to figure out what was wrong. Steam would show up sometimes and sometimes it wouldn't, but I have my fingers crossed for this fix.

              The first issue you were having :

              I'm getting this "Unhandled exception" error from the app itself:
              This has to do with the binary engine files being locked by default. They're locked I'm sure because modifying them doesn't do much good for changing the steam version since the engine has already been compiled with steam v130. WinAutomation is also not part of the binary build like you know but I hadn't tested the binary build until today sorry about that. I adjusted the 'is Binary UE4 Version' button circumvent this problem and I tested that the steam overlay is working on a different computer.

              I noticed a reference to a file on my drive:
              e:\movies\MyVisualStudioProjects\UE4SteamConnection\WindowsFormsApplication1\Form1.cs:line 543
              so I created an installer of the utility that should solve that.

              The compile issues you're having seems to be due to compatibility issues with SteamVR and version 1.32 of steam. I activated the SteamVR plugin and I saw all the same compile errors you saw. Disabling the plugin doesn't fix the compile issues but there was a fix on github which was to undefine steam's ARRAY_COUNT and replace it with UE4's version like this:

              // Steamworks SDK Clobber Define Fix
              #undef ARRAY_COUNT
              #define ARRAY_COUNT( array ) (sizeof(ArrayCountHelper(array))+0)
              I added a checkbox in the plugin 'Enable Steamworks 132 Clobber Fix' which will append this fix to OnlineSubsystemSteamPrivatePCH and SteamVRPrivatePCH .Even though this fixes the compile errors, the overlay hasn't shown up in the editor anymore since I activated the SteamVR plugin without the 'Enable Steam in editor checkbox' ticked.

              I read here that UE4 version 4.8 should have more compatibility with steam 1.32. https://answers.unrealengine.com/que...on-client.html

              Overall, the most reliable option(The one where steam worked most of the time) was to stick with steam version 1.30.
              The binary version worked instantly as soon as the issues where resolved with the 'use binary UE4' button

              I can't explain why it works sometimes and not others with the overlay in the editor, it's definitely irritating. Clicking the 'enable steam in editor' button should take care of this, but also causes issues when trying to test achievements and hosting games.


              Utility Info:
              -----------------------------

              I've divided the utility in 3 parts:

              Step 1 is only necessary for the enabling of online features in the game project and in the config file DefaultEngine.ini
              Step 2 is only necessary for copying the steam SDK and binaries to their appropriate folders
              Step 3 is only necessary when configuring the source to use a different steam version than the one currently used(v1.30), or enabling steam in editor

              *Step 3 can be disabled if using version 1.30 of steam



              Code:
                   private void btnSetupSteam_Click(object sender, EventArgs e)
                      {
                          //---------------------------------------------------------
                          //  MAIN PROCESS
                          //---------------------------------------------------------
                          SaveDefaultSettings();
                          LoadDefaultSettings();
              
                          Debug.SetText(txtLogList, "---------------------");
                          Debug.SetText(txtLogList, "Setting up Steam Now");
                          Debug.SetText(txtLogList, "---------------------");
              
              
                          //------------------------------------------------------
                          // 1. Modify Game Project
                          //------------------------------------------------------
                          // Configure Game Project to enable online features
                          if (chkSetupBuildFile.Checked)
                          {
                              GameModify.EnableOnlineFeatures(this.txtLogList);
                          }
              
                          // Update Game Config File
                          ConfigModify.SetupConfigFile(this.txtLogList, this.chkEnableVoice, this.lstCurrentAchievements);
              
              
                          //------------------------------------------------------
                          // 2. COPY Steam SDK 
                          //------------------------------------------------------
                          // Copy SDK to game engine if it doesn't exist
                          FileModify.CopySteamSDK(this.txtLogList);
              
                          // Copy Steam Binaries
                          FileModify.CopySteamBinaries(this.txtLogList);
              
                          
                          //------------------------------------------------------
                          // 3. Configure UE4 to use Steam Version
                          //------------------------------------------------------
                          // Configure Steamworks.build.cs with Steam version 
                          FileModify.SteamworksBuildCS(this.txtLogList);
                          
                          // Configure winplatform.automation.cs with Steam version 
                          FileModify.WinPlatformAutomation(this.txtLogList);
              
                          // Configure OnlineSubsystemSteamPrivatePCH.h with Steam version and ARRAY_COUNT Fix
                          FileModify.OnlineSubsystemSteamPrivatePCH(this.txtLogList);
              
                          // Configure SteamVRPrivatePCH.h with Steam version and ARRAY_COUNT Fix
                          FileModify.SteamVRPrivatePCH(this.txtLogList);
                          
                          // Configure UE4BuildConfiguration.cs with Steam version
                          FileModify.UE4BuildConfiguration(this.txtLogList);
                          
                          // Configure OnlineSubsystemSteam.cpp with Steam version and enable steam in editor
                          FileModify.OnlineSubsystemSteam(this.txtLogList);  
                          
              
                          Debug.SetText(txtLogList, "----------------------");
                          Debug.SetText(txtLogList, "Completed Steam Setup!");
                          Debug.SetText(txtLogList, "----------------------");
                      }
              The last thing I'd want is for the tool to create more work than actually doing it by hand.KitatusStudios, Thanks a lot man I appreciate the kind gestures and any help with Battle for Presidency you can offer. I'm going to be out this weekend I'll be back during the week. As far as where I left off, the program was tested against version 1.32 and 1.30 of Source and Binary and is working. Really crossing fingers this works out for everyone.

              Comment


                #22
                Darn this is so cool. Thanks.

                I am definitely going to give this a whirl. 8-}
                Quinton Delpeche
                Founder - Gobbo Games | Designer - The Colony 2174 (Board Game) | Developer - Riders of Asgard

                Comment


                  #23
                  Trying it out now; Thanks man!
                  KITATUS
                  "Information shouldn't be behind a paywall, It should be free for all!"

                  Comment


                    #24
                    Cool thanks! Let me know how it goes

                    Comment


                      #25
                      Originally posted by Garner View Post
                      Cool thanks! Let me know how it goes
                      Will do; Engine is compiling now!
                      KITATUS
                      "Information shouldn't be behind a paywall, It should be free for all!"

                      Comment


                        #26
                        @Garner: I am actually looking forward to your game ... it looks pretty cool. Keeping my eye on it ... 8-}
                        Quinton Delpeche
                        Founder - Gobbo Games | Designer - The Colony 2174 (Board Game) | Developer - Riders of Asgard

                        Comment


                          #27
                          Testing with 1.32, Getting:
                          Code:
                           LogOnline:Display: STEAM: Loading Steam SDK 1.32
                          LogOnline:Warning: STEAM: Steam API disabled!
                          LogOnline:Display: STEAM: OnlineSubsystemSteam::Shutdown()
                          LogOnline:Warning: Unable to create OnlineSubsystem module Steam
                          LogOnline:Warning: Unable to load default OnlineSubsystem module Steam, using NULL interface
                          Trying other stuff out now.

                          Edit:

                          So 1.30 gives me Steam in the Editor; However, Achievements aren't working Don't know what I'm doing wrong on that front
                          Last edited by KITATUS; 04-24-2015, 03:12 PM.
                          KITATUS
                          "Information shouldn't be behind a paywall, It should be free for all!"

                          Comment


                            #28
                            qdelpeche: Thank you! I'll let you know when it's up

                            KitatusStudios:About this error:
                            LogOnline: Display: STEAM: Loading Steam SDK 1.32
                            LogOnline:Warning: STEAM: Steam API disabled!
                            LogOnline: Display: STEAM: OnlineSubsystemSteam::Shutdown()
                            LogOnline:Warning: Unable to create OnlineSubsystem module Steam
                            LogOnline:Warning: Unable to load default OnlineSubsystem module Steam, using NULL interface
                            This is generally the error you want to see. So long as the overlay is working in the standalone game and achievements can be added the the player then all is good usually.

                            Code:
                            bool FOnlineSubsystemSteam::IsEnabled()
                            {
                            	if (bSteamworksClientInitialized || bSteamworksGameServerInitialized)
                            	{
                            		return true;
                            	}
                            
                            	// Check the ini for disabling Steam
                            	bool bEnableSteam = true;
                            	GConfig->GetBool(TEXT("OnlineSubsystemSteam"), TEXT("bEnabled"), bEnableSteam, GEngineIni);
                            	if (bEnableSteam)
                            	{
                            		// Steam doesn't support running both the server and client on the same machine
                            		bEnableSteam = !FParse::Param(FCommandLine::Get(),TEXT("MultiprocessOSS"));
                            #if UE_EDITOR
                            		if (bEnableSteam)
                            		{
                            			bEnableSteam = IsRunningDedicatedServer() || IsRunningGame();
                            		}
                            #endif
                            	}
                            
                            	return bEnableSteam;
                            }
                            This code is part of OnlineSubsystemSteam.cpp. What it's doing is shutting steam off in the editor between the #if UE_EDITOR and #endif if the game isn't running or not running a dedicated server. The checkbox for 'Enable steam in editor' will comment this out and allow the error Steam API disabled! to disappear in the Source build(not binary) of UE4. Doing so will cause the steam overlay to popup on every single window in the Unreal editor and will also lead to several other issues (Steam Achievements won't work and hosting games is slower). I noticed that things seem to go smoothly on a new project rather than one that's been through upgrades and seen hell, have you tested a new c++ project with the tool?

                            Here is a test of a new c++ project with achievements:

                            Comment


                              #29
                              Originally posted by Garner View Post
                              qdelpeche: Thank you! I'll let you know when it's up

                              KitatusStudios:About this error:


                              This is generally the error you want to see. So long as the overlay is working in the standalone game and achievements can be added the the player then all is good usually.

                              Code:
                              bool FOnlineSubsystemSteam::IsEnabled()
                              {
                              	if (bSteamworksClientInitialized || bSteamworksGameServerInitialized)
                              	{
                              		return true;
                              	}
                              
                              	// Check the ini for disabling Steam
                              	bool bEnableSteam = true;
                              	GConfig->GetBool(TEXT("OnlineSubsystemSteam"), TEXT("bEnabled"), bEnableSteam, GEngineIni);
                              	if (bEnableSteam)
                              	{
                              		// Steam doesn't support running both the server and client on the same machine
                              		bEnableSteam = !FParse::Param(FCommandLine::Get(),TEXT("MultiprocessOSS"));
                              #if UE_EDITOR
                              		if (bEnableSteam)
                              		{
                              			bEnableSteam = IsRunningDedicatedServer() || IsRunningGame();
                              		}
                              #endif
                              	}
                              
                              	return bEnableSteam;
                              }
                              This code is part of OnlineSubsystemSteam.cpp. What it's doing is shutting steam off in the editor between the #if UE_EDITOR and #endif if the game isn't running or not running a dedicated server. The checkbox for 'Enable steam in editor' will comment this out and allow the error Steam API disabled! to disappear in the Source build(not binary) of UE4. Doing so will cause the steam overlay to popup on every single window in the Unreal editor and will also lead to several other issues (Steam Achievements won't work and hosting games is slower). I noticed that things seem to go smoothly on a new project rather than one that's been through upgrades and seen hell, have you tested a new c++ project with the tool?

                              Here is a test of a new c++ project with achievements:
                              Yeah, C++ Version fixed everything!

                              You're awesome! I FINALLY have achievements working!

                              Thank-you so much!
                              KITATUS
                              "Information shouldn't be behind a paywall, It should be free for all!"

                              Comment


                                #30
                                You're welcome man I'm glad you got it working! It'll be a good a weekend then going to have to get a beer.

                                As far as cleaning a corrupt project that doesn't seem to work with the overlay I do a full cleanup following these steps. It has worked for me, hope it works for others.
                                1. Make a backup
                                2. Delete the visual studio project .sln, .sdf, .suo
                                3. Delete the contents of the Binaries folder
                                4. Delete boot.ddc from the DerivedDataCache folder
                                5. Delete the contents of the Intermediate folder
                                6. Delete the contents of the Saved folder
                                7. Replace DefaultEngine.ini with a file from a new project
                                8. Open the .uproject in a text editor and remove all plugins(Use a new project's .uproject as an example)
                                9. Right click the game's .uproject and generate visual studio project files
                                10. Open the visual studio project and do a rebuild


                                *And reapply your custom gameInstance if you're using one
                                Last edited by Garner; 04-24-2015, 06:57 PM.

                                Comment

                                Working...
                                X