bdk-blender/release/steam/README.md
Nathan Letwory 975ca91939 Steam Release: Script creation of Steam build files
Script tool for automation of Steam build files for tasks like {T77348}

This script automates creation of the Steam files: download of the archives,
extraction of the archives, preparation of the build scripts (VDF files), actual
building of the Steam game files.

Requirements
============

* MacOS machine - Tested on Catalina 10.15.6. Extracting contents from the DMG
  archive did not work Windows nor on Linux using 7-zip. All DMG archives tested
  failed to be extracted. As such only MacOS is known to work.
* Steam SDK downloaded from SteamWorks - The `steamcmd` is used to generate the
  Steam game files. The path to the `steamcmd` is what is actually needed.
* SteamWorks credentials - Needed to log in using `steamcmd`.
* Login to SteamWorks with the `steamcmd` from the command-line at least once -
  Needded to ensure the user is properly logged in. On a new machine the user
  will have to go through two-factor authentication.
* App ID and Depot IDs - Needed to create the VDF files.
* Python 3.x - 3.7 was tested.
* Base URL - for downloading the archives.

Reviewed By: Jeroen Bakker

Differential Revision: https://developer.blender.org/D8429
2020-12-16 11:15:18 +01:00

3.0 KiB

Creating Steam builds for Blender

This script automates creation of the Steam files: download of the archives, extraction of the archives, preparation of the build scripts (VDF files), actual building of the Steam game files.

Requirements

  • MacOS machine - Tested on Catalina 10.15.6. Extracting contents from the DMG archive did not work Windows nor on Linux using 7-zip. All DMG archives tested failed to be extracted. As such only MacOS is known to work.
  • Steam SDK downloaded from SteamWorks - The steamcmd is used to generate the Steam game files. The path to the steamcmd is what is actually needed.
  • SteamWorks credentials - Needed to log in using steamcmd.
  • Login to SteamWorks with the steamcmd from the command-line at least once - Needded to ensure the user is properly logged in. On a new machine the user will have to go through two-factor authentication.
  • App ID and Depot IDs - Needed to create the VDF files.
  • Python 3.x - 3.7 was tested.
  • Base URL - for downloading the archives.

Usage

$ export STEAMUSER=SteamUserName
$ export STEAMPW=SteamUserPW
$ export BASEURL=https://download.blender.org/release/Blender2.83/
$ export VERSION=2.83.3
$ export APPID=appidnr
$ export WINID=winidnr
$ export LINID=linuxidnr
$ export MACOSID=macosidnr

# log in to SteamWorks from command-line at least once

$ ../sdk/tools/ContentBuilder/builder_osx/steamcmd +login $STEAMUSER $STEAMPW

# once that has been done we can now actually start our tool

$ python3.7 create_steam_builds.py --baseurl $BASEURL --version $VERSION --appid $APPID --winid $WINID --linuxid $LINID --macosid $MACOSID --steamuser $STEAMUSER --steampw $STEAMPW --steamcmd ../sdk/tools/ContentBuilder/builder_osx/steamcmd

All arguments in the above example are required.

At the start the tool will login using steamcmd. This is necessary to let the Steam SDK update itself if necessary.

There are a few optional arguments:

  • --dryrun: If set building the game files will not actually happen. A set of log files and a preview manifest per depot will be created in the output folder. This can be used to double-check everything works as expected.
  • --skipdl: If set will skip downloading of the archives. The tool expects the archives to already exist in the correct content location.
  • --skipextract: If set will skip extraction of all archives. The tool expects the archives to already have been correctly extracted in the content location.

Run the tool with -h for detailed information on each argument.

The content and output folders are generated through appending the version without dots to the words content and output respectively, e.g. content2833 and output2833. These folders are created next to the tool.

From all .template files the Steam build scripts will be generated also in the same directory as the tool. The files will have the extension .vdf.

In case of errors the tool will have a non-zero return code.