I don't think I ever asked this but how does HFA work?
There is an algorithm that tracks crowd noise based on attendance and team momentum. If the crowd noise is high, there is a slight advantage to the home team in their attributes, and there is a slight increase in false start penalties for the visiting team.
Shouldn't familiarity with the field, altitude, wind patterns, sun, temperature come into play as well?
Wind, precipitation, and temperature do come in to play. Wind affects the flight path of the ball, precipitation effects the ability for players to hold on to the ball and to make hard cuts, and temperature affects fatigue. I haven't done anything with altitude yet, and hadn't considered familiarity with the field. That's a cool idea though.