Posts tagged "Contracts"
When you make a real players league in BBGM, it does try to use real contract data. But for several reasons, the contracts in BBGM cannot be exactly like real contracts. BBGM contracts are simpler than real contracts: no player/team options, no extensions, no non-guaranteed contracts, etc. And the real contract data I have only goes back to like the 1980s, so any time before then we are flying blind.
Anyway, there are a bunch of problems, and I'm only here to solve one of them right now. The main part of this problem is that the real contract data I am using doesn't have the start/stop dates of contracts, it's just the dollar value each year. From that, I need to kind of guess where a player actually signed a new contract. Mostly I do this by looking for big increases/decreases in contract value. That identifies a lot of them, but not all.
The new player mood system introduced last year is working pretty well overall, but there are some small issues with it. One is related to a mood bonus given to players on rookie contracts, where it says "Eager to sign first non-rookie contract" and gives a big +8 bonus. This gives BBGM something like the NBA's restricted free agency, because it results in your drafted players being less likely to refuse to re-sign. (For FBGM and ZGMH, it only applies if you diasble the hard cap setting.)
Some people have noticed that the bonus was not correctly applied for some real players in historical leagues. Why? Because it was kind of hacky code. It identified "rookie contract" by comparing a player's draft year, the expiration year of their contract, and the length of a default rookie contract for their draft round.
This works fine for random players, since their rookie contracts all are generated by the game and all follow that same formula for length. But it's a bit tricky for real players leagues, or for custom league files, because they may have different length rookie contracts.
Today I have changed how rookie contracts are stored in the game. There is now an explicit
rookie flag in the contract, so a player contract looks like this internally if it is a rookie contract:
Generating player contracts is tricky.
In the past, contracts were generated from a simple formula based on factors such as age and player ratings. That works pretty well, at first glance. Good young player? Big contract. Bad old player? Small contract.
The problem is, that's simply not how contracts are set in reality, and for good reason. It lacks a global perspective. Like if no team has max cap space, or if there are better free agents they'd rather spend it on, then it doesn't matter if a player thinks he "deserves" a big contract. This resulted in situations where sometimes good players would go unsigned in free agency, because no team had enough money to meet their demands.
Today, there is a new contract generation system in BBGM that solves this problem by incorporating a global perspective. Contracts are generated with knowledge of how much cap space teams have and what other players are on the market. So if, due to some random fluke, you find yourself with a very good free agent class in a league without much cap space, players will ask for less money. Or if you find the opposite, a poor free agent class in a league where teams have tons of money, players will ask for more money.
Give it a try and let me know what you think. Or read on for more details about how it works, which is pretty cool.