JavaScript bundling for ZenGM, from 2012 to today

January 11, 2023-

Every now and then I write a blog post about purely technical issues I've dealt with that have nothing to do with sports or video games. This is another one of those blog posts! For some reason I want to talk about JavaScript bundling - how it was in the old days when I first started working on Basketball GM; how it's changed over time; and what I'm doing now.


Improvements to AI valuation of their own draft picks in trades

January 9, 2023-

There have been a lot of blog posts about the trade AI in the past - just click that Trades tag above if you don't believe me! And yet, the trade AI remains flawed.

The most ambitious (and so far failed) attempt at improving the trade AI came from nicidob, where he tried to come up with a model to predict how the various "assets" a team owns (not just players and picks, but also cap space) contribute to the likelihood of winning a championship over the next several years.


2022 annual recap and traffic stats

January 1, 2023-

Every year I post some traffic stats here. It's a fun tradition because the numbers keep going up. I'm sure that won't last forever, but it did for 2022!

Some nice milestones that were achieved last year:

In addition to record traffic at all the games, 2022 also saw the release of the new ZenGM Baseball game and many updates to all of the ZenGM games. What will next year bring? Updates to the existing games, of course. But I've also been working on a new game that is pretty different from my existing games. Sadly it's still a bit too early to say more!

And as I always say, I am eternally grateful for the love and support you guys constantly show me. Thank you for helping ZenGM have yet another successful year!

2022 traffic stats:


Better plus/minus stats

November 21, 2022-

For a long time, Basketball GM has had raw plus/minus (or +/-) as a stat, which is how many points per game his team scores with him on the floor minus how many points it gives up. In basketball, this is not the most useful stat in the world for multiple reasons.

One is that it's not adjusted for playing time, but obviously it's very different to have a +/- of -1 per 10 minutes or -1 per 30 minutes. To address that, the +/- stat has been replaced by a "per 100 possessions" version, which makes comparisons of this value more fair.

But even per 100 possessions, it's a pretty shitty stat because if you play with good teammates you'll have a good +/- even if you're not very good. This is the problem that various adjusted plus/minus stats try to solve with fancy statistics. Those are probably too complicated to include in BBGM, although BBGM does include the box plus/minus (BPM) stat which is a simpler approximation of adjusted plus/minus.


Game simulation settings for all games

There have been settings in Basketball GM to let you make leaguewide changes to game simulation - like changing the pace of games, the number of three pointers, etc. Now that same feature is here for the other sports too!

Want to simulate 1930s football, before they really figured out this newfangled "forward pass" thing? Turn up interceptions, and turn down the passing rate, yards, and completion factors.

Or 1980s hockey with crazy scoring? Turn up pace and turn down saves.

Or baseball in the dead-ball era? Turn down power and fly balls.

Or whatever you want. It's your league!

Here's what the settings look like in Football GM:


ZenGM goes international: 10 new teams, including cities in Europe, Asia, Australia, and South America

September 16, 2022-

I know there have been a lot of logo updates lately, but this one is especially exciting. Elliott Strauss is the designer who did most of the logos in my games, and he just finished a new batch of 10 teams. There are a few straggling North American cities, but it's mostly international.

You can use these teams in several ways. You can create a new custom league and click "Customize" next to the list of teams. You can go to Tools > Expansion Draft in an existing league and pick one of them as an expansion team. Or you can go to Tools > Manage Teams and relocate an existing franchise to one of these cities.

Or play ZenGM Hockey where Edmonton, New Jersey, and Winnipeg are in new leagues by default.


New teams in Anchorage and Quebec

September 13, 2022-

This time there are two new teams: the Quebec Voyageurs and the Anchorage Glaciers!


New team: the Albuquerque Thunderbirds

September 9, 2022-

There's a new team in the ZenGM universe, the Albuquerque Thunderbirds!


Create leagues from a mix of teams - random teams, real current/historical teams, and teams from your existing leagues

Recently I added an exhibition game feature that lets you play a game between two teams from any season in any of your leagues. In BBGM you can also pick any real teams, current or historical. This was a pretty exciting feature because it was the first time there was any type of cross-league play. But you can imagine a lot of other things involving multiple leagues that might be fun.

So here's another one: when creating a new random/custom league, you can now include and current/historical teams from any of your leagues, including real teams in BBGM! Try it out by clicking the "Customize" button next to the team selector when creating a new random or custom league.


New team: the Oakland Blue Oaks

August 18, 2022-

There's a new team in the ZenGM universe, the Oakland Blue Oaks!