From a0880f65f5489dbe4b81fddc61114531115020ff Mon Sep 17 00:00:00 2001 From: Christopher Durham Date: Wed, 24 Feb 2021 09:37:13 -0600 Subject: [PATCH 1/6] Create initial README documentation --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..7855dae --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# Unreal build/deploy scripts (TGP2) + +(What does this do?) + +## Setup + +(Where do I put the scripts?) +(What needs to be `pip install`ed?) +(What other environment do we assume?) + +## Configuration + +(What goes in the `.ini`?) +(What bits of functionality are configurable?) + +## Use + +(How do I invoke the scripts?) +(What arguments are there?) +(Where are the logs?) From 522bb73e558474bf6db369f4a5fc7a184372a7e1 Mon Sep 17 00:00:00 2001 From: Christopher Durham Date: Thu, 25 Feb 2021 09:55:27 -0600 Subject: [PATCH 2/6] Update README.md --- README.md | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 85 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7855dae..2f015c5 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,94 @@ ## Setup -(Where do I put the scripts?) -(What needs to be `pip install`ed?) -(What other environment do we assume?) +You need to have the [Helix Core API for Python](https://www.perforce.com/downloads/helix-core-api-python) installed +on top of a compatible version of a Python installation. For example, the current p4python MSI installer is +`p4python-3.8-x64.msi`, so it requires specifically Python 3.8.x. (A newer version of Python, such as 3.9.x, will +_not_ work!) Install the [correct version of Python](https://www.python.org/downloads/) for current p4python, then +run the p4python MSI. It should detect your python install (e.g. "Use Python 3.8 from registry"), and install on top. + +Additionally, you need +- [Inno Setup](https://jrsoftware.org/isdl.php) to actually pack the installer. +- The latest [Steamworks SDK](https://partner.steamgames.com/downloads/steamworks_sdk.zip) + +Clone the buildscripts into their own folder, _independent_ of your project folder. For example, I have mine at just +`D:\TGP2BuildScripts`. The buildscripts will run from here and clone/build your project. ## Configuration -(What goes in the `.ini`?) -(What bits of functionality are configurable?) +In your build scripts folder, create a `config.ini`. This tells the buildscripts specific information about your build. +The basic format is as follows: + +```ini +; You can reference other variables as `${Section:setting}` +; Section is optional if referring to the same section +; If you need a literal `$`, escape it as `$$` +; Directory paths should end with a trailing separator + +[Game] +; The name of your game +game_name = Game Name +; The project directory to put the game for building (NOT your development folder!) +project_dir = ${Local:base_dir}Project_Files\PigmentPenguins\ +; The path to your project's project file +uproject_file = ${project_dir}PigmentPenguins.uproject +; The directory to put build artifacts +builds_dir = ${Local:base_dir}Build_Dir\ +; The directory where the latest build ends up +latest_build_dir = ${builds_dir}WindowsNoEditor + + +[Perforce] +; Your build account's P4 username +user_name = P4 Name +; Your build account's P4 password +user_password = P4 Password +; Your build account's P4 client/workspace name +client = Workspace Name + + +[Local] +; Unused drive letter to mount Deleted Nightly +drive_letter = K: +; Base directory for builds +base_dir = D:\AutomatedBuilds\C3X\TGP2\ +; Directory to put executable +exe_dir = ${base_dir}Executable\ +; Filepath to put executable build script +exe_build_script = ${exe_dir}Executable_Build_Script.iss +; Filepath to Inno Setup command line interface +inno_setup_exe = C:\Program Files (x86)\Inno Setup 6\ISCC.exe +; Directory of the Unreal Engine +ue4_engine_dir = C:\Program Files\Epic Games\UE_4.XX\Engine\ +; Directory of UE4's build scripts +ue4_batchfiles_dir = ${ue4_engine_dir}Build\BatchFiles\ +; Directory fo UE4's binaries +ue4_binaries_dir = ${ue4_engine_dir}Binaries\Win64\ + + +[SMU] +; Your build account's network username +user_name = Network Name +; Your build account's network password +user_password = Network Password +; The network path of the Deleted Nightly network folder +deleted_nightly_dir = \\smu.edu\files\Guildhall$$\Deleted Nightly\ +; The path (on the mapped drive letter) to copy the executables +remote_archive_dir = ${Local:drive_letter}\C3X\TGP2\GameName\Executables\ + + +[Steam] +; Your build account's Steam name +user_name = Steam Name +; Your build account's Steam password +user_password = Steam Password +; The directory of the Steamworks ContentBuilder tool +steam_dir = ${Local:ue4_engine_dir}Source\ThirdParty\Steamworks\SteamSDKv1XX\sdk\tools\ContentBuilder\ +; The path to the SteamCMD command line tool +steam_cmd = ${steam_cmd}builder\steamcmd.exe +; The path to your Steam build script +app_build = ${steam_cmd}scripts\app_build_1000.vdf +``` ## Use From dc43a9e6d8ac137db22de8aee27742eef5ae54ed Mon Sep 17 00:00:00 2001 From: Christopher Durham Date: Thu, 25 Feb 2021 10:30:48 -0600 Subject: [PATCH 3/6] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 2f015c5..4ccff4e 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,10 @@ uproject_file = ${project_dir}PigmentPenguins.uproject builds_dir = ${Local:base_dir}Build_Dir\ ; The directory where the latest build ends up latest_build_dir = ${builds_dir}WindowsNoEditor +; The directory that contains your map files +map_dir = ${project_dir}Content\Levels\Stages\ +; A space-separated list of map prefixes to build lighting for +maps = PLVL_ [Perforce] From 8af4cbff3eab2674bb526d4bbf4e6adf6e4d0ec7 Mon Sep 17 00:00:00 2001 From: Christopher Durham Date: Thu, 25 Feb 2021 10:38:16 -0600 Subject: [PATCH 4/6] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 4ccff4e..fb54124 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,10 @@ Additionally, you need Clone the buildscripts into their own folder, _independent_ of your project folder. For example, I have mine at just `D:\TGP2BuildScripts`. The buildscripts will run from here and clone/build your project. +You will want to set up a P4 workspace just for doing builds, so that builds don't interfere with development. +Additionally, every file that's not required for builds that's mapped into the workspace is another file that has +to be synced over the network, slowing down the process. + ## Configuration In your build scripts folder, create a `config.ini`. This tells the buildscripts specific information about your build. From e77ac1a795cebdd3a91a9f6779ba881f3d1cc423 Mon Sep 17 00:00:00 2001 From: Christopher Durham Date: Thu, 25 Feb 2021 10:56:10 -0600 Subject: [PATCH 5/6] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb54124..e35d36e 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ run the p4python MSI. It should detect your python install (e.g. "Use Python 3.8 Additionally, you need - [Inno Setup](https://jrsoftware.org/isdl.php) to actually pack the installer. - The latest [Steamworks SDK](https://partner.steamgames.com/downloads/steamworks_sdk.zip) +- The Visual Studio components for both "Desktop Development with C++" and ".NET Desktop Development" Clone the buildscripts into their own folder, _independent_ of your project folder. For example, I have mine at just `D:\TGP2BuildScripts`. The buildscripts will run from here and clone/build your project. From 13f51aa54984948e03e7059b9b1e58bac4f4b5ce Mon Sep 17 00:00:00 2001 From: Christopher Durham Date: Thu, 25 Feb 2021 11:09:44 -0600 Subject: [PATCH 6/6] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e35d36e..d6f84e1 100644 --- a/README.md +++ b/README.md @@ -95,11 +95,11 @@ user_name = Steam Name ; Your build account's Steam password user_password = Steam Password ; The directory of the Steamworks ContentBuilder tool -steam_dir = ${Local:ue4_engine_dir}Source\ThirdParty\Steamworks\SteamSDKv1XX\sdk\tools\ContentBuilder\ -; The path to the SteamCMD command line tool -steam_cmd = ${steam_cmd}builder\steamcmd.exe -; The path to your Steam build script -app_build = ${steam_cmd}scripts\app_build_1000.vdf +steam_dir = ${Local:ue4_engine_dir}Source\ThirdParty\Steamworks\Steamv1XX\sdk\tools\ContentBuilder\ +; The relative path to the SteamCMD command line tool, from $steam_dir +steam_cmd = .\builder\steamcmd.exe +; The relative path to the Steam build metadata, from $steam_dir +app_build = .\scripts\app_build_1000.vdf ``` ## Use