MLB - 6
NBA - 1
NFL - 15
NHL - 12
HD - 77
GD - 30
HBD - 11
FCD - 11
I hope to post more about testing and especially the debug info. I was mostly using that for my own purposes, so it's sort of in short hand, but I can explain it for those that want to also use that as part of testing.
For each play, we iterate through multiple steps until the play is dead. I hope to post more on the plays similar to the "anatomy of ..." posts we've had for the 2.0 engine. But basically, for rushing, the rusher moves through each area of the field where blocking happens, a tackle attempt can happen and if a tackle attempt happens, the rusher can avoid or break the tackle. If not tackled, he continues on. For passing, the QB checks targets based on passing distribution and once he finds one that he can throw to him and then the catch and YAC are worked out similar to rushing. Passing has many other components like sacks and defended passes.
Basically all of that debug pbp is spitting out info about the various match ups. Anytime we have multiple players involved, or in some cases one offensive player (like the rusher) against one or more defensive players, you will see the "0-0 (0.0)" format. The textual info shows various results on the play. Many times in the engine when simulating through a play it determines the relative effectiveness of certain events. For instance, when checking how well the offense blocked the defense in various situations, it will determine the relative sucess as DefenseBreakthrough, DefenseStrong, EqualBlocking, OffenseStrong, OffensePush, which is least successful for offense to most successful to defense. This gives much more info to use in the engine than the old numerical results.
So to parse the debug info shown:
[INBlk:51-53 (0.5) OUTStr:50-53 (2.5) OUTAgi:26-36 (2.5) IN:EqualBlocking OUT:OffenseStrong ]
INBlk - means this refers to the blocking match up inside the tackles at the line.
51-53 - this is the average relevant blocking ratings of the offensive players involved and the defensive players involved. Always in the format of OFF-DEF
(0.5) - this is the difference in influence (how much players are involved) between the offense and the defense. In this case, the offense has half a player (0.5) more influence in this match up.
[INBlk:51-53 (0.5) OUTStr:50-53 (2.5) OUTAgi:26-36 (2.5) IN:EqualBlocking OUT:OffenseStrong ]
OUTStr - the blocking strength match up on the outside of the line
OUTAgi - the blocking agility (or you may call it speed) match up on the outside of the line
[INBlk:51-53 (0.5) OUTStr:50-53 (2.5) OUTAgi:26-36 (2.5) IN:EqualBlocking OUT:OffenseStrong ]
IN:EqualBlock - for the inside blocking, the offense and defense were relatively equal in this step. Note that this doesn't mean the ratings are equal, but that the results of the blocking was equal. There is a range of results that can happen based on the ratings and influence match ups and that is what would be "tweaked" if we need to adjust some results in the play.
OUT:OffenseStrong - for the outside blocking the offense held strong, they didn't overwhelm the defense (OffensePush), but they pretty much are on the winning side of the blocking to the outside. This takes into account both the strength and the agility (speed) match ups.
The single instance BLK entries you see in the debug will be blocking away from the line, or down field blocking, but a similar breakdown.
For tackling check:
[TKLAvoid:Medium 57-56 (0) RESULT:StrongTackleAttempt]
TKLAvoid - means this is the check to see if the ball carrier avoids the tackle attempt (i.e. makes the tackler miss)
Medium - this is the location of the ball carrier. Locations go from Line (TFL), Short, Medium, Long, Deep and they represent the general concentration areas of the defense.
57-56 (0) - similar to blocking, this represents the ball carriers tackle avoidance rating versus the defender(s) tackle avoidance rating. 0 means its a 1-on-1 tackle attempt. A -1 would mean there is an additional defender in on the tackle attempt.
StrongTackleAttempt - the result of the tackle attempt. Can be TackleAvoided, WeakTackleAttempt, GoodTackleAttempt, StrongTackleAttempt and really represents how well the defender got to the ball carrier.
[TKLBrk:Medium 33-51 MHITS:4 RESULT:StrongTackle]
The first part is just like the TKLAvoid only for the tackle break match up.
MHITS:4 - this represents a value to indicate the ball carrier is losing momentum which can be caused by avoiding or breaking tackles. It factors in to how well the ball carrier can perform actions further down field.
StrongTackle - this is the results of the tackle. Values can be TackleBroken, WeakTackle, GoodTackle, StrongTackle.