A peek into my Manager Application for FIFA 10

rdongart

Club Supporter
Since 2006 I have been working on a Manager Application for the Fifa game. I first developed it for the Fifa 06 game, but about 1½ year ago I updated it so that it now works with Fifa 10 (only).

I wanted to increase depth and AI in of the manager part and make all aspects of it dynamic. To do this, I completely removed the manager part from the actual game. With this application, you only use Fifa 10 to play out the fixtures.
In this way, my focus has mainly been on what the computer controlled clubs do and making sure, that whatever decisions you have to do, they have to do as well (e.g. their managers may dynamically change formations, tactics, the way the set the team, depending on individual factors within each match - not just against your team of course, against any opponent).

Also, I have included a kind of RP or character sim to the game. Managers (yourself included) have various skills that will develop throughout your career. Managers accumulate their salary in order to buy the courses that will develop these skills (such as "Assessment" that allows you to gain knowledge of player's skills faster, have access to more information on each player, or "Talent Nursing" that allows you to shape your Youth Players and increase the speed of their development).

There is much more to it than this, of course, but that's just a few of its features. Here is a link to where you can see a short demonstration of what it looks like:

http://www.youtube.com/watch?v=Ly5h2xiW-1I&context=C3127209ADOEgsToPDskKJJGOLY0PZ-v_lp3NjddH3

I have done this alone, and it has taken an undescribable amount of time as I basically had to develop a manager game from bottum up on my own. I don't know other people IRL who play the FIFA game, so I have hardly gotten any feedback. It is (still) work in progress. Any thoughts, comments, or suggestions are very welcome :)
 

Champion757

Youth Team
rdongart;3155953 said:
Since 2006 I have been working on a Manager Application for the Fifa game. I first developed it for the Fifa 06 game, but about 1½ year ago I updated it so that it now works with Fifa 10 (only).

I wanted to increase depth and AI in of the manager part and make all aspects of it dynamic. To do this, I completely removed the manager part from the actual game. With this application, you only use Fifa 10 to play out the fixtures.
In this way, my focus has mainly been on what the computer controlled clubs do and making sure, that whatever decisions you have to do, they have to do as well (e.g. their managers may dynamically change formations, tactics, the way the set the team, depending on individual factors within each match - not just against your team of course, against any opponent).

Fascinating. How did you remove the manager part from the game? And what do you mean by manager part specifically? which fifa 10 file does your application modify? I am interested also in having more control over the decision-making of computer controlled clubs within each match. what "individual factors" affect how cpu managers dynamically change formation or tactics and how does this differ from the way cpu managers change formation or tactics without your app?

I know these are general questions but if your application has somehow allowed users to have more options at their disposal to control the way cpu teams play in leagues that's interesting. it would truly be nice to see cpu teams play different styles throughout a match. Has the gameplay within a match improved through the use of your application? or does this only affect the results of simulated games in leagues?

Being able to dynamically set cpu tactics and see cpu teams play or behave smarter or more realistic in a match would obviously go a long way. I'd like to hear more about your project and the benefits of it. For you to put so much work into it suggests that you see how good fifa 10 pc can be. in some ways fifa 10 on pc is the best game in the world, but many times i feel like the cpu is not as challenging as it could be. i play 45 minute halves and have been modding ai.ini for some time now, and have been studying how cpu teams play. i'm trying to figure out a way to make it harder to steal the ball from cpu teams. i don't know if any of this relates to your work, but i'd like to know more about it and how it has enhanced your experience with fifa 10 pc.
 

rdongart

Club Supporter
Thank you for your response.

ON REMOVING THE MANAGER PART...
By removing the manager part "from the game" I mean that I am not using between-games manager part of the game. Everything is handled in my application. You set your team and do your stuff, and when ready you push a button and Fifa 10 loads with a Career file modified. You load this, play the game, save it, and close Fifa 10 and my application will retrieve everything important. Not even recreation after fatigue is handled by the Fifa 10, everything from this point (changes in Moral, team experience etc.) is handled by my game.

So in short, my "application" is a manager game in and of itself. Only thing is, when your team is playing, you can do it in Fifa 10. I could bypass that, and then I would just have a manager game on its own (but that's not what I want, obviously :) )


WHAT AFFECTS CPU MANAGERS:
A number of things. Let me lists a few:
1) Their skills (higher assessment makes them better able to gauge the form of their players, and select the best ones).
2) The importance of the match... if the match is less important, they will give more room for younger players or players for example (e.g. having >3 points down to the runner-up in a CL group and only one match left).
3) The level of their team compared to the level in the league - e.g. if they suspect they will fight to avoid relegation, they will be more defensive in their style.
4) Personal preferences: all CPU managers are born with certain preferences. These are not random - they are copied in an evolution-like manner from the most successful CPU managers already in the game (allowing for minor random changes). Same goes with the Board of administrators in club's. They have certain strategies, and they may change too. (A side note, new managers will often be former successful players, and all clubs, managers, and players have a sheet where you can see the entire history of their career).
5) An analysis of the team: e.g. if teams have quick players, great passing and ball control it increases the likelihood that the manager will use CounterAttack team style.
6) In cup matches, result from the first match (e.g. a 4-0 win over an inferior opponent) may make them save a few much fielded players in the second encounter.
...and much more.

Without my app: well the thing is, I actually don't know, so I may actually be wrong that the AI is improved with my app. The Fifa AI just always seemed very static to me. Also, it didn't seem very dynamic. For example, do the international games you play affect the UEFA coefficients that are so all important in deciding which countries will have more teams in the CL the following seasons? (just to mention an example).

One thing I can see is, that the my app's AI almost always sets the line-up using the players on the positions the way I would have done myself. By this, I hope to say something about the AI of my app...

