Posts tagged "Football"
Updated FBGM award formulas
Okay this is like 3 updates in a row about FBGM awards which is kind of silly, but I think things are improving at least!
This update fixes two problems with the old awards system:
Previously most awards were based on AV, which is kind of weird in some situations.
The defensive awards were not based on AV, which meant you could have one defensive player win MVP but not even be in the top 10 for DPOY - very weird!
So, what's the problem with AV?
Offensive Player of the Year (OPOY) award in FBGM
Adding an OPOY award to FBGM is a commonly requested feature. Up until now I resisted because I thought OPOY was kind of a weird award. Usually the MVP is an offensive player, but then usually the OPOY is some other offensive player? But sometimes they are the same? Some weird logic in that award.
Well, as the guy writing the code for FBGM, I have the opportunity to make the logic whatever I want! So here's how it works:
Offensive line stats
Offensive line (OL) is an interesting position in football because it's extremely important but there are no traditioanl stats for OLs. Like if you go to the player page for an OL on espn.com you see literally no stats. There are some non-standard or advanced stats people use for OL, but they tend to be either qualitative or not very informative.
FBGM has never had OL stats. I did it this way because of what I wrote above - I felt like OL stats were kind of weird and uncommon, so nobody would miss them. But I was wrong about that. Many users have asked me for OL stats, and it does make sense that people want some way to get insight into what their OL are doing.
Well, now FBGM has OL stats! The stats I chose to include are pass block win rate (PBWR), run block win rate (RBWR), and sacks allowed.
FBGM updates to keep you busy on Super Bowl bye week
Lately I've been working on a bunch of little improvements for FBGM and I'm releasing them all today, since there are no real football games today so maybe you are looking for something else to do :)
The new features fall into a few different categories:
Free agent contract fixes for football and hockey
This started because of a post on Reddit wondering why ZenGM Hockey was slower than the other games. I figured I should investigate. And I found some low hanging fruit! A significant amount of time during the regular season was spent computing free agent contract values for released players.
That sounds pretty silly, and it is. The reason it's possible at all is because of how free agent contracts work. It's a somewhat complex and slow algorithm. So slow that it doesn't work at all in Football GM and ZenGM Baseball - for those I do a simpler method, which is just a simple formula based on how good/old a player is. But the complex algorithm works quite well in Basketball GM (fewer players), and it works okayish in ZenGM Hockey.
Football GM drive chart during live sim
Big news for Football GM today - live game sim now shows a drive chart! By "drive chart" I mean a list of all the plays that have happened in this drive, drawn on top of a football field. Like this:

This makes it much easier to see what is happening while you watch a live game. It's so much better that it kind of feels dumb that it took me so long to add. But, well, it wasn't the easiest thing to do! So please let me know if you notice any bugs.
Several small Football GM stat/simulation improvements
Simulated sports can never be exactly the same as real sports, but the closer it gets, the better. So when you notice something weird in the stats or in the play-by-play log, please let me know. That's how I found out about all these little issues in Football GM that I just fixed in version 2023.06.21.1277:
I rewrote the football game simulation engine to fix weird bugs and improve penalties
One frustrating thing about Football GM, both for me and for users of the game, is all the game simluation bugs. There are fewer than there used to be. I try to track them down and fix them when people report them to me. But sometimes, that doesn't work very well.
Like I got a bug report that sometimes the ball carrier would cross the first down line, fumble, the offense recovers the fumble behind the first down line, and yet it still counted as a first down.
I investigated it, found the part of the code that was doing the wrong thing, and... I couldn't fix it. The bug was ultimately caused not by a little typo or mistake, but a fundamental problem in how game simulation worked. Specifically, the problem was that there was no sense of history. All of the "state" of the game (possession, down, distance, score, etc.) was stored just once. As the game progressed, state was updated. But what if you need to go backwards? Like the aforementioned first down line example. Or, even more troubling, penalties. With penalties, there is always the possibility that anything that happens in the game could be reversed. I had some hacky code to handle some of that, but it was limited, mostly by the fundamental problem mentioned above.
I fucked up, and the importance of sanity checks
Previously, some of you had noticed something strange about team construction and game simulation in Football GM. If you made a team of all one type of player, that team would actually perform pretty well, usually making the playoffs. Obviously that doesn't make any sense.
Looking at it more closely, I noticed that only passing stats were behaving strangely. A team of all kickers was horrible at running and at stopping the run. But they were incredible at passing! So I took a look at the passing code. Turns out the problem was just a small typo. The effects of pass blocking and pass rushing were reversed for calculating the completion percentage and distance of passes. My bad. Small fix.
But this is actually really important, and not just for silly things like a team of all kickers!