Key Steps for Development in Unreal Engine

  1. Mapping Unreal Project(s) Directory as a Network Drive

    Avoid issues with maximum character length requirements from path strings.

  2. Package Project for Steam

    Setup of required plugins and SDK to ship to Steam.

  3. Adding Steam Achievements

    Implementing Steamworks achievements into your project.

  4. Uploading to Steam

    Use the SDK GUI app to upload packaged game to Steam.

Cheat Sheet

  • disableallscreenmessages

    Suppress all debug printing to screen when in non-shipping.

Mapping Unreal Project(s) Directory as a Network Drive

Avoid issues with maximum character length requirements from path strings.

  1. In Windows Explorer, navigate to the parent folder containing your UE4 project(s) ex. 'C:\Users\coolnames\Documents\'
  2. Right click on the folder containing your UE4 projects, select Properties.
  3. Go to 'Sharing' tab, then click on 'Advanced Sharing' button.
  4. Check the checkbox for 'Share this folder'. In the same window, click the 'Permissions' button.
  5. Select the Group or User that will be accessing these files, then check the checkbox under 'Allow'. Click Apply, and close this and the Properties window.
  6. Back in Windows Explorer, navigate to 'This PC'
  7. Click carrat ^ at top right of window to expand options ribbon if not visible. Click on 'Map network drive' icon to begin wizard.
  8. Select an available Drive letter from the drop down that you would like associate with your mapped drive.
  9. In the text box for 'Folder', enter double backslash, then the name of your computer, one backslash, and the name of the folder you set as shared from above ex. '\\COOLCOMP\UnrealProjects'
  10. Select the 'Finish' button.
  11. A relog into Windows or a reboot might be required for the mapped drive to appear in your Network Locations section in This PC in Explorer.
  12. You have now condensed the parent folder characters in all path strings to just a drive letter. ex. 'C:\Users\coolnames\Documents\UnrealProjects' is now 'U:\'

Package Project for Steam

Setup of required plugins and SDK to ship to Steam.

Visual Studio is required to generate C++ classes
  1. Advanced Sessions Plugins
    1. Walkthrough video
    2. Advanced Sessions Plugin
      "A Blueprint Library Plugin that exposes additional Networking/Session/OnlineSubsystem/Friends/Voice features to Blueprints that were missing."
      1. Download the zip for the appropiate plugin version that matches the version of Unreal Engine being used for your project.
      2. Inside zip, copy folder named 'AdvancedSessions' to the following 2 locations:
        • UE Install Directory ex. 'C:\Program Files\Epic Games\UE_4.26\Engine\Plugins\'
        • Project Directory ex. 'C:\Users\coolnames\Documents\Unreal Projects\SampleGame\Plugins\'
    3. Unreal Engine Online Subsystem
      "API needed to ship to Valve's Steam platform."
      Paste the following section of code in the 'DefaultEngine.ini' file for your UE4 project (located in projectroot/Config/)
      [/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=480
      GameServerQueryPort=27015
      bRelaunchInSteam=false
      GameVersion=1.0.0.0
      bVACEnabled=1
      bAllowP2PPacketRelay=true
      P2PConnectionTimeout=90

      [/Script/OnlineSubsystemSteam.SteamNetDriver]
      NetConnectionClassName="/Script/OnlineSubsystemSteam.SteamNetConnection"
      • 'SteamDevAppId' value of 480 is for testing and is associated to the test game of 'Space War'. When ready, change this value to the App ID for your app inside of Steamworks.
      • Set 'GameVersion' to your current release version of your game.
    4. Open Unreal Engine project and click on 'Settings' button, then select 'Plugins'.
    5. Verify that both 'Advanced Sessions' and 'Advanced Steam Sessions' plugins are listed and Enabled. Also verify that 'Built-In' plugins for 'Online Subsystem' and 'Online Subsystem Steam' are enabled.
    6. Make sure Steam is running on your computer and you are logged in.
    7. Verify plugins are operational by launching game in 'Standalone Game' mode. When app launches, Steam overlay notification should pop up in bottom right of screen. Pressing the Shift+Tab hotkey should open the Steam overlay. If you left the Steam App ID as 480, the name 'Space War' should be shown in the overlay, otherwise, the name of app inside of Steam will be shown.
  2. Steamworks SDK
    1. Walkthrough video
    2. Login to Steamworks website, and go to your Dashboard. On the right hand column of page, find the download link for 'Steamworks SDK' and download.
    3. Extract zip to an easily accessible folder.
    4. In Windows Explorer, navigate to your UE4 project directory.
      1. Create a folder named 'Engine' if it does not exist.
      2. Inside 'Engine', create a folder named 'Binaries' if it does not exist.
      3. Inside 'Binaries', create a folder named 'ThirdParty' if it does not exist.
      4. Inside 'ThirdParty', create a folder named 'Steamworks'.
      5. Inside 'Steamworks', create a folder named 'Steamv' + SDK version number ex. 'Steamv150' for SDK v1.50
      6. Inside 'SteamvXXX', create 2 folders named 'Win32' and 'Win64'.
    5. In Windows Explorer, navigate to the Steam install directory ex. 'C:\Program Files (x86)\Steam'
      1. Use searchbox in Explorer and search for 'steamclient'.
      2. Disregard any matched .dll files returned from a 'steamapps' directory.
      3. Copy 'steamclient.dll' and 'steamclient64.dll' to the respective 'Win32' and 'Win64' folders you created in the steps above.
      4. Repeat the steps 1-3 above, searching for 'tier0', and copying both .dll versions to your project directory's 'SteamvXXX'.
      5. Repeat the steps 1-3 above, searching for 'vstdlib', and copying both .dll versions to your project directory's 'SteamvXXX'.
    6. In Windows Explorer, navigate to the extraced SDK directory
      1. Repeat the steps 1-3 above, searching for 'steam_api.dll', and copying both .dll versions to your project directory's 'SteamvXXX'.
  3. Packaging
    1. You need to Create a C++ blank file in the editor to allow it to package out the plugin. Do this by clicking on the 'Add New' green button at the top right of the 'Content Browser' with your UE4 project loaded.
    2. Select 'New C++ Class'. Choose 'None' for parent class.
    3. In the next screen, name the class either the given default or something arbitrary.
    4. Creating this class now will allow the packaging of plugins placed inside your working project directory.

Adding Steam Achievements

Implementing Steamworks achievements into your project.

Walkthrough video
  1. In Windows Explorer, navigate to your project directory, then 'Engine', then open 'DefaultEngine.ini'.
  2. Under '[OnlineSubsystemSteam]', add your created Steamworks achievement IDs with the following scheme: Achievement_0_Id="ACH_WIN_ONE_GAME"
    Achievement_1_Id="ACH_WIN_100_GAMES"
    Achievement_2_Id="ACH_TRAVEL_FAR_ACCUM"
    Achievement_3_Id="ACH_TRAVEL_SIMPLE"

Uploading to Steam

Use the SDK GUI app to upload packaged game to Steam.

Steamworks Wiki
  1. Initial Steamworks Depot configuration
    1. Under Steamworks App Admin for your game, go to 'Installation' tab, then 'General Installation', and click on the 'Add Launch Options' button.
    2. Change the executable file name and assign both OS and CPU arch.
    3. Navigate to the 'Builds' tab, and select 'Depots'.
    4. On the Depots page, configure depot for the OS and CPU arch. Click 'Save Changes' button.
    5. Publish the changes to do initial depot configuration.
  2. Build with SDK
    1. In Windows Explorer, navigate to extracted Steamworks SDK. Go directory 'tools', then launch 'SteamPipeGUI.exe'
    2. Input App ID from Steamworks, and description.
    3. Input Depot ID (default is App ID +1).
    4. Set 'Build Path' to the directory housing all packaged game files. ex. the UE4 output folder named 'WindowsNoEditor'
    5. Set SDK ContentBuilder Path correctly, which should be '..\tools\ContentBuilder'
    6. Enter username and password.
    7. Click on 'Generate VDFs' button.
    8. Click 'Upload' button. If using 2-factor authentication for your account, be ready to type it into console window that appears.
  3. Set Build as Live
    1. Back in Steamworks App Admin, under 'SteamPipe' tab, select 'Builds'.
    2. In table showing las 50 builds, the build just uploaded should be there with matching timestamp and description. Click on the dropdown and select 'default', then click 'Preview Changes' button.
    3. Click 'Set Build Live Now' button. This is the final action to make the game available to install/play for any Steam user with the game in their library.
  4. Restart Steam client to refresh App in library. Install and enjoy!