FIFA 10, PC PS2 and PSP

Publisher: EA Sports
Credited: Yes

I was moved onto FIFA 10 shortly after their production period began and our Family Guy project was cancelled. Given the size of FIFA 10, and the amount of work that EA had planned for the FIFA 10 release, it proved to be an interesting and fun project to take part in.


Optimization – Early on in this project I was tasked with profiling and optimizing the PC build of FIFA 10 to straighten out a lot of performance issues with the desired minimum specification computer. About two weeks of work went into analyzing rendering and shaders used and many shaders were rewritten and new sets of low quality shaders were produced which allowed us to more than double the frame rate on our target systems. Not long after this was completed the same process was carried out across all platforms.

Networking – FIFA 10 for the PC suffered many problems with latency and input lag caused by the synchronized nature of online games. I wrote protocol dissectors for wireshark to help analyze communications between peers and found two issues responsible for these issues. Bandwidth was simply too high, and useless data was being sent across the pipe, additionally packet queues were not properly balanced and would either be too large causing input lag for slow connections or too small causing frame skipping on faster connections. Once these problems were addressed I was able to get online gameplay  for anyone with a 56k modem reliable, and with minimal input lag. All lag targets were set to be under 150ms, the point at which it becomes noticeable in FIFA10.

Physics – Probably the most interest task on this project was working with a friend at implementing new net physics into the game. Production wanted the ability to have different net shapes in the game, which produced a unique problem, we did not have a way to model the physics data required for these net shapes at the time. So working with a colleague we produced a way to export net constraint data from maya through a text file and load this data into the game and use a simple verlet algorithm for making realistic looking mesh deformations when be ball happened to be so close.

Clipping on PSP – The PSP, only having a 16 bit depth buffer, also suffered a huge issue with rendering from certain close up camera views. In these views it would not be abnormal to see polygons on player models, or parts of the stadium Z-fighting due to imprecision in the depth buffer. This took a fair bit of effort to address as the solution involved splitting our field of view into two rendering passes adjusting the near and far clipping planes to get as much precision as we could based on what we were rendering. The problems with this approach came from the loss of depth data as we moved from rendering the stadium to rendering the on field models, scripts had to be written to help split the stadiums into usable groups of geometry for each pass and even now if you can kick the ball into the stadium you will notice it still draws on top of stadium geometry. This circumstance is difficult to force and rare to come by, the end result is the near flawless playback of up close cameras and NIS sequences.

This strategy worked so well that the change would also be pulled back into FIFA World Cup for the PSP.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: