UDN
Search public documentation:
Steam
日本語訳
中国翻译
한국어
Licensees can log in.
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
中国翻译
한국어
Licensees can log in.
Red links require licensee log in.
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
Steam
Document Summary: A guide to using and implementing the Steam Integration in UnrealEngine3?. Document Changelog: Created by John Scott.How to use and implement the Steam Integration in UnrealEngine3
Using the Steam client
To get the initial game (after setting up the Content Server)
- Get the latest Steam SDK, and copy sdk/client/Steam.exe and sdk/client/Steam.cfg to a local folder
- Licensees can copy it from '//depot/UnrealEngine3/Development/External/Steamworks/sdk/client/...'
- UDK users can register and download from here https://partner.steamgames.com/home
- Make 'steam.cfg' writable and set the 'SdkContentServerAdrs' to the IP of where you are running your local content server
- Run 'Steam.exe'
- Right mouse click on your game (in our case 'Unreal Development Kit') on the 'My games' tab and install
- After installation is complete, right mouse click and 'Launch game'
To get an update (after setting up the Content Server)
- Updates are retrieved automatically as long as the Steam client is running
- Restart the Steam client if you do not wish to wait for the polling interval
Notes
- If you get an update, but the local content server has a fresh complete (non iterative) build, then the client will get confused. To fix this, delete all but 'Steam.exe' and 'Steam.cfg' in your local folder and start again.
- During initial development, this tends to happen a lot.
Using the Steam Content Tool
There are two methods, using the GUI and using Steam Script.Using the GUI to create an initial build with solution and project files
- Copy the build you wish to publish (e.g. 'C:\Builds\UnrealEngine3') locally
- Run the content tool (part of the Steam SDK) 'sdk/tools/ContentTool.exe'
- Click the 'New Solution' button
- Click 'Next'
- Solution Section: Type in the 'Solution Name' (UTGame) and the location to 'C:\SteamGame'
- Click 'Next'
- Application Section: Type in the 'Application Name' ('Unreal Development Kit' - this is what appears in the GUI), File Delivery is 'Loose Files' and 'Application ID' is 13260
- Click 'Next'
- Depot Section: Name is 'UTGame', Type is 'Content', 'Project Location' is 'C:\SteamGame', 'Depot Location' to 'C:\SteamGame\Depot', and 'Depot ID' to 13261
- Click 'Next'
- Click on the listbox entry to the right of
and type 'C:\Builds\UnrealEngine3' - Click 'Finish' (It will list files that it found to add to the project - click OK to synchronise the depot)
- Click on the 'Solution Properties' button near the top left of the GUI; it's just below the text of 'Solution Explorer'
- Expand out the tree views 'Launch Options -> Label = Default -> Command line = Unreal Development Kit'
- Right mouse click and change the command line to 'Binaries\Win32\UDKGame.exe'
- Close that window, save when prompted.
- Click the 'Build' toolbar button (this will take some time)
- 'C:\SteamGame\Depot' will now contain '13261_0.dat', '13261_0.blob' and 'UTGame.depot' (this is appid_version.dat and appid_version.blob)
- From the Publish menu, select 'Publish to Local Testing Server', this will copy '13261_0.dat', '13261_0.blob' and 'ContentDescriptionDB.xml' to the local server.
- Run the Content Server
Using Steam Script to create new versions
- Spawn a DOS box
- Run '//depot/UnrealEngine3/Development/External/Steamworks/sdk/tools/ContentTool.com' /verbose /console /filename '//depot/UnrealEngine3/UDKGame/Build/Steam/SteamMakeVersion.smd'
- Copy the new files from 'C:\SteamGame\Depot' to 'C:\Steam\DepotRoot'
- Copy 'C:\SteamGame\ContentDescriptionDB.xml' to 'C:\Steam\DepotRoot'
- Stop then start the content server so it detects the update.
Notes
- The update process is automated in the build system; check //depot/UnrealEngine3/Development/Builder/Scripts/Build/SteamVersion.build for details
- Be very careful when editing .sts and .spj files as seemingly innocuous changes can cause problems. Also, don't change the relative paths at all; this also causes problems.
Running the Steam Content Server
There are two methods to running the content server; from a command prompt or as a service.From a Command Prompt
- Spawn a DOS box
- Run '//depot/UnrealEngine3/Development/External/Steamworks/sdk/tools/contentserver/contentserver.exe' /verbose /DepotPath 'C:\SteamGame\LocalTestServer'
- Watch lots of debug spew fly by, but you should see mention of 13261_0 right at the end
- Steam clients can now connect and download this build
As a Service
- Move 'C:\SteamGame\LocalTestServer' to 'C:\Steam\DepotRoot' (unless you're using ContentServerCfg.txt to set the depot path for the service; see below)
- Spawn a DOS box
- Run '//depot/UnrealEngine3/Development/External/Steamworks/sdk/tools/contentserver/contentserver.exe' /install (this automatically starts the service)
- Steam clients can now connect and download this build
Notes
- The content server generally works very well and seamlessly handles a lot of the typical network nightmares.
- I have found two notable exceptions
- The content server does not detect new versions, to register a new version you need to restart the service.
- The depot location when running as a service cannot be set from the commandline. When running as a service, it can only be set via a file named ContentServerCfg.txt located in the same directory as ContentServer.exe. Otherwise the default value of \Steam\DepotRoot is used (the path is relative to the root of the volume). The syntax of this file is similar to UE3 .ini files; so for example, to change the depot location from \Steam\DepotRoot to \LocalContentServer, ContentServerCfg.txt would need to contain the following two lines:
[ClientContent]
DepotRootPath = "\LocalContentServer"
