Playoff Probabilities

My Standings Simulator (which you can find on Amazon for free) is something I enjoy running from time to time. It uses my ratings system to simulate the rest of the NFL schedule and provides each team’s odds of reaching the playoffs, winning its division, getting a first-round bye.

I’ve added the simulator to FOF8. I think that will add another touch of immersion to the Front Office Football experience. And since PC CPUs tend to be a lot faster than Android-based devices, you can run a longer simulation.

Based on week 8, here are the current playoff chances for each NFL team:

Reach Playoffs, AFC:

New England 99%+, Denver 90%, Kansas City 84%, Oakland 82%, Pittsburgh 79%, Houston 75%, Tennessee 35%, Cincinnati 16%, Buffalo 13%, Baltimore 10%, San Diego 8%, Miami 5%, Indianapolis 2%, New York Jets 1%, Jacksonville 0%+, Cleveland 0 (while still technically alive, the Browns reached the playoffs in none of the 10,000 iterations through the schedule).

First-Round Bye, AFC:

New England 98%, Denver 39%, Kansas City 27%, Oakland 19%, Pittsburgh 9%, Houston 6%, Tennessee 2%, Cincinnati, Buffalo, Baltimore, San Diego, Miami, Indianapolis 0%+.

Reach Playoffs, NFC:

Dallas 98%, Atlanta 96%, Minnesota 95%, Seattle 87%, Philadelphia 61%, New York Giants 45%, Washington 32%, Green Bay 31%, Detroit 18%, Arizona 15%, New Orleans 12%, Los Angeles 5%, Tampa Bay 3%, Carolina, Chicago, San Francisco 0%+.

First-Round Bye, NFC:

Dallas 70%, Minnesota 57%, Atlanta 42%, Seattle 15%, Philadelphia 8%, New York Giants 4%, Green Bay 2%, Washington, Detroit, New Orleans 1%, Arizona, Los Angeles, Tampa Bay 0%+.

The application also calculates the most important games remaining on a team’s schedule. I didn’t incorporate this feature in FOF8. But it’s an interesting concept. For instance, Green Bay’s most important remaining game is in week 12 at Philadelphia. If the Packers win, they have a 55% chance of reaching the playoffs. If they lose, only a 23% chance.

Renegotiations in Front Office Football

One of the most important pieces of Front Office Football is managing your roster under the rules of the salary cap. I’ve chosen to simulate key elements of the NFL Collective Bargaining agreement, but I don’t expose the full agreement because the details require each team to employ a full-time assistant in real life.

Holding on to players is important. NFL teams tend to keep a core of essential players, most of whom will never see free agency. So renegotiating as a player heads into his “contract year” are important. The AI for Front Office Football does a fairly good job retaining key players.

Renegotiations are technically allowed during the season, with some restrictions. In real life, nothing involving the current year can be renegotiated once the regular season ends. I’m not certain if fully renegotiating a veteran to extend a contract late in the regular season is allowed, but in practice it just isn’t done. Last year, for example, the latest renegotiation/extension for any player was executed prior to Week 6, and only a handful of contracts were extended once the season began. There were also a handful of “cap-outs” early in the season, where a player takes most of his current-year salary in bonus money in order to free up some immediate cap room.

However, in-season renegotiation is possible in Front Office Football, and it apparently doesn’t work correctly. A salary change for the current year is properly handled with respect to the player himself, but an ensuing adjustment to cap room isn’t handled correctly. This was first reported as a bug a few months ago, and is on my list of issues to handle for the future.

Apparently, in many multi-player leagues, some owners take care of important renegotiations late in the season, or even after the playoffs begin. This then becomes a frustrating problem for them, as the cap is reported improperly. While the cap rules are only enforced at certain times during the season and this corrects in the new year, so it’s essentially a cosmetic error, it lessens confidence in the game handling finances properly.

I never anticipated this. When I test and play myself, I only renegotiate during the off-season. Which is not to excuse a bug – the goal is a bug-free game, regardless of the impact or how I feel about a particular strategy.

In investigating this report, I quickly realized that part of the problem is that there is essentially one major piece of AI where players analyze the value of a contract offer. And they will over-value a front-loaded contract if the front part includes money they will never see because it’s part of the current season. That’s a loop-hole. I could, in theory, close this loop-hole by fixing the bug and adding code to split the current season to the evaluation routines.

But am I doing the right thing? Analysis of NFL transactions suggests this is the wrong approach. Late-season renegotiations aren’t really a tool in the NFL GM’s toolbox, and I want to avoid unnecessary complications for players.

So I’ve decided to eliminate in-season contract renegotiations. The AI GMs don’t renegotiate in-season, so eliminating this shouldn’t have any unreasonable effect on the single-player game. I will leave the “cap-out” in place, and provide the correct adjustments. The “cap-out” is a tool most players won’t need at this stage of the year, but it may allow a team to sign a veteran free agent mid-season who otherwise wouldn’t fit under the cap.

House Rules

House rules refers to set of rules used in a game that only applies to games run by a specific person or organization. In a game like Front Office Football, league commissioners may set their own league rules. These rules are well known, and the commissioner has the authority to enforce these rules.

An ideal game has no need for house rules.

Since Front Office Football multiplayer has been around for a long time, the rules commissioners consider have been under discussion for a long time. Improvements in the game over the years have lessened the need for house rules, but they still exist.

