Basketball GM is a single-player basketball management simulation game. Set your roster, make trades, draft prospects, manage your finances, and try to build a dynasty. Play it in your browser now, completely 100% free!
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.
The set of technologies used as a foundation for a piece of software is sometimes called a stack. The most famous is LAMP (Linux, Apache, MySQL, Perl/PHP/Python). A trendier option is MEAN (MongoDB, Express.js, AngularJS, Node.js). And there are tons more, mostly tounge-in-cheek jokes at the absurdity of reducing a stack to a catchy acronym (at least, I hope that's what they are). There is even the LeBron stack: LevelDB, Browserify, and npm. In Basketball GM, I use npm a little and I indirectly use LevelDB through IndexedDB in Chrome, but sadly it'd be quite a stretch to say I'm using the LeBron stack.
What stack am I using? Nothing coherent or well established. Just a hodgepodge of things that somehow happens to work. But that's just not a catchy answer, so I set out to find a cool name for my stack. The LeBron stack is a fun name, so I figured I could try to find another NBA-inspired name.
I wrote the first line of code for Basketball GM back in 2008, after I had graduated from college but before I started grad school. That code was C#, which I had never used before. My primary goal was to learn a new programming language and learn how to make traditional desktop GUI software, as previously I had only made software with either command line or web UIs. I was not sure if I was a good enough programmer to complete such an ambitious project, but I figured I'd give it a shot.
November 10, 2013 - Meta
Welcome to the Basketball GM Blog! The main purpose of this blog is to write about the development of Basketball GM, a free online single-player basketball management simulation game. Additionally, there will be some other basketball-related posts here from time to time, such as the two posts below this one. Those are old posts from my personal blog that I decided fit better here, so I moved them. Also, it's nice to start a blog with at least a little content already posted, right?