What I am doing right now is to analyze the new files for describing the competition structure of FIFA 12. I have to say that, this time, EA did a very good job and the new structure looks very flexible and well designed, I am not yet at the end of the analysis but many things are already clear.

Btw I want to thank Luca Piol and fifaccittiu for the tips they sent me about this argument.

 

Let’s start our analysis from the file compobjs.txt. It contains one entry for each competition object. A competition object may be:

 

  • the main FIFA entry
  • a confederation
  • a country
  • a competition
  • a stage
  • a group

 

Each line contains 5 fields

  1. The unique id of the competition object
  2. A numeric type identifier of the entry

·        0 = the  FIFA world

·        1 = confederation

·        2 = country

·        3 = competition

·        4 = stage

·        5 = group

  1. A string type identifier
  2. A Description
  3. A Parameter

The meaning of the parameter depends from type of the entry

If the entry is a confederation the parameter is the main FIFA entry

If the entry is a country the parameter is the belonging confederation

If the entry is a competition the parameter can be the belonging confederation or the belonging country

If the entry is a stage the parameter is the belonging competition

If the entry is a group the parameter is the belonging stage

 

A stage entry normally has at least one group but there are some cases of stages without group, I still have to figure out the reason why. A stage may require to play some real games or can be just a draw stage. In the second case it is marked as a SETUP stage. According, a group may represent the result of real games or may represent a pot to be used in a draw. In any case, at the end of a group execution you will have a standing, ordering the teams.

 

The file compids.txt is just a list of all the competitions reporting the unique id corresponding to a competition in compobj.txt. This is actually a redundant information, I guess it is used to speed-up the processing of the data.

 

 

The file advancement.txt contains information for moving teams from one group to another.

The four fields must be interpreted in this way:

  • The unique id of the group moving from
  • The rank in the moving from group
  • The unique id of the group moving to
  • The rank in the moving to group

The advancement.txt file can use only groups, not stages nor competitions.

 

In the file standings.txt, for each existing group, we must have a standing here representing the N teams in the group listed from 0 up to N-1.

 

The file schedule.txt contains information for creating the schedules of the games.

Each entry contains 6 fields

  • The unique id of  a stage or of a group object (see compobjs.txt)
  • The day to play (count the days after a starting date maybe 26/12/2010)
  • The progressive week
  • The minimum number of games to play
  • The maximum number of games to play
  • The time

If a stage is referred the schedule applies to all its groups. Only the stages (and groups) that require to play real games can be referenced. A Setup stage and its belonging groups cannot appear in the schedule.txt file.

 

The file weather.txt contains information about the weather condition in the different months for the countries.

Each entry contains 8 fields

  • The unique id of  the country object  (see compobjs.txt)
  • The month
  • The probability of having a dry day
  • The probability of having rain
  • The probability of having snow
  • An unknown value – maybe the probability to have a overcast day
  • The sunset time
  • The dark night time

 The file tasks.txt contains information about to determine the teams participating to a competition.

  • The unique id of the competition (see compobjs.txt)
  • When the action happens (may be start or end)
  • The kind of action
  • The id of the group affected by the action
  • Param 1 first parameter of the action
  • Param 2 second parameter of the action, if any
  • Param 3 third parameter of the action, if any

 

This file allows to define the rules for accessing a competition in a very flexible way. Here is the list  of the rules with their parameters

FillFromCompTable                                CompetitionId, N teams

FillFromLeagueMaxFromCountry             League Id, N teams, Max teams

FillWithTeam 0                                      Team Id

FillFromSpecialTeams                            N teams 

FillFromLeague                                      League Id 

FillFromCompTableBackup                     CompetitionId, Backup CompetitionId, N teams

FillFromCompTableBackupLeague           CompetitionId, League Id, N teams

UpdateTable                                                  

UpdateLeagueTable                                League Id 

 

The last file settings.txt files contains a list of attributes that are assigned to an object. Each type of object may have different attributes some of them are very intuitive, some other looks a little bitt obscure. Anyway this is the argument I am working on and I will post more details as soon as possible.