Ten year anniversary of the first commit to the Basketball GM code base

June 22, 2018-

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:

10 years ago:

def do_steal(self):
    ratios = self.rating_array('steal_ratio', self.d)
    p = self.players_on_court[self.d][self.pick_player(ratios)]


doStl(pStoleFrom: number) {
    const ratios = this.ratingArray("stealing", this.d, 5);
    const p = this.playersOnCourt[this.d][pickPlayer(ratios)];
    this.recordStat(this.d, p, "stl");
    this.recordPlay("stl", this.d, [

    return "stl";

This anniversary doesn't mean BBGM has had 10 years of consistent development, because for most of the first 4 years I did nothing with it. But for the past 6 things have progressed pretty steadily. If that continues, the next 10 years should be even better than the first!