I’ve asked for feedback about house rules from time to time, and what I’ve found (and this is by no means an attempt to represent all leagues) is that in FOF7, house rules are mainly used during early free agency. A couple of rules refer to minimum player bonuses, but these are relatively rare. The most common rule is that during the first stage of free agency, free agents must receive a minimum offer of a three-year contract.

Why does this rule exist? It’s well known that FOF7 players like long-term contracts, but they can be compensated for that with a large chunk of money in a one-year deal.

Is this a reasonable house rule? Obviously, if a good percentage of people who enjoy FOF7 want to play in leagues that have this rule, it’s reasonable. In the end, I’d like to incorporate reasonable rules that people enjoy.

So I set out to determine whether this is a realistic rule.

To do this, I studied a piece of the 2016 off-season. In real life, free agents of all abilities sign throughout the free agency period, but the top free agents usually sign in the first few days (first two-to-three days in most cases). In Front Office Football, the top free agents choose a stage early in signing process and usually make their decisions that stage. Weaker free agents tend to wait until later in the period.

I use this mechanism to give structure to a process that’s far too crazy to simulate exactly as it occurs (I doubt NFL GMs get a wink of sleep the second week of March).

Using an NFL.com article, I took a list of their top free agents for 2016 – players who they categorized as elite or starters with some flaws. From that list, I took every unrestricted free agent who signed in the first ten days of the free-agency period. This would be the early stages in pre-draft free agency in Front Office Football.

This gave me a list of 43 players. I then looked over the contracts they signed.

Did any sign for less than three years? Yes, eight of the 43 signed one- or two-year contracts. But there were reasons for these signings. Most were fairly old players, nearing the ends of long careers. And some, like Jason Pierre-Paul and Prince Amukamara, have something important to prove after serious injuries and signed one-year deals.

The case with older players is already in Front Office Football. I don’t really know how to simulate the injury case without adding a huge amount of code surrounding injury recovery – code that would require players to spend a lot of time reading about injuries. I won’t go in that direction for now. Perhaps when I design Front Office Football: Medical School.

Bonus money was all over the place. I think the current Front Office Football model works to properly evaluate bonus money.

Other than the older players and the injury cases, three years was on the low end. Elite free agents mostly signed five-year deals with some fours.

I think the case for incorporating a form of this house rule is justified. Here’s how it will work in Front Office Football Eight:

In stage one of free agency, if a player is asking for a four-year contract (or more), he will refuse to consider any contract of less than four years.

In stages two and three, that limit will be three years.

In stage four, that limit will be two years.

I think this change will provide a more realistic simulation of the decisions the elite free agents make.

The Process of Adding New Features

Sometimes, when developing Front Office Football, I spend a day or maybe a little more going through my notebook of ideas for small new features. Today has been one of those days.

This year, all the preseason buzz has been about the National Anthem, it seems. And apparently, EA Sports has the same type of development structure, as they have promised the next Madden Football game will include players who refuse to stand for the Anthem.

I get that it’s a major topic of conversation and one of those touches people who appreciate the details in games will enjoy. I’m not going to mention or include any Anthem controversy in Front Office Football, however. I just don’t think it’s something that lends itself well to a simulation, and I try to remain as politically neutral as possible when it comes to my products. Rest assured that you’ll never have half a season wiped out in Front Office Football due to monsoons created by rampant global warming. Or religious conflicts creating bad team chemistry. I even removed the rare suspension related to Hillary Clinton many years ago after she first ran for president, just in case people felt I was trying to make some sort of statement.

One item that’s in my notebook, however, is also a rather depressing topic. Last year’s off-season, when we weren’t debating Ideal Gas Law, was dominated by concussions. A few players have retired because of repeated concussions, and Chronic Traumatic Encephalopathy is a real life-long concern for those who have been hit one too many times.

The NFL has adopted a concussion protocol. If you saw the Rams’ Case Keenum last November clearly struggling after a sack, you know the NFL still has more work to do here – and they’ve promised stiff fines against teams that refuse to pull a player suspected of being concussed.

I’ve added a concussion protocol to Front Office Football. If a player is diagnosed with a concussion, he’s probably not going back into the game. And he’s not returning to your lineup until he’s clear of symptoms (you’ll get a fairly good estimate of how long that will be after the game). Concussions will make players a little more injury-prone. Players who have suffered several concussions will be more likely to retire at the end of the year. You’ll see that in the form of medical retirements.

Hopefully, this feature makes Front Office Football a slightly stronger simulation.

Responses to the Chemistry Question

Last week, I asked for commentary about the optional chemistry system within Front Office Football. I know most multi-player leagues use it, but it’s not a perfect system. I received quite a few replies, which I’ll discuss in this article. I was going to include people’s names with this discussion. No one objected, but I decided against it.

I appreciate those of you who took the time to email. It’s given me a lot to think about. Here are some of the highlights, as well as my comments:

I completely agree with the core principle that drove you to add chemistry to the game – and I have defended its inclusion on the forums more than once. As far as I’m concerned, the specifics are not what’s important, it’s the operation – and I think having elements like cohesion and chemistry add real depth and value to a game like this. So, overall – I come down on your side here. I want it to be interesting, consequential without being overwhelming, and manageable. I think the current FOF chemistry system does this pretty well… Even if the mechanics seem silly on the surface, I think it’s a reasonable proxy for something that is worth having in the game.

