2018 was awesome
Happy New Year!
2018 was a great year for Basketball GM. The game is better than ever. Well of course I'm a biased source, but it's not just me saying that. The stats speak for themselves.
2018 set new records in all those categories! The last column is the craziest... you guys collectively spent over 100 years playing Basketball GM in 2018. In other words, at any given time, there were on average 100 people playing Basketball GM.
New options: hard/soft cap and playoff byes
I just deployed a new version of Basketball GM with three changes:
The ability to change from a soft cap (default) to a hard cap.
An option to give playoff teams first round byes.
An option to set the number of playoff rounds and the number of games per round.
Okay, #3 was already there, but now you can easily change it in the God Mode options, along with the two brand new features.
More realistic contracts and draft history in new leagues
In the bad old days, before about a year ago, new leagues started with a bunch of randomly created players. The age and talent distributions were somewhat arbitrary. After playing for several seasons, those distributions would shift, which was kind of annoying. In practice, there was more talent at the beginning of a new league than in a league at its "steady state" many years in, which I will call an "established league" in the rest of this post.
This has been fixed for about a year. I fixed it by generating new leagues with simulated draft classes of players, so that the age and talent distributions would be exactly the same in a new league and a established league. It was a great success! But there were still some differences between new leagues and established leagues.
"Untouchable" players and picks in trades
When you're trying to make a trade, you can click the "What would make this deal work?" button to get a counter offer from the AI team you're trading with. Often this results in the AI asking for something you really don't want to give up, like your best player or a high draft pick. Then what you really want to say to the AI is, "okay, you can't have that, but is there any other assets I have that could make this deal work?" But there was no way to ask that. Until now!
Lots of small UI improvements
Today I released an update to Basketball GM containing a lot of small improvements to the UI. Most of them are small tweaks that, when seen in aggregate, will hopefully just make the game feel a bit cleaner and smoother.
But there's also some sexy.
A few recent minor improvements
When I make a small improvement to Basketball GM, it feels silly to write a whole blog post about it. But if I don't, some people will never realize what happened. So maybe this is a good idea: a single blog post explaining several recent small improvements.
Difficulty levels
Today I released a new feature: difficulty levels! You can pick whether you want the difficulty of your league to be easy, normal, hard, or insane. You can do this when starting a new league, or you can change it at any time by going to Tools > Options.
Ten year anniversary of the first commit to the Basketball GM code base
Check it out. Damn, nostalgia. I had just graduated from college and was trying to learn both Python and GTK+ (both technologies long since abandoned by BBGM) while pursuing this crazy idea of making a basketball management sim.
Looking at the code, some of it has totally changed, but other parts still have a direct lineage to the code today. For example, the ridiculously simple initial implementation of game simulation is not that different than the only slightly less simple implementation used today. The overall structure is the same, and many of the functions remain quite similar. Example:
Draft day trades
This feature has been requested a million times, but today it's finally here: draft day trades! You will see it in all your leagues (if not, refresh the page until it says version 2018.05.11.1253 at the bottom), there are some new buttons on the draft page to make it easy.
Ever since the beginning, trades have not been allowed during the draft. The reason for this was a bad design decision I made: when the draft order was set, I moved the draft picks to a special table containig the picks and order for this year's draft. This worked, but it was needlessly complicated (extra table for no reason, why not just leave it in the main one and filter for this year?) and it meant that code for trading picks didn't work once the draft started.
I finally went back and got rid of that bad design, but it took a lot more time than it would have if I just did it right in the first place!
Relatives - fathers, sons, and brothers
In the great novel "The Universal Baseball Association, Inc., J. Henry Waugh, Prop." by Robert Coover, the title character starts to lose it when a young star player dies in a freak accident. The death was particularly meaningful because the young star wasn't just anyone. He was the son of another player, a legend himself. Not that I want anyone to go crazy, but shouldn't Basketball GM at least have the complexity of a fictional baseball simulation game played with dice, paper, and a pencil?
Well now Basketball GM has family relationships! Players can be brothers, fathers, and sons of other players. Here's what it will look like on player pages: