Basketball GM finally has an All-Star Game!
One of the most common feature requests has been to add an All-Star Game. I was always kind of reluctant to do it, both because it'd be a little messy to implement and because the All-Star Game doesn't actually matter, right? It's just a diversion. It's just, you know, fun. Like a video game is supposed to be. Yes, even a text-based simulator like Basketball GM still needs to be fun. So now there is a nice fun All-Star Game. Go play now to see it for yourself, or read on for details.
Moving from Browserify to Rollup
This post has nothing to do with basketball or sports or video games. It's just about some technical details that helped me make Basketball GM run faster. If you're interested in that, keep reading :)
Owner messages revamp
The annual message from the owner has long been a quirky feature of Basketball GM. Each season, you'd get some strange message from the owner about your progress. By reading it, you could figure out how close you were to getting fired.
There were problems though. The messages got repetitive if you played a lot. Sometimes the messages were confusing and possibly buggy, like if you win the title and the owner is still not happy with how much you're winning.
Also the messages were often racist, sexist, or otherwise offensive. In my defense, those were all paraphrases of things our wonderful real life pro sports owners have said. But I don't think everyone got the joke.
Overall, it was not a great system. Finally, I have replaced it. Instead of the long old messages, you get a short message containing your overall performance, your performance in the past year, and a quick recommendation for next year. Also, you get a chart of your past performance, which looks like this:
Schedule and playoff seeding improvements
I deployed two changes today in version 2019.08.31.0916.
The regular season schedule is more balanced. All teams will play an equal number of home and away games, and all teams will have one home game and one away game with each other team in their division.
Division winners are guaranteed a top 4 seed in the playoffs, even if they have a worse record than some non division winners.
As always, let me know if you notice any problems!
A few small improvements
No huge news here, sorry, but there are a few minor improvements in version 2019.08.18.0097:
A lot more tables (such as Draft Summary) are searchable, filterable, and downloadable. There's still a few that aren't. Let me know if that's a problem. Also let me know if I messed anything up with this change, since the table component is used in many many places!
In the past, when you got fired, the AI would never actually change your finance settings back to something reasonable. So if you made them unreasonable, the results would look silly. Now the AI resets their finance settings every year.
The Hall of Fame cutoff adjusts based on the number of games in a season and the length of a quarter. Previously, short leagues would have empty HoFs and long leagues would have tons of HoFers.
Specifically, the cutoff is multiplied by
sqrt(quarterLength / 12) * numGames / 82
. The square root is to account for fatigue in games - shorter games mean the starters play a higher fraction of the game (and the cutoff should be a bit higher) and longer games mean the opposite.
As always, let me know if you notice any problem with this stuff, or if you have any other feedback!
Which NBA players take the most shots with their foot on the three point line? (hint: not James Harden)
I'm going to deal with a very important question today. Which NBA players sacrificed the most points by taking shots with their foot on the three point line? This may seem like a silly question, but given the well-documented difficulty of assessing whether a player's foot was on the line or not, I think it deserves a serious analysis.
Achievements in Football GM
Today I added some achievements to Football GM. You can see them on your account page. Most of them were copied over from Basketball GM with some small modifications.
The current achievements are:
New achievements
Today I added some new achievements to Basketball GM. You can see them on your account page.
Most of these were suggested by users, so if you see something here that you told me about, even if it was a long time ago... see, I am listening!
The new achievements are:
Far future draft classes
For a long time, Basketball GM has let you view draft classes up to three years in the future. Similarly, for people making custom roster files, it's been possible to define up to three years of draft classes in the file.
But what if you want more? Like if you want to make a file for the NBA in 2003, with every draft class up to today? Previously that wasn't possible, but now it is.
So you want to write a sports simulation game
So you want to write a sports simulation game. Great! As someone who has written a sports simulation game, hopefully I can help you.
I get this question sometimes from people who know a bit of programming and would like to make a sports simulation game, but feel overwhelmed or don't quite know where to start. I know this feeling well. I wanted to make Basketball GM for a long time before I actually felt comfortable trying. Before that, I thought it seemed too complicated for me and I'd fail horribly if I tried.
How do you get past that? Well if I wanted an easy answer, I could say go look at the Basketball GM source code and be done with it. But that's a bad answer. If you don't know where to start and feel overwhelmed at the idea of making your own game, you'll feel that even more strongly when trying to understand my code. Basketball GM has been in development for years now, and the codebase has grown large and somewhat complicated. But at its core, a sports simulation game can be much simpler.