I think it does, too. That’s why it has remained in the game so long. At one point, I included astrological signs on the player card. I removed it shortly thereafter because the reminder that astrology is part of the game is a red flag for many people. What’s important is that when acquiring or drafting a player, it’s easy to find notification as to whether there may be affinities or conflicts.

My main thought to pass on here is elements like these could add more value to the game if they generated some sort of output or feedback to the user. I suspect it is frustrating to you the depth to which some of the intense FOFers will tear apart the data they get – but hear me out. What if in the game messages, there were some text that indicated something like “Some of the Miami linemen seem to be quarreling after the play” or “the defensive backs joined for a celebration after the big play” with those tipoffs indicating that there is a negative/positive chemistry effect in play, at some level. I know this inches the game slightly toward the soap opera that you don’t want to become… but having some feedback to the user seems like it could help make these parts of the game structurally better off.

I think the main problem with something like that is that if it’s repetitive, it causes harm to the game in the long run. And, in a case like this, if it’s not repetitive it’s not very instructive. Our one major real-world example is the Miami linemen you mentioned. Undoubtedly, the chemistry issue with the Dolphins caused the team harm. But in real life, if chemistry is an issue, we would rarely see the soap opera. In the end, I don’t want chemistry to become a “must react” with game play. I want building through chemistry to be one way to improve a team, not something that demands your reaction. I want people able to make decisions, weigh pluses and minuses.

Is it possible to tie players together based on shared attributes or something? Often when players share an agent, they also spend time in the off season training together. The same is also true for players who come from the same schools either in high school or college, or play for the same team in the NFL.

This is a really interesting idea. Rather than astrology, use something that’s already in the game that naturally binds players. We’ve all heard how Bill Belichick loves to add Florida players. The problem is there are just too many schools – hundreds in the game. But what about the agents? Currently it’s just a piece of information that has some effect on the complex model of what a player does when choosing between teams making an offer in free agency. As well as a similar tie-in when renegotiating contracts. What if I dropped the number of agents to ten? They could have different chemistry bonuses. Possibly a couple of antagonistic relationships between the stronger agents? I like the idea a lot, but I think it’s a little risky at this stage to implement something of that magnitude. It’s something to file away in my notebook. Thanks for the suggestion.

Can we have some say in determining who are the leaders on the team? I don’t think we need full control to make any player a leader, but if we could pick our leaders from a list of eligible players right before training camp, I think that would be a solid compromise. Once a player becomes an eligible leader, he should get some kind of icon next to his name and should always be eligible to be a leader. Leaders should have an effect when they’re on the field too, so that backups and depth guys aren’t generally found as leaders. I just want some way of knowing who my potential leaders are and to be able to plan accordingly.based on that. Maybe one way for a player to become a leader is to be the best candidate on a team without an eligible leader, because sometimes guys are kind of forced into the role. Leaders should be somewhat rare I feel. There should be a fairly high premium on leadership.

Another interesting idea, but I think a lot of GMs would balk at having that kind of control over something that’s usually voted on by players. But you get at the heart of the concept I’m struggling with here; chemistry should be about the players who matter on your team.

Would it be possible to diversify a little bit and have multiple team captains, similar to how position leaders currently work and then let the player choose an offensive and a defensive team leader for chemistry purposes? Tying chemistry bonuses to the QB and WOLB seems arbitrary on the defensive side and generic on the offensive.

I think team captains, in the end, are both too specific and too arbitrary for use with running something like chemistry. I’ve written the functions that determine the captain, somewhat based on what I’ve read about real-life choices. Most of the time on offense, the quarterback is the captain. Exceptions being younger starters. On defense, though, it varies more. The MLB or the WOLB may end up calling the defensive signals most often, but that doesn’t necessarily correlate to captain status.

Here’s how it will work… offensive and defensive captains will be chosen in training camp. This will be a fairly straightforward assessment of years of service with the team and games started. The team captain will have a small effect on team performance during games based on the number of years in a row he has been captain (you see this as the yellow stars on the C patch on jerseys in the NFL) up to four, plus that player’s “play-to-win” attribute, which isn’t used a tremendous amount in the game as it is now. The reason for this is that captains lead by example.

Chemistry, which will remain optional, is about personalities. Captains are the veterans who may or may not be vocal, but set the tone for the team. This still may seem somewhat arbitrary and data-manage-y rather than making football decisions, but I think it works and it’s realistic. It adds the concept of long-term understanding of your starters. On offense, it adds a small dimension to the quarterback choice. On defense, it ties you closer to the decisions about those aging veterans. And it’s completely visible and easy to contemplate, but it’s also not a large enough effect that you can’t win without it. There will be no “negative” captains in that switching to a less-experienced captain will never be an improvement over a long-term veteran who has a low play-to-win attribute.

IMO those spots should be for developmental players, role players and special teams players. You don’t see many players in the NFL kept for being team guys, it’s special teams potential or a specific role they fill on the team.

I agree. The one change to the chemistry system is that if a player doesn’t have starting experience, he won’t count in the chemistry algorithm unless he was drafted the current year in the first four rounds (since games started are not included in player files, this restriction is turned off in year one of a career and halved in year two).

Your article is a clear admission that modeling chemistry using a model of astrological signs predicated on date of birth is inadequate and that a preferable method would include chemistry concepts based on attributes. I’m an Industrial/Organizational Psychologist and have been in an FOF MP league for several years now. I’m very familiar with various personality theories and use of personality in employee assessment and selection. I would encourage you to consider the FiveFactor Model (FFM), also known as the Big Five personality traits, as a method to model chemistry and, in particular, leadership in your game.

I’m personally fascinated by this stuff. I have a book about the Myers-Briggs Type indicator, with its familiar 16-block chart (this writer goes on to say that MBTI is similarly inadequate for this purpose, and I agree). I thought about doing something along these lines, and I appreciate the links he sent that would help me learn more about these concepts. Do I want Front Office Football players to become competent amateur organizational psychologists? If it were well presented, sure, why not? But I don’t think this is easy. As he said, even the life’s work of Carl Jung isn’t quite sufficient when it comes to analyzing group dynamics on a football team. There’s a game in here somewhere. Real analysis of group dynamics goes right to the heart of the resource allocation genre of board and computer games.

I love FOF and TCY and Baseball Mogul for that matter because they give me a realistic
opportunity to run a team while PLAYING A GAME. It’s a game and simulation, not the real thing. And quite frankly, when you start putting each and every aspect of real life into A GAME, it ceases to become a game and becomes more of a job, micro managing each and every detail.

I’m not always good at drawing that line properly. I can’t forget that what I bring to the table is the aspect of a somewhat realistic simulation. If I start simplifying Front Office Football and try competing where I can’t win, you should play Madden instead – the graphics are amazing and they do a nice job teaching football concepts – it’s just not a simulation per se. The question I ask a lot is how do I reduce the number of choices I ask you to make, while giving you even more control over the outcome.

I also received a few comments on my lack of specifics with regard to release dates.

On that, I can only repeat that FOF8 is a major rewrite. It includes a completely new and much more realistic approach to game planning. Right now, it doesn’t produce NFL results, but the alternative is to make your input as a game planner less influential. That defeats the purpose of implementing this huge change. So I have to spend more time tuning the engine, which is an open-ended development item.

I don’t know when it will be ready. I would like to release it this fall, but I don’t know. I’m not yet in that final stage where beta testing is going on and I’m working on player files and documentation. FOF8 is my top priority right now.

Some have asked about 2016 rosters for FOF7. I almost never work on a player file this early in the season regardless, but I will only do one for FOF7 if it becomes clear I won’t release FOF8 until next fall. One disadvantage to being a solo developer is that it’s very difficult to support more than one version of the game.

Chemistry in Front Office Football

Ages ago, I forget which version of the game, I added the team chemistry model to Front Office Football. When designing the feature, I tried to stay true to the fundamental piece of advice my “mentor” in game development offered when I was starting out in this business.

“Create the game you want to play.”

This seems simple on its surface. Why do any of us create games? We’re programmed to play games. As children, we do it automatically. You watch kittens and puppies, and they play both to entertain themselves and to model skills they’ll need as adults. Play is part of who we are.

Designing a game about running a professional football team, I tried to stay true to that concept. What are the pieces of team management that entertain and help us learn relevant skills so that we feel, at least (and obviously the analogy breaks down somewhat at this point), that we could run a successful franchise?

The other fundamental piece of advice I’d give to beginning game developers is something I read from an interview with Sid Meier, who designed the Civilization series among many other great games.

“Games are a series of interesting choices.”

What makes choices interesting? If you feel your choice affects your outcome in a game, that usually makes it interesting. So I try to remain true to that concept. Everything you do in Front Office Football has some effect that you can identify. At least in theory. There are so many choices that uniquely identifying cause and effect can be very difficult.

But that alone isn’t quite enough. A choice with an effect isn’t always interesting. For instance, many customers have complained about the time management screen in The College Years. You’re essentially day-planning for your student athletes, deciding how much time to spend socializing (a happier athlete performs more to his ability), studying (a failing athlete may become ineligible) and training (a more skilled athlete reaches his potential). These choices affect outcome. But are they interesting? Maybe at first, but doing this for dozens of players every single year gets old. A game should not be drudgery.

Choices have to be relevant as well. It might be interesting in TCY, for example, to have each player choose a Pokemon character that best reflects his talent. Player development would be dependent on intelligent choices. But how does this relate to college football? When you’re choosing Pokemon, are you still playing a game about college football?

If you keep all of this in mind when you design a game, odds are you’ll come up with good ideas because it does come naturally to all of us.

I wish I could update people on the exact status of new games. It’s complicated. When you’re a one-person game company there are positives and negatives. One negative is that I’m not on any schedule. I don’t have to answer to deadlines. It’s done when it’s done, and I’m not going to release something just because of date on a calendar. Back when EA Sports was publishing Front Office Football, they had deadlines and deliverables because others were working on the game and my producer had other aspects to manage, like the PR campaign. So we set realistic deadlines in advance and I worked around the clock to ensure that the game was the quality I wanted when it came to time to deliver. That was a positive, though exhausting.

One positive to being a solo developer is that I can always step away and redesign something that I feel doesn’t quite meet my design goals.

And one example is the chemistry model in Front Office Football. The initial idea I had is that your job as a general manager is to assemble a team. But a team is more than just the sum of its parts. That’s an intangible asset. The media often refers to this intangible as chemistry. If the media witnesses, for example, a player like Colin Kaepernick creating some sort of distraction, it’s irresistible to write about the potential effect on team chemistry. Of course, that’s mostly nonsense. Even if they get some poor schnook on the record saying “it really upsets me when Kaepernick sits on the bench during the National Anthem,” how in the world can some writer behind a desk 1,000 miles from San Francisco know what’s in that player’s head during the game itself? Is a linebacker going to stuff the wrong gap because Kaepernick pissed him off? Is a safety going to make a brilliant interception because he was inspired by Kaepernick’s sense of social conscience? Probably not. Who knows? Definitely not that guy behind that desk.

So for chemistry to work as a feature in a game, it has to be tangible. Your decisions must matter and you must be able to see the results and potentially identify the effect.

How do you make the intangible seem real? That’s a question easily handled in a game like Front Office Football. You’re already accustomed to paging through data, so it follows naturally that chemistry can be presented as data. There are leaders based on position groups. Leaders are determined by the strength of their personalities and their experience. Personality strengths are tangible player attributes. Affinities and conflicts are localized within position groups and between team leaders. It’s a relatively simple system that fits neatly within the roster window. You can see how many affinities and conflicts your team has and this has an effect on team performance. One way to improve your team is increase affinities and decrease conflicts.

That’s the general design. But is it interesting? I wrestled with that question at the time. In real life, personality strength is something we can observe. People with stronger personalities experience more conflict. They also build relationships. Early on, I realized that I couldn’t model the “toxic” personality – someone with a strong personality who generates conflict but doesn’t build affinities. Once you make toxicity tangible, you have no choice but to get rid of that player. Now you’re no longer making decisions. Therefore, the system had to be “fair” in that everyone has a somewhat equal chance of generating affinities and conflicts. That’s not perfectly true in Front Office Football (in a minute I’ll reveal something I’ve never read in comments before, so it may be new to most of you – I’m sure there are veteran players who have figured this out) but it’s mostly true.

Is it interesting? If purely random, I don’t think so. If you draft a player and all of a sudden you’re dealing with the conflicts that arise randomly and naturally in a locker room, outside of your control, that doesn’t feel good. So I realized right away that relationships needed to be predictable. That led to a model based on astrology. Personally, I don’t believe in astrology. Not in the slightest. The idea that our personalities depend on what day of the year we were born seems difficult to believe. There are veteran player scouts who swear astrology works when picking quarterbacks, but the sample sizes involved are so small that statistical significance is low. I don’t buy it. But we’ve all heard of astrology, and the notion that astrological signs dictate relationships is conceptually easy. It made the transition from intangible to tangible predictable – a decision in your control that you can manage.

Incidentally, the “reveal” above is that player personality itself is somewhat tied to astrological sign in the player creation model. You get generally stronger personalities with some signs (and more intelligent players with other signs, etc.) Therefore, you can get a little more bang for the buck if you focus your leaders on specific signs, if the opportunity arises.

The downside of this entire system is that moment I’ve had, and many of you have had, when you’re looking at a player and you realize how ridiculous it is to turn down a solid free agent linebacker because, like, he’s an Aquarius. All of a sudden, I’ve (as the designer) suddenly and rather deliberately reminded you that this is just a game, not a model of professional football. At least I recognized this right away and made the entire chemistry model optional. When you turn off chemistry when starting a new career, it’s absent from the game (except with the player creation itself) in that conflicts and affinities and position leaders aren’t tracked at all.

Why am I writing about this?

Well, I’m somewhere in development of Front Office Football Eight. I don’t know when (or if) it will be done. It’s incredibly ambitious in that game planning and play calling is completely new (this is making the in-game play-calling 100% more enjoyable in my own opinion – that’s been the best part of this development, though I think it will improve the league experience as well). So I need to ensure that this work doesn’t break the game engine and that the game engine continues to produce realistic results. I’m also taking the time to implement some features that have been on my “list” for ages (this week, for example, I replaced the model for determining penalties, allowing a reasonable method for determining the individual responsibility for penalties – I didn’t just want to pick a random number, as the old engine would have required).

I’m currently toying with another item on that list: defensive team captains. The concept is that your team identity is somewhat determined by your quarterback on offense, and your defensive captain on defense (most likely your starting middle linebacker in a 43 and your starting weak-side outside linebacker in a 34). This would then lead to a chemistry concept based on attributes, but not necessarily the interaction of attributes like the astrological model requires. So Kaepernick’s protest becomes insignificant, rather than potentially damaging as if this backup is a Leo being added to a Scorpio-based position group. I think it’s more realistic and it doesn’t have to be optional.

Sad and Very Belated Programmer News

Like many programmers who have worked with Microsoft’s MFC libraries in C++ over a long period of time, I read a lot of MSDN articles, and adopt techniques other programmers have found useful.

One of MSDN’s most prolific writers was a man named Paul DiLascia. He wrote well, and he “commented” his code thoroughly. Commenting code means adding text to code, exempted from compilation, that explains details about how the code works. Even in a solo project like Front Office Football, commenting code is a great practice. Because years later, you might not know why you did something, and the comments might save you hours of tracing through code.

DiLascia’s trademark comment looked like this:

////////////////////////////////////////////////////////////////
// 1997 Microsoft Systems Journal.
// If this program works, it was written by Paul DiLascia.
// If not, I don’t know who wrote it.

If you go through Front Office Football, there are a couple of code fragments that include this comment. His articles helped out a lot, especially when working with the set of functions that allows you to add any kind of custom graphics element to an MFC program.

One fragment he wrote, part of a custom function replacing the MFC standard function that is activated when the frame of a dialog box is drawn, looked like this:

// Mimic MFC kludge to stay active if WF_STAYACTIVE bit is on
if ( frame.m_nFlags & WF_STAYACTIVE )
{
bActive = TRUE;
}
if ( !frame.IsWindowEnabled() )
{
bActive = FALSE;
}
if ( bActive == m_bActive )
{
return TRUE;
}

