Well, here’s the first post of this blog. It’ll mostly discuss about my online baseball game and its progress.
As of now, this project received the code name Earthshine. I’m not decided on the final name of the game/product yet but the domain name has already been bought for it, just in case! It’ll be a head-to-head baseball game similar to the popular Strat-O-Matic online baseball game. Similar in many ways but so much different in a lot of ways!
It’s all in the details they usually say. Well, after more than a year of research and thinking, I quickly realized this project wouldn’t be completed in a weekend! After 150 pages of notes in a scrapbook, I ended up with so many functionalities, “would be cool”, “wish lists” and special features that I had to split all those things into smaller subsets and establish a road-map. Besides, tracking more that 400 baseball statistics ain’t easy and you have to be organized and document everything if you don’t want to get lost. So I’m doing a lot of database design these days and having a naming convention is important!
It’s all in the details and some of those details sometimes make a difference. For instance, randomly generating new players and their statistics ain’t rocket science. But, if you want to do things properly, it quickly gets more complex. Just take names… If you’re from Russia, chances are you shouldn’t have a lot of players named Johnson, Gaudette, Popescu or Bellini! And if you’re from the USA, chances are you won’t usually find players with the first name AndrĂ©, Mircea, Suresh, Vassili or Ljubomir. So I created a “names” database that would help me generate a team with a “local” flavor based on the most popular first and last names in your country. So far, I’ve gathered 300000 last names and 65000 first names! Cleaning up the garbage in that database is 70% done.
Then you need to store addresses. How should I declare the zip/postal code in the database? Well, if you do some research, you’ll eventually end up looking at the Universal Postal Union website. Then you realize that validating zip/postal codes won’t be that easy! So many countries, so many formats and rules!
Then, you also have to carefully plan the security aspect of the game, application and database server. Packet sniffers usage, SQL injection, grants and privileges in the database, SSL configuration, DoS attacks, “unfortunate” lost connections after your opponent hits a grand slam, etc. After that, you have to plan for online backups, setup a decent CVS for all your SQL scripts and documentation. Oh, and don’t forget billing, pricing, marketing, reporting tools, a website with results, boxscores, standings, etc. Details, so many details!
But you get ready to seriously start once you’ve installed all the tools you’ll need! I started by buying a copy of Dolphin Smalltalk Pro edition. Then, I planned a 100% freeware development environment that now includes: R Programming Language Environment, PsPad, TortoiseCVS, Clipboard Recorder, MySQL, WinMerge, Dariolus, 7zip, XVI32, InnoSetup, OpenOffice, MWSnap, Comanche Swiki, Peter’s XML Editor, Free Download Manager, HeidiSQL, Buggit Issue Tracker, TCM Test Case Manager, Express Notes, IceChat, Firefox, Thunderbird and YamiPod to play tons of music from my iPod.
Besides, it helps a lot to have trusty online resources to consult, to find solutions or to stay up-to-date with the products you’re using. Whether it’s a forum, website, blog, book, RSS feed, newsgroup or IRC channel, the more you have the better. So for MySQL, I regularly check dBForums, DevShed, MySQL forums, MySQL documentation, Xaprb blog, the #mysql IRC channel, Planet MySQL, Hack MySQL and the following newsgroups: mailing.database.myodbc, comp.databases.mysql, mailing.database.mysql, mailing.database.mysql-win32, mysql.general and alt.comp.databases.mysql
For Dolphin Smalltalk and/or Smalltalk, I regularly check the #smalltalk and #squeak IRC channels, the Object-Arts website, the Dolphin Harbor and the following newsgroups: comp.lang.smalltalk.dolphin, comp.lang.smalltalk and ibm.software.vasmalltalk.
For baseball, I had to consult tons of websites so making a detailed list here is almost impossible. But I strongly recommend that if you’re dealing with baseball, programming and statistics, do not hesitate to buy Baseball Hacks!
So at this point, I’m still designing the database. I’ve almost completed the Object-Relational Mapping framework in Smalltalk and I’ve set up 2 MySQL servers for testing. The “names” database is 70% completed and normalized, 80% of the baseball statistics I will track (and the formula to calculate them) are documented, all the necessary tools I need are installed and configured. Part of the core object model is already implemented but will have to be ported from Squeak to Dolphin.
Now, play ball!
November 7, 2006 at 6:59 pm
Sounds interesting. I’m looking forward to reading more about the project.