So you want to give LOTRO a try on your favorite linux distro but the .NET launcher doesn't work?
Well, the good news is that the game can be run using a standard
wine installation, all you need is an alternative launcher.
Alternative Launchers
There are two ways to launch the game client:
one is my lotrolauncher shell script
the other is a graphical launcher written in mono, courtesy of Alan Jackson.
Setup
At the moment there are a few tweaks needed to get it to run properly. Alan Jackson has put up a nice
tutorial covering the topic on his page.
Also, the wineHQ application database features the game
here.
Game Updates
Note that, while the principal patch process works since book 11, there are a few catches associated with updating the game.
Firstly, you need a game library file from book 11 (the file from the original release version does not work).
Secondly, it does not update the high resolution textures, resulting in the game presenting the not-up-to-date error screen.
If you do not plan on activating the high res settings, you can tell the client and it will just skip the version check there.
You can achieve this by calling the launcher script like so:
mfr@gripride:/usr/local/games/LOTRO$ ./lotrolauncher.script --HighResOutOfDate
Otherwise, you need to update those textures under windows.
While this is still the case, you can use an additional script to synchronize the windows and linux copy without deleting and re-copying the whole directory.
Be sure to change all the settings and run it with sudo.
Screenshot
Script output
mfr@gripride:/usr/local/games/LOTRO$ ./lotrolauncher.script
Welcome to the CLI launcher for LOTRO v0.9.9b.
(C) 2007-2008 by SNy
Reading launcher configuration...
Please enter your account details now.
account: XXXXXXXXXX
password:
Requesting GLS authentication ticket...
Logged in.
The following servers are available:
0: [EN-RP] Laurelin
1: [FR-RP] Estel
2: [DE-RP] Belegaer
3: [DE] Morthond
4: [DE] Maiar
5: [EN] Evernight
6: [FR] Sirannon
7: [EN] Snowbourn
8: [EN] Eldar
9: [DE] Vanyar
10: [EN] Gilrain
Your choice (enter the number on the left)? 3
Connecting to world login queue for realm Morthond...
Ready. Now starting the client...
So, what does it do, exactly?
-
It reads the original client xml configuration file TurbineLauncher.exe.config from the installation directory.
Using the information gathered from that file, it downloads another xml configuration file containing authentication setup and realm information from the official LOTRO server.
I have "built" a very simplistic parser on top of grep and sed that just gets all the realm names into an array for later use.
-
It asks you for your LOTRO account name and password (password will not be displayed while typing).
-
It connects to the LOTRO Global Login Service (GLS) on a secure web page (the adress of which it extracted from the downloaded file in step 1).
Turbine was kind enough to describe the auth service very well on the very service page, so using a simple POST gets the job done. :)
Unfortunately, the deployed webservices differ between the EU servers (which are run by Codemasters and support plain POST/GET) and the US servers (SOAP only) which complicates matters (but just a bit :D).
It uses wget to send your login credentials there and save the resulting xml file containing some account info.
Note that the secure page does not have a certificate wget recognizes, which might result in wget complaining about
ERROR: Certificate verification error for gls.lotro.com: unable to get local issuer certificate
To connect to gls.lotro.com insecurely, use `--no-check-certificate'.
In that case, change the annotated line in the launcher script so that it looks like so
# uncomment the following line if wget complains about "Certificate verification" errors
wgetNoCheckCertOption="--no-check-certificate"
-
It extracts your numerical user/account ID as well as a generated GLS ticket from the xml file.
-
Now that the authentication has been done, it displays the list of realms it got from the service earlier.
All that is left to do here is to enter the appropriate number for the realm you wish to connect to.
Once you do that, it will extract the relevant server information from the config file.
Not everything is contained therein, so it needs to download a realm-specific file and "parse" that as well.
-
It then needs to activate the WorldLoginQueue. This is apparently needed for the client to actually be granted the login.
In order for the login queue to be activated, user id and ticket need to be sent to the world login queue server (address again taken from step 1).
For this step, it needs to URL-encode the ticket as well as the realm-specific login queue adress (which have been retrieved from the realm status file).
The script uses a well-known shell script called urlencode.sh for URL-encoding, so you need to get that off the net
(eg. here).
-
The client is now ready to be started.
Note that in order for it to work properly, you need to adjust some settings in wine and the game itself.
Details can be found in this lenghty thread here or in the mentioned how-to in the wineHQ appDB.