A kludge is a piece of code that a programmer slams into a function to force a desired effect when he or she knows perfectly well that it wouldn’t be necessary if there weren’t a bug elsewhere (or just something the programmer doesn’t quite understand). In this case, there was likely a bug in the MFC library where this activation function was called when it shouldn’t, potentially making the dialog box flicker.

Last year, when upgrading to Windows 10, I noticed a bug in FOF development where non-modal windows were being cut off near the bottom. Tracing through my code didn’t illuminate any potential fix – all the relevant variables looked the same regardless of whether the windows were cut off. I spent a lot of time on it, couldn’t find the problem, and added it back to the dev. list for later investigation. I’ve been working on that again this week, among other issues related to graphics (Cleveland fans will be happy to know that their new team orange is properly implemented).

I finally found the bug. The kludge, which prevents that function from extending the size of the window when the internal flag referenced in the code above matches the internal window state, was actually preventing a necessary function call. Apparently whatever internal bug that caused DiLascia to write this kludge was fixed in the Windows 10 version of the MFC libraries. I removed that piece of code and haven’t seen the cut-off issue since.

So I thought, since it has been nearly 20 years since DiLascia first wrote about this bug, that it might be interesting to look him up and email him about it. MFC has been a wildly successful product for Microsoft. It has its limitations, but it’s fast and very stable. Without it, I’m sure Front Office Football would have far more technical problems.

Unfortunately, I read that DiLascia died suddenly in 2008 at the far-too-young age of 48. I’d like to offer my condolences to his family and friends, and further credit someone who, obviously unknowingly, played a tiny role in the development of Front Office Football (and likely countless other Windows development projects).

Quarterback Update: Playing Chicken with the ‘Niners

Teams looking for an experienced quarterback for 2016 are running out of options. Robert Griffin III signed a backup-plus two-year deal with Cleveland yesterday. Griffin didn’t play at all in 2015 and carries some red flags, but if you were looking for a potential starter on the free-agent market, that was the best option.

Cleveland will still, presumably, go quarterback at #2 (after the draft, we’ll probably say they wentz quarterback). But this allows Carson Wentz some time to get used to playing the position at a high level, as he played at FCS school North Dakota State. Wentz has the tools and the brains, but can’t be expected to play at NFL speed right away.

With Griffin gone, the list of experienced quarterbacks stands at Michael Vick (Age 36 at the start of the season, two years removed from starting, 126 career games), Ryan Fitzpatrick (33, 107 games, one of only two remaining who started more than five games last year), Josh Freeman (28, 61), Tarvaris Jackson (33, 41), Christian Ponder (28, 37), Brandon Weeden (32, 28), Bruce Gradkowski (33, 27), Charlie Whitehurst (34, 17), Jimmy Clausen (28, 17), T.J. Yates (29, 12), Ryan Lindley (27, 11), Matt Flynn (31, 10), Johnny Manziel (23, 10, the only other starter from last year on this list) and Josh Johnson (30, 6).

A handful of these players will receive opportunities to win a backup job in training camp. Fitzpatrick wants real starter money. He’d get a decent contract, likely something similar to Griffin’s deal, if he were willing to be a stopgap starter or compete to start in a fluid situation like Denver’s or returning to the Jets, but he’s playing his own game of chicken. Manziel isn’t likely to receive an offer while charges of alleged domestic violence remain unresolved (a grand jury is hearing the case and deciding whether he will face a misdemeanor charge). And even if he isn’t charged, it’s a bad PR situation and there’s still the issue of whether Manziel is willing to do what it takes to be an NFL quarterback.

Colin Kaepernick, who was so good in 2012 but has steadily declined since and was just awful last year, is still on the San Francisco roster. His 2016 contract guarantees at $11.9 million next week. Do the 49ers want to go into 2016 with Blaine Gabbert at the helm? Gabbert’s only 26 and was surprisingly decent relieving Kaepernick last year. He was the 10th overall pick in 2011 and physically impressive. He came out of a spread system in college, so presumably he’d need time to develop. Maybe the light finally came on? After all, Jacksonville did force him to start as a 21-year-old rookie. Maybe out of need, but that seemed like a move destined to fail.

Unless Chip Kelly thinks he can fix Kaepernick (not the worst idea in the world), the 49ers aren’t in terrible shape. But at $11.9 million, he should be released and teams know it. He might be worth the mid-round draft pick teams would trade for him, but then they’d have to pay that salary. The 49ers say, for now, that they’ll pay Kaepernick if they can’t trade him (and he has requested a trade). It makes no sense, though. The 49ers are far better off going with Gabbert and drafting a prospect.

I think is a game of chicken the teams still in need of a starter will win. Whether Kaepernick succeeds with a new opportunity is another story, and one only he can tell. He has to be willing to put in the work.

The following teams have immediate starting quarterback issues:

Denver: the Broncos traded for journeyman Mark Sanchez, who is a fairly good backup, but not someone who should be relied on to start for a full season.

New York Jets: Geno Smith is in his contract year and is a year removed from starting. When he started, he was awful, though, like Gabbert, he was pressed into service early and came from a spread system in college. Bryce Petty, drafted #103 last season, is the only other quarterback on the roster and has yet to throw an NFL pass.

