55 lines
4.7 KiB
Markdown
55 lines
4.7 KiB
Markdown
This tool is used for fetching releases from SWTOR’s patch server CDN and installing them.
|
||
|
||
# Dependencies
|
||
For this tool to work, ```tsc``` and ```tslint``` must be globally available, e.g. by running:
|
||
|
||
```bash
|
||
npm install -g typescript tslint
|
||
```
|
||
|
||
# Overview
|
||
SWTOR’s patcher is licensed from Solid State Networks, so it is mostly using code from SSN. However, SWTOR does not use the original software by SSN; instead they wrote their own patch deploy pipeline which interfaces with the SSN command line tools.
|
||
|
||
Also, SWTOR does not use all features offered by SSN. Notably, for public-facing products they do not use the peer-to-peer download of patches; instead all patches are downloaded from a CDN. In addition, they do not use the ```upcoming``` feature where you can preload an upcoming patch before it is released.
|
||
|
||
## Terminology
|
||
SSN uses the following terms; make sure you are familiar with them since we use them as well in documentation and in code.
|
||
|
||
- __```product```__: SWTOR is split into multiple products. That way, you can choose to only install part of SWTOR. For example, if you install the products ```assets_swtor_main``` and ```assets_swtor_en_us```, you only have the English-language live client files and no other languages and no PTS.
|
||
- __```release```__: Colloquially, this is known as a “patch” (or Game Update). For example, release ```264``` in product ```assets_swtor_main``` refers to Game Update 5.2.0. However, not every release can be mapped to a “patch” (or Game Update); sometimes there are multiple releases between two actual “patches”, e.g. because of built errors or because they need to add another hotfix before releasing the “patch”. A release is always an integer starting at ```0```.
|
||
- __```patch```__: In a SSN sense, a patch refers to the difference between two releases. For example, ```263to264``` is a patch that can be used to update a product from release ```263``` to release ```264```. The first number is called ```from``` while the second number is ```to```. If the ```from``` number is ```-1```, e.g. in patch ```-1to0```, the patch does not store the differences but the full file contents to allow a fresh install. Otherwise, you must already have the ```from``` release installed in order to apply the patch.
|
||
- __```environment```__: An environment consists of multiple products. For example, the ```live``` environment has products like ```assets_swtor_main``` while the ```pts``` environment has ```assets_swtor_test_main```.
|
||
|
||
## SWTOR conventions
|
||
|
||
SWTOR uses the following products:
|
||
|
||
- __```assets_swtor_de_de```__: German language files for the live environment.
|
||
- __```assets_swtor_fr_fr```__: English language files for the live environment.
|
||
- __```assets_swtor_en_us```__: French language files for the live environment.
|
||
- __```assets_swtor_main```__: Main game data for the live environment.
|
||
- __```assets_swtor_test_de_de```__: German language files for the PTS environment.
|
||
- __```assets_swtor_test_en_us```__: English language files for the PTS environment.
|
||
- __```assets_swtor_test_fr_fr```__: French language files for the PTS environment.
|
||
- __```assets_swtor_test_main```__: Main game data for the PTS environment.
|
||
- __```eualas```__: End user access and license agreement, and other legal documents you need to accept in the launcher before you can play the game.
|
||
- __```movies_de_de```__: Intro movies by Blur in German language.
|
||
- __```movies_en_us```__: Intro movies by Blur in English language.
|
||
- __```movies_fr_fr```__: Intro movies by Blur in French language.
|
||
- __```patcher2014```__: The old launcher, now replaced by ```patcher2017```.
|
||
- __```patcher2017```__: Current version of the launcher, used to download and install patches.
|
||
- __```retailclient_betatest```__: The client used during the closed beta (2011 and earlier) to play the game.
|
||
- __```retailclient_cstraining```__: No longer used.
|
||
- __```retailclient_liveeptest```__: No longer used.
|
||
- __```retailclient_liveqatest```__: The current client used by QA the day before a maintenance to log into a private server and check that the upcoming patch is correct.
|
||
- __```retailclient_publictest```__: The current client used to play the game on the PTS.
|
||
- __```retailclient_squadron157```__: The client used during the closed beta by the Squadron157 testing group to play the game.
|
||
- __```retailclient_swtor```__: The current client used to play the game in the live environment.
|
||
|
||
In addition, there are a few private products which are only reachable through BioWare’s VPN and are not publicly accessible:
|
||
|
||
....
|
||
|
||
## CDN
|
||
|
||
Manifests are hosted on manifest.swtor.com, while patches are hosted on cdn-patch.swtor.com. They can only be downloaded via HTTP (port 80) but the files are integrity-checked via their included signatures.
|