Steam – Passing install parameters for Steam game from Windows command line

deus-ex-mankind-dividedsteam

I play Deus Ex: Mankind Divided (DXMD) on an AWS EC2 spot instance using Steam streaming, following this tutorial to create an AMI. From experience, I found that I can install Steam but cannot install DXMD in the AMI. When I do, DXMD won't work; it hangs when attempting to run. (if someone has suggestions on fixing this, then I won't need to take the steps below).

As a workaround, I install the game after the spot instance is created. I'd like to automate this process. From the Valve dev guide, I've managed to start the install process.
"C:\Program Files (x86)\Steam\Steam.exe" -login <myusername> <mypassword> -applaunch 337000

where 337000 is the application ID.

At this point, Steam requests an installation directory, asks me to confirm reading the license agreement, and then proceeds. How do I pass the install directory and license agreement parameters via command line? I've tried running steam with the -dev flag, which adds the console tab at the top of the GUI, so as to set the default install directory, but that doesn't help.

Best Answer

It turns out that SteamCMD to bypass the Steam GUI is the answer. After installing SteamCMD on the base AMI, you can run this from the command line:

steamcmd +login <user> <password> +force_install_dir <directory path> +app_update <game_id>

Obviously, you'll specify the username, password, installation directory, and application ID.

The last gotcha is Steam Guard, which prevents Steam account access from new, unauthorized IPs (pretty much a given which using spot instances for gaming). As a workaround, I followed the directions here for disabling it.