Los Angeles: the Rams are giving Nick Foles low starter money, but he has fared poorly the last two seasons. Case Keenum, who signed his RFA contract, will compete for the starting role – he probably even has the edge. They could trade up for Jared Goff, especially if he doesn’t go in the top five.

A whole passel of teams would be delighted to draft a decent quarterback prospect. Teams like Arizona, Dallas and New Orleans are anxious to start working on heirs for their aging starters. Many other teams want to get another mid-round quarterback to try and groom a backup. And some would take a talent like Wentz or Paxton Lynch from Memphis just for the opportunity to get a young franchise quarterback.

The bad news is that free agency is just plain rotten this year. The good news is that it’s an unusually deep draft when it comes to draftable quarterbacks. No near-certain franchise guys like Jameis Winston or Marcus Mariota, but depth at the top level and a load of depth in the middle. In addition to Wentz and Lynch, California’s Goff carries a first-round grade. He has a lot of college experience and could go very early – especially to a warm-weather team where the coach simply doesn’t believe that quarterbacks need large hands. Other names thrown out there include Ohio State’s Cardale Jones, Michigan State’s Connor Cook, Penn State’s Christian Hackenberg, Mississippi State’s Dak Prescott and Western Kentucky’s Brandon Doughty. Every one of these quarterbacks probably goes in the first three rounds.

Free Agent Quarterbacks

There is no role in sports comparable to an NFL quarterback. A unique blend of talent, leadership and intelligence.

What’s more, there are only two paths to significant playing time. The first is experience and the second is scouting. Experience is hard to get on the practice field, so those who aren’t scouted as high-round picks prior to the draft often face difficult odds.

It can happen, though. The best example this year is Chase Daniel, an undrafted journeyman seven years ago with 464 career passing yards (just four last season). He’s only 6-0, which is very short by NFL standards. Yet teams have seen enough that the minute free agency opened, the Eagles grabbed him at $21 million over three years, most of it guaranteed. Daniel only has two career games with significant experience, but he performed well enough in those games that the Eagles pulled an expensive trigger. Daniel should have a minor opportunity to win the starting job. The Eagles did give Sam Bradford starter money, though.

Daniel’s contract seems very unusual, but, as you look at the free agency market for quarterback, that’s the minimum price if you believe someone can start at the position. The Houston Texans sunk $72 million over four years (again, more than half guaranteed) into Brock Osweiler, who was decent in half a season for the reigning Super Bowl champions, throwing for 1,967 of his 2,126 career passing yards. Osweiler, at least, was the 57th player drafted in 2012 and stands 6-foot-7.

During the 2015 regular season and playoffs, quarterbacks threw 18,803 times for 136,179 yards. After a couple of days of free agency and Johnny Football’s release, the free agency market includes 1,113 attempts and 7,418 yards of that total. About half of that is Ryan Fitzpatrick, a career journeyman who sputtered statistically, but still led the New York Jets to its first decent season in several years.

Only 19 signal-callers in what I’d consider the current player pool have ever completed an NFL pass. I’d be surprised if anyone outside of this group sees time on a 2016 NFL active roster, though there’s always a Dominique Davis or Ryan Williams (physically gifted, undrafted in recent years, not a priority free agent post-draft) out there who gets a camp opportunity where lightning may strike.

I’ve searched for recent examples of an undrafted quarterback who wasn’t a priority free agent immediately after the draft ever receiving playing time. The closest player I found was Alex Tanney, who was signed by the Chiefs after the 2012 draft, got hurt in the pre-season, spent the year on IR, and has since been on six other teams. He’s currently the fourth-string Titan quarterback. You may remember Tanney’s amazing “trick-shot” video from his college days. Anyway, Tanney has 99 career passing yards.

So I feel confident that these 19 players are about it as far as anything other than camp arms. Many teams will take a fifth quarterback for the early portion of training camp, but that player won’t see time in exhibition games.

Probably the most intriguing free agent is Robert Griffin III, who didn’t play for Washington last season. He’s 26, has 36 starts and his average metric is 53, highest among free agents. If a team is willing to commit to his style of play, it could work. But questions about his leadership remain. Someone will take that chance.

Michael Vick, 36 this June, says he wants one more year in the NFL. His career metric is 49, and he struggled a bit in relief work last season for Pittsburgh. He may receive an invitation somewhere, but he won’t get a large guaranteed contract.

Fitzpatrick, 33, is the only full-time starter from last year available. He has a career record of 45-59 and has made 105 career starts (I assign wins and losses based on who was playing when the game was decided, not on who started the game). He scored a 46 last season with the Jets, consistent with his career average of 47. I think he can be a valuable backup, but if you’re starting him from day one, it’s not a good sign. The Jets reportedly want him back, but don’t want to pay starter money. My guess is he ends up back in New York as the Jets draft too low to pick a quarterback who should start this season. The Jets may trade up for a quarterback.

Josh Freeman, the 17th overall pick in 2009, has 61 career starts and a 47 metric. But leadership issues also follow Freeman and he’s been cut a few times. It’s hard to justify the salary he’d receive for his experience. You want reliability from a primary backup, not someone you have to worry about every week.

There are a collection of older players who have seen some backup work who might continue to play that role – most likely with teams they’ve played with in recent years. That group includes Tarvaris Jackson, (age 33 this season), T.J. Yates (29), Matt Moore, (32), Bruce Gradkowski, (33), Christian Ponder (28), Josh Johnson (30), Charlie Whitehurst (34), Matt Flynn (31), Ryan Lindley (27) and Brandon Weeden (32). These quarterbacks won’t get starting opportunities, but they will probably receive chances to fill the primary backup spot – the idea being that they can learn a playbook and give their teams a chance of staying in a playoff race if they have to fill in for a game or two.

