Is adaptive difficulty present in FIFA and is it scripting?


This recent post on Reddit brought up yet another piece of possible evidence in support of scripting, or maybe more specifically adaptive difficulty in FIFA. In this post I will discuss whether this is evidence, and what this information actually tells about the game.

The product.ini file

The alleged evidence in question is an extract from a settings file called product.ini, which is installed on the PC together with FIFA 16. FIFA 16 contains a number of encrypted files, which however can be decrypted. Below, I have picked a few examples from the original post:

STREAK_ABS_THRESHOLD_0 = 3 // e.g. “Three back to back losses with a negative goal diff of >= 9 (Beginner)”
STREAK_ABS_THRESHOLD_1 = 3 // e.g. “Three back to back losses with a negative goal diff of >= 9 (Amateur)”
STREAK_ABS_THRESHOLD_2 = 3 // e.g. “Three back to back losses with a negative goal diff of >= 9 (Semi-Pro)”
[ADAPTIVE_DIFFICULTY_INCREASE_DIFFICULTY] // Description: “User scores in first 5 minutes” // WHEN <GoalEvaluation> IF <user score is greater than opponent score and before 5 minutes> DO <increase difficulty by 0.25> RULE1_PARAM1 = 5 // Minutes RULE1_OUTPUT = 0.25
// Description: “Score >= 2 goal lead” // WHEN <GoalEvaluation> IF <user has greater than 2 goal lead> DO <increase difficulty by 0.25> RULE3_PARAM1 = 2 // Goal lead RULE3_OUTPUT = 0.25
// Description: “<30% possession any time after 30 minutes” // WHEN <BallOOP> IF <possession less than 30% and after 30 minutes> DO <decrease difficulty by 0.2> RULE3_PARAM1 = 30 // Possession RULE3_PARAM2 = 30 // Minutes RULE3_OUTPUT = -0.2

The part that has given rise to speculations about scripting is of course the first parameter, [ADAPTIVE_DIFFICULTY]. This term does indeed ring a bell in relation to concepts such as dynamic difficulty balancing aka rubber banding which I discussed in one of my recent posts.

Before I present my own thoughts on the product.ini file, I would like to mention that it has been part of the FIFA PC installation for years. If you Google “product.ini FIFA”, you will see that the filename shows up in a number of sites discussing modding, i.e. adjusting the game play in offline game modes. An example of a modded product.ini from FIFA 13 can be seen here.

Is this evidence of scripting?

The entries listed above are part of the FIFA 16 product.ini file, whereas this is a modded FIFA 13 product.ini file. As seen in the FIFA 13 file, the entries related to adaptive difficulty weren’t present in the FIFA 13 file. Since complaints about scripting were around long before FIFA 16 was released, the adaptive difficulty bit obviously couldn’t have caused it.

Another notable detail is that all the difficulty parameters in the FIFA 13 product.ini file are listed below an entry labeled // Career Mode difficulty tuning [CAREER_MODE]. This indicates that the section of the file controls AI behavior in career mode. This notion receives additional support by the fact that the FIFA 16 product.ini file contains references to the single player difficulty levels (beginner, legendary etc.), which are irrelevant in H2H game modes.

These observations obviously don’t rule out that the settings could affect multiplayer online matches as well. However, I find that highly unlikely for a number of reasons.

Below, you see four different rules, which all are part of the FIFA 16 product.ini file. Apparently, these rules either increase or decrease the difficulty depending on the score line.

Example #1
IF <user has greater than 2 goal lead> DO <increase difficulty by 0.25>
IF <losing by 2 goals> DO <decrease difficulty by 0.1>

In a singleplayer scenario, these rules will be triggered under two different sets of circumstances: Depending on whether you are winning or losing, the game will adapt the difficulty. This is quite normal in single player games, as it ensures that people don’t stop playing because the difficulty is inappropriate.

How would those rules work in an online multiplayer match?

Since the rules above are part of the installation for both players, they also apply to both players. Hence, if player 1 is leading by 2 goals, player 2 will be losing by 2 goals, meaning that both rules above are triggered. According to rule #1, player 1’s difficulty will be increased by 0.25, whereas rule #2 dictates that player 2’s difficulty shall be decreased by 0.1.

Since we are dealing with a two-player match, an adjustment to the difficulty of one player will affect his opponent as well, meaning that either rule is redundant and apparently also inconsistent, because player 1’s difficulty is increased more than player 2’s difficulty is reduced. 

From a software design perspective, you would never want to have two rules being triggered by the same event and making changes to the same parameters. Thus, I’m convinced that these rules are meant to catch two different events: Namely when you are leading against the AI and when you are losing against the AI.

If adaptive difficulty was implemented in FUT, we would expect to see an unusually large percentage of draws and narrow wins. We don’t – in fact there are slightly fewer than there normally should be. When comparing FUT score differences to real football, FUT matches significantly are less even in terms of goal difference:

Goal difference (goals) FUT 14 FUT 16 Seasons Top 5 leagues
0 (draw) n/a 19 % 26%
1 46% 35 % 39%
2 24% 19 % 22%
3 12% 17 % 8%
4 10% 6 % 3%
>=5 8% 3 % 2%


What is this evidence of – if anything?

There is no doubt that FIFA is adjusting the difficulty in single player matches to ensure that you don’t get bored. As explained in my previous article on rubber banding aka dynamic difficulty balancing, this concept is used in many games to serve the purpose of avoiding that matches become too easy (boring) or too difficult (frustrating). Whether you appreciate that as a consumer or not is your call.