CONTROL OVER CPU TEAMS DURING A MATCH:
I have not been able to change what goes on during a match. I would love to, though, because it's use of substitutes seem quite random. It makes substitutions that seems close to crazy. As such, the only way I would be able to detect a better AI affect individual matches would be for example if the teams are better at putting together teamstyle that fits with the actual players on the team. I can't say I have detected this, but unless this difference was substantive, I don't think I could.

FIFA 10 FILES MODIFIED:
fifa.db
a save-game file
eng.db


MY WORK AND THE PROJECT:
One main hindrance to my work has been my lack of programming knowledge. When I started on the project back in spring 2006 I hardly had ANY knowledge of programming, and in the beginning it was mostly an evolved excel sheet with some recorded macros. when you know nothing, you know too little to use help files and even many introductory books on programming. Then I learned about arrays and how to make loops (yep, that's where I was) and every time I learned something new I saw more possibilities. About one year ago I learned how to use objects/classes (I should definitely have read that book much earlier on...) and it dawned a new age in my work on this project. So when you mention something called ai.ini, I'm like, WOW!, that sounds interesting. I would love to do something to a Fifa file called ai.*, I just don't know what or how :-)


(I should mention, that without the tools provided by Rinaldo Zocca, I would not have been able to create my application.)
 

rdongart

Club Supporter
Champion757;3155965 said:
Being able to dynamically set cpu tactics and see cpu teams play or behave smarter or more realistic in a match would obviously go a long way.

...
i'm trying to figure out a way to make it harder to steal the ball from cpu teams. i don't know if any of this relates to your work, but i'd like to know more about it and how it has enhanced your experience with fifa 10 pc.

Let me try to give one concrete example of how I have tried to handle dynamic AI behaviour. Some of what the CPU has to do in order to react intelligently is to be able to recognize when it gets bad results from its behaviour and then change that behaviour.

In many cases it is obviously not possible to just pre-optimize the best behaviour as "the best" may be the one that is adapting or perhaps just changing. My guess is this applies even more when it comes to the actual games you play against the CPU.

I have tried to handle this with a neural network structure than allows the CPU to detect patterns in its own and the player's applied tactics, formations, teams' strength ratios, team mentality and outcome of games. The pros with a neural network structure is that it allows for the AI to detect complex patterns in extremely large collections of data without having to store or process all this data rigorously.

Of course there are bound to be a lot of noise in such data and it may not always be clear that it has a straight forward connection to the results of a match. But if there is any (clear) signal in the data (say, the CPU looses more often if it uses offensive formations when your team is the stronger one), then the CPU quickly adapts and you'll see it change its behaviour.


Using a neural network structure in order to change the AI behaviour in a match may be more complicated. I guess you would need to store data continually during the match, and then "insert a bookmark" every time the thing you are trying to monitor happens. Say, every time the CPU steals the ball, or fails to do so.
Then one needs to either increase or decrease the likelihood that this behaviour is used again.
However, if the actual behaviour is much more "hard wired" this approach may not work at all.

Another approach would be to try to get the CPU to move its player's differently. Again, one way to do this would be for the CPU to store the human controlled player's movement/passing patterns and use this to predict future movement or predict where the ball will be played.

Generally, I think that changing the AI in game in order to make it adapt the player's behaviour is a more complex task than developing a dynamic AI for a manager game.
 

Androuxa

Club Supporter
Wow man this looks amaaaazing!!!!
This would make Fifa 10 the best soccergame ever made, aimed at your application specifically!!
Having more controlling onto the ridiculous ea-sports cpu simulation would be a dream for every fifa 10 player! And because fifa 11 & 12 are not that editable as fifa 10 (graphics) the combination of this and all patches are not 1 but 10 steps ahead!!!
Good luck onto your brilliant work!!
 

Tese

Reserve Team
It sounds very interesting. I have an important question: Is this compatible with the many patches created here
 

rdongart

Club Supporter
Tese;3173365 said:
It sounds very interesting. I have an important question: Is this compatible with the many patches created here

The short answer is that I don't really know. The reason for this is that there are many different kinds of patches. If they tamper with the fifa.db there is a good chance it won't work. I personally do not know exactly what you change when you, say, add a face patch or a kit patch - and that is why I can't answer.

Of course, by adding a face patch you do change something in the fifa.db, because you want some players to have those faces. But that kind of change is not necessarily "important". If you play the Manager Application (MA), all relevant player data, leagues, etc. is in the MA anyway, and that is where one needs to enter them. So if, after you add a kit patch, you enter the assetIDs into the MA (of course, only I can do that as of today) and I guess it should work.

So the basic issue is whether the patch changes the fifa.db, and if that change is necessary for the added content to be accessible at all.

So, when playing with the MA, the Fifa 10 itself is basically just where you play each match. Everything up to the match starts, and just after it has ended, is handled by the MA. This means that if you have a patch that, say, adds a number of Asian leagues to Fifa 10 then this will have no effect as they won't appear in the MA. In this sense, MA is a stand-alone manager game, that just allows the human player to play his matches in Fifa 10. The MA does not get its content (players, leagues, etc. from Fifa 10 - the MA just enters the 22 players' data, tactics, wheater, stadium, club data, formations etc. into fifa.db and a savegame file, you play the match, and the data on those players and the match results are retrieved).

On the other hand - everything you add to MA appears in Fifa, more or less. Of course, it won't work to add assetIDs, faceIDs into the MA if they have no counter part in Fifa 10.

The MA does have the TeamExperience patch (that allows for TE to rise above 40 - kindly provided by Steve Pitts) incorporated.
 


Top