There are still a few teams that need someone to fill this role, and there’s often some shuffling around among the lower end of this range – players receiving $2 million or less. A very solid #2 quarterback makes $3-$4 million these days. Moore and Jackson both average 49 in the metric. The others are mostly in the low 40s. Flynn is at 52 in ten games, which earned him a big contract at one point. But he has bounced around seven different rosters in his career, which is a strong indication that he’s not considered good with playbooks.

Johnny Manziel, of course, is a free agent. He was a first-round choice two years ago, but has only scored a 43 in ten games. This, plus his notable off-field distractions make him a difficult sell for any franchise. His alleged violence against his girlfriend would be a problem for fans, owners, even many other players. His work ethic is also suspect.

Jimmy Clausen (28), Jeff Tuel (25) and Mike Kafka (29) are also on this list, but have struggled so much in limited appearances (Clausen has a remarkable 1-13 record and a 34 average in the metric) that they probably won’t be considered for backup roles. And Tim Tebow (29) is presumably available if someone is interested, but brings too much media attention and is limited to a certain type of playbook.

Colin Kaepernick, 28, is reportedly on the trading block after he lost his starting job in San Francisco. His score in the metric dropped from 62 when he led the 49ers to the Super Bowl to 52, then to 49, then to 42 last season before Blaine Gabbert took over. Kaepernick’s salary becomes guaranteed at the end of this month, so he would have to be traded by then. Of course, the team on the other end is on the hook for about $15 million in salary and various roster and playing time bonuses. That’s a lot to sink into a quarterback who has suffered one of the more stark early-career declines I’ve ever seen. Odds are, the 49ers will release him and then he’ll probably get another shot somewhere. There are at least three teams who are in serious need of a starter from day one. He won’t get the nine-figure contract he had with San Francisco, but I could see $5-$7 million going his way.

Reviewing what we’ve seen so far, like last year, this is a bleak year for quarterbacks and free agency. Osweiler received established starter money. Kirk Cousins received the $19.5 million franchise tag from Washington. Matt McGloin and Case Keenum received RFA tenders (Keenum, in Los Angeles, could compete for the starting job). Seven teams have already signed players in primary backup roles.

Grffin and Kaepernick (if available) could surprise and even break $10 million if a team is desperate enough. Fitzpatrick will get around $7-$8 million. Even Yates could get into a situation where starting is possible. I think he’ll get around $4 million.

Finally, I’ll add a breakdown, by draft position, of yards passing in the NFL last season (including playoffs):

1st Overall: 25.9%
2-9: 15.8%
10-19: 10.1%
20-32: 10.5%
(first round: 58.7% – Drew Brees was drafted #32 in 2001, when there were only 31 teams)
33-64: 8.7%
65-99: 7.4%
100-256: 17.2%
Undrafted: 4.4%

Quarterback Metric, Active Leaders

I thought I’d add the quarterback metric averages for all players currently active with 50 or more career starts.

Since the metric is a whole number, when averaging the metric I round to the nearest whole number. Over the course of a career, there might be a significant value to a tenth of a point, but this is still largely a work in progress.

Player – Games with Rating – Average Metric
Aaron Rodgers – 134 – 62
Peyton Manning (retired) – 293 – 61
Drew Brees – 228 – 60
Tony Romo – 134 – 60
Russell Wilson – 74 – 60
Ben Roethlisberger – 188 – 59
Philip Rivers – 171 – 59
Tom Brady – 255 – 58
Matt Schaub – 101 – 57
Matt Ryan – 131 – 56
Carson Palmer – 164 – 54
Matt Hasselbeck (retired) – 177 – 52
Jay Cutler – 136 – 52
Cam Newton – 84 – 52
Andy Dalton – 80 – 52
Colin Kaepernick – 54 – 52
Joe Flacco – 137 – 51
Matthew Stafford – 95 – 51
Eli Manning – 195 – 50
Alex Smith – 129 – 50
Michael Vick – 126 – 49
Ryan Tannehill – 64 – 49
Ryan Fitzpatrick – 107 – 47
Matt Cassel – 85 – 47
Andrew Luck – 61 – 47
Josh Freeman – 61 – 47
Mark Sanchez – 79 – 46
Josh McCown – 66 – 46
Sam Bradford – 63 – 46
Chad Henne – 59 – 46

Stafford is the highest-rated player on the list who has a sub-.500 career win/loss record. The name you’re probably looking at and thinking, “how in the world…” is Schaub. At this point, even though he’ll be 35 this season, he’s strictly a backup. In 2013 with the Texans he was suddenly very mediocre, and he never recovered.

But before that, he was a very efficient passer, and ranks 14th all-time in career passer rating. And Jay Cutler is 22nd, tied with Brett Favre. Does that mean Cutler and Schaub are headed to the Hall of Fame? No. Statistics aren’t everything. Some day, Philip Rivers will be all alone atop just about every statistical list ranking quarterbacks not in the Hall. You have to win some big games, too.

That doesn’t mean statistics aren’t important. How many players have accumulated 100 career quarterback wins, including a Super Bowl victory (or two), and have fallen short of the Hall? None so far, but Eli Manning may well be the first.