Hacker News new | past | comments | ask | show | jobs | submit login

Oh yeah, loved to read this! Gaming and especially moddable games are a great entry into programming.

It wasn't exactly my entry, as I had programmed stuff before, but I learned a huge lot during my university time while writing a database site for World of Warcraft, which also had a distributed data collection mechanism by which hundreds of thousands of users could upload data gathered while playing the game to my site, where it would all be distilled into a database, of which a special, minified copy was then compiled and offered to be downloaded by the players right into the game, to be used while playing as a knowledge base. And alongside of that, people could query the database via a web frontend that used all the latest shit (it was 2007 or 2008, AJAX was a big deal back then, reactive layouts were in their infancy, but I had one, and I even wrote a 3D model viewer in the browser and something like Google Maps to view pre-rendered maps of the game world that looked like satellite images). That thing was 60k LOC Java (data processing and website), 30k LOC Lua (for the addon in the game), about 5k LOC ActionScript, some hundred lines of PHP and Bash scripts, and about 5-10k LOC of C++ for the native client to do data uploads and downloads. I eventually sold it for about 60k€ including maintenance, and maintained it as a side project for 7 years total (most of the time I was also actively playing WoW) and then it was abandoned because the site didn't catch on enough among the competition, and the game itself assimilated lots of the functionality provided by my in-game database (which was named MobMap and did catch on massively with the players, I counted at least 1.1 million installs over it's lifetime) so that successful service became redundant over time and was eventually discontinued as well.

But that project brought me lots of experience. Different programming languages and runtime environments and contexts, operating a multi-server infrastructure all by myself, using the latest web tech before there were frameworks that did all the hard things for you, maintaining a codebase over a long period, reverse-engineering (to get some of the data out of the game you had to reverse the original game data file formats, and since they changed with every patch, that was a continued activity done by a very small community of people in obscure online wikis, to which I eventually started contributing), updating large numbers of client installs in a secure and reliable way, processing gigabytes of raw data per day into a concise database (I think it was about 50GB XML incoming per day and the final DB was 4GB MySQL - and it was pre-SSDs, so I had to work all in memory with that DB to get the insert and update speeds I needed), this project had it all, and I continue to draw from those lessons in my job today.




Hey I probably used this back in BC. Thanks!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: