Nostalgia from my changelog, and how to play 2013 BBGM today
For some reason, I decided to go through my history of blog posts, Reddit posts, and git commits and retroactively create a full changelog of Basketball GM back to the first beta of the web-based version in 2013. It was kind of fun to refresh my memory about everything that's happened so far, and it made me want to write this blog post about it.
New feature in God Mode to select the winner of a game before it's played
I just added a fun new feature to leagues with God Mode enabled. Now you can determine who wins a game before you sim it.
On the Live Sim page you can set the winner of any of today's games:

Start real players leagues at different times (preseason, playoffs, draft, after draft) in any season
Portland fans, have you ever wondered what would happen if this draft went differently?

Dallas fans, have you ever wished for another shot at these playoffs?

One of the fun things you can do in Basketball GM is re-run historical situations. But the ones above were tricky to do, because although you could create a league with real rosters from 1984 or 2007, you could only start at the beginning of the season. Play the whole season again and maybe Portland doesn't wind up with the #2 pick, or maybe Dallas doesn't play Golden State in the first round.
That's why today I'm releasing a new feature. In addition to being able to start each historical season in the preseason, you can also start at the beginning of the playoffs, the draft, or after the draft:

This is also true for the current season, so you can create leagues starting today, right before the 2020 draft.
Go give it a try now, or read on for more details.
Trade deadline
I just added a trade deadline to Basketball GM and Football GM. By default, it happens 60% of the way through the season, but you can change the timing or completely disable it in the God Mode settings under "Trade Deadline".
The trade dealine is visible in the list of games at the top of the screen and on the schedule page. There is also a new entry in the Play menu, "Play until trade deadline". These will only appear for new seasons started after loading the latest version of the game. So for existing leagues, you will have to wait until next season to have a trade deadline.
New, completely redesigned player mood feature
Basketball GM has always had a concept of player mood. It was the red/yellow/green rectangle you saw on the free agents page, along with descriptive text like "Insulted by your presence" on the negotiation page. But it had a lot of drawbacks.
One major problem with the old mood system was that it did not give you much information. Why is a player happy or sad? Who knows. Behind the scenes there was a logic to it, but it wasn't displayed to the user, leaving you to guess why a player felt a certain way.
Even worse, mood was not displayed during the season. So you'd go into free agency with no idea whether you'd see the dreaded "Refuses to negotiate" message next to a player's name. That made it very difficult to plan ahead for players who are planning to leave.
You may have noticed that the previous paragraphs are all written in the past tense. That's because Basketball GM now has a brand new mood system, that fixes those major problems from the old system and introduces some nice new features too!
Game Highs, like the most points each player scored in a game
Basketball Reference has a lot of cool features. One of those cool features is Game Highs, where on every player page you can see a table of their highest single game statistical outputs, broken down by season or career. So for each player, you can see the most points, rebounds, assists, etc. they ever recorded.
Now Basketball GM has a very similar feature, also called Game Highs. You can view it in two places. First, in the Game Highs table on each player profile page:
The Elam Ending comes to BBGM
If you watched the 2020 NBA All-Star Game or The Basketball Tournament, you're familiar with the Elam Ending, an exciting and creative new idea in the basketball world. If not, check out this great introduction by Zach Lowe, which was how I first heard of it a few years ago.
The basic idea is pretty simple. Instead of a game ending when time runs out, have it end when a team hits a target score. But how do you pick the target score, so it doesn't come really early or late? You start a game like normal, play up until you hit some time limit, and then set the target to be "the leading team's score, plus some extra amount". For example, say with 4 minutes left in the 4th quarter in a 93-90 game, suddenly the clock disappears and it becomes "first to 101 wins".
There's a lot of advantages to this system. No parade of free throws as the losing team fouls to catch up - with the Elam Ending, fouls never help you. No endless timeouts to save precious seconds on the clock - with the Elam Ending, there is no clock. No boring ending with the winning team just trying to run out the clock - with the Elam Ending, you can't win by doing nothing, you need to hit that target score.
It's such a clear and obvious improvement that it went from some random guy's crazy idea to the NBA All-Star Game in a matter of years. And now it's reached yet another milestone: the Elam Ending is in Basketball GM!
Spectator Mode
Different people play Basketball GM in different ways. Although most people play it to manage a team and try to win, some people play it just to watch what the AI does or explore "what if" scenarios. And that's a completely valid way to play the game. As a big Civ 4 fan, I enjoy Sullla's Civ 4 AI Survivor series, which is based on that same idea of just watching the AI play in some contrived scenario.
Basketball GM has long supported this type of play with the Auto Play feature, where the game will simulate a big chunk of time with the AI controlling all teams. The problem was that the UI was only good for big chunks of time. Want to watch individual games, see the draft pick by pick, or see how long the top free agent lasts before signing? That is all nearly impossible with Auto Play.
To address this shortcoming, today I released a new feature called Spectator Mode. It's similar to Auto Play in that the AI controls all teams. But it's different in that you control the pace of play, just like normal in BBGM. Want to stop for game 7 of the finals, see the draft lottery, or watch the expansion draft? You can do that all in Spectator Mode.
GM History page
Back in the old days, there was no way to switch your team in Basketball GM. If you got fired from your job, it was game over. Try again a new league. In part that was just because I hadn't gotten around to adding that feature yet. But also I thought it might be a good way to ensure a league database never grows too large, because at some point you were bound to get fired.
This turned out to not be a very popular feature. People found it too harsh to be forced to quit playing their league. So eventually I made it so you could switch to a new team after getting fired, and also added the ability to switch at any time in God Mode.
This introduced another problem. The game wasn't really designed to support switching teams, so there was no way to easily view your performance was across all the teams you managed in league history. But today there is!
Now you can go to Teams > GM History to view a summary of your overall performance as a GM, tracking all the seasons for all the different teams you managed. Here's what it looks like:
Smarter contract generation
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.