Introduction
So, you're having trouble with the FFB client? This note is an attempt by me to write all the various steps you should consider once and for all in a single place to not have to say this over and over again. I strongly recommend going through each and every one of these steps.
This guide is slightly Windows-centric, but should be easily adaptable for MacOS users.
Basic setup
Get a clean Java installation
Download the latest version of Java from
java.com.
While this is downloading, uninstall all previous versions of Java you have installed on the system. It's a bad idea to have more than one version at a given time (the people who need this are usually developers who will not need this guide in the first place).
Once the download is complete, install the latest version which should have downloaded by this point.
Associate "JNLP" files with Java Web Start
Go to the
Games Page and click to spectate any of the games. Your browser will download a JNLP file to your downloads folder. If the browser does not suggest to open the file with Java Web Start (note that this is different from regular Java), you need to open your downloads folder in the file explorer, right-click the JNLP file and "Open With...". Then you need to find your way to the Java Webstart Launcher, which should be in "C:\Program Files\Java\jre[whatever version]\bin\javaws.exe". Make sure you pick the executable with the ws suffix, as this is different from the regular javaw.exe that also exists in there.
Remember to click the checkbox to always open JNLP files with this new application if you have to perform some changes.
Uninstall 3rd party anti-virus or "Internet protection" software
Symantec, F-Secure, AVG, etc etc. It's all a bad idea for various technical reasons (at some point, I'll write a longer thing about this). The short of it is that you're better off without them. Uninstall, and re-enable Windows Defender.
Java Configuration
There are various settings you need to check for Java itself. Open the control panel and find the Java entry.
Let's go through them tab by tab:
- General Tab
Network Settings -> "Direct Connection". This disables any detection for proxy servers (which is super unlikely that you have a need for).
- Update
Make sure the update testing is enabled. This doesn't necessarily break anything but just generally a good idea.
- Java
Behind a click of the "View..." button, you should only see a single entry in both "User" and "System" tabs, and they should have the "Enabled" checkbox ticked. This should also be the version that you downloaded in step 1.
- Security
Leave default. "Enable Java content for browser" enabled and Security Level set to "High". No particular need for adding anything to the Exception Site List. If you want, you can click the "Restore Security Prompts" here to have Java Web Start show you some information about applications you download (in practise, it's an extra dialog about the certificate used to sign the FFB client).
- Advanced
Here we have a few things to check:
* JNLP File/MIME Association -> Prompt user
* Execution Environment Security Settings -> Enable everything here. It's just generally good security stuff.
* Mixed code -> Set to "Disable verification".
* Perform Signed code certificate revocation checks on -> Set to "Do not check (not recommended)".
* Perform TLS certificate revocation checks on -> Set to "Do not check (not recommended)".
Leave the rest as-is.
Those last two settings with certificate revocation checks are unfortunately named. The principle of certificate revocation checking is fine, except that the servers in charge of these checks are simply not able to handle the load, and will generate timeouts. Because of this, the general practise for most things (including Java) is to allow the certificate is the revocation server does not respond. This critically breaks the security benefit of checking revocation and renders the whole thing pointless. In this context, Java Web Start will stall the download of the FFB Client and make you unhappy. Disabling these checks is a minimal security reduction and should be generally safe.
Client being slow / laggy
On some computers, Java has trouble interacting with the Graphics Driver. This isn't necessarily old or outdated drivers, and happens seemingly at random. The problem manifests in the client feeling like running in syrup and animations are excessively slow. This is separate from network latency (which is hard to do anything about), and audio seemingly works fine.
To help with this, you can disable Graphics Hardware Acecleration for Java as follows:
Open the Java control panel, and go to Java->View. Here, you will see the Java version being used by the system, and you want to add the following into the "Runtime Parameters" column:
-Dsun.java2d.noddraw=true
While this might seem counter-intuitive as in you're moving the graphics processing from the Graphics card to the CPU, this circumvents the problematic communication between Java and the graphics driver and hopefully will fix the problem. If there is no change, you can revert by clearing the field again.