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:
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!
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.
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:
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.
Basketball GM and Football GM now have jersey numbers for players! This is something people have been requesting for a while. It took me so long to do it because I just don't really notice jersey numbers. If you quizzed me on jersey numbers of popular athletes, I would fail horribly. But this isn't about me, it's about you guys! And I know jersey numbers are important to a lot of you.
You can view jersey numbers in a few different places: on player profile pages, on the Player Bios page, and on the little popup when you click the stats icon next to a player's name. On player profile pages you can also see the full history of jersey numbers for a player, which was inspired by Basketball Reference:
Basketball GM has long supported customizing the names and countries of randomly generated players, which is useful for people making custom league files. For instance, if you want to simulate a league in France, it makes sense to mostly generate French players.
The problem with this feature was that it kind of sucked. The file format was confusing and required a lot of repetitive work. Basically it was designed to make my life easy, rather than making it easy to use. That's the opposite of how I normally try to operate.
Today I have finally rectified the situation. There is a new format for customizing randomly-generated player names and countries. Don't worry, all your old league files will continue to work like normal. But in the future you'll be able to use the new format, which is both easier and more powerful. Here is the documentation.
One of the fun things about Basketball GM is that you can view the entire source code to the game, which opens up a level of modding and customization that is matched by few other games. Furthermore, you can even get your improvements included in the game itself. As you can see, that has resulted in a nice trickle of improvements from the community, including a recent PR from icedjuro which added the annual ratings change to player pages:
Recent development, some small improvements (including AV for kickers and punters!), and future plans
Football GM has been in an interesting place in 2020. I haven't given it a lot of direct attention. I've been a lot more focused on Basketball GM. Despite that, Football GM has gotten a lot of improvements. This is because BBGM and FBGM are built from the same codebase. Except for very sport-specific things, any improvements are made in both games at the same time.
All of the recent improvements to FBGM (individual player import/export, challenge modes, the news feed, more frivolities, etc) were made this way. I was focused on improving BBGM, and FBGM just automatically benefited.