Technology

We have a launcher that sits before the actual UE4 game client is launched.  This performs a number of functions for us:
  1. On platforms (like our own website) without a patch/distribution element it handles the downloading and updating of the game client and itself.  On steam and the like those functions are handled by the distribution platform.
  2. It handles initial "tokenization" of logins allowing us to abstract multiple different login platforms (steam, our website, etc) without having to change the game client itself.
  3. It handles multiple environments like our proving grounds with different versions of the game client.
  4. On platforms that don't verify requirements (like DX11) it handles the installation/detection of these

However as with any piece of software, having a launcher can add some complications and sometimes has its own bugs that need to be diagnosed/etc.  This post is an attempt to get down and maintain a list of advanced features and troubleshooting steps to help you help us figure out any problems you might have with our launcher/patcher.

Hopefully these notes will help you out or at least give you some insight into the pieces of the launcher.

Logging

Under normal circumstances the launcher logs to the following directories:
Windows: %AppData%\descent-underground-launcher
Mac: ~/Library/Application Support/descent-underground-launcher
Linux: ~/.config/descent-underground-launcher
And creates two log files:  
launcher.log:  this is created during normal launcher activities and its overwritten each time you launch the launcher.
launcherUpdate.log:  this is created when the launcher "self-updates" 

Advanced Logging

If for some reason logs are not being generated, setting the environment variables "ELECTRON_ENABLE_LOGGING" and "ELECTRON_ENABLE_STACK_DUMPING" to true will output log information to the console so that we can get more information about what is going wrong so for example on a windows default steam install you would open a command prompt and run:
cd "C:\Program Files (x86)\Steam\steamapps\common\Descent Underground\launcher
set ELECTRON_ENABLE_LOGGING=true
set ELECTRON_ENABLE_STACK_DUMPING=true
descent
And it should output all the log information to the command prompt console.

Options

The launcher has some basic options available through a gear in the upper right and contains things like saving authentication and such.  These options are output to a file in the same directories as the logs named options.db
If needed this file can be deleted by hand or by launching with the --clear option on the command line or in Steam's advanced options.

Require Administrator / Process Escallation (Windows Only)

Because the launcher/patcher contains self-updating elements and updates files in the Program Files directory on windows, by default when not run through a platform that handles distribution, it "escalates" on launching.  This is where if you have UAC enabled it prompts you allow the process to run with administrator rights.
If the user running isn't an Administrator it will simply bypass this requirement but might run into permission issues during updating the launcher or game client.
While running with administrator rights takes care of a lot of issues for a lot of users, not all users want to run the software with administrator rights.  You can accomplish this by adding the --user command line parameter when launching and it will bypass escallation.  Note: it might have permission issues while updating the launcher or game client depending on where it is installed.

Debugging

Sometimes things just don't go the way we want them and we have a hard time figuring out what is going on.  There are a number of command line parameters that you can run that do some debugging things.  Note these are not guarnateed to work (in fact some of them are engineered specifically not to work) and may change or go away without notice:
--repair - This forces the launcher to "re-download" itself and update itself.
--dev - This enables a "dev mode" that opens a logging/debug window on launch and changes the behavior.  It is generally not useful but there might be some circumstances where we have you run this and enter some commands to give us more information.
--bypass - This disables/bypasses requirements checking (such as checking for DX11 and that there is enough memory)
--clear - as mentioned earlier this clears the launcher's options database
--keeplog - don't overwrite the log, append to it
--nolog - don't log

Advanced Debugging

There usually isn't a good reason to run these unless we tell you as they break core functionality, I include them here just for completeness/curiosity.
--debug-blank - Runs the normal initialization and code but instead of launching a UI, launches the debug pane and a blank page.
--debug-plain - Launches with zero customized logic, and just a debug pane and blank page.  This is used to test when all else fails if there is a core compatability issue with Elecron (the platform we use for the launcher) and some software on the OS
--debug-main-init - This emits dialog boxes at key points during the launcher initilization to determine where in the init the process might be dying if it does die.
--nostart - Runs as normal but doesn't init the UI 

Advanced Options

In addition to the above there are some simple options that change the way the launcher interacts that might be useful for some users so here they are:
--user - as mentioned earlier this bypasses administrator escallation on windows
--DX12 - this launches with experimental DX12 support, note this can also be enabled in the options screen.
--steam - this launches the launcher in "steam mode" where it attempts to authenticate against steam.  If you have steam and want to launch this from a command line/etc this is the way steam launches it and how you would do that.
--webuser - this is how steam launches the option to use a web username/password instead of steamid.  It implicitly handles things like disabling escallation/etc.
--manual - this is a shortcut to launch a web browser to our online manual
on Thursday December 03 by Sarah Tennyson

Developer Tracker