Jan 022011
Screenshot of Meld comparing two Apache configuration files

Both coders and system administrators encounter many cases where text files need to be compared. Every *nix system for the last few decades has included some type of plain-text diff tool, but this is often not enough. The human brain just doesn’t have the capability/capacity to merge the differences between two files.

My grandfather taught me a very important lesson about manual labor: you let the tool do the work. The same lesson can be applied to other fields. Our brains are trained to quickly pick up on visual cues. I work much more efficiently with a utility that displays differences visually.

Continue reading »

Dec 162010

I’ve spent a good deal of time working on my game project, but it hasn’t progressed quickly. I had a semi-playable prototype and decided it wasn’t right. I changed the fundamentals of the player’s character and realized the graphics engine was rudimentary. I replaced my home-grown graphics engine and collision detection with solid 3rd-party libraries: Ogre 3D and Bullet. Now I have a very simple prototype and haven’t decided where to go next.

A year ago I described my ideal game engine and explored the conflict between building a game or building a game engine. I still believe that good games are timeless, but after ~5 years I have to bow to the wisdom and experience of the experts. A game developer should not start by attempting to make their dream game.

Continue reading »

Nov 062009

I have always been a big fan of the guys running Vendetta Online. They are one of the only indie teams I’m aware of that have successfully built an MMO game and turned a profit. What’s more, they seem to use the right tools for the job, know what they are doing, built a solid game and interact very well with the user community. I guess those are the keys to success for an indie MMO.

I’m at the stage where really I just need to use the right tools for the job. In most respects, I believe that good games are timeless (1 2) – I’m not concerned about a decade of development time. So I can take all the time I want and I’ve spent the last few years researching the right tools for scalable game development. Like the developers of Vendetta discovered, all roads lead to Erlang. It seems to have become the de-facto standard for highly-available, scalable, reliable applications. Engineers building an MMO would be foolish to not strongly consider Erlang for their backend. And all of Erlang’s strengths are based on a single premise: components should be simple, well separated and communicate through messages.

Continue reading »

Nov 032009

I’ve been dabbling with computer game design for half a decade (I had crazy dreams about making games way before that, but didn’t write code back then). It’s been strictly a part-time hobby, but for the amount of time I’ve spent I don’t have much visual evidence of my work.

Compared to coders who churn out games in a couple weeks, it’s fairly embarrassing. This seems to be a common joke among game creators, as everyone on the net claims to have the “best” idea for their game and none are ever produced. I’d bet most game ideas don’t even turn into a single line of code, and those that do are soon abandoned. I’m trying to rationalize how this doesn’t apply to me…

Continue reading »

Jan 112006

I recently began work on a C++ project which I intend to be widely distributed (maybe even ported to other operating systems). Instead of writing my own customized Makefiles which probably wouldn’t even build cleanly on another Linux system, I used GNU AutoConfig and AutoMake. I’ve read complaints about both automated build systems and custom Makefiles, but in my experience it’s the custom Makefiles that break most frequently.

Unfortunately, even with the vast amounts of documentation available on the web, there are some parts of automated build systems that you simply can’t get to work. In my case, I was building a single executable from a deep source tree. While there is plenty of documentation of separate executables and libraries in separate directories, I couldn’t find a single working example of a source tree being compiled into a single executable. I had to piece everything together by trial and error.

Continue reading »