Difference between revisions of "Setting Up FAF Linux"

From FA Forever Wiki
Jump to: navigation, search
(fixes for 0.18.0)
(Reorganization of the article to be able to contain the Java client + detailed summary information about the game and the clients added at the beginning of the article with links)
Line 1: Line 1:
Supreme Commander: Forged Alliance (''the game'') runs under Linux using [https://www.winehq.org/ wine].
+
This wiki article details the installation of the '''Supreme Commander: Forged Alliance game''' and the '''Forged Alliance Forever (FAF) clients''' on Linux.
  
The [https://github.com/FAForever/client community client] (''the client'') is written in Python3/PyQt5, which means that the client runs straight away on Linux.
+
== Contact ==
 +
 
 +
If you have questions please contact the community:
 +
 
 +
[http://forums.faforever.com/viewtopic.php?t=4507 FAF forum Linux support thread] <br />
 +
[https://discordapp.com/channels/197033481883222026/202928463076786176 The official FAF Discord Channel: #technical-help]
 +
 
 +
== About the game ==
 +
 
 +
Supreme Commander: Forged Alliance game runs under Linux using [https://www.winehq.org/ wine].
  
== Install the python client ==
+
You only need the Supreme Commander: Forged Alliance game and one of the clients (see below) to be able to play in the FAF community. [https://store.steampowered.com/app/9420/Supreme_Commander_Forged_Alliance/ The game is available on Steam]
  
=== Arch Linux ===
 
You [https://wiki.archlinux.org/index.php/AUR_helpers need AUR access], so install something like [https://archlinux.fr/yaourt-en yaourt]. Then install my package with
 
yaourt -S python-fafclient
 
  
This should install wine as a dependency.
+
== About the clients ==
Now you can install the game using wine. You can use your default wine prefix or create a new one. A nice UI tool for handling wine prefixes is [https://www.archlinux.org/packages/community/any/playonlinux/ PlayOnLinux].
 
  
=== Debian/Ubuntu ===
+
There are two FAF clients available. Both can handle the communication between players (IRC), launching team and 1v1 lobbies/games, downloading community mods and maps, patching the game, etc.
There's no .deb package yet, please create one. Some discussion about that is in http://forums.faforever.com/viewtopic.php?f=2&t=4507&p=141217&hilit=linux#p141217
 
  
Client 0.18.0 runs on Ubuntu 17.04 using system packages only. Install instructions follow:
+
;The new Java Downlord's client
 +
:  This client was introduced as the official client in 2018 replacing the Python client. The client is built upon Java.
 +
;The legacy Python client
 +
:  This client still works but its development has stopped. It might become incompatible with the upcoming changes of the FAF server in the future. The client is built upon Python.
  
* Install required packages:
+
This article only features the legacy Python client. The new Java Downlord's client will be added later.<br />
  <code>sudo apt-get install python3-idna python3-semantic-version python3-pyqt5 python3-pyqt5.qtwebengine python3-pyqt5.qtmultimedia python3-jsonschema python3-jinja2</code>
+
Both of the clients run on Linux. Please refer to the clients' own section in this article for more information.
* Download the latest client source tar.gz (for example from [https://github.com/FAForever/client/releases/tag/0.18.0 here])
 
* Download and install the faf-uid smurf protection executable:
 
  <code>sudo wget https://github.com/FAForever/uid/releases/download/v4.0.5/faf-uid -O /usr/local/bin/faf-uid</code>
 
  <code>sudo chmod +x /usr/local/bin/faf-uid</code>
 
  (Note that faf-uid runs xrandr, lspci, lsblk and uname. You need an lspci version that supports the --json switch, which is util-linux-2.27 or greater.)
 
* Create a version file:
 
  <code>echo "0.18.0" > res/RELEASE-VERSION</code>
 
* Run the client (from source root directory):
 
  <code>python3 src/__main__.py</code>
 
  
=== Gentoo ===
+
[[#Java Downlord's Client]]<br />
There is an experimental overlay available at https://github.com/Wesmania/faforever, along with installation instructions. You will need [https://wiki.gentoo.org/wiki/Layman layman] to set it up. Note that wine is '''not''' a dependency of these packages, you will have to install it on your own.
 
  
=== Run from source ===
+
[[#Legacy Python Client]]
See basic instructions at https://github.com/faforever/client#running-on-linux
 
  
== Install Supreme Commander : Forged Alliance ==
+
== Install Supreme Commander: Forged Alliance ==
  
 
=== Install using steam ===
 
=== Install using steam ===
Line 75: Line 71:
 
  winetricks dlls xact
 
  winetricks dlls xact
  
== Client setup ==
+
 
 +
=== File Locations ===
 +
 
 +
==== Game.prefs ====
 +
Your game.prefs contains all game settings, like graphics settings, keybindings and active UI mods. It is located at
 +
~/.wine/drive_c/users/USER/Local Settings/Application Data/Gas Powered Games/Supreme Commander Forged Alliance/Game.prefs
 +
but this path depends on your WINEPREFIX and probably on the Windows version you set up in wine.
 +
 
 +
 
 +
 
 +
 
 +
== Java Downlord's Client ==
 +
 
 +
Will be detailed later. Please [[#Contact]] the community for more information.
 +
 
 +
=== Installation ===
 +
 
 +
Will be detailed later.
 +
 
 +
=== Client Setup ===
 +
 
 +
Will be detailed later.
 +
 
 +
=== File Locations ===
 +
 
 +
Will be detailed later.
 +
 
 +
 
 +
 
 +
 
 +
 
 +
== Legacy Python Client ==
 +
 
 +
The [https://github.com/FAForever/client community client] (''the client'') is written in Python3/PyQt5, which means that the client runs straight away on Linux.
 +
 
 +
=== Installation ===
 +
 
 +
==== Arch Linux ====
 +
You [https://wiki.archlinux.org/index.php/AUR_helpers need AUR access], so install something like [https://archlinux.fr/yaourt-en yaourt]. Then install my package with
 +
yaourt -S python-fafclient
 +
 
 +
This should install wine as a dependency.
 +
Now you can install the game using wine. You can use your default wine prefix or create a new one. A nice UI tool for handling wine prefixes is [https://www.archlinux.org/packages/community/any/playonlinux/ PlayOnLinux].
 +
 
 +
==== Debian/Ubuntu ====
 +
There's no .deb package yet, please create one. Some discussion about that is in http://forums.faforever.com/viewtopic.php?f=2&t=4507&p=141217&hilit=linux#p141217
 +
 
 +
Client 0.18.0 runs on Ubuntu 17.04 using system packages only. Install instructions follow:
 +
 
 +
* Install required packages:
 +
  <code>sudo apt-get install python3-idna python3-semantic-version python3-pyqt5 python3-pyqt5.qtwebengine python3-pyqt5.qtmultimedia python3-jsonschema python3-jinja2</code>
 +
* Download the latest client source tar.gz (for example from [https://github.com/FAForever/client/releases/tag/0.18.0 here])
 +
* Download and install the faf-uid smurf protection executable:
 +
  <code>sudo wget https://github.com/FAForever/uid/releases/download/v4.0.5/faf-uid -O /usr/local/bin/faf-uid</code>
 +
  <code>sudo chmod +x /usr/local/bin/faf-uid</code>
 +
  (Note that faf-uid runs xrandr, lspci, lsblk and uname. You need an lspci version that supports the --json switch, which is util-linux-2.27 or greater.)
 +
* Create a version file:
 +
  <code>echo "0.18.0" > res/RELEASE-VERSION</code>
 +
* Run the client (from source root directory):
 +
  <code>python3 src/__main__.py</code>
 +
 
 +
==== Gentoo ====
 +
There is an experimental overlay available at https://github.com/Wesmania/faforever, along with installation instructions. You will need [https://wiki.gentoo.org/wiki/Layman layman] to set it up. Note that wine is '''not''' a dependency of these packages, you will have to install it on your own.
 +
 
 +
==== Run from source ====
 +
See basic instructions at https://github.com/faforever/client#running-on-linux
 +
 
 +
=== Client Setup ===
  
 
First thing is to point your client to your game directory using Options -> Settings -> Game Path...
 
First thing is to point your client to your game directory using Options -> Settings -> Game Path...
Line 89: Line 152:
 
  cmd_prefix=primusrun                                      <- prefix the program start for something like switchable graphics
 
  cmd_prefix=primusrun                                      <- prefix the program start for something like switchable graphics
  
== File locations ==
+
=== File Locations ===
  
=== FA Lobby.ini ===
+
==== FA Lobby.ini ====
 
The settings file of the client is located at
 
The settings file of the client is located at
 
  ~/.config/ForgedAllianceForever/FA Lobby.ini
 
  ~/.config/ForgedAllianceForever/FA Lobby.ini
 
It contains all settings of the client.
 
It contains all settings of the client.
  
=== Logs ===
+
==== Logs ====
 
  ~/FAForever/logs
 
  ~/FAForever/logs
 
Look here if something goes wrong.
 
Look here if something goes wrong.
  
=== Maps ===
+
==== Maps ====
 
Your maps are located at
 
Your maps are located at
 
  ~/Documents/My Games/Gas Powered Games/Supreme Commander Forged Alliance/Maps
 
  ~/Documents/My Games/Gas Powered Games/Supreme Commander Forged Alliance/Maps
 
but this path may be altered by the documents directory set up in wine and localization of your system.
 
but this path may be altered by the documents directory set up in wine and localization of your system.
 
=== Game.prefs ===
 
Your game.prefs contains all game settings, like graphics settings, keybindings and active UI mods. It is located at
 
~/.wine/drive_c/users/USER/Local Settings/Application Data/Gas Powered Games/Supreme Commander Forged Alliance/Game.prefs
 
but this path depends on your WINEPREFIX and probably on the Windows version you set up in wine.
 
 
== Java-Client on Linux ==
 
 
Support for the java-client is planned. Their are already versions that work on Linux, but no offical release.
 

Revision as of 10:33, 24 February 2019

This wiki article details the installation of the Supreme Commander: Forged Alliance game and the Forged Alliance Forever (FAF) clients on Linux.

Contact

If you have questions please contact the community:

FAF forum Linux support thread
The official FAF Discord Channel: #technical-help

About the game

Supreme Commander: Forged Alliance game runs under Linux using wine.

You only need the Supreme Commander: Forged Alliance game and one of the clients (see below) to be able to play in the FAF community. The game is available on Steam


About the clients

There are two FAF clients available. Both can handle the communication between players (IRC), launching team and 1v1 lobbies/games, downloading community mods and maps, patching the game, etc.

The new Java Downlord's client
This client was introduced as the official client in 2018 replacing the Python client. The client is built upon Java.
The legacy Python client
This client still works but its development has stopped. It might become incompatible with the upcoming changes of the FAF server in the future. The client is built upon Python.

This article only features the legacy Python client. The new Java Downlord's client will be added later.
Both of the clients run on Linux. Please refer to the clients' own section in this article for more information.

#Java Downlord's Client

#Legacy Python Client

Install Supreme Commander: Forged Alliance

Install using steam

You can download FA using a steam installation in wine. The following steps describe how to download FA using steamcmd on Arch Linux:

Install steamcmd:

yaourt -S steamcmd

Now you need to run steamcmd once as root to let it install its updates:

sudo steamcmd

now run steamcmd as your normal user to download your copy of FA and run the following commands in its shell:

login [my_steam_username]
@sSteamCmdForcePlatformType windows
force_install_dir [my/desired/installlocation]
app_update 9420 validate

Install using the retail ISO

Just launch the setup from the CD (ISO).

After installation

Run

winecfg

and enable "emulate virtual screen" option in graphics tab and enter you display resolution.


After installation run the game without the client, setup graphics and make sure everything works like sound etc. The bloom renderer graphics setting may not work. If the game does not start again, delete the #Game.prefs

If the game crashs with the following error:

CD3DDeviceResources::DevResInitResources: Unable to load effect file /effects/cartographic.fx

install d3dx9 using winetricks:

winetricks dlls d3dx9

If you have no sound install xact audio:

winetricks dlls xact


File Locations

Game.prefs

Your game.prefs contains all game settings, like graphics settings, keybindings and active UI mods. It is located at

~/.wine/drive_c/users/USER/Local Settings/Application Data/Gas Powered Games/Supreme Commander Forged Alliance/Game.prefs

but this path depends on your WINEPREFIX and probably on the Windows version you set up in wine.



Java Downlord's Client

Will be detailed later. Please #Contact the community for more information.

Installation

Will be detailed later.

Client Setup

Will be detailed later.

File Locations

Will be detailed later.



Legacy Python Client

The community client (the client) is written in Python3/PyQt5, which means that the client runs straight away on Linux.

Installation

Arch Linux

You need AUR access, so install something like yaourt. Then install my package with

yaourt -S python-fafclient

This should install wine as a dependency. Now you can install the game using wine. You can use your default wine prefix or create a new one. A nice UI tool for handling wine prefixes is PlayOnLinux.

Debian/Ubuntu

There's no .deb package yet, please create one. Some discussion about that is in http://forums.faforever.com/viewtopic.php?f=2&t=4507&p=141217&hilit=linux#p141217

Client 0.18.0 runs on Ubuntu 17.04 using system packages only. Install instructions follow:

  • Install required packages:
 sudo apt-get install python3-idna python3-semantic-version python3-pyqt5 python3-pyqt5.qtwebengine python3-pyqt5.qtmultimedia python3-jsonschema python3-jinja2
  • Download the latest client source tar.gz (for example from here)
  • Download and install the faf-uid smurf protection executable:
 sudo wget https://github.com/FAForever/uid/releases/download/v4.0.5/faf-uid -O /usr/local/bin/faf-uid
 sudo chmod +x /usr/local/bin/faf-uid
 (Note that faf-uid runs xrandr, lspci, lsblk and uname. You need an lspci version that supports the --json switch, which is util-linux-2.27 or greater.)
  • Create a version file:
 echo "0.18.0" > res/RELEASE-VERSION
  • Run the client (from source root directory):
 python3 src/__main__.py

Gentoo

There is an experimental overlay available at https://github.com/Wesmania/faforever, along with installation instructions. You will need layman to set it up. Note that wine is not a dependency of these packages, you will have to install it on your own.

Run from source

See basic instructions at https://github.com/faforever/client#running-on-linux

Client Setup

First thing is to point your client to your game directory using Options -> Settings -> Game Path... If you install FA using the Retail ISO, your game path probably is

~/.wine/drive_c/Program Files/THQ/Gas Powered Games/Supreme Commander - Forged Alliance

When using the steam download, your game path probably is

~/.steam/steam/steamapps/common/ForgedAlliance

I created some client settings so you can adjust how the client starts the game using wine. The are only accessible through the #FA Lobby.ini file while the client is not running (because it overwrites the file on close).

[wine]
exe=/usr/bin/wine                                         <- points to your wine binary, defaults to 'wine'
prefix=/home/linuxmasterrace/.PlayOnLinux/wineprefix/faf  <- points to your WINEPREFIX path, defaults to '~/.wine'
cmd_prefix=primusrun                                      <- prefix the program start for something like switchable graphics

File Locations

FA Lobby.ini

The settings file of the client is located at

~/.config/ForgedAllianceForever/FA Lobby.ini

It contains all settings of the client.

Logs

~/FAForever/logs

Look here if something goes wrong.

Maps

Your maps are located at

~/Documents/My Games/Gas Powered Games/Supreme Commander Forged Alliance/Maps

but this path may be altered by the documents directory set up in wine and